	.file	"388382.c"
	.intel_syntax noprefix
	.text
	.type	start_mem, @function
start_mem:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 48[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 200[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 192[rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	start_mem, .-start_mem
	.type	start_callbacks, @function
start_callbacks:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	rcx, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rsi]
	mov	rdx, QWORD PTR 8[rsi]
	mov	QWORD PTR 16[rcx], rax
	mov	QWORD PTR 24[rcx], rdx
	mov	rax, QWORD PTR 16[rsi]
	mov	QWORD PTR 32[rcx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 52[rax], 128
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 48[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 56[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	refill_buffer
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	start_callbacks, .-start_callbacks
	.type	stdio_read, @function
stdio_read:
.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, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fread@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	stdio_read, .-stdio_read
	.type	stdio_skip, @function
stdio_skip:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	stdio_skip, .-stdio_skip
	.type	stdio_eof, @function
stdio_eof:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	feof@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	stdio_eof, .-stdio_eof
	.section	.data.rel.local,"aw"
	.align 16
	.type	stbi_stdio_callbacks, @object
	.size	stbi_stdio_callbacks, 24
stbi_stdio_callbacks:
	.quad	stdio_read
	.quad	stdio_skip
	.quad	stdio_eof
	.text
	.type	start_file, @function
start_file:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, stbi_stdio_callbacks[rip]
	mov	rdi, rax
	call	start_callbacks
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	start_file, .-start_file
	.type	stbi_rewind, @function
stbi_rewind:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 200[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 184[rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	stbi_rewind, .-stbi_rewind
	.local	failure_reason
	.comm	failure_reason,8,8
	.globl	stbi_failure_reason
	.type	stbi_failure_reason, @function
stbi_failure_reason:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR failure_reason[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	stbi_failure_reason, .-stbi_failure_reason
	.type	e, @function
e:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR failure_reason[rip], rax
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	e, .-e
	.globl	stbi_image_free
	.type	stbi_image_free, @function
stbi_image_free:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	stbi_image_free, .-stbi_image_free
	.section	.rodata
.LC0:
	.string	"unknown image type"
	.text
	.type	stbi_load_main, @function
stbi_load_main:
.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, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_jpeg_test
	test	eax, eax
	je	.L16
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_jpeg_load
	jmp	.L17
.L16:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_png_test
	test	eax, eax
	je	.L18
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_png_load
	jmp	.L17
.L18:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_bmp_test
	test	eax, eax
	je	.L19
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_bmp_load
	jmp	.L17
.L19:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_gif_test
	test	eax, eax
	je	.L20
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_gif_load
	jmp	.L17
.L20:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_psd_test
	test	eax, eax
	je	.L21
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_psd_load
	jmp	.L17
.L21:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_pic_test
	test	eax, eax
	je	.L22
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_pic_load
	jmp	.L17
.L22:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_hdr_test
	test	eax, eax
	je	.L23
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_hdr_load
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -52[rbp], 0
	jne	.L24
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	jmp	.L25
.L24:
	mov	eax, DWORD PTR -52[rbp]
.L25:
	mov	rdx, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	rcx, QWORD PTR -32[rbp]
	mov	esi, DWORD PTR [rcx]
	mov	rdi, QWORD PTR -8[rbp]
	mov	ecx, eax
	call	hdr_to_ldr
	jmp	.L17
.L23:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_tga_test
	test	eax, eax
	je	.L26
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_tga_load
	jmp	.L17
.L26:
	lea	rdi, .LC0[rip]
	call	e
	mov	eax, 0
.L17:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	stbi_load_main, .-stbi_load_main
	.section	.rodata
.LC1:
	.string	"rb"
.LC2:
	.string	"can't fopen"
	.text
	.globl	stbi_load
	.type	stbi_load, @function
stbi_load:
.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, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L28
	lea	rdi, .LC2[rip]
	call	e
	mov	eax, 0
	jmp	.L29
.L28:
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_load_from_file
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	rax, QWORD PTR -8[rbp]
.L29:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	stbi_load, .-stbi_load
	.globl	stbi_load_from_file
	.type	stbi_load_from_file, @function
stbi_load_from_file:
.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, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	DWORD PTR -260[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	start_file
	mov	edi, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR -248[rbp]
	mov	rsi, QWORD PTR -240[rbp]
	lea	rax, -224[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_load_main
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L32
	call	__stack_chk_fail@PLT
.L32:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	stbi_load_from_file, .-stbi_load_from_file
	.globl	stbi_load_from_memory
	.type	stbi_load_from_memory, @function
stbi_load_from_memory:
.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, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	DWORD PTR -236[rbp], esi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	QWORD PTR -264[rbp], r8
	mov	DWORD PTR -240[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -236[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_mem
	mov	edi, DWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	lea	rax, -224[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_load_main
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	stbi_load_from_memory, .-stbi_load_from_memory
	.globl	stbi_load_from_callbacks
	.type	stbi_load_from_callbacks, @function
stbi_load_from_callbacks:
.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, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	QWORD PTR -264[rbp], r8
	mov	DWORD PTR -268[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_callbacks
	mov	edi, DWORD PTR -268[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	lea	rax, -224[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_load_main
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L38
	call	__stack_chk_fail@PLT
.L38:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	stbi_load_from_callbacks, .-stbi_load_from_callbacks
	.globl	stbi_loadf_main
	.type	stbi_loadf_main, @function
stbi_loadf_main:
.LFB21:
	.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_hdr_test
	test	eax, eax
	je	.L40
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_hdr_load
	jmp	.L41
.L40:
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_load_main
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L42
	cmp	DWORD PTR -52[rbp], 0
	jne	.L43
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	jmp	.L44
.L43:
	mov	eax, DWORD PTR -52[rbp]
.L44:
	mov	rdx, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	rcx, QWORD PTR -32[rbp]
	mov	esi, DWORD PTR [rcx]
	mov	rdi, QWORD PTR -8[rbp]
	mov	ecx, eax
	call	ldr_to_hdr
	jmp	.L41
.L42:
	lea	rdi, .LC0[rip]
	call	e
	mov	eax, 0
.L41:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	stbi_loadf_main, .-stbi_loadf_main
	.globl	stbi_loadf_from_memory
	.type	stbi_loadf_from_memory, @function
stbi_loadf_from_memory:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	DWORD PTR -236[rbp], esi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	QWORD PTR -264[rbp], r8
	mov	DWORD PTR -240[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -236[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_mem
	mov	edi, DWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	lea	rax, -224[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_loadf_main
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L47
	call	__stack_chk_fail@PLT
.L47:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	stbi_loadf_from_memory, .-stbi_loadf_from_memory
	.globl	stbi_loadf_from_callbacks
	.type	stbi_loadf_from_callbacks, @function
stbi_loadf_from_callbacks:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	QWORD PTR -264[rbp], r8
	mov	DWORD PTR -268[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_callbacks
	mov	edi, DWORD PTR -268[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	lea	rax, -224[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_loadf_main
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L50
	call	__stack_chk_fail@PLT
.L50:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	stbi_loadf_from_callbacks, .-stbi_loadf_from_callbacks
	.globl	stbi_loadf
	.type	stbi_loadf, @function
stbi_loadf:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L52
	lea	rdi, .LC2[rip]
	call	e
	mov	eax, 0
	jmp	.L53
.L52:
	mov	edi, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_loadf_from_file
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	rax, QWORD PTR -8[rbp]
.L53:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	stbi_loadf, .-stbi_loadf
	.globl	stbi_loadf_from_file
	.type	stbi_loadf_from_file, @function
stbi_loadf_from_file:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	DWORD PTR -260[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	start_file
	mov	edi, DWORD PTR -260[rbp]
	mov	rcx, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR -248[rbp]
	mov	rsi, QWORD PTR -240[rbp]
	lea	rax, -224[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stbi_loadf_main
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L56
	call	__stack_chk_fail@PLT
.L56:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	stbi_loadf_from_file, .-stbi_loadf_from_file
	.globl	stbi_is_hdr_from_memory
	.type	stbi_is_hdr_from_memory, @function
stbi_is_hdr_from_memory:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	DWORD PTR -236[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -236[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_mem
	lea	rax, -224[rbp]
	mov	rdi, rax
	call	stbi_hdr_test
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L59
	call	__stack_chk_fail@PLT
.L59:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	stbi_is_hdr_from_memory, .-stbi_is_hdr_from_memory
	.globl	stbi_is_hdr
	.type	stbi_is_hdr, @function
stbi_is_hdr:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	cmp	QWORD PTR -8[rbp], 0
	je	.L61
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_is_hdr_from_file
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
.L61:
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	stbi_is_hdr, .-stbi_is_hdr
	.globl	stbi_is_hdr_from_file
	.type	stbi_is_hdr_from_file, @function
stbi_is_hdr_from_file:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	start_file
	lea	rax, -224[rbp]
	mov	rdi, rax
	call	stbi_hdr_test
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L65
	call	__stack_chk_fail@PLT
.L65:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	stbi_is_hdr_from_file, .-stbi_is_hdr_from_file
	.globl	stbi_is_hdr_from_callbacks
	.type	stbi_is_hdr_from_callbacks, @function
stbi_is_hdr_from_callbacks:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_callbacks
	lea	rax, -224[rbp]
	mov	rdi, rax
	call	stbi_hdr_test
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L68
	call	__stack_chk_fail@PLT
.L68:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	stbi_is_hdr_from_callbacks, .-stbi_is_hdr_from_callbacks
	.data
	.align 4
	.type	h2l_gamma_i, @object
	.size	h2l_gamma_i, 4
h2l_gamma_i:
	.long	1055439406
	.align 4
	.type	h2l_scale_i, @object
	.size	h2l_scale_i, 4
h2l_scale_i:
	.long	1065353216
	.align 4
	.type	l2h_gamma, @object
	.size	l2h_gamma, 4
l2h_gamma:
	.long	1074580685
	.align 4
	.type	l2h_scale, @object
	.size	l2h_scale, 4
l2h_scale:
	.long	1065353216
	.text
	.globl	stbi_hdr_to_ldr_gamma
	.type	stbi_hdr_to_ldr_gamma, @function
stbi_hdr_to_ldr_gamma:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movss	DWORD PTR -4[rbp], xmm0
	movss	xmm0, DWORD PTR .LC3[rip]
	divss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR h2l_gamma_i[rip], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	stbi_hdr_to_ldr_gamma, .-stbi_hdr_to_ldr_gamma
	.globl	stbi_hdr_to_ldr_scale
	.type	stbi_hdr_to_ldr_scale, @function
stbi_hdr_to_ldr_scale:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movss	DWORD PTR -4[rbp], xmm0
	movss	xmm0, DWORD PTR .LC3[rip]
	divss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR h2l_scale_i[rip], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	stbi_hdr_to_ldr_scale, .-stbi_hdr_to_ldr_scale
	.globl	stbi_ldr_to_hdr_gamma
	.type	stbi_ldr_to_hdr_gamma, @function
stbi_ldr_to_hdr_gamma:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movss	DWORD PTR -4[rbp], xmm0
	movss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR l2h_gamma[rip], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	stbi_ldr_to_hdr_gamma, .-stbi_ldr_to_hdr_gamma
	.globl	stbi_ldr_to_hdr_scale
	.type	stbi_ldr_to_hdr_scale, @function
stbi_ldr_to_hdr_scale:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movss	DWORD PTR -4[rbp], xmm0
	movss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR l2h_scale[rip], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	stbi_ldr_to_hdr_scale, .-stbi_ldr_to_hdr_scale
	.type	refill_buffer, @function
refill_buffer:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 52[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L74
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 48[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 192[rax]
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	BYTE PTR [rax], 0
	jmp	.L76
.L74:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 56[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 192[rax], rdx
.L76:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	refill_buffer, .-refill_buffer
	.type	get8, @function
get8:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 192[rax]
	cmp	rdx, rax
	jnb	.L78
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 184[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 184[rdx], rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	jmp	.L79
.L78:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 48[rax]
	test	eax, eax
	je	.L80
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	refill_buffer
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 184[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 184[rdx], rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	jmp	.L79
.L80:
	mov	eax, 0
.L79:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	get8, .-get8
	.type	at_eof, @function
at_eof:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L82
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdi, rax
	call	rdx
	test	eax, eax
	jne	.L83
	mov	eax, 0
	jmp	.L84
.L83:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 48[rax]
	test	eax, eax
	jne	.L82
	mov	eax, 1
	jmp	.L84
.L82:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 192[rax]
	cmp	rdx, rax
	setnb	al
	movzx	eax, al
.L84:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	at_eof, .-at_eof
	.type	get8u, @function
get8u:
.LFB37:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	get8u, .-get8u
	.type	skip, @function
skip:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L88
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 192[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jge	.L88
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 192[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	esi, ecx
	mov	rdi, rax
	call	rdx
	jmp	.L87
.L88:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 184[rax], rdx
.L87:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	skip, .-skip
	.type	getn, @function
getn:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L91
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 192[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jge	.L91
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rsi, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -8[rbp], eax
	sete	al
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 192[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L92
.L91:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 192[rax]
	cmp	rdx, rax
	ja	.L93
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	eax, 1
	jmp	.L92
.L93:
	mov	eax, 0
.L92:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	getn, .-getn
	.type	get16, @function
get16:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 8
	mov	ebx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8
	add	eax, ebx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	get16, .-get16
	.type	get32, @function
get32:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 16
	mov	ebx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get16
	add	eax, ebx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	get32, .-get32
	.type	get16le, @function
get16le:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	sal	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	get16le, .-get16le
	.type	get32le, @function
get32le:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	sal	eax, 16
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	get32le, .-get32le
	.type	compute_y, @function
compute_y:
.LFB44:
	.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	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	eax, DWORD PTR -4[rbp]
	imul	edx, eax, 77
	mov	eax, DWORD PTR -8[rbp]
	imul	eax, eax, 150
	add	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	imul	eax, eax, 29
	add	eax, edx
	sar	eax, 8
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	compute_y, .-compute_y
	.section	.rodata
.LC4:
	.string	"the_stack_data/388382.c"
	.align 8
.LC5:
	.string	"req_comp >= 1 && req_comp <= 4"
.LC6:
	.string	"outofmem"
.LC7:
	.string	"0"
	.text
	.type	convert_format, @function
convert_format:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	DWORD PTR -56[rbp], r8d
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jne	.L105
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L106
.L105:
	cmp	DWORD PTR -48[rbp], 0
	jle	.L107
	cmp	DWORD PTR -48[rbp], 4
	jle	.L152
.L107:
	lea	rcx, __PRETTY_FUNCTION__.14[rip]
	mov	edx, 840
	lea	rsi, .LC4[rip]
	lea	rdi, .LC5[rip]
	call	__assert_fail@PLT
.L152:
	mov	eax, DWORD PTR -48[rbp]
	imul	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -56[rbp]
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L109
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L106
.L109:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L110
.L150:
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	imul	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	imul	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	sub	eax, 10
	cmp	eax, 25
	ja	.L151
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L113[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L113[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L113:
	.long	.L124-.L113
	.long	.L123-.L113
	.long	.L122-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L121-.L113
	.long	.L151-.L113
	.long	.L120-.L113
	.long	.L119-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L118-.L113
	.long	.L117-.L113
	.long	.L151-.L113
	.long	.L116-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L151-.L113
	.long	.L115-.L113
	.long	.L114-.L113
	.long	.L112-.L113
	.text
.L124:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L125
.L126:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], -1
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 1
	add	QWORD PTR -16[rbp], 2
.L125:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L126
	jmp	.L127
.L123:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L128
.L129:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 1
	add	QWORD PTR -16[rbp], 3
.L128:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L129
	jmp	.L127
.L122:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L130
.L131:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], -1
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 1
	add	QWORD PTR -16[rbp], 4
.L130:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L131
	jmp	.L127
.L121:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L132
.L133:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 2
	add	QWORD PTR -16[rbp], 1
.L132:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L133
	jmp	.L127
.L120:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L134
.L135:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 2
	add	QWORD PTR -16[rbp], 3
.L134:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L135
	jmp	.L127
.L119:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L136
.L137:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR [rdx], al
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 2
	add	QWORD PTR -16[rbp], 4
.L136:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L137
	jmp	.L127
.L116:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L138
.L139:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], -1
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 3
	add	QWORD PTR -16[rbp], 4
.L138:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L139
	jmp	.L127
.L118:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L140
.L141:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	compute_y
	mov	rdx, QWORD PTR -16[rbp]
	mov	BYTE PTR [rdx], al
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 3
	add	QWORD PTR -16[rbp], 1
.L140:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L141
	jmp	.L127
.L117:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L142
.L143:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	compute_y
	mov	rdx, QWORD PTR -16[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], -1
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 3
	add	QWORD PTR -16[rbp], 2
.L142:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L143
	jmp	.L127
.L115:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L144
.L145:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	compute_y
	mov	rdx, QWORD PTR -16[rbp]
	mov	BYTE PTR [rdx], al
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 4
	add	QWORD PTR -16[rbp], 1
.L144:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L145
	jmp	.L127
.L114:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L146
.L147:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	compute_y
	mov	rdx, QWORD PTR -16[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR [rdx], al
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 4
	add	QWORD PTR -16[rbp], 2
.L146:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L147
	jmp	.L127
.L112:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L148
.L149:
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR [rdx], al
	sub	DWORD PTR -32[rbp], 1
	add	QWORD PTR -24[rbp], 4
	add	QWORD PTR -16[rbp], 3
.L148:
	cmp	DWORD PTR -32[rbp], 0
	jns	.L149
	jmp	.L127
.L151:
	lea	rcx, __PRETTY_FUNCTION__.14[rip]
	mov	edx, 869
	lea	rsi, .LC4[rip]
	lea	rdi, .LC7[rip]
	call	__assert_fail@PLT
.L127:
	add	DWORD PTR -28[rbp], 1
.L110:
	mov	eax, DWORD PTR -56[rbp]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L150
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
.L106:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	convert_format, .-convert_format
	.type	ldr_to_hdr, @function
ldr_to_hdr:
.LFB46:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -48[rbp]
	imul	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L154
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L155
.L154:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 1
	test	eax, eax
	je	.L156
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -12[rbp], eax
	jmp	.L157
.L156:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -12[rbp], eax
.L157:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L158
.L162:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L159
.L160:
	movss	xmm0, DWORD PTR l2h_gamma[rip]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	movss	xmm1, DWORD PTR .LC8[rip]
	divss	xmm0, xmm1
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rax, xmm3
	movapd	xmm1, xmm2
	movq	xmm0, rax
	call	pow@PLT
	pxor	xmm1, xmm1
	cvtsd2ss	xmm1, xmm0
	movss	xmm0, DWORD PTR l2h_scale[rip]
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mulss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -16[rbp], 1
.L159:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L160
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L161
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR .LC8[rip]
	divss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
.L161:
	add	DWORD PTR -20[rbp], 1
.L158:
	mov	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -48[rbp]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L162
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
.L155:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	ldr_to_hdr, .-ldr_to_hdr
	.type	hdr_to_ldr, @function
hdr_to_ldr:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -48[rbp]
	imul	eax, DWORD PTR -52[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L164
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L165
.L164:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 1
	test	eax, eax
	je	.L166
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -20[rbp], eax
	jmp	.L167
.L166:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
.L167:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L168
.L180:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L169
.L174:
	movss	xmm0, DWORD PTR h2l_gamma_i[rip]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	movss	xmm0, DWORD PTR h2l_scale_i[rip]
	mulss	xmm0, xmm1
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rax, xmm3
	movapd	xmm1, xmm2
	movq	xmm0, rax
	call	pow@PLT
	pxor	xmm1, xmm1
	cvtsd2ss	xmm1, xmm0
	movss	xmm0, DWORD PTR .LC8[rip]
	mulss	xmm1, xmm0
	movss	xmm0, DWORD PTR .LC9[rip]
	addss	xmm0, xmm1
	movss	DWORD PTR -16[rbp], xmm0
	pxor	xmm0, xmm0
	comiss	xmm0, DWORD PTR -16[rbp]
	jbe	.L170
	pxor	xmm0, xmm0
	movss	DWORD PTR -16[rbp], xmm0
.L170:
	movss	xmm0, DWORD PTR -16[rbp]
	comiss	xmm0, DWORD PTR .LC8[rip]
	jbe	.L172
	movss	xmm0, DWORD PTR .LC8[rip]
	movss	DWORD PTR -16[rbp], xmm0
.L172:
	movss	xmm0, DWORD PTR -16[rbp]
	cvttss2si	edx, xmm0
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, ecx
	movsx	rcx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -24[rbp], 1
.L169:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L174
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L175
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	movss	xmm0, DWORD PTR .LC8[rip]
	mulss	xmm1, xmm0
	movss	xmm0, DWORD PTR .LC9[rip]
	addss	xmm0, xmm1
	movss	DWORD PTR -12[rbp], xmm0
	pxor	xmm0, xmm0
	comiss	xmm0, DWORD PTR -12[rbp]
	jbe	.L176
	pxor	xmm0, xmm0
	movss	DWORD PTR -12[rbp], xmm0
.L176:
	movss	xmm0, DWORD PTR -12[rbp]
	comiss	xmm0, DWORD PTR .LC8[rip]
	jbe	.L178
	movss	xmm0, DWORD PTR .LC8[rip]
	movss	DWORD PTR -12[rbp], xmm0
.L178:
	movss	xmm0, DWORD PTR -12[rbp]
	cvttss2si	edx, xmm0
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -52[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, ecx
	movsx	rcx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
.L175:
	add	DWORD PTR -28[rbp], 1
.L168:
	mov	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -48[rbp]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L180
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
.L165:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	hdr_to_ldr, .-hdr_to_ldr
	.section	.rodata
.LC11:
	.string	"bad code lengths"
	.text
	.type	build_huffman, @function
build_huffman:
.LFB48:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -28[rbp], 0
	jmp	.L186
.L189:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L187
.L188:
	mov	eax, DWORD PTR -28[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -20[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -20[rbp], edx
	add	ecx, 1
	mov	rdx, QWORD PTR -40[rbp]
	cdqe
	mov	BYTE PTR 1280[rdx+rax], cl
	add	DWORD PTR -24[rbp], 1
.L187:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L188
	add	DWORD PTR -28[rbp], 1
.L186:
	cmp	DWORD PTR -28[rbp], 15
	jle	.L189
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	mov	BYTE PTR 1280[rdx+rax], 0
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -24[rbp], 1
	jmp	.L190
.L195:
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	movsx	rcx, ecx
	add	rcx, 400
	mov	DWORD PTR 12[rax+rcx*4], edx
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	movzx	eax, BYTE PTR 1280[rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -24[rbp], eax
	jne	.L191
	jmp	.L192
.L193:
	mov	edx, DWORD PTR -16[rbp]
	lea	eax, 1[rdx]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	lea	ecx, 1[rax]
	mov	DWORD PTR -20[rbp], ecx
	mov	ecx, edx
	mov	rdx, QWORD PTR -40[rbp]
	cdqe
	add	rax, 256
	mov	WORD PTR [rdx+rax*2], cx
.L192:
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	movzx	eax, BYTE PTR 1280[rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -24[rbp], eax
	je	.L193
	mov	eax, DWORD PTR -24[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -16[rbp], eax
	jle	.L191
	lea	rdi, .LC11[rip]
	call	e
	jmp	.L194
.L191:
	mov	eax, 16
	sub	eax, DWORD PTR -24[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	ecx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 384
	mov	DWORD PTR 4[rax+rdx*4], ecx
	sal	DWORD PTR -16[rbp]
	add	DWORD PTR -24[rbp], 1
.L190:
	cmp	DWORD PTR -24[rbp], 16
	jle	.L195
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 384
	mov	DWORD PTR 4[rax+rdx*4], -1
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 512
	mov	esi, 255
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -28[rbp], 0
	jmp	.L196
.L200:
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR 1280[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 9
	jg	.L197
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 256
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	edx, ax
	mov	eax, 9
	sub	eax, DWORD PTR -12[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, 9
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -24[rbp], 0
	jmp	.L198
.L199:
	mov	edx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	mov	edx, DWORD PTR -28[rbp]
	mov	ecx, edx
	mov	rdx, QWORD PTR -40[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], cl
	add	DWORD PTR -24[rbp], 1
.L198:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L199
.L197:
	add	DWORD PTR -28[rbp], 1
.L196:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L200
	mov	eax, 1
.L194:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	build_huffman, .-build_huffman
	.type	grow_buffer_unsafe, @function
grow_buffer_unsafe:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
.L206:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14028[rax]
	test	eax, eax
	jne	.L202
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	jmp	.L203
.L202:
	mov	eax, 0
.L203:
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 255
	jne	.L204
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L204
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 14024[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14028[rax], 1
	jmp	.L201
.L204:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 14016[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 14020[rax]
	mov	eax, 24
	sub	eax, edx
	mov	edx, DWORD PTR -8[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	or	esi, eax
	mov	edx, esi
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14016[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	lea	edx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14020[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	cmp	eax, 24
	jle	.L206
.L201:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	grow_buffer_unsafe, .-grow_buffer_unsafe
	.data
	.align 32
	.type	bmask, @object
	.size	bmask, 68
bmask:
	.long	0
	.long	1
	.long	3
	.long	7
	.long	15
	.long	31
	.long	63
	.long	127
	.long	255
	.long	511
	.long	1023
	.long	2047
	.long	4095
	.long	8191
	.long	16383
	.long	32767
	.long	65535
	.section	.rodata
	.align 8
.LC12:
	.string	"(((j->code_buffer) >> (32 - h->size[c])) & bmask[h->size[c]]) == h->code[c]"
	.text
	.type	decode, @function
decode:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	cmp	eax, 15
	jg	.L208
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	grow_buffer_unsafe
.L208:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14016[rax]
	shr	eax, 23
	mov	DWORD PTR -12[rbp], eax
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 254
	jg	.L209
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	movzx	eax, BYTE PTR 1280[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	cmp	DWORD PTR -4[rbp], eax
	jle	.L210
	mov	eax, -1
	jmp	.L211
.L210:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 14016[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14016[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14020[rax], edx
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	movzx	eax, BYTE PTR 1024[rdx+rax]
	movzx	eax, al
	jmp	.L211
.L209:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14016[rax]
	shr	eax, 16
	mov	DWORD PTR -8[rbp], eax
	mov	DWORD PTR -16[rbp], 10
.L214:
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 384
	mov	eax, DWORD PTR 4[rax+rdx*4]
	cmp	DWORD PTR -8[rbp], eax
	jb	.L219
	add	DWORD PTR -16[rbp], 1
	jmp	.L214
.L219:
	nop
	cmp	DWORD PTR -16[rbp], 17
	jne	.L215
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	lea	edx, -16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14020[rax], edx
	mov	eax, -1
	jmp	.L211
.L215:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	cmp	DWORD PTR -16[rbp], eax
	jle	.L216
	mov	eax, -1
	jmp	.L211
.L216:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 14016[rax]
	mov	eax, 32
	sub	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	ecx, edx
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bmask[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	ecx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 400
	mov	eax, DWORD PTR 12[rax+rdx*4]
	add	eax, ecx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 14016[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	movzx	eax, BYTE PTR 1280[rdx+rax]
	movzx	edx, al
	mov	eax, 32
	sub	eax, edx
	mov	ecx, eax
	shr	esi, cl
	mov	ecx, esi
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	movzx	eax, BYTE PTR 1280[rdx+rax]
	movzx	eax, al
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bmask[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	ecx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 256
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	eax, ax
	cmp	ecx, eax
	je	.L217
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 1106
	lea	rsi, .LC4[rip]
	lea	rdi, .LC12[rip]
	call	__assert_fail@PLT
.L217:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	sub	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14020[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 14016[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14016[rax], edx
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	movzx	eax, BYTE PTR 1024[rdx+rax]
	movzx	eax, al
.L211:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	decode, .-decode
	.type	extend_receive, @function
extend_receive:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	cmp	DWORD PTR -28[rbp], eax
	jle	.L221
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	grow_buffer_unsafe
.L221:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 14016[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bmask[rip]
	mov	eax, DWORD PTR [rdx+rax]
	not	eax
	and	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14016[rax], edx
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, bmask[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 14020[rax]
	sub	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14020[rax], edx
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jnb	.L222
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, -1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	add	eax, 1
	jmp	.L223
.L222:
	mov	eax, DWORD PTR -4[rbp]
.L223:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	extend_receive, .-extend_receive
	.data
	.align 32
	.type	dezigzag, @object
	.size	dezigzag, 79
dezigzag:
	.string	""
	.ascii	"\001\b\020\t\002\003\n\021\030 \031\022\013\004\005\f\023\032"
	.ascii	"!(0)\"\033\024\r\006\007\016\025\034#*1892+$\035\026\017\027"
	.ascii	"\036%,3:;4-&\037'.5<=6/7>????????????????"
	.section	.rodata
.LC13:
	.string	"bad huffman code"
	.text
	.type	decode_block, @function
decode_block:
.LFB52:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -68[rbp], r8d
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	decode
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	jns	.L225
	lea	rdi, .LC13[rip]
	call	e
	jmp	.L226
.L225:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, 128
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	cmp	DWORD PTR -24[rbp], 0
	je	.L227
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extend_receive
	jmp	.L228
.L227:
	mov	eax, 0
.L228:
	mov	DWORD PTR -20[rbp], eax
	mov	rcx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13752
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	rcx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	lea	rdx, 13752[rax]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	WORD PTR [rax], dx
	mov	DWORD PTR -28[rbp], 1
.L234:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	decode
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jns	.L229
	lea	rdi, .LC13[rip]
	call	e
	jmp	.L226
.L229:
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 15
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sar	eax, 4
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	jne	.L230
	cmp	DWORD PTR -12[rbp], 240
	jne	.L235
	add	DWORD PTR -28[rbp], 16
	jmp	.L233
.L230:
	mov	eax, DWORD PTR -4[rbp]
	add	DWORD PTR -28[rbp], eax
	mov	edx, DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	extend_receive
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	lea	ecx, 1[rax]
	mov	DWORD PTR -28[rbp], ecx
	cdqe
	lea	rcx, dezigzag[rip]
	movzx	eax, BYTE PTR [rax+rcx]
	movzx	eax, al
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
.L233:
	cmp	DWORD PTR -28[rbp], 63
	jle	.L234
	jmp	.L232
.L235:
	nop
.L232:
	mov	eax, 1
.L226:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	decode_block, .-decode_block
	.type	clamp, @function
clamp:
.LFB53:
	.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]
	cmp	eax, 255
	jbe	.L237
	cmp	DWORD PTR -4[rbp], 0
	jns	.L238
	mov	eax, 0
	jmp	.L239
.L238:
	cmp	DWORD PTR -4[rbp], 255
	jle	.L237
	mov	eax, -1
	jmp	.L239
.L237:
	mov	eax, DWORD PTR -4[rbp]
.L239:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	clamp, .-clamp
	.type	idct_block, @function
idct_block:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 456
	.cfi_offset 3, -24
	mov	QWORD PTR -440[rbp], rdi
	mov	DWORD PTR -444[rbp], esi
	mov	QWORD PTR -456[rbp], rdx
	mov	QWORD PTR -464[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rax, -288[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	DWORD PTR -432[rbp], 0
	jmp	.L241
.L244:
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 16
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L242
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 32
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L242
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 48
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L242
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 64
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L242
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 80
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L242
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 96
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L242
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 112
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L242
	mov	rax, QWORD PTR -296[rbp]
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	sal	eax, 2
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 224
	mov	edx, DWORD PTR -376[rbp]
	mov	DWORD PTR [rax], edx
	mov	rdx, QWORD PTR -320[rbp]
	add	rdx, 192
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 160
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	rdx, QWORD PTR -320[rbp]
	sub	rdx, -128
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 96
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	rdx, QWORD PTR -320[rbp]
	add	rdx, 64
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 32
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L243
.L242:
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 32
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 16
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 96
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 48
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	edx, DWORD PTR -372[rbp]
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	imul	eax, eax, 2217
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	imul	edx, eax, -7567
	mov	eax, DWORD PTR -364[rbp]
	add	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	imul	edx, eax, 3135
	mov	eax, DWORD PTR -364[rbp]
	add	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 64
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 32
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	edx, DWORD PTR -372[rbp]
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	sal	eax, 12
	mov	DWORD PTR -352[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	sub	eax, DWORD PTR -368[rbp]
	sal	eax, 12
	mov	DWORD PTR -348[rbp], eax
	mov	edx, DWORD PTR -352[rbp]
	mov	eax, DWORD PTR -356[rbp]
	add	eax, edx
	mov	DWORD PTR -344[rbp], eax
	mov	eax, DWORD PTR -352[rbp]
	sub	eax, DWORD PTR -356[rbp]
	mov	DWORD PTR -340[rbp], eax
	mov	edx, DWORD PTR -348[rbp]
	mov	eax, DWORD PTR -360[rbp]
	add	eax, edx
	mov	DWORD PTR -336[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	sub	eax, DWORD PTR -360[rbp]
	mov	DWORD PTR -332[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 112
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 56
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -352[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 80
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 40
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -348[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 48
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 24
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 16
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	edx, DWORD PTR -352[rbp]
	mov	eax, DWORD PTR -360[rbp]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	edx, DWORD PTR -348[rbp]
	mov	eax, DWORD PTR -356[rbp]
	add	eax, edx
	mov	DWORD PTR -328[rbp], eax
	mov	edx, DWORD PTR -352[rbp]
	mov	eax, DWORD PTR -356[rbp]
	add	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	edx, DWORD PTR -348[rbp]
	mov	eax, DWORD PTR -360[rbp]
	add	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	edx, DWORD PTR -368[rbp]
	mov	eax, DWORD PTR -328[rbp]
	add	eax, edx
	imul	eax, eax, 4816
	mov	DWORD PTR -324[rbp], eax
	mov	eax, DWORD PTR -352[rbp]
	imul	eax, eax, 1223
	mov	DWORD PTR -352[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	imul	eax, eax, 8410
	mov	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	imul	eax, eax, 12586
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	imul	eax, eax, 6149
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	imul	edx, eax, -3685
	mov	eax, DWORD PTR -324[rbp]
	add	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	imul	edx, eax, -10497
	mov	eax, DWORD PTR -324[rbp]
	add	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	imul	eax, eax, -8034
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -328[rbp]
	imul	eax, eax, -1597
	mov	DWORD PTR -328[rbp], eax
	mov	edx, DWORD PTR -364[rbp]
	mov	eax, DWORD PTR -328[rbp]
	add	eax, edx
	add	DWORD PTR -356[rbp], eax
	mov	edx, DWORD PTR -372[rbp]
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	add	DWORD PTR -360[rbp], eax
	mov	edx, DWORD PTR -372[rbp]
	mov	eax, DWORD PTR -328[rbp]
	add	eax, edx
	add	DWORD PTR -348[rbp], eax
	mov	edx, DWORD PTR -364[rbp]
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	add	DWORD PTR -352[rbp], eax
	add	DWORD PTR -344[rbp], 512
	add	DWORD PTR -336[rbp], 512
	add	DWORD PTR -332[rbp], 512
	add	DWORD PTR -340[rbp], 512
	mov	edx, DWORD PTR -344[rbp]
	mov	eax, DWORD PTR -356[rbp]
	add	eax, edx
	sar	eax, 10
	mov	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -344[rbp]
	sub	eax, DWORD PTR -356[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 224
	sar	edx, 10
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -336[rbp]
	mov	eax, DWORD PTR -360[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 32
	sar	edx, 10
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -336[rbp]
	sub	eax, DWORD PTR -360[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 192
	sar	edx, 10
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -332[rbp]
	mov	eax, DWORD PTR -348[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 64
	sar	edx, 10
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -332[rbp]
	sub	eax, DWORD PTR -348[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 160
	sar	edx, 10
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -340[rbp]
	mov	eax, DWORD PTR -352[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 96
	sar	edx, 10
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -340[rbp]
	sub	eax, DWORD PTR -352[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	sub	rax, -128
	sar	edx, 10
	mov	DWORD PTR [rax], edx
.L243:
	add	DWORD PTR -432[rbp], 1
	add	QWORD PTR -296[rbp], 2
	add	QWORD PTR -312[rbp], 1
	add	QWORD PTR -320[rbp], 4
.L241:
	cmp	DWORD PTR -432[rbp], 7
	jle	.L244
	mov	DWORD PTR -432[rbp], 0
	lea	rax, -288[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	mov	QWORD PTR -304[rbp], rax
	jmp	.L245
.L246:
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -428[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR -424[rbp], eax
	mov	edx, DWORD PTR -428[rbp]
	mov	eax, DWORD PTR -424[rbp]
	add	eax, edx
	imul	eax, eax, 2217
	mov	DWORD PTR -420[rbp], eax
	mov	eax, DWORD PTR -424[rbp]
	imul	edx, eax, -7567
	mov	eax, DWORD PTR -420[rbp]
	add	eax, edx
	mov	DWORD PTR -416[rbp], eax
	mov	eax, DWORD PTR -428[rbp]
	imul	edx, eax, 3135
	mov	eax, DWORD PTR -420[rbp]
	add	eax, edx
	mov	DWORD PTR -412[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -428[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -424[rbp], eax
	mov	edx, DWORD PTR -428[rbp]
	mov	eax, DWORD PTR -424[rbp]
	add	eax, edx
	sal	eax, 12
	mov	DWORD PTR -408[rbp], eax
	mov	eax, DWORD PTR -428[rbp]
	sub	eax, DWORD PTR -424[rbp]
	sal	eax, 12
	mov	DWORD PTR -404[rbp], eax
	mov	edx, DWORD PTR -408[rbp]
	mov	eax, DWORD PTR -412[rbp]
	add	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -408[rbp]
	sub	eax, DWORD PTR -412[rbp]
	mov	DWORD PTR -396[rbp], eax
	mov	edx, DWORD PTR -404[rbp]
	mov	eax, DWORD PTR -416[rbp]
	add	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -404[rbp]
	sub	eax, DWORD PTR -416[rbp]
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	DWORD PTR -408[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	DWORD PTR -404[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -416[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -412[rbp], eax
	mov	edx, DWORD PTR -408[rbp]
	mov	eax, DWORD PTR -416[rbp]
	add	eax, edx
	mov	DWORD PTR -424[rbp], eax
	mov	edx, DWORD PTR -404[rbp]
	mov	eax, DWORD PTR -412[rbp]
	add	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	edx, DWORD PTR -408[rbp]
	mov	eax, DWORD PTR -412[rbp]
	add	eax, edx
	mov	DWORD PTR -420[rbp], eax
	mov	edx, DWORD PTR -404[rbp]
	mov	eax, DWORD PTR -416[rbp]
	add	eax, edx
	mov	DWORD PTR -428[rbp], eax
	mov	edx, DWORD PTR -424[rbp]
	mov	eax, DWORD PTR -384[rbp]
	add	eax, edx
	imul	eax, eax, 4816
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -408[rbp]
	imul	eax, eax, 1223
	mov	DWORD PTR -408[rbp], eax
	mov	eax, DWORD PTR -404[rbp]
	imul	eax, eax, 8410
	mov	DWORD PTR -404[rbp], eax
	mov	eax, DWORD PTR -416[rbp]
	imul	eax, eax, 12586
	mov	DWORD PTR -416[rbp], eax
	mov	eax, DWORD PTR -412[rbp]
	imul	eax, eax, 6149
	mov	DWORD PTR -412[rbp], eax
	mov	eax, DWORD PTR -420[rbp]
	imul	edx, eax, -3685
	mov	eax, DWORD PTR -380[rbp]
	add	eax, edx
	mov	DWORD PTR -420[rbp], eax
	mov	eax, DWORD PTR -428[rbp]
	imul	edx, eax, -10497
	mov	eax, DWORD PTR -380[rbp]
	add	eax, edx
	mov	DWORD PTR -428[rbp], eax
	mov	eax, DWORD PTR -424[rbp]
	imul	eax, eax, -8034
	mov	DWORD PTR -424[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	imul	eax, eax, -1597
	mov	DWORD PTR -384[rbp], eax
	mov	edx, DWORD PTR -420[rbp]
	mov	eax, DWORD PTR -384[rbp]
	add	eax, edx
	add	DWORD PTR -412[rbp], eax
	mov	edx, DWORD PTR -428[rbp]
	mov	eax, DWORD PTR -424[rbp]
	add	eax, edx
	add	DWORD PTR -416[rbp], eax
	mov	edx, DWORD PTR -428[rbp]
	mov	eax, DWORD PTR -384[rbp]
	add	eax, edx
	add	DWORD PTR -404[rbp], eax
	mov	edx, DWORD PTR -420[rbp]
	mov	eax, DWORD PTR -424[rbp]
	add	eax, edx
	add	DWORD PTR -408[rbp], eax
	add	DWORD PTR -400[rbp], 16842752
	add	DWORD PTR -392[rbp], 16842752
	add	DWORD PTR -388[rbp], 16842752
	add	DWORD PTR -396[rbp], 16842752
	mov	edx, DWORD PTR -400[rbp]
	mov	eax, DWORD PTR -412[rbp]
	add	eax, edx
	sar	eax, 17
	mov	edi, eax
	call	clamp
	mov	rdx, QWORD PTR -304[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -400[rbp]
	sub	eax, DWORD PTR -412[rbp]
	sar	eax, 17
	mov	rdx, QWORD PTR -304[rbp]
	lea	rbx, 7[rdx]
	mov	edi, eax
	call	clamp
	mov	BYTE PTR [rbx], al
	mov	edx, DWORD PTR -392[rbp]
	mov	eax, DWORD PTR -416[rbp]
	add	eax, edx
	sar	eax, 17
	mov	rdx, QWORD PTR -304[rbp]
	lea	rbx, 1[rdx]
	mov	edi, eax
	call	clamp
	mov	BYTE PTR [rbx], al
	mov	eax, DWORD PTR -392[rbp]
	sub	eax, DWORD PTR -416[rbp]
	sar	eax, 17
	mov	rdx, QWORD PTR -304[rbp]
	lea	rbx, 6[rdx]
	mov	edi, eax
	call	clamp
	mov	BYTE PTR [rbx], al
	mov	edx, DWORD PTR -388[rbp]
	mov	eax, DWORD PTR -404[rbp]
	add	eax, edx
	sar	eax, 17
	mov	rdx, QWORD PTR -304[rbp]
	lea	rbx, 2[rdx]
	mov	edi, eax
	call	clamp
	mov	BYTE PTR [rbx], al
	mov	eax, DWORD PTR -388[rbp]
	sub	eax, DWORD PTR -404[rbp]
	sar	eax, 17
	mov	rdx, QWORD PTR -304[rbp]
	lea	rbx, 5[rdx]
	mov	edi, eax
	call	clamp
	mov	BYTE PTR [rbx], al
	mov	edx, DWORD PTR -396[rbp]
	mov	eax, DWORD PTR -408[rbp]
	add	eax, edx
	sar	eax, 17
	mov	rdx, QWORD PTR -304[rbp]
	lea	rbx, 3[rdx]
	mov	edi, eax
	call	clamp
	mov	BYTE PTR [rbx], al
	mov	eax, DWORD PTR -396[rbp]
	sub	eax, DWORD PTR -408[rbp]
	sar	eax, 17
	mov	rdx, QWORD PTR -304[rbp]
	lea	rbx, 4[rdx]
	mov	edi, eax
	call	clamp
	mov	BYTE PTR [rbx], al
	add	DWORD PTR -432[rbp], 1
	add	QWORD PTR -320[rbp], 32
	mov	eax, DWORD PTR -444[rbp]
	cdqe
	add	QWORD PTR -304[rbp], rax
.L245:
	cmp	DWORD PTR -432[rbp], 7
	jle	.L246
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L247
	call	__stack_chk_fail@PLT
.L247:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	idct_block, .-idct_block
	.type	get_marker, @function
get_marker:
.LFB55:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 14024[rax]
	cmp	al, -1
	je	.L249
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 14024[rax]
	mov	BYTE PTR -1[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 14024[rax], -1
	movzx	eax, BYTE PTR -1[rbp]
	jmp	.L250
.L249:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -1[rbp], al
	cmp	BYTE PTR -1[rbp], -1
	je	.L252
	mov	eax, -1
	jmp	.L250
.L253:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -1[rbp], al
.L252:
	cmp	BYTE PTR -1[rbp], -1
	je	.L253
	movzx	eax, BYTE PTR -1[rbp]
.L250:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	get_marker, .-get_marker
	.type	reset, @function
reset:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 14020[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 14016[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 14028[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 13896[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 13896[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 13824[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 13824[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 13752[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 14024[rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 14052[rax]
	test	eax, eax
	je	.L255
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 14052[rax]
	jmp	.L256
.L255:
	mov	eax, 2147483647
.L256:
	mov	rdx, QWORD PTR -8[rbp]
	mov	DWORD PTR 14056[rdx], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	reset, .-reset
	.type	parse_entropy_coded_data, @function
parse_entropy_coded_data:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 224
	mov	QWORD PTR -216[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	reset
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14032[rax]
	cmp	eax, 1
	jne	.L258
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14036[rax]
	mov	DWORD PTR -156[rbp], eax
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13756
	mov	eax, DWORD PTR [rax]
	add	eax, 7
	sar	eax, 3
	mov	DWORD PTR -152[rbp], eax
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13760
	mov	eax, DWORD PTR [rax]
	add	eax, 7
	sar	eax, 3
	mov	DWORD PTR -148[rbp], eax
	mov	DWORD PTR -192[rbp], 0
	jmp	.L259
.L268:
	mov	DWORD PTR -196[rbp], 0
	jmp	.L260
.L267:
	mov	rax, QWORD PTR -216[rbp]
	lea	rsi, 6728[rax]
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13748
	mov	eax, DWORD PTR [rax]
	cdqe
	imul	rax, rax, 1680
	lea	rcx, [rsi+rax]
	mov	rax, QWORD PTR -216[rbp]
	lea	rdi, 8[rax]
	mov	rsi, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13744
	mov	eax, DWORD PTR [rax]
	cdqe
	imul	rax, rax, 1680
	lea	rdx, [rdi+rax]
	mov	edi, DWORD PTR -156[rbp]
	lea	rsi, -144[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	decode_block
	test	eax, eax
	jne	.L261
	mov	eax, 0
	jmp	.L270
.L261:
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13740
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 210
	sal	rax, 6
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rsi, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13764
	mov	esi, DWORD PTR [rax]
	mov	rdi, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rdi
	add	rax, 13776
	mov	rdi, QWORD PTR [rax]
	mov	r8, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -156[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, r8
	add	rax, 13764
	mov	eax, DWORD PTR [rax]
	imul	eax, DWORD PTR -192[rbp]
	sal	eax, 3
	movsx	rcx, eax
	mov	eax, DWORD PTR -196[rbp]
	sal	eax, 3
	cdqe
	add	rax, rcx
	add	rdi, rax
	lea	rax, -144[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	call	idct_block
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14056[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	DWORD PTR 14056[rax], edx
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14056[rax]
	test	eax, eax
	jg	.L263
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14020[rax]
	cmp	eax, 23
	jg	.L264
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	grow_buffer_unsafe
.L264:
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 14024[rax]
	cmp	al, -49
	jbe	.L265
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 14024[rax]
	cmp	al, -41
	jbe	.L266
.L265:
	mov	eax, 1
	jmp	.L270
.L266:
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	reset
.L263:
	add	DWORD PTR -196[rbp], 1
.L260:
	mov	eax, DWORD PTR -196[rbp]
	cmp	eax, DWORD PTR -152[rbp]
	jl	.L267
	add	DWORD PTR -192[rbp], 1
.L259:
	mov	eax, DWORD PTR -192[rbp]
	cmp	eax, DWORD PTR -148[rbp]
	jl	.L268
	jmp	.L269
.L258:
	mov	DWORD PTR -184[rbp], 0
	jmp	.L271
.L286:
	mov	DWORD PTR -188[rbp], 0
	jmp	.L272
.L285:
	mov	DWORD PTR -180[rbp], 0
	jmp	.L273
.L280:
	mov	rax, QWORD PTR -216[rbp]
	mov	edx, DWORD PTR -180[rbp]
	movsx	rdx, edx
	add	rdx, 3508
	mov	eax, DWORD PTR 4[rax+rdx*4]
	mov	DWORD PTR -168[rbp], eax
	mov	DWORD PTR -172[rbp], 0
	jmp	.L274
.L279:
	mov	DWORD PTR -176[rbp], 0
	jmp	.L275
.L278:
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	imul	eax, DWORD PTR -188[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -176[rbp]
	add	eax, edx
	sal	eax, 3
	mov	DWORD PTR -164[rbp], eax
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	imul	eax, DWORD PTR -184[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -172[rbp]
	add	eax, edx
	sal	eax, 3
	mov	DWORD PTR -160[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	lea	rsi, 6728[rax]
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13748
	mov	eax, DWORD PTR [rax]
	cdqe
	imul	rax, rax, 1680
	lea	rcx, [rsi+rax]
	mov	rax, QWORD PTR -216[rbp]
	lea	rdi, 8[rax]
	mov	rsi, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13744
	mov	eax, DWORD PTR [rax]
	cdqe
	imul	rax, rax, 1680
	lea	rdx, [rdi+rax]
	mov	edi, DWORD PTR -168[rbp]
	lea	rsi, -144[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	decode_block
	test	eax, eax
	jne	.L276
	mov	eax, 0
	jmp	.L270
.L276:
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13740
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 210
	sal	rax, 6
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rsi, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13764
	mov	esi, DWORD PTR [rax]
	mov	rdi, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rdi
	add	rax, 13776
	mov	rdi, QWORD PTR [rax]
	mov	r8, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, r8
	add	rax, 13764
	mov	eax, DWORD PTR [rax]
	imul	eax, DWORD PTR -160[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	add	rax, rcx
	add	rdi, rax
	lea	rax, -144[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	call	idct_block
	add	DWORD PTR -176[rbp], 1
.L275:
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -176[rbp], eax
	jl	.L278
	add	DWORD PTR -172[rbp], 1
.L274:
	mov	rcx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -172[rbp], eax
	jl	.L279
	add	DWORD PTR -180[rbp], 1
.L273:
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14032[rax]
	cmp	DWORD PTR -180[rbp], eax
	jl	.L280
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14056[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	DWORD PTR 14056[rax], edx
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14056[rax]
	test	eax, eax
	jg	.L281
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 14020[rax]
	cmp	eax, 23
	jg	.L282
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	grow_buffer_unsafe
.L282:
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 14024[rax]
	cmp	al, -49
	jbe	.L283
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 14024[rax]
	cmp	al, -41
	jbe	.L284
.L283:
	mov	eax, 1
	jmp	.L270
.L284:
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	reset
.L281:
	add	DWORD PTR -188[rbp], 1
.L272:
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 13712[rax]
	cmp	DWORD PTR -188[rbp], eax
	jl	.L285
	add	DWORD PTR -184[rbp], 1
.L271:
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 13716[rax]
	cmp	DWORD PTR -184[rbp], eax
	jl	.L286
.L269:
	mov	eax, 1
.L270:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L287
	call	__stack_chk_fail@PLT
.L287:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	parse_entropy_coded_data, .-parse_entropy_coded_data
	.section	.rodata
.LC14:
	.string	"expected marker"
.LC15:
	.string	"progressive jpeg"
.LC16:
	.string	"bad DRI len"
.LC17:
	.string	"bad DQT type"
.LC18:
	.string	"bad DQT table"
.LC19:
	.string	"bad DHT header"
	.text
	.type	process_marker, @function
process_marker:
.LFB58:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 152
	.cfi_offset 3, -24
	mov	QWORD PTR -152[rbp], rdi
	mov	DWORD PTR -156[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -156[rbp], 255
	je	.L289
	cmp	DWORD PTR -156[rbp], 255
	jg	.L290
	cmp	DWORD PTR -156[rbp], 221
	je	.L291
	cmp	DWORD PTR -156[rbp], 221
	jg	.L290
	cmp	DWORD PTR -156[rbp], 219
	je	.L292
	cmp	DWORD PTR -156[rbp], 219
	jg	.L290
	cmp	DWORD PTR -156[rbp], 194
	je	.L293
	cmp	DWORD PTR -156[rbp], 196
	je	.L294
	jmp	.L290
.L289:
	lea	rdi, .LC14[rip]
	call	e
	jmp	.L295
.L293:
	lea	rdi, .LC15[rip]
	call	e
	jmp	.L295
.L291:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get16
	cmp	eax, 4
	je	.L296
	lea	rdi, .LC16[rip]
	call	e
	jmp	.L295
.L296:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get16
	mov	rdx, QWORD PTR -152[rbp]
	mov	DWORD PTR 14052[rdx], eax
	mov	eax, 1
	jmp	.L295
.L292:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get16
	sub	eax, 2
	mov	DWORD PTR -144[rbp], eax
	jmp	.L297
.L302:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -128[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	sar	eax, 4
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 15
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -124[rbp], 0
	je	.L298
	lea	rdi, .LC17[rip]
	call	e
	jmp	.L295
.L298:
	cmp	DWORD PTR -120[rbp], 3
	jle	.L299
	lea	rdi, .LC18[rip]
	call	e
	jmp	.L295
.L299:
	mov	DWORD PTR -140[rbp], 0
	jmp	.L300
.L301:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -140[rbp]
	movsx	rdx, edx
	lea	rcx, dezigzag[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	movzx	ebx, dl
	mov	rdi, rax
	call	get8u
	mov	rsi, QWORD PTR -152[rbp]
	movsx	rcx, ebx
	mov	edx, DWORD PTR -120[rbp]
	movsx	rdx, edx
	sal	rdx, 6
	add	rdx, rsi
	add	rdx, rcx
	add	rdx, 13448
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -140[rbp], 1
.L300:
	cmp	DWORD PTR -140[rbp], 63
	jle	.L301
	sub	DWORD PTR -144[rbp], 65
.L297:
	cmp	DWORD PTR -144[rbp], 0
	jg	.L302
	cmp	DWORD PTR -144[rbp], 0
	sete	al
	movzx	eax, al
	jmp	.L295
.L294:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get16
	sub	eax, 2
	mov	DWORD PTR -144[rbp], eax
	jmp	.L303
.L315:
	mov	DWORD PTR -132[rbp], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	sar	eax, 4
	mov	DWORD PTR -112[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	and	eax, 15
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -112[rbp], 1
	jg	.L304
	cmp	DWORD PTR -108[rbp], 3
	jle	.L305
.L304:
	lea	rdi, .LC19[rip]
	call	e
	jmp	.L295
.L305:
	mov	DWORD PTR -136[rbp], 0
	jmp	.L307
.L308:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	edx, DWORD PTR -136[rbp]
	movsx	rdx, edx
	mov	DWORD PTR -96[rbp+rdx*4], eax
	mov	eax, DWORD PTR -136[rbp]
	cdqe
	mov	eax, DWORD PTR -96[rbp+rax*4]
	add	DWORD PTR -132[rbp], eax
	add	DWORD PTR -136[rbp], 1
.L307:
	cmp	DWORD PTR -136[rbp], 15
	jle	.L308
	sub	DWORD PTR -144[rbp], 17
	cmp	DWORD PTR -112[rbp], 0
	jne	.L309
	mov	rax, QWORD PTR -152[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	imul	rax, rax, 1680
	add	rdx, rax
	lea	rax, -96[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	build_huffman
	test	eax, eax
	jne	.L310
	mov	eax, 0
	jmp	.L295
.L310:
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	imul	rax, rax, 1680
	lea	rdx, 1024[rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	add	rax, 8
	mov	QWORD PTR -104[rbp], rax
	jmp	.L311
.L309:
	mov	rax, QWORD PTR -152[rbp]
	lea	rdx, 6728[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	imul	rax, rax, 1680
	add	rdx, rax
	lea	rax, -96[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	build_huffman
	test	eax, eax
	jne	.L312
	mov	eax, 0
	jmp	.L295
.L312:
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	imul	rax, rax, 1680
	lea	rdx, 7744[rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	add	rax, 8
	mov	QWORD PTR -104[rbp], rax
.L311:
	mov	DWORD PTR -136[rbp], 0
	jmp	.L313
.L314:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -136[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -104[rbp]
	lea	rbx, [rcx+rdx]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR [rbx], al
	add	DWORD PTR -136[rbp], 1
.L313:
	mov	eax, DWORD PTR -136[rbp]
	cmp	eax, DWORD PTR -132[rbp]
	jl	.L314
	mov	eax, DWORD PTR -132[rbp]
	sub	DWORD PTR -144[rbp], eax
.L303:
	cmp	DWORD PTR -144[rbp], 0
	jg	.L315
	cmp	DWORD PTR -144[rbp], 0
	sete	al
	movzx	eax, al
	jmp	.L295
.L290:
	cmp	DWORD PTR -156[rbp], 223
	jle	.L316
	cmp	DWORD PTR -156[rbp], 239
	jle	.L317
.L316:
	cmp	DWORD PTR -156[rbp], 254
	jne	.L318
.L317:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get16
	lea	edx, -2[rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	eax, 1
	jmp	.L295
.L318:
	mov	eax, 0
.L295:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L319
	call	__stack_chk_fail@PLT
.L319:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	process_marker, .-process_marker
	.section	.rodata
.LC20:
	.string	"bad SOS component count"
.LC21:
	.string	"bad SOS len"
.LC22:
	.string	"bad DC huff"
.LC23:
	.string	"bad AC huff"
.LC24:
	.string	"bad SOS"
	.text
	.type	process_scan_header, @function
process_scan_header:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -40[rbp]
	mov	DWORD PTR 14032[rdx], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 14032[rax]
	test	eax, eax
	jle	.L321
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 14032[rax]
	cmp	eax, 4
	jg	.L321
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 14032[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	cmp	edx, eax
	jle	.L322
.L321:
	lea	rdi, .LC20[rip]
	call	e
	jmp	.L323
.L322:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 14032[rax]
	add	eax, 3
	add	eax, eax
	cmp	DWORD PTR -12[rbp], eax
	je	.L324
	lea	rdi, .LC21[rip]
	call	e
	jmp	.L323
.L324:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L325
.L333:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L326
.L329:
	mov	rcx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13728
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	je	.L336
	add	DWORD PTR -16[rbp], 1
.L326:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L329
	jmp	.L328
.L336:
	nop
.L328:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -16[rbp], eax
	jne	.L330
	mov	eax, 0
	jmp	.L323
.L330:
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 4
	mov	ecx, eax
	mov	rsi, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13744
	mov	DWORD PTR [rax], ecx
	mov	rcx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13744
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jle	.L331
	lea	rdi, .LC22[rip]
	call	e
	jmp	.L323
.L331:
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 15
	mov	ecx, eax
	mov	rsi, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13748
	mov	DWORD PTR [rax], ecx
	mov	rcx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13748
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jle	.L332
	lea	rdi, .LC23[rip]
	call	e
	jmp	.L323
.L332:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	lea	rcx, 3508[rdx]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR 4[rax+rcx*4], edx
	add	DWORD PTR -20[rbp], 1
.L325:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 14032[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L333
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	test	eax, eax
	je	.L334
	lea	rdi, .LC24[rip]
	call	e
	jmp	.L323
.L334:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	test	eax, eax
	je	.L335
	lea	rdi, .LC24[rip]
	call	e
	jmp	.L323
.L335:
	mov	eax, 1
.L323:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	process_scan_header, .-process_scan_header
	.section	.rodata
.LC25:
	.string	"bad SOF len"
.LC26:
	.string	"only 8-bit"
.LC27:
	.string	"no header height"
.LC28:
	.string	"0 width"
.LC29:
	.string	"bad component count"
.LC30:
	.string	"bad component ID"
.LC31:
	.string	"bad H"
.LC32:
	.string	"bad V"
.LC33:
	.string	"bad TQ"
.LC34:
	.string	"too large"
	.text
	.type	process_frame_header, @function
process_frame_header:
.LFB60:
	.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	DWORD PTR -60[rbp], esi
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -32[rbp], 1
	mov	DWORD PTR -28[rbp], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 10
	jg	.L338
	lea	rdi, .LC25[rip]
	call	e
	jmp	.L339
.L338:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 8
	je	.L340
	lea	rdi, .LC26[rip]
	call	e
	jmp	.L339
.L340:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get16
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jne	.L341
	lea	rdi, .LC27[rip]
	call	e
	jmp	.L339
.L341:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get16
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L342
	lea	rdi, .LC28[rip]
	call	e
	jmp	.L339
.L342:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 3
	je	.L343
	cmp	DWORD PTR -16[rbp], 1
	je	.L343
	lea	rdi, .LC29[rip]
	call	e
	jmp	.L339
.L343:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	DWORD PTR -36[rbp], 0
	jmp	.L344
.L345:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13776
	mov	QWORD PTR [rax], 0
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13792
	mov	QWORD PTR [rax], 0
	add	DWORD PTR -36[rbp], 1
.L344:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	jl	.L345
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	eax, 8
	cmp	DWORD PTR -24[rbp], eax
	je	.L346
	lea	rdi, .LC25[rip]
	call	e
	jmp	.L339
.L346:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L347
.L354:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	mov	edx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13728
	mov	DWORD PTR [rax], edx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13728
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	add	edx, 1
	cmp	eax, edx
	je	.L348
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13728
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -36[rbp], eax
	je	.L348
	lea	rdi, .LC30[rip]
	call	e
	jmp	.L339
.L348:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sar	eax, 4
	mov	ecx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13732
	mov	DWORD PTR [rax], ecx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L349
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	cmp	eax, 4
	jle	.L350
.L349:
	lea	rdi, .LC31[rip]
	call	e
	jmp	.L339
.L350:
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 15
	mov	ecx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13736
	mov	DWORD PTR [rax], ecx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L351
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	cmp	eax, 4
	jle	.L352
.L351:
	lea	rdi, .LC32[rip]
	call	e
	jmp	.L339
.L352:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	mov	edx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13740
	mov	DWORD PTR [rax], edx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13740
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jle	.L353
	lea	rdi, .LC33[rip]
	call	e
	jmp	.L339
.L353:
	add	DWORD PTR -36[rbp], 1
.L347:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L354
	cmp	DWORD PTR -60[rbp], 0
	je	.L355
	mov	eax, 1
	jmp	.L339
.L355:
	mov	rax, QWORD PTR -8[rbp]
	mov	edi, DWORD PTR [rax]
	mov	eax, 1073741824
	mov	edx, 0
	div	edi
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jnb	.L356
	lea	rdi, .LC34[rip]
	call	e
	jmp	.L339
.L356:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L357
.L360:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jge	.L358
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
.L358:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -28[rbp], eax
	jge	.L359
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -28[rbp], eax
.L359:
	add	DWORD PTR -36[rbp], 1
.L357:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L360
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	DWORD PTR 13704[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR 13708[rax], edx
	mov	eax, DWORD PTR -32[rbp]
	lea	edx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 13720[rax], edx
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 13724[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 13720[rax]
	add	eax, edx
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 13720[rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 13712[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 13724[rax]
	add	eax, edx
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 13724[rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 13716[rax], edx
	mov	DWORD PTR -36[rbp], 0
	jmp	.L361
.L365:
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	imul	ecx, eax
	mov	edx, ecx
	mov	eax, DWORD PTR -32[rbp]
	add	eax, edx
	sub	eax, 1
	mov	edi, DWORD PTR -32[rbp]
	mov	edx, 0
	div	edi
	mov	ecx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13756
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	imul	ecx, eax
	mov	edx, ecx
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	sub	eax, 1
	mov	edi, DWORD PTR -28[rbp]
	mov	edx, 0
	div	edi
	mov	ecx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13760
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 13712[rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13732
	mov	eax, DWORD PTR [rax]
	imul	eax, ecx
	lea	ecx, 0[0+rax*8]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13764
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 13716[rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13736
	mov	eax, DWORD PTR [rax]
	imul	eax, ecx
	lea	ecx, 0[0+rax*8]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13768
	mov	DWORD PTR [rax], ecx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13764
	mov	ecx, DWORD PTR [rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13768
	mov	eax, DWORD PTR [rax]
	imul	eax, ecx
	add	eax, 15
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	rcx, rax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13784
	mov	QWORD PTR [rax], rcx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13784
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L362
	sub	DWORD PTR -36[rbp], 1
	jmp	.L363
.L364:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13784
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13776
	mov	QWORD PTR [rax], 0
	sub	DWORD PTR -36[rbp], 1
.L363:
	cmp	DWORD PTR -36[rbp], 0
	jns	.L364
	lea	rdi, .LC6[rip]
	call	e
	jmp	.L339
.L362:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13784
	mov	rax, QWORD PTR [rax]
	add	rax, 15
	and	rax, -16
	mov	rcx, rax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13776
	mov	QWORD PTR [rax], rcx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13792
	mov	QWORD PTR [rax], 0
	add	DWORD PTR -36[rbp], 1
.L361:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L365
	mov	eax, 1
.L339:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	process_frame_header, .-process_frame_header
	.section	.rodata
.LC35:
	.string	"no SOI"
.LC36:
	.string	"no SOF"
	.text
	.type	decode_jpeg_header, @function
decode_jpeg_header:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 14024[rax], -1
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get_marker
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 216
	je	.L367
	lea	rdi, .LC35[rip]
	call	e
	jmp	.L368
.L367:
	cmp	DWORD PTR -28[rbp], 1
	jne	.L369
	mov	eax, 1
	jmp	.L368
.L369:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get_marker
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	jmp	.L370
.L376:
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	process_marker
	test	eax, eax
	jne	.L371
	mov	eax, 0
	jmp	.L368
.L371:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get_marker
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	jmp	.L372
.L374:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L373
	lea	rdi, .LC36[rip]
	call	e
	jmp	.L368
.L373:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get_marker
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
.L372:
	cmp	DWORD PTR -4[rbp], 255
	je	.L374
.L370:
	cmp	DWORD PTR -4[rbp], 192
	je	.L375
	cmp	DWORD PTR -4[rbp], 193
	jne	.L376
.L375:
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	process_frame_header
	test	eax, eax
	jne	.L377
	mov	eax, 0
	jmp	.L368
.L377:
	mov	eax, 1
.L368:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	decode_jpeg_header, .-decode_jpeg_header
	.type	decode_jpeg_image, @function
decode_jpeg_image:
.LFB62:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 14052[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	decode_jpeg_header
	test	eax, eax
	jne	.L379
	mov	eax, 0
	jmp	.L380
.L379:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get_marker
	movzx	eax, al
	mov	DWORD PTR -8[rbp], eax
	jmp	.L381
.L390:
	cmp	DWORD PTR -8[rbp], 218
	jne	.L382
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	process_scan_header
	test	eax, eax
	jne	.L383
	mov	eax, 0
	jmp	.L380
.L383:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	parse_entropy_coded_data
	test	eax, eax
	jne	.L384
	mov	eax, 0
	jmp	.L380
.L384:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 14024[rax]
	cmp	al, -1
	jne	.L389
	jmp	.L386
.L388:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 255
	jne	.L387
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -24[rbp]
	mov	BYTE PTR 14024[rdx], al
	jmp	.L389
.L387:
	cmp	DWORD PTR -4[rbp], 0
	je	.L386
	mov	eax, 0
	jmp	.L380
.L386:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L388
	jmp	.L389
.L382:
	mov	edx, DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	process_marker
	test	eax, eax
	jne	.L389
	mov	eax, 0
	jmp	.L380
.L389:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get_marker
	movzx	eax, al
	mov	DWORD PTR -8[rbp], eax
.L381:
	cmp	DWORD PTR -8[rbp], 217
	jne	.L390
	mov	eax, 1
.L380:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	decode_jpeg_image, .-decode_jpeg_image
	.type	resample_row_1, @function
resample_row_1:
.LFB63:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	DWORD PTR -28[rbp], ecx
	mov	DWORD PTR -32[rbp], r8d
	mov	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	resample_row_1, .-resample_row_1
	.type	resample_row_v_2, @function
resample_row_v_2:
.LFB64:
	.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -48[rbp], r8d
	mov	DWORD PTR -4[rbp], 0
	jmp	.L394
.L395:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	lea	ecx, [rax+rdx]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, ecx
	add	eax, 2
	sar	eax, 2
	mov	ecx, eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -4[rbp], 1
.L394:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L395
	mov	rax, QWORD PTR -24[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	resample_row_v_2, .-resample_row_v_2
	.type	resample_row_h_2, @function
resample_row_h_2:
.LFB65:
	.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -48[rbp], r8d
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -44[rbp], 1
	jne	.L398
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	mov	rdx, QWORD PTR -8[rbp]
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L399
.L398:
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	add	eax, 2
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	mov	DWORD PTR -16[rbp], 1
	jmp	.L400
.L401:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	eax, 2
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	sar	eax, 2
	mov	ecx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, eax
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, eax
	cdqe
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -16[rbp], 1
.L400:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 1
	cmp	DWORD PTR -16[rbp], eax
	jl	.L401
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	add	eax, 2
	sar	eax, 2
	mov	ecx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, eax
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -16[rbp]
	add	edx, edx
	movsx	rdx, edx
	lea	rcx, 1[rdx]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -24[rbp]
.L399:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	resample_row_h_2, .-resample_row_h_2
	.type	resample_row_hv_2, @function
resample_row_hv_2:
.LFB66:
	.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -48[rbp], r8d
	cmp	DWORD PTR -44[rbp], 1
	jne	.L403
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	add	eax, 2
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L404
.L403:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 2
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	DWORD PTR -12[rbp], 1
	jmp	.L405
.L406:
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	lea	ecx, [rax+rdx]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, ecx
	mov	DWORD PTR -8[rbp], eax
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	add	eax, edx
	add	eax, 8
	sar	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, eax
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	mov	edx, DWORD PTR -8[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	add	eax, 8
	sar	eax, 4
	mov	ecx, eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, eax
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -12[rbp], 1
.L405:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L406
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 2
	sar	eax, 2
	mov	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	add	eax, eax
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
.L404:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	resample_row_hv_2, .-resample_row_hv_2
	.type	resample_row_generic, @function
resample_row_generic:
.LFB67:
	.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -48[rbp], r8d
	mov	DWORD PTR -8[rbp], 0
	jmp	.L408
.L411:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L409
.L410:
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -8[rbp]
	imul	eax, DWORD PTR -48[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -4[rbp], 1
.L409:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L410
	add	DWORD PTR -8[rbp], 1
.L408:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L411
	mov	rax, QWORD PTR -24[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	resample_row_generic, .-resample_row_generic
	.type	YCbCr_to_RGB_row, @function
YCbCr_to_RGB_row:
.LFB68:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -68[rbp], r8d
	mov	DWORD PTR -72[rbp], r9d
	mov	DWORD PTR -28[rbp], 0
	jmp	.L414
.L421:
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	eax, 32768
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, -128
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, -128
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	imul	edx, eax, 91881
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	imul	edx, eax, -46802
	mov	eax, DWORD PTR -12[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	imul	eax, eax, -22554
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	imul	edx, eax, 116130
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	sar	DWORD PTR -24[rbp], 16
	sar	DWORD PTR -20[rbp], 16
	sar	DWORD PTR -16[rbp], 16
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, 255
	jbe	.L415
	cmp	DWORD PTR -24[rbp], 0
	jns	.L416
	mov	DWORD PTR -24[rbp], 0
	jmp	.L415
.L416:
	mov	DWORD PTR -24[rbp], 255
.L415:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, 255
	jbe	.L417
	cmp	DWORD PTR -20[rbp], 0
	jns	.L418
	mov	DWORD PTR -20[rbp], 0
	jmp	.L417
.L418:
	mov	DWORD PTR -20[rbp], 255
.L417:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, 255
	jbe	.L419
	cmp	DWORD PTR -16[rbp], 0
	jns	.L420
	mov	DWORD PTR -16[rbp], 0
	jmp	.L419
.L420:
	mov	DWORD PTR -16[rbp], 255
.L419:
	mov	eax, DWORD PTR -24[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 1
	mov	edx, DWORD PTR -20[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 2
	mov	edx, DWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	add	DWORD PTR -28[rbp], 1
.L414:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jl	.L421
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	YCbCr_to_RGB_row, .-YCbCr_to_RGB_row
	.type	cleanup_jpeg, @function
cleanup_jpeg:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L423
.L426:
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13776
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L424
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13784
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13776
	mov	QWORD PTR [rax], 0
.L424:
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13792
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L425
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13792
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13792
	mov	QWORD PTR [rax], 0
.L425:
	add	DWORD PTR -4[rbp], 1
.L423:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L426
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	cleanup_jpeg, .-cleanup_jpeg
	.section	.rodata
.LC37:
	.string	"bad req_comp"
	.text
	.type	load_jpeg_image, @function
load_jpeg_image:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 368
	mov	QWORD PTR -328[rbp], rdi
	mov	QWORD PTR -336[rbp], rsi
	mov	QWORD PTR -344[rbp], rdx
	mov	QWORD PTR -352[rbp], rcx
	mov	DWORD PTR -356[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -356[rbp], 0
	js	.L428
	cmp	DWORD PTR -356[rbp], 4
	jle	.L429
.L428:
	lea	rdi, .LC37[rip]
	call	e
	mov	eax, 0
	jmp	.L430
.L429:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -328[rbp]
	mov	rdi, rax
	call	decode_jpeg_image
	test	eax, eax
	jne	.L431
	mov	rax, QWORD PTR -328[rbp]
	mov	rdi, rax
	call	cleanup_jpeg
	mov	eax, 0
	jmp	.L430
.L431:
	cmp	DWORD PTR -356[rbp], 0
	jne	.L432
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	jmp	.L433
.L432:
	mov	eax, DWORD PTR -356[rbp]
.L433:
	mov	DWORD PTR -296[rbp], eax
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 3
	jne	.L434
	cmp	DWORD PTR -296[rbp], 2
	jg	.L434
	mov	DWORD PTR -312[rbp], 1
	jmp	.L435
.L434:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -312[rbp], eax
.L435:
	mov	DWORD PTR -308[rbp], 0
	jmp	.L436
.L444:
	lea	rcx, -208[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	add	eax, 3
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	rcx, rax
	mov	rsi, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13792
	mov	QWORD PTR [rax], rcx
	mov	rcx, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13792
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L437
	mov	rax, QWORD PTR -328[rbp]
	mov	rdi, rax
	call	cleanup_jpeg
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L430
.L437:
	mov	rax, QWORD PTR -328[rbp]
	mov	edx, DWORD PTR 13704[rax]
	mov	rsi, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13732
	mov	ecx, DWORD PTR [rax]
	mov	eax, edx
	cdq
	idiv	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -328[rbp]
	mov	edx, DWORD PTR 13708[rax]
	mov	rsi, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	add	rax, rcx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13736
	mov	ecx, DWORD PTR [rax]
	mov	eax, edx
	cdq
	idiv	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 28[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 28[rax]
	sar	eax
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 36[rax], edx
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 24[rax]
	add	eax, edx
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 32[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 40[rax], 0
	mov	rcx, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 13776
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	eax, 1
	jne	.L439
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	eax, 1
	jne	.L439
	mov	rax, QWORD PTR -248[rbp]
	lea	rdx, resample_row_1[rip]
	mov	QWORD PTR [rax], rdx
	jmp	.L440
.L439:
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	eax, 1
	jne	.L441
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	eax, 2
	jne	.L441
	mov	rax, QWORD PTR -248[rbp]
	lea	rdx, resample_row_v_2[rip]
	mov	QWORD PTR [rax], rdx
	jmp	.L440
.L441:
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	eax, 2
	jne	.L442
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	eax, 1
	jne	.L442
	mov	rax, QWORD PTR -248[rbp]
	lea	rdx, resample_row_h_2[rip]
	mov	QWORD PTR [rax], rdx
	jmp	.L440
.L442:
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	eax, 2
	jne	.L443
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	eax, 2
	jne	.L443
	mov	rax, QWORD PTR -248[rbp]
	lea	rdx, resample_row_hv_2[rip]
	mov	QWORD PTR [rax], rdx
	jmp	.L440
.L443:
	mov	rax, QWORD PTR -248[rbp]
	lea	rdx, resample_row_generic[rip]
	mov	QWORD PTR [rax], rdx
.L440:
	add	DWORD PTR -308[rbp], 1
.L436:
	mov	eax, DWORD PTR -308[rbp]
	cmp	eax, DWORD PTR -312[rbp]
	jl	.L444
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -296[rbp]
	imul	edx, eax
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	add	eax, 1
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -280[rbp], rax
	cmp	QWORD PTR -280[rbp], 0
	jne	.L445
	mov	rax, QWORD PTR -328[rbp]
	mov	rdi, rax
	call	cleanup_jpeg
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L430
.L445:
	mov	DWORD PTR -300[rbp], 0
	jmp	.L446
.L464:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -296[rbp]
	imul	eax, edx
	imul	eax, DWORD PTR -300[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	mov	QWORD PTR -288[rbp], rax
	mov	DWORD PTR -308[rbp], 0
	jmp	.L447
.L453:
	lea	rcx, -208[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	edx, DWORD PTR 36[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 28[rax]
	sar	eax
	cmp	edx, eax
	setge	al
	movzx	eax, al
	mov	DWORD PTR -292[rbp], eax
	mov	rax, QWORD PTR -256[rbp]
	mov	r9, QWORD PTR [rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	r8d, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	ecx, DWORD PTR 32[rax]
	cmp	DWORD PTR -292[rbp], 0
	je	.L448
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 8[rax]
	jmp	.L449
.L448:
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 16[rax]
.L449:
	cmp	DWORD PTR -292[rbp], 0
	je	.L450
	mov	rax, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR 16[rax]
	jmp	.L451
.L450:
	mov	rax, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR 8[rax]
.L451:
	mov	r10, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdi, eax
	mov	rax, rdi
	sal	rax, 3
	add	rax, rdi
	sal	rax, 3
	add	rax, r10
	add	rax, 13792
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	r9
	mov	edx, DWORD PTR -308[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -240[rbp+rdx*8], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 36[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	DWORD PTR 36[rax], edx
	mov	rax, QWORD PTR -256[rbp]
	mov	edx, DWORD PTR 36[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	edx, eax
	jl	.L452
	mov	rax, QWORD PTR -256[rbp]
	mov	DWORD PTR 36[rax], 0
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR 40[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	DWORD PTR 40[rax], edx
	mov	rax, QWORD PTR -256[rbp]
	mov	ecx, DWORD PTR 40[rax]
	mov	rsi, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13760
	mov	eax, DWORD PTR [rax]
	cmp	ecx, eax
	jge	.L452
	mov	rax, QWORD PTR -256[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rsi, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rsi
	add	rax, 13764
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, [rcx+rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	QWORD PTR 16[rax], rdx
.L452:
	add	DWORD PTR -308[rbp], 1
.L447:
	mov	eax, DWORD PTR -308[rbp]
	cmp	eax, DWORD PTR -312[rbp]
	jl	.L453
	cmp	DWORD PTR -296[rbp], 2
	jle	.L454
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 3
	jne	.L455
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	r8d, eax
	mov	rcx, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	mov	edi, DWORD PTR -296[rbp]
	mov	rsi, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR -288[rbp]
	mov	r9d, edi
	mov	rdi, rax
	call	YCbCr_to_RGB_row
	jmp	.L456
.L455:
	mov	DWORD PTR -304[rbp], 0
	jmp	.L457
.L458:
	mov	edx, DWORD PTR -304[rbp]
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -288[rbp]
	add	rdx, 2
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 1
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -288[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -296[rbp]
	cdqe
	add	QWORD PTR -288[rbp], rax
	add	DWORD PTR -304[rbp], 1
.L457:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -304[rbp], eax
	jb	.L458
	jmp	.L456
.L454:
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -272[rbp], rax
	cmp	DWORD PTR -296[rbp], 1
	jne	.L459
	mov	DWORD PTR -304[rbp], 0
	jmp	.L460
.L461:
	mov	edx, DWORD PTR -304[rbp]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, rdx
	mov	ecx, DWORD PTR -304[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -304[rbp], 1
.L460:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -304[rbp], eax
	jb	.L461
	jmp	.L456
.L459:
	mov	DWORD PTR -304[rbp], 0
	jmp	.L462
.L463:
	mov	edx, DWORD PTR -304[rbp]
	mov	rax, QWORD PTR -272[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -288[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -288[rbp], rdx
	movzx	edx, BYTE PTR [rcx]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -288[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -288[rbp], rdx
	mov	BYTE PTR [rax], -1
	add	DWORD PTR -304[rbp], 1
.L462:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -304[rbp], eax
	jb	.L463
.L456:
	add	DWORD PTR -300[rbp], 1
.L446:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -300[rbp], eax
	jb	.L464
	mov	rax, QWORD PTR -328[rbp]
	mov	rdi, rax
	call	cleanup_jpeg
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -336[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -344[rbp]
	mov	DWORD PTR [rax], edx
	cmp	QWORD PTR -352[rbp], 0
	je	.L465
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -352[rbp]
	mov	DWORD PTR [rax], edx
.L465:
	mov	rax, QWORD PTR -280[rbp]
.L430:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L466
	call	__stack_chk_fail@PLT
.L466:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	load_jpeg_image, .-load_jpeg_image
	.type	stbi_jpeg_load, @function
stbi_jpeg_load:
.LFB71:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1840
	mov	QWORD PTR -14088[rbp], rdi
	mov	QWORD PTR -14096[rbp], rsi
	mov	QWORD PTR -14104[rbp], rdx
	mov	QWORD PTR -14112[rbp], rcx
	mov	DWORD PTR -14116[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -14088[rbp]
	mov	QWORD PTR -14080[rbp], rax
	mov	edi, DWORD PTR -14116[rbp]
	mov	rcx, QWORD PTR -14112[rbp]
	mov	rdx, QWORD PTR -14104[rbp]
	mov	rsi, QWORD PTR -14096[rbp]
	lea	rax, -14080[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	load_jpeg_image
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L469
	call	__stack_chk_fail@PLT
.L469:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	stbi_jpeg_load, .-stbi_jpeg_load
	.type	stbi_jpeg_test, @function
stbi_jpeg_test:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1824
	mov	QWORD PTR -14104[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -14104[rbp]
	mov	QWORD PTR -14080[rbp], rax
	lea	rax, -14080[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	decode_jpeg_header
	mov	DWORD PTR -14084[rbp], eax
	mov	rax, QWORD PTR -14104[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -14084[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L472
	call	__stack_chk_fail@PLT
.L472:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	stbi_jpeg_test, .-stbi_jpeg_test
	.type	stbi_jpeg_info_raw, @function
stbi_jpeg_info_raw:
.LFB73:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	decode_jpeg_header
	test	eax, eax
	jne	.L474
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L475
.L474:
	cmp	QWORD PTR -16[rbp], 0
	je	.L476
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
.L476:
	cmp	QWORD PTR -24[rbp], 0
	je	.L477
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
.L477:
	cmp	QWORD PTR -32[rbp], 0
	je	.L478
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
.L478:
	mov	eax, 1
.L475:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	stbi_jpeg_info_raw, .-stbi_jpeg_info_raw
	.type	stbi_jpeg_info, @function
stbi_jpeg_info:
.LFB74:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1824
	mov	QWORD PTR -14088[rbp], rdi
	mov	QWORD PTR -14096[rbp], rsi
	mov	QWORD PTR -14104[rbp], rdx
	mov	QWORD PTR -14112[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -14088[rbp]
	mov	QWORD PTR -14080[rbp], rax
	mov	rcx, QWORD PTR -14112[rbp]
	mov	rdx, QWORD PTR -14104[rbp]
	mov	rsi, QWORD PTR -14096[rbp]
	lea	rax, -14080[rbp]
	mov	rdi, rax
	call	stbi_jpeg_info_raw
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L481
	call	__stack_chk_fail@PLT
.L481:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	stbi_jpeg_info, .-stbi_jpeg_info
	.type	bitreverse16, @function
bitreverse16:
.LFB75:
	.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]
	sar	eax
	and	eax, 21845
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, eax
	and	eax, 43690
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 2
	and	eax, 13107
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 2
	and	eax, 52428
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 4
	and	eax, 3855
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 4
	and	eax, 61680
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 8
	movzx	edx, al
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 8
	movzx	eax, ax
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	bitreverse16, .-bitreverse16
	.section	.rodata
.LC38:
	.string	"bits <= 16"
	.text
	.type	bit_reverse, @function
bit_reverse:
.LFB76:
	.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	DWORD PTR -8[rbp], esi
	cmp	DWORD PTR -8[rbp], 16
	jle	.L485
	lea	rcx, __PRETTY_FUNCTION__.12[rip]
	mov	edx, 1978
	lea	rsi, .LC4[rip]
	lea	rdi, .LC38[rip]
	call	__assert_fail@PLT
.L485:
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	bitreverse16
	mov	edx, eax
	mov	eax, 16
	sub	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	bit_reverse, .-bit_reverse
	.section	.rodata
.LC39:
	.string	"sizes[i] <= (1 << i)"
.LC40:
	.string	"bad codelengths"
	.text
	.type	zbuild_huffman, @function
zbuild_huffman:
.LFB77:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -184[rbp], rdi
	mov	QWORD PTR -192[rbp], rsi
	mov	DWORD PTR -196[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -164[rbp], 0
	lea	rax, -80[rbp]
	mov	edx, 68
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, 1024
	mov	esi, 255
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -168[rbp], 0
	jmp	.L488
.L489:
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	edx, DWORD PTR -80[rbp+rdx*4]
	add	edx, 1
	cdqe
	mov	DWORD PTR -80[rbp+rax*4], edx
	add	DWORD PTR -168[rbp], 1
.L488:
	mov	eax, DWORD PTR -168[rbp]
	cmp	eax, DWORD PTR -196[rbp]
	jl	.L489
	mov	DWORD PTR -80[rbp], 0
	mov	DWORD PTR -168[rbp], 1
	jmp	.L490
.L492:
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	mov	edx, DWORD PTR -80[rbp+rax*4]
	mov	eax, DWORD PTR -168[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	cmp	edx, eax
	jle	.L491
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 1996
	lea	rsi, .LC4[rip]
	lea	rdi, .LC39[rip]
	call	__assert_fail@PLT
.L491:
	add	DWORD PTR -168[rbp], 1
.L490:
	cmp	DWORD PTR -168[rbp], 15
	jle	.L492
	mov	DWORD PTR -160[rbp], 0
	mov	DWORD PTR -168[rbp], 1
	jmp	.L493
.L496:
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	mov	edx, DWORD PTR -160[rbp]
	mov	DWORD PTR -144[rbp+rax*4], edx
	mov	eax, DWORD PTR -160[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR -168[rbp]
	movsx	rdx, edx
	add	rdx, 512
	mov	WORD PTR [rax+rdx*2], cx
	mov	eax, DWORD PTR -164[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR -168[rbp]
	movsx	rdx, edx
	add	rdx, 560
	mov	WORD PTR 4[rax+rdx*2], cx
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	mov	eax, DWORD PTR -80[rbp+rax*4]
	add	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	mov	eax, DWORD PTR -80[rbp+rax*4]
	test	eax, eax
	je	.L494
	mov	eax, DWORD PTR -168[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -160[rbp], eax
	jle	.L494
	lea	rdi, .LC40[rip]
	call	e
	jmp	.L503
.L494:
	mov	eax, 16
	sub	eax, DWORD PTR -168[rbp]
	mov	edx, DWORD PTR -160[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	ecx, edx
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR -168[rbp]
	movsx	rdx, edx
	add	rdx, 264
	mov	DWORD PTR [rax+rdx*4], ecx
	sal	DWORD PTR -160[rbp]
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	mov	eax, DWORD PTR -80[rbp+rax*4]
	add	DWORD PTR -164[rbp], eax
	add	DWORD PTR -168[rbp], 1
.L493:
	cmp	DWORD PTR -168[rbp], 15
	jle	.L496
	mov	rax, QWORD PTR -184[rbp]
	mov	DWORD PTR 1120[rax], 65536
	mov	DWORD PTR -168[rbp], 0
	jmp	.L497
.L502:
	mov	eax, DWORD PTR -168[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -152[rbp], eax
	cmp	DWORD PTR -152[rbp], 0
	je	.L498
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	mov	edx, DWORD PTR -144[rbp+rax*4]
	mov	rax, QWORD PTR -184[rbp]
	mov	ecx, DWORD PTR -152[rbp]
	movsx	rcx, ecx
	add	rcx, 512
	movzx	eax, WORD PTR [rax+rcx*2]
	movzx	eax, ax
	mov	ecx, edx
	sub	ecx, eax
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR -152[rbp]
	movsx	rdx, edx
	add	rdx, 560
	movzx	eax, WORD PTR 4[rax+rdx*2]
	movzx	eax, ax
	add	eax, ecx
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -152[rbp]
	mov	ecx, eax
	mov	rdx, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	mov	BYTE PTR 1156[rdx+rax], cl
	mov	eax, DWORD PTR -168[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR -148[rbp]
	movsx	rdx, edx
	add	rdx, 720
	mov	WORD PTR 4[rax+rdx*2], cx
	cmp	DWORD PTR -152[rbp], 9
	jg	.L499
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	mov	edx, DWORD PTR -152[rbp]
	mov	esi, edx
	mov	edi, eax
	call	bit_reverse
	mov	DWORD PTR -156[rbp], eax
	jmp	.L500
.L501:
	mov	eax, DWORD PTR -148[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR -156[rbp]
	movsx	rdx, edx
	mov	WORD PTR [rax+rdx*2], cx
	mov	eax, DWORD PTR -152[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	DWORD PTR -156[rbp], eax
.L500:
	cmp	DWORD PTR -156[rbp], 511
	jle	.L501
.L499:
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	mov	DWORD PTR -144[rbp+rax*4], edx
.L498:
	add	DWORD PTR -168[rbp], 1
.L497:
	mov	eax, DWORD PTR -168[rbp]
	cmp	eax, DWORD PTR -196[rbp]
	jl	.L502
	mov	eax, 1
.L503:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L504
	call	__stack_chk_fail@PLT
.L504:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	zbuild_huffman, .-zbuild_huffman
	.type	zget8, @function
zget8:
.LFB78:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jb	.L506
	mov	eax, 0
	jmp	.L507
.L506:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
.L507:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE78:
	.size	zget8, .-zget8
	.section	.rodata
	.align 8
.LC41:
	.string	"z->code_buffer < (1U << z->num_bits)"
	.text
	.type	fill_bits, @function
fill_bits:
.LFB79:
	.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
.L510:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	test	eax, eax
	je	.L509
	lea	rcx, __PRETTY_FUNCTION__.10[rip]
	mov	edx, 2058
	lea	rsi, .LC4[rip]
	lea	rdi, .LC41[rip]
	call	__assert_fail@PLT
.L509:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	zget8
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 20[rax]
	or	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	lea	edx, 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 24
	jle	.L510
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	fill_bits, .-fill_bits
	.type	zreceive, @function
zreceive:
.LFB80:
	.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	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	DWORD PTR -28[rbp], eax
	jle	.L512
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fill_bits
.L512:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	sub	eax, 1
	and	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	sub	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.size	zreceive, .-zreceive
	.section	.rodata
.LC42:
	.string	"z->size[b] == s"
	.text
	.type	zhuffman_decode, @function
zhuffman_decode:
.LFB81:
	.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
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 15
	jg	.L515
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fill_bits
.L515:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 20[rax]
	and	eax, 511
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, edx
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	eax, ax
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 65534
	jg	.L516
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	movzx	eax, BYTE PTR 1156[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	add	rdx, 720
	movzx	eax, WORD PTR 4[rax+rdx*2]
	movzx	eax, ax
	jmp	.L517
.L516:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	esi, 16
	mov	edi, eax
	call	bit_reverse
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -12[rbp], 10
.L520:
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 264
	mov	eax, DWORD PTR [rax+rdx*4]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L524
	add	DWORD PTR -12[rbp], 1
	jmp	.L520
.L524:
	nop
	cmp	DWORD PTR -12[rbp], 16
	jne	.L521
	mov	eax, -1
	jmp	.L517
.L521:
	mov	eax, 16
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	ecx, edx
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 512
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	eax, ax
	sub	ecx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 560
	movzx	eax, WORD PTR 4[rax+rdx*2]
	movzx	eax, ax
	add	eax, ecx
	mov	DWORD PTR -8[rbp], eax
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	movzx	eax, BYTE PTR 1156[rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -12[rbp], eax
	je	.L522
	lea	rcx, __PRETTY_FUNCTION__.9[rip]
	mov	edx, 2095
	lea	rsi, .LC4[rip]
	lea	rdi, .LC42[rip]
	call	__assert_fail@PLT
.L522:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	add	rdx, 720
	movzx	eax, WORD PTR 4[rax+rdx*2]
	movzx	eax, ax
.L517:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	zhuffman_decode, .-zhuffman_decode
	.section	.rodata
.LC43:
	.string	"output buffer limit"
	.text
	.type	expand, @function
expand:
.LFB82:
	.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	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 48[rax]
	test	eax, eax
	jne	.L526
	lea	rdi, .LC43[rip]
	call	e
	jmp	.L527
.L526:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 32[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 32[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	DWORD PTR -16[rbp], eax
	jmp	.L528
.L529:
	sal	DWORD PTR -16[rbp]
.L528:
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cmp	DWORD PTR -16[rbp], eax
	jl	.L529
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L530
	lea	rdi, .LC6[rip]
	call	e
	jmp	.L527
.L530:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	eax, 1
.L527:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.size	expand, .-expand
	.data
	.align 32
	.type	length_base, @object
	.size	length_base, 124
length_base:
	.long	3
	.long	4
	.long	5
	.long	6
	.long	7
	.long	8
	.long	9
	.long	10
	.long	11
	.long	13
	.long	15
	.long	17
	.long	19
	.long	23
	.long	27
	.long	31
	.long	35
	.long	43
	.long	51
	.long	59
	.long	67
	.long	83
	.long	99
	.long	115
	.long	131
	.long	163
	.long	195
	.long	227
	.long	258
	.long	0
	.long	0
	.align 32
	.type	length_extra, @object
	.size	length_extra, 124
length_extra:
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1
	.long	1
	.long	1
	.long	1
	.long	2
	.long	2
	.long	2
	.long	2
	.long	3
	.long	3
	.long	3
	.long	3
	.long	4
	.long	4
	.long	4
	.long	4
	.long	5
	.long	5
	.long	5
	.long	5
	.long	0
	.long	0
	.long	0
	.align 32
	.type	dist_base, @object
	.size	dist_base, 128
dist_base:
	.long	1
	.long	2
	.long	3
	.long	4
	.long	5
	.long	7
	.long	9
	.long	13
	.long	17
	.long	25
	.long	33
	.long	49
	.long	65
	.long	97
	.long	129
	.long	193
	.long	257
	.long	385
	.long	513
	.long	769
	.long	1025
	.long	1537
	.long	2049
	.long	3073
	.long	4097
	.long	6145
	.long	8193
	.long	12289
	.long	16385
	.long	24577
	.long	0
	.long	0
	.align 32
	.type	dist_extra, @object
	.size	dist_extra, 128
dist_extra:
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1
	.long	1
	.long	2
	.long	2
	.long	3
	.long	3
	.long	4
	.long	4
	.long	5
	.long	5
	.long	6
	.long	6
	.long	7
	.long	7
	.long	8
	.long	8
	.long	9
	.long	9
	.long	10
	.long	10
	.long	11
	.long	11
	.long	12
	.long	12
	.long	13
	.long	13
	.zero	8
	.section	.rodata
.LC44:
	.string	"bad dist"
	.text
	.type	parse_huffman_block, @function
parse_huffman_block:
.LFB83:
	.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
.L545:
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 52[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	zhuffman_decode
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 255
	jg	.L532
	cmp	DWORD PTR -12[rbp], 0
	jns	.L533
	lea	rdi, .LC13[rip]
	call	e
	jmp	.L534
.L533:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	cmp	rdx, rax
	jb	.L535
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	expand
	test	eax, eax
	jne	.L535
	mov	eax, 0
	jmp	.L534
.L535:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rdx], rcx
	mov	edx, DWORD PTR -12[rbp]
	mov	BYTE PTR [rax], dl
	jmp	.L545
.L532:
	cmp	DWORD PTR -12[rbp], 256
	jne	.L537
	mov	eax, 1
	jmp	.L534
.L537:
	sub	DWORD PTR -12[rbp], 257
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, length_base[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, length_extra[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	je	.L538
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, length_extra[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	zreceive
	mov	edx, DWORD PTR -20[rbp]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
.L538:
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 2072[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	zhuffman_decode
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jns	.L539
	lea	rdi, .LC13[rip]
	call	e
	jmp	.L534
.L539:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dist_base[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dist_extra[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	je	.L540
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dist_extra[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	zreceive
	mov	edx, DWORD PTR -16[rbp]
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
.L540:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	sub	rdx, rax
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	cmp	rdx, rax
	jge	.L541
	lea	rdi, .LC44[rip]
	call	e
	jmp	.L534
.L541:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	cmp	rdx, rax
	jbe	.L542
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	expand
	test	eax, eax
	jne	.L542
	mov	eax, 0
	jmp	.L534
.L542:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	neg	rax
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	jmp	.L543
.L544:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	esi, BYTE PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rdx], rcx
	mov	edx, esi
	mov	BYTE PTR [rax], dl
.L543:
	mov	eax, DWORD PTR -20[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -20[rbp], edx
	test	eax, eax
	jne	.L544
	jmp	.L545
.L534:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	parse_huffman_block, .-parse_huffman_block
	.section	.rodata
.LC45:
	.string	"c >= 0 && c < 19"
.LC46:
	.string	"c == 18"
	.text
	.type	compute_huffman_codes, @function
compute_huffman_codes:
.LFB84:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2576
	mov	QWORD PTR -2568[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -2568[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	zreceive
	add	eax, 257
	mov	DWORD PTR -2548[rbp], eax
	mov	rax, QWORD PTR -2568[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	zreceive
	add	eax, 1
	mov	DWORD PTR -2544[rbp], eax
	mov	rax, QWORD PTR -2568[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	zreceive
	add	eax, 4
	mov	DWORD PTR -2540[rbp], eax
	lea	rax, -496[rbp]
	mov	edx, 19
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -2556[rbp], 0
	jmp	.L547
.L548:
	mov	rax, QWORD PTR -2568[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	zreceive
	mov	DWORD PTR -2532[rbp], eax
	mov	eax, DWORD PTR -2556[rbp]
	cdqe
	lea	rdx, length_dezigzag.8[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	edx, DWORD PTR -2532[rbp]
	cdqe
	mov	BYTE PTR -496[rbp+rax], dl
	add	DWORD PTR -2556[rbp], 1
.L547:
	mov	eax, DWORD PTR -2556[rbp]
	cmp	eax, DWORD PTR -2540[rbp]
	jl	.L548
	lea	rcx, -496[rbp]
	lea	rax, -2528[rbp]
	mov	edx, 19
	mov	rsi, rcx
	mov	rdi, rax
	call	zbuild_huffman
	test	eax, eax
	jne	.L549
	mov	eax, 0
	jmp	.L562
.L549:
	mov	DWORD PTR -2552[rbp], 0
	jmp	.L551
.L558:
	lea	rdx, -2528[rbp]
	mov	rax, QWORD PTR -2568[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	zhuffman_decode
	mov	DWORD PTR -2536[rbp], eax
	cmp	DWORD PTR -2536[rbp], 0
	js	.L552
	cmp	DWORD PTR -2536[rbp], 18
	jle	.L564
.L552:
	lea	rcx, __PRETTY_FUNCTION__.7[rip]
	mov	edx, 2182
	lea	rsi, .LC4[rip]
	lea	rdi, .LC45[rip]
	call	__assert_fail@PLT
.L564:
	cmp	DWORD PTR -2536[rbp], 15
	jg	.L554
	mov	eax, DWORD PTR -2552[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2552[rbp], edx
	mov	edx, DWORD PTR -2536[rbp]
	cdqe
	mov	BYTE PTR -464[rbp+rax], dl
	jmp	.L551
.L554:
	cmp	DWORD PTR -2536[rbp], 16
	jne	.L555
	mov	rax, QWORD PTR -2568[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	zreceive
	add	eax, 3
	mov	DWORD PTR -2536[rbp], eax
	mov	eax, DWORD PTR -2536[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -2552[rbp]
	sub	eax, 1
	cdqe
	movzx	eax, BYTE PTR -464[rbp+rax]
	movzx	eax, al
	mov	ecx, DWORD PTR -2552[rbp]
	movsx	rcx, ecx
	lea	rsi, -464[rbp]
	add	rcx, rsi
	mov	esi, eax
	mov	rdi, rcx
	call	memset@PLT
	mov	eax, DWORD PTR -2536[rbp]
	add	DWORD PTR -2552[rbp], eax
	jmp	.L551
.L555:
	cmp	DWORD PTR -2536[rbp], 17
	jne	.L556
	mov	rax, QWORD PTR -2568[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	zreceive
	add	eax, 3
	mov	DWORD PTR -2536[rbp], eax
	mov	eax, DWORD PTR -2536[rbp]
	cdqe
	mov	edx, DWORD PTR -2552[rbp]
	movsx	rdx, edx
	lea	rcx, -464[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	mov	eax, DWORD PTR -2536[rbp]
	add	DWORD PTR -2552[rbp], eax
	jmp	.L551
.L556:
	cmp	DWORD PTR -2536[rbp], 18
	je	.L557
	lea	rcx, __PRETTY_FUNCTION__.7[rip]
	mov	edx, 2194
	lea	rsi, .LC4[rip]
	lea	rdi, .LC46[rip]
	call	__assert_fail@PLT
.L557:
	mov	rax, QWORD PTR -2568[rbp]
	mov	esi, 7
	mov	rdi, rax
	call	zreceive
	add	eax, 11
	mov	DWORD PTR -2536[rbp], eax
	mov	eax, DWORD PTR -2536[rbp]
	cdqe
	mov	edx, DWORD PTR -2552[rbp]
	movsx	rdx, edx
	lea	rcx, -464[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	call	memset@PLT
	mov	eax, DWORD PTR -2536[rbp]
	add	DWORD PTR -2552[rbp], eax
.L551:
	mov	edx, DWORD PTR -2548[rbp]
	mov	eax, DWORD PTR -2544[rbp]
	add	eax, edx
	cmp	DWORD PTR -2552[rbp], eax
	jl	.L558
	mov	edx, DWORD PTR -2548[rbp]
	mov	eax, DWORD PTR -2544[rbp]
	add	eax, edx
	cmp	DWORD PTR -2552[rbp], eax
	je	.L559
	lea	rdi, .LC40[rip]
	call	e
	jmp	.L562
.L559:
	mov	rax, QWORD PTR -2568[rbp]
	lea	rcx, 52[rax]
	mov	edx, DWORD PTR -2548[rbp]
	lea	rax, -464[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	zbuild_huffman
	test	eax, eax
	jne	.L560
	mov	eax, 0
	jmp	.L562
.L560:
	mov	eax, DWORD PTR -2548[rbp]
	cdqe
	lea	rdx, -464[rbp]
	lea	rsi, [rdx+rax]
	mov	rax, QWORD PTR -2568[rbp]
	lea	rcx, 2072[rax]
	mov	eax, DWORD PTR -2544[rbp]
	mov	edx, eax
	mov	rdi, rcx
	call	zbuild_huffman
	test	eax, eax
	jne	.L561
	mov	eax, 0
	jmp	.L562
.L561:
	mov	eax, 1
.L562:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L563
	call	__stack_chk_fail@PLT
.L563:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	compute_huffman_codes, .-compute_huffman_codes
	.section	.rodata
.LC47:
	.string	"a->num_bits == 0"
.LC48:
	.string	"zlib corrupt"
.LC49:
	.string	"read past buffer"
	.text
	.type	parse_uncompressed_block, @function
parse_uncompressed_block:
.LFB85:
	.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	eax, DWORD PTR 16[rax]
	and	eax, 7
	test	eax, eax
	je	.L566
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	and	eax, 7
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	zreceive
.L566:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L567
.L568:
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 20[rax]
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	mov	edx, ecx
	cdqe
	mov	BYTE PTR -12[rbp+rax], dl
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 20[rax]
	shr	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	lea	edx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], edx
.L567:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jg	.L568
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	je	.L570
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 2219
	lea	rsi, .LC4[rip]
	lea	rdi, .LC47[rip]
	call	__assert_fail@PLT
.L571:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	zget8
	mov	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	mov	edx, ecx
	cdqe
	mov	BYTE PTR -12[rbp+rax], dl
.L570:
	cmp	DWORD PTR -24[rbp], 3
	jle	.L571
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	xor	eax, 65535
	cmp	DWORD PTR -16[rbp], eax
	je	.L572
	lea	rdi, .LC48[rip]
	call	e
	jmp	.L576
.L572:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jbe	.L574
	lea	rdi, .LC49[rip]
	call	e
	jmp	.L576
.L574:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	cmp	rdx, rax
	jbe	.L575
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	expand
	test	eax, eax
	jne	.L575
	mov	eax, 0
	jmp	.L576
.L575:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	eax, 1
.L576:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L577
	call	__stack_chk_fail@PLT
.L577:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	parse_uncompressed_block, .-parse_uncompressed_block
	.section	.rodata
.LC50:
	.string	"bad zlib header"
.LC51:
	.string	"no preset dict"
.LC52:
	.string	"bad compression"
	.text
	.type	parse_zlib_header, @function
parse_zlib_header:
.LFB86:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	zget8
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 15
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	zget8
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	edx, eax
	movsx	rax, edx
	imul	rax, rax, -2078209981
	shr	rax, 32
	add	eax, edx
	sar	eax, 4
	mov	ecx, edx
	sar	ecx, 31
	sub	eax, ecx
	mov	ecx, eax
	sal	ecx, 5
	sub	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	test	eax, eax
	je	.L579
	lea	rdi, .LC50[rip]
	call	e
	jmp	.L580
.L579:
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 32
	test	eax, eax
	je	.L581
	lea	rdi, .LC51[rip]
	call	e
	jmp	.L580
.L581:
	cmp	DWORD PTR -8[rbp], 8
	je	.L582
	lea	rdi, .LC52[rip]
	call	e
	jmp	.L580
.L582:
	mov	eax, 1
.L580:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	parse_zlib_header, .-parse_zlib_header
	.local	default_length
	.comm	default_length,288,32
	.local	default_distance
	.comm	default_distance,32,32
	.type	init_defaults, @function
init_defaults:
.LFB87:
	.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], 0
	jmp	.L584
.L585:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, default_length[rip]
	mov	BYTE PTR [rax+rdx], 8
	add	DWORD PTR -4[rbp], 1
.L584:
	cmp	DWORD PTR -4[rbp], 143
	jle	.L585
	jmp	.L586
.L587:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, default_length[rip]
	mov	BYTE PTR [rax+rdx], 9
	add	DWORD PTR -4[rbp], 1
.L586:
	cmp	DWORD PTR -4[rbp], 255
	jle	.L587
	jmp	.L588
.L589:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, default_length[rip]
	mov	BYTE PTR [rax+rdx], 7
	add	DWORD PTR -4[rbp], 1
.L588:
	cmp	DWORD PTR -4[rbp], 279
	jle	.L589
	jmp	.L590
.L591:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, default_length[rip]
	mov	BYTE PTR [rax+rdx], 8
	add	DWORD PTR -4[rbp], 1
.L590:
	cmp	DWORD PTR -4[rbp], 287
	jle	.L591
	mov	DWORD PTR -4[rbp], 0
	jmp	.L592
.L593:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, default_distance[rip]
	mov	BYTE PTR [rax+rdx], 5
	add	DWORD PTR -4[rbp], 1
.L592:
	cmp	DWORD PTR -4[rbp], 31
	jle	.L593
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE87:
	.size	init_defaults, .-init_defaults
	.globl	stbi_png_partial
	.bss
	.align 4
	.type	stbi_png_partial, @object
	.size	stbi_png_partial, 4
stbi_png_partial:
	.zero	4
	.text
	.type	parse_zlib, @function
parse_zlib:
.LFB88:
	.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
	cmp	DWORD PTR -28[rbp], 0
	je	.L595
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	parse_zlib_header
	test	eax, eax
	jne	.L595
	mov	eax, 0
	jmp	.L596
.L595:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 20[rax], 0
.L606:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	zreceive
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	zreceive
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L597
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	parse_uncompressed_block
	test	eax, eax
	jne	.L598
	mov	eax, 0
	jmp	.L596
.L597:
	cmp	DWORD PTR -4[rbp], 3
	jne	.L599
	mov	eax, 0
	jmp	.L596
.L599:
	cmp	DWORD PTR -4[rbp], 1
	jne	.L600
	movzx	eax, BYTE PTR default_distance[rip+31]
	test	al, al
	jne	.L601
	call	init_defaults
.L601:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 52
	mov	edx, 288
	lea	rsi, default_length[rip]
	mov	rdi, rax
	call	zbuild_huffman
	test	eax, eax
	jne	.L602
	mov	eax, 0
	jmp	.L596
.L602:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2072
	mov	edx, 32
	lea	rsi, default_distance[rip]
	mov	rdi, rax
	call	zbuild_huffman
	test	eax, eax
	jne	.L603
	mov	eax, 0
	jmp	.L596
.L600:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	compute_huffman_codes
	test	eax, eax
	jne	.L603
	mov	eax, 0
	jmp	.L596
.L603:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	parse_huffman_block
	test	eax, eax
	jne	.L598
	mov	eax, 0
	jmp	.L596
.L598:
	mov	eax, DWORD PTR stbi_png_partial[rip]
	test	eax, eax
	je	.L604
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 32[rax]
	mov	rax, rdx
	sub	rax, rcx
	cmp	rax, 65536
	jg	.L607
.L604:
	cmp	DWORD PTR -8[rbp], 0
	je	.L606
	jmp	.L605
.L607:
	nop
.L605:
	mov	eax, 1
.L596:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE88:
	.size	parse_zlib, .-parse_zlib
	.type	do_zlib, @function
do_zlib:
.LFB89:
	.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	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	DWORD PTR -24[rbp], ecx
	mov	DWORD PTR -28[rbp], r8d
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR 48[rax], edx
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	parse_zlib
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE89:
	.size	do_zlib, .-do_zlib
	.globl	stbi_zlib_decode_malloc_guesssize
	.type	stbi_zlib_decode_malloc_guesssize, @function
stbi_zlib_decode_malloc_guesssize:
.LFB90:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 64
	mov	QWORD PTR -4136[rbp], rdi
	mov	DWORD PTR -4140[rbp], esi
	mov	DWORD PTR -4144[rbp], edx
	mov	QWORD PTR -4152[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -4144[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -4120[rbp], rax
	cmp	QWORD PTR -4120[rbp], 0
	jne	.L611
	mov	eax, 0
	jmp	.L615
.L611:
	mov	rax, QWORD PTR -4136[rbp]
	mov	QWORD PTR -4112[rbp], rax
	mov	eax, DWORD PTR -4140[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -4136[rbp]
	add	rax, rdx
	mov	QWORD PTR -4104[rbp], rax
	mov	edx, DWORD PTR -4144[rbp]
	mov	rsi, QWORD PTR -4120[rbp]
	lea	rax, -4112[rbp]
	mov	r8d, 1
	mov	ecx, 1
	mov	rdi, rax
	call	do_zlib
	test	eax, eax
	je	.L613
	cmp	QWORD PTR -4152[rbp], 0
	je	.L614
	mov	rax, QWORD PTR -4088[rbp]
	mov	rdx, QWORD PTR -4080[rbp]
	sub	rax, rdx
	mov	edx, eax
	mov	rax, QWORD PTR -4152[rbp]
	mov	DWORD PTR [rax], edx
.L614:
	mov	rax, QWORD PTR -4080[rbp]
	jmp	.L615
.L613:
	mov	rax, QWORD PTR -4080[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
.L615:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L616
	call	__stack_chk_fail@PLT
.L616:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE90:
	.size	stbi_zlib_decode_malloc_guesssize, .-stbi_zlib_decode_malloc_guesssize
	.globl	stbi_zlib_decode_malloc
	.type	stbi_zlib_decode_malloc, @function
stbi_zlib_decode_malloc:
.LFB91:
	.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	rdx, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rdx
	mov	edx, 16384
	mov	rdi, rax
	call	stbi_zlib_decode_malloc_guesssize
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE91:
	.size	stbi_zlib_decode_malloc, .-stbi_zlib_decode_malloc
	.globl	stbi_zlib_decode_malloc_guesssize_headerflag
	.type	stbi_zlib_decode_malloc_guesssize_headerflag, @function
stbi_zlib_decode_malloc_guesssize_headerflag:
.LFB92:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 64
	mov	QWORD PTR -4136[rbp], rdi
	mov	DWORD PTR -4140[rbp], esi
	mov	DWORD PTR -4144[rbp], edx
	mov	QWORD PTR -4152[rbp], rcx
	mov	DWORD PTR -4156[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -4144[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -4120[rbp], rax
	cmp	QWORD PTR -4120[rbp], 0
	jne	.L620
	mov	eax, 0
	jmp	.L624
.L620:
	mov	rax, QWORD PTR -4136[rbp]
	mov	QWORD PTR -4112[rbp], rax
	mov	eax, DWORD PTR -4140[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -4136[rbp]
	add	rax, rdx
	mov	QWORD PTR -4104[rbp], rax
	mov	ecx, DWORD PTR -4156[rbp]
	mov	edx, DWORD PTR -4144[rbp]
	mov	rsi, QWORD PTR -4120[rbp]
	lea	rax, -4112[rbp]
	mov	r8d, ecx
	mov	ecx, 1
	mov	rdi, rax
	call	do_zlib
	test	eax, eax
	je	.L622
	cmp	QWORD PTR -4152[rbp], 0
	je	.L623
	mov	rax, QWORD PTR -4088[rbp]
	mov	rdx, QWORD PTR -4080[rbp]
	sub	rax, rdx
	mov	edx, eax
	mov	rax, QWORD PTR -4152[rbp]
	mov	DWORD PTR [rax], edx
.L623:
	mov	rax, QWORD PTR -4080[rbp]
	jmp	.L624
.L622:
	mov	rax, QWORD PTR -4080[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
.L624:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L625
	call	__stack_chk_fail@PLT
.L625:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE92:
	.size	stbi_zlib_decode_malloc_guesssize_headerflag, .-stbi_zlib_decode_malloc_guesssize_headerflag
	.globl	stbi_zlib_decode_buffer
	.type	stbi_zlib_decode_buffer, @function
stbi_zlib_decode_buffer:
.LFB93:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 48
	mov	QWORD PTR -4120[rbp], rdi
	mov	DWORD PTR -4124[rbp], esi
	mov	QWORD PTR -4136[rbp], rdx
	mov	DWORD PTR -4128[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -4136[rbp]
	mov	QWORD PTR -4112[rbp], rax
	mov	eax, DWORD PTR -4128[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -4136[rbp]
	add	rax, rdx
	mov	QWORD PTR -4104[rbp], rax
	mov	edx, DWORD PTR -4124[rbp]
	mov	rsi, QWORD PTR -4120[rbp]
	lea	rax, -4112[rbp]
	mov	r8d, 1
	mov	ecx, 0
	mov	rdi, rax
	call	do_zlib
	test	eax, eax
	je	.L627
	mov	rax, QWORD PTR -4088[rbp]
	mov	rdx, QWORD PTR -4080[rbp]
	sub	rax, rdx
	jmp	.L629
.L627:
	mov	eax, -1
.L629:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L630
	call	__stack_chk_fail@PLT
.L630:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE93:
	.size	stbi_zlib_decode_buffer, .-stbi_zlib_decode_buffer
	.globl	stbi_zlib_decode_noheader_malloc
	.type	stbi_zlib_decode_noheader_malloc, @function
stbi_zlib_decode_noheader_malloc:
.LFB94:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 64
	mov	QWORD PTR -4136[rbp], rdi
	mov	DWORD PTR -4140[rbp], esi
	mov	QWORD PTR -4152[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edi, 16384
	call	malloc@PLT
	mov	QWORD PTR -4120[rbp], rax
	cmp	QWORD PTR -4120[rbp], 0
	jne	.L632
	mov	eax, 0
	jmp	.L636
.L632:
	mov	rax, QWORD PTR -4136[rbp]
	mov	QWORD PTR -4112[rbp], rax
	mov	eax, DWORD PTR -4140[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -4136[rbp]
	add	rax, rdx
	mov	QWORD PTR -4104[rbp], rax
	mov	rsi, QWORD PTR -4120[rbp]
	lea	rax, -4112[rbp]
	mov	r8d, 0
	mov	ecx, 1
	mov	edx, 16384
	mov	rdi, rax
	call	do_zlib
	test	eax, eax
	je	.L634
	cmp	QWORD PTR -4152[rbp], 0
	je	.L635
	mov	rax, QWORD PTR -4088[rbp]
	mov	rdx, QWORD PTR -4080[rbp]
	sub	rax, rdx
	mov	edx, eax
	mov	rax, QWORD PTR -4152[rbp]
	mov	DWORD PTR [rax], edx
.L635:
	mov	rax, QWORD PTR -4080[rbp]
	jmp	.L636
.L634:
	mov	rax, QWORD PTR -4080[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
.L636:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L637
	call	__stack_chk_fail@PLT
.L637:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.size	stbi_zlib_decode_noheader_malloc, .-stbi_zlib_decode_noheader_malloc
	.globl	stbi_zlib_decode_noheader_buffer
	.type	stbi_zlib_decode_noheader_buffer, @function
stbi_zlib_decode_noheader_buffer:
.LFB95:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 48
	mov	QWORD PTR -4120[rbp], rdi
	mov	DWORD PTR -4124[rbp], esi
	mov	QWORD PTR -4136[rbp], rdx
	mov	DWORD PTR -4128[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -4136[rbp]
	mov	QWORD PTR -4112[rbp], rax
	mov	eax, DWORD PTR -4128[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -4136[rbp]
	add	rax, rdx
	mov	QWORD PTR -4104[rbp], rax
	mov	edx, DWORD PTR -4124[rbp]
	mov	rsi, QWORD PTR -4120[rbp]
	lea	rax, -4112[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	do_zlib
	test	eax, eax
	je	.L639
	mov	rax, QWORD PTR -4088[rbp]
	mov	rdx, QWORD PTR -4080[rbp]
	sub	rax, rdx
	jmp	.L641
.L639:
	mov	eax, -1
.L641:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L642
	call	__stack_chk_fail@PLT
.L642:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE95:
	.size	stbi_zlib_decode_noheader_buffer, .-stbi_zlib_decode_noheader_buffer
	.type	get_chunk_header, @function
get_chunk_header:
.LFB96:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE96:
	.size	get_chunk_header, .-get_chunk_header
	.section	.rodata
.LC53:
	.string	"bad png sig"
	.text
	.type	check_png_header, @function
check_png_header:
.LFB97:
	.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 -4[rbp], 0
	jmp	.L646
.L649:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, png_sig.5[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	cmp	al, dl
	je	.L647
	lea	rdi, .LC53[rip]
	call	e
	jmp	.L648
.L647:
	add	DWORD PTR -4[rbp], 1
.L646:
	cmp	DWORD PTR -4[rbp], 7
	jle	.L649
	mov	eax, 1
.L648:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE97:
	.size	check_png_header, .-check_png_header
	.data
	.type	first_row_filter, @object
	.size	first_row_filter, 5
first_row_filter:
	.string	""
	.string	"\001"
	.ascii	"\005\006"
	.text
	.type	paeth, @function
paeth:
.LFB98:
	.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	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	sub	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, DWORD PTR -20[rbp]
	cdq
	xor	eax, edx
	mov	DWORD PTR -12[rbp], eax
	sub	DWORD PTR -12[rbp], edx
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, DWORD PTR -24[rbp]
	cdq
	xor	eax, edx
	mov	DWORD PTR -8[rbp], eax
	sub	DWORD PTR -8[rbp], edx
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, DWORD PTR -28[rbp]
	cdq
	xor	eax, edx
	mov	DWORD PTR -4[rbp], eax
	sub	DWORD PTR -4[rbp], edx
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jg	.L651
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jg	.L651
	mov	eax, DWORD PTR -20[rbp]
	jmp	.L652
.L651:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jg	.L653
	mov	eax, DWORD PTR -24[rbp]
	jmp	.L652
.L653:
	mov	eax, DWORD PTR -28[rbp]
.L652:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.size	paeth, .-paeth
	.section	.rodata
	.align 8
.LC54:
	.string	"out_n == s->img_n || out_n == s->img_n+1"
.LC55:
	.string	"not enough pixels"
.LC56:
	.string	"invalid filter"
.LC57:
	.string	"img_n+1 == out_n"
	.text
	.type	create_png_image_raw, @function
create_png_image_raw:
.LFB99:
	.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, 88
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -84[rbp], edx
	mov	DWORD PTR -88[rbp], ecx
	mov	DWORD PTR -92[rbp], r8d
	mov	DWORD PTR -96[rbp], r9d
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	mov	edx, DWORD PTR -92[rbp]
	imul	eax, edx
	mov	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -88[rbp], eax
	je	.L655
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	add	eax, 1
	cmp	DWORD PTR -88[rbp], eax
	je	.L655
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 2449
	lea	rsi, .LC4[rip]
	lea	rdi, .LC54[rip]
	call	__assert_fail@PLT
.L655:
	mov	eax, DWORD PTR stbi_png_partial[rip]
	test	eax, eax
	je	.L656
	mov	DWORD PTR -96[rbp], 1
.L656:
	mov	eax, DWORD PTR -92[rbp]
	imul	eax, DWORD PTR -96[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -88[rbp]
	imul	eax, edx
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L657
	lea	rdi, .LC6[rip]
	call	e
	jmp	.L658
.L657:
	mov	eax, DWORD PTR stbi_png_partial[rip]
	test	eax, eax
	jne	.L659
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -92[rbp], eax
	jne	.L660
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -96[rbp], eax
	jne	.L660
	mov	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -92[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -96[rbp]
	cmp	DWORD PTR -84[rbp], eax
	je	.L659
	lea	rdi, .LC55[rip]
	call	e
	jmp	.L658
.L660:
	mov	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -92[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -96[rbp]
	cmp	DWORD PTR -84[rbp], eax
	jnb	.L659
	lea	rdi, .LC55[rip]
	call	e
	jmp	.L658
.L659:
	mov	DWORD PTR -60[rbp], 0
	jmp	.L662
.L753:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -48[rbp]
	imul	eax, DWORD PTR -60[rbp]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -48[rbp]
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -80[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 4
	jle	.L663
	lea	rdi, .LC56[rip]
	call	e
	jmp	.L658
.L663:
	cmp	DWORD PTR -60[rbp], 0
	jne	.L664
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, first_row_filter[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -52[rbp], eax
.L664:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L665
.L675:
	cmp	DWORD PTR -52[rbp], 6
	ja	.L666
	mov	eax, DWORD PTR -52[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L668[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L668[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L668:
	.long	.L674-.L668
	.long	.L673-.L668
	.long	.L672-.L668
	.long	.L671-.L668
	.long	.L670-.L668
	.long	.L669-.L668
	.long	.L667-.L668
	.text
.L674:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -56[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	jmp	.L666
.L673:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -56[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	jmp	.L666
.L672:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	add	edx, ecx
	mov	BYTE PTR [rax], dl
	jmp	.L666
.L671:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	shr	al
	mov	esi, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	add	edx, esi
	mov	BYTE PTR [rax], dl
	jmp	.L666
.L670:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ebx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, 0
	mov	esi, eax
	mov	edi, 0
	call	paeth
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	lea	edx, [rbx+rcx]
	mov	BYTE PTR [rax], dl
	jmp	.L666
.L669:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -56[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	jmp	.L666
.L667:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -56[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	nop
.L666:
	add	DWORD PTR -56[rbp], 1
.L665:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L675
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	je	.L676
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
.L676:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	jne	.L677
	cmp	DWORD PTR -52[rbp], 6
	ja	.L715
	mov	eax, DWORD PTR -52[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L680[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L680[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L680:
	.long	.L686-.L680
	.long	.L685-.L680
	.long	.L684-.L680
	.long	.L683-.L680
	.long	.L682-.L680
	.long	.L681-.L680
	.long	.L679-.L680
	.text
.L686:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L687
.L690:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L688
.L689:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -56[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -56[rbp], 1
.L688:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L689
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L687:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L690
	jmp	.L715
.L685:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L691
.L694:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L692
.L693:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	add	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L692:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L693
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L691:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L694
	jmp	.L715
.L684:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L695
.L698:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L696
.L697:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	add	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L696:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L697
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L695:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L698
	jmp	.L715
.L683:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L699
.L702:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L700
.L701:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -44[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, ecx
	sar	eax
	mov	esi, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	add	edx, esi
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L700:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L701
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L699:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L702
	jmp	.L715
.L682:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L703
.L706:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L704
.L705:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ebx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -44[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	paeth
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	lea	edx, [rbx+rcx]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L704:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L705
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L703:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L706
	jmp	.L715
.L681:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L707
.L710:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L708
.L709:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -44[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	shr	al
	mov	esi, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	add	edx, esi
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L708:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L709
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L707:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L710
	jmp	.L715
.L679:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L711
.L714:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L712
.L713:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ebx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, 0
	mov	esi, 0
	mov	edi, eax
	call	paeth
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	lea	edx, [rbx+rcx]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L712:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L713
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L711:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L714
	jmp	.L715
.L677:
	mov	eax, DWORD PTR -44[rbp]
	add	eax, 1
	cmp	DWORD PTR -88[rbp], eax
	je	.L716
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 2500
	lea	rsi, .LC4[rip]
	lea	rdi, .LC57[rip]
	call	__assert_fail@PLT
.L716:
	cmp	DWORD PTR -52[rbp], 6
	ja	.L715
	mov	eax, DWORD PTR -52[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L718[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L718[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L718:
	.long	.L724-.L718
	.long	.L723-.L718
	.long	.L722-.L718
	.long	.L721-.L718
	.long	.L720-.L718
	.long	.L719-.L718
	.long	.L717-.L718
	.text
.L724:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L725
.L728:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L726
.L727:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -56[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -56[rbp], 1
.L726:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L727
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L725:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L728
	jmp	.L715
.L723:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L729
.L732:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L730
.L731:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -88[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	add	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L730:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L731
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L729:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L732
	jmp	.L715
.L722:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L733
.L736:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L734
.L735:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	add	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L734:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L735
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L733:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L736
	jmp	.L715
.L721:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L737
.L740:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L738
.L739:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -88[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, ecx
	sar	eax
	mov	esi, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	add	edx, esi
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L738:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L739
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L737:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L740
	jmp	.L715
.L720:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L741
.L744:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L742
.L743:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ebx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -88[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -88[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	paeth
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	lea	edx, [rbx+rcx]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L742:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L743
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L741:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L744
	jmp	.L715
.L719:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L745
.L748:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L746
.L747:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -88[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	shr	al
	mov	esi, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	add	edx, esi
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L746:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L747
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L745:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L748
	jmp	.L715
.L717:
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 1
	mov	DWORD PTR -64[rbp], eax
	jmp	.L749
.L752:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L750
.L751:
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movzx	ebx, BYTE PTR [rax]
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -88[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, 0
	mov	esi, 0
	mov	edi, eax
	call	paeth
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	lea	edx, [rbx+rcx]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -56[rbp], 1
.L750:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L751
	sub	DWORD PTR -64[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L749:
	cmp	DWORD PTR -64[rbp], 0
	jne	.L752
	nop
.L715:
	add	DWORD PTR -60[rbp], 1
.L662:
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jb	.L753
	mov	eax, 1
.L658:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	create_png_image_raw, .-create_png_image_raw
	.type	create_png_image, @function
create_png_image:
.LFB100:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -184[rbp], rdi
	mov	QWORD PTR -192[rbp], rsi
	mov	DWORD PTR -196[rbp], edx
	mov	DWORD PTR -200[rbp], ecx
	mov	DWORD PTR -204[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -204[rbp], 0
	jne	.L755
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	r8d, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edi, DWORD PTR [rax]
	mov	ecx, DWORD PTR -200[rbp]
	mov	edx, DWORD PTR -196[rbp]
	mov	rsi, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	create_png_image_raw
	jmp	.L756
.L755:
	mov	eax, DWORD PTR stbi_png_partial[rip]
	mov	DWORD PTR -164[rbp], eax
	mov	DWORD PTR stbi_png_partial[rip], 0
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	imul	edx, eax
	mov	eax, DWORD PTR -200[rbp]
	imul	eax, edx
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -152[rbp], rax
	mov	DWORD PTR -176[rbp], 0
	jmp	.L757
.L764:
	mov	DWORD PTR -144[rbp], 0
	mov	DWORD PTR -140[rbp], 4
	mov	DWORD PTR -136[rbp], 0
	mov	DWORD PTR -132[rbp], 2
	mov	DWORD PTR -128[rbp], 0
	mov	DWORD PTR -124[rbp], 1
	mov	DWORD PTR -120[rbp], 0
	mov	DWORD PTR -112[rbp], 0
	mov	DWORD PTR -108[rbp], 0
	mov	DWORD PTR -104[rbp], 4
	mov	DWORD PTR -100[rbp], 0
	mov	DWORD PTR -96[rbp], 2
	mov	DWORD PTR -92[rbp], 0
	mov	DWORD PTR -88[rbp], 1
	mov	DWORD PTR -80[rbp], 8
	mov	DWORD PTR -76[rbp], 8
	mov	DWORD PTR -72[rbp], 4
	mov	DWORD PTR -68[rbp], 4
	mov	DWORD PTR -64[rbp], 2
	mov	DWORD PTR -60[rbp], 2
	mov	DWORD PTR -56[rbp], 1
	mov	DWORD PTR -48[rbp], 8
	mov	DWORD PTR -44[rbp], 8
	mov	DWORD PTR -40[rbp], 8
	mov	DWORD PTR -36[rbp], 4
	mov	DWORD PTR -32[rbp], 4
	mov	DWORD PTR -28[rbp], 2
	mov	DWORD PTR -24[rbp], 2
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	sub	edx, eax
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	mov	eax, DWORD PTR -80[rbp+rax*4]
	add	eax, edx
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	mov	eax, DWORD PTR -80[rbp+rax*4]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	DWORD PTR -160[rbp], eax
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR 4[rax]
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	mov	eax, DWORD PTR -112[rbp+rax*4]
	sub	edx, eax
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	add	eax, edx
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	DWORD PTR -156[rbp], eax
	cmp	DWORD PTR -160[rbp], 0
	je	.L758
	cmp	DWORD PTR -156[rbp], 0
	je	.L758
	mov	r8d, DWORD PTR -156[rbp]
	mov	edi, DWORD PTR -160[rbp]
	mov	ecx, DWORD PTR -200[rbp]
	mov	edx, DWORD PTR -196[rbp]
	mov	rsi, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	create_png_image_raw
	test	eax, eax
	jne	.L759
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
	jmp	.L756
.L759:
	mov	DWORD PTR -168[rbp], 0
	jmp	.L760
.L763:
	mov	DWORD PTR -172[rbp], 0
	jmp	.L761
.L762:
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	mov	rdx, QWORD PTR -184[rbp]
	mov	rcx, QWORD PTR 24[rdx]
	mov	edx, DWORD PTR -168[rbp]
	mov	esi, edx
	imul	esi, DWORD PTR -160[rbp]
	mov	edx, DWORD PTR -172[rbp]
	add	edx, esi
	imul	edx, DWORD PTR -200[rbp]
	movsx	rdx, edx
	lea	rsi, [rcx+rdx]
	mov	edx, DWORD PTR -176[rbp]
	movsx	rdx, edx
	mov	edx, DWORD PTR -48[rbp+rdx*4]
	mov	ecx, edx
	imul	ecx, DWORD PTR -168[rbp]
	mov	edx, DWORD PTR -176[rbp]
	movsx	rdx, edx
	mov	edx, DWORD PTR -112[rbp+rdx*4]
	add	edx, ecx
	mov	ecx, edx
	mov	rdx, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	edx, DWORD PTR [rdx]
	imul	ecx, edx
	mov	edx, DWORD PTR -200[rbp]
	imul	edx, ecx
	mov	edi, edx
	mov	edx, DWORD PTR -176[rbp]
	movsx	rdx, edx
	mov	edx, DWORD PTR -80[rbp+rdx*4]
	mov	ecx, edx
	imul	ecx, DWORD PTR -172[rbp]
	mov	edx, DWORD PTR -176[rbp]
	movsx	rdx, edx
	mov	edx, DWORD PTR -144[rbp+rdx*4]
	add	edx, ecx
	imul	edx, DWORD PTR -200[rbp]
	movsx	rdx, edx
	lea	rcx, [rdi+rdx]
	mov	rdx, QWORD PTR -152[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	add	DWORD PTR -172[rbp], 1
.L761:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -160[rbp]
	jl	.L762
	add	DWORD PTR -168[rbp], 1
.L760:
	mov	eax, DWORD PTR -168[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L763
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	free@PLT
	mov	eax, DWORD PTR -160[rbp]
	imul	eax, DWORD PTR -200[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -156[rbp]
	cdqe
	add	QWORD PTR -192[rbp], rax
	mov	eax, DWORD PTR -160[rbp]
	imul	eax, DWORD PTR -200[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -156[rbp]
	sub	DWORD PTR -196[rbp], eax
.L758:
	add	DWORD PTR -176[rbp], 1
.L757:
	cmp	DWORD PTR -176[rbp], 6
	jle	.L764
	mov	rax, QWORD PTR -184[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	eax, DWORD PTR -164[rbp]
	mov	DWORD PTR stbi_png_partial[rip], eax
	mov	eax, 1
.L756:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L765
	call	__stack_chk_fail@PLT
.L765:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE100:
	.size	create_png_image, .-create_png_image
	.section	.rodata
.LC58:
	.string	"out_n == 2 || out_n == 4"
	.text
	.type	compute_transparency, @function
compute_transparency:
.LFB101:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -52[rbp], 2
	je	.L767
	cmp	DWORD PTR -52[rbp], 4
	je	.L767
	lea	rcx, __PRETTY_FUNCTION__.3[rip]
	mov	edx, 2569
	lea	rsi, .LC4[rip]
	lea	rdi, .LC58[rip]
	call	__assert_fail@PLT
.L767:
	cmp	DWORD PTR -52[rbp], 2
	jne	.L768
	mov	DWORD PTR -24[rbp], 0
	jmp	.L769
.L772:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L770
	mov	edx, 0
	jmp	.L771
.L770:
	mov	edx, -1
.L771:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -16[rbp], 2
	add	DWORD PTR -24[rbp], 1
.L769:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jb	.L772
	jmp	.L773
.L768:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L774
.L776:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L775
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L775
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 2
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L775
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], 0
.L775:
	add	QWORD PTR -16[rbp], 4
	add	DWORD PTR -24[rbp], 1
.L774:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jb	.L776
.L773:
	mov	eax, 1
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE101:
	.size	compute_transparency, .-compute_transparency
	.type	expand_palette, @function
expand_palette:
.LFB102:
	.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	DWORD PTR -68[rbp], edx
	mov	DWORD PTR -72[rbp], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -72[rbp]
	imul	eax, DWORD PTR -36[rbp]
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L779
	lea	rdi, .LC6[rip]
	call	e
	jmp	.L780
.L779:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -72[rbp], 3
	jne	.L781
	mov	DWORD PTR -40[rbp], 0
	jmp	.L782
.L783:
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 2
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 1
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 2
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -24[rbp], 3
	add	DWORD PTR -40[rbp], 1
.L782:
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jb	.L783
	jmp	.L784
.L781:
	mov	DWORD PTR -40[rbp], 0
	jmp	.L785
.L786:
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 2
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 1
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 2
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 3
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -24[rbp], 4
	add	DWORD PTR -40[rbp], 1
.L785:
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jb	.L786
.L784:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	eax, 1
.L780:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE102:
	.size	expand_palette, .-expand_palette
	.local	stbi_unpremultiply_on_load
	.comm	stbi_unpremultiply_on_load,4,4
	.local	stbi_de_iphone_flag
	.comm	stbi_de_iphone_flag,4,4
	.globl	stbi_set_unpremultiply_on_load
	.type	stbi_set_unpremultiply_on_load, @function
stbi_set_unpremultiply_on_load:
.LFB103:
	.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 stbi_unpremultiply_on_load[rip], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	stbi_set_unpremultiply_on_load, .-stbi_set_unpremultiply_on_load
	.globl	stbi_convert_iphone_png_to_rgb
	.type	stbi_convert_iphone_png_to_rgb, @function
stbi_convert_iphone_png_to_rgb:
.LFB104:
	.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 stbi_de_iphone_flag[rip], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE104:
	.size	stbi_convert_iphone_png_to_rgb, .-stbi_convert_iphone_png_to_rgb
	.section	.rodata
.LC59:
	.string	"s->img_out_n == 4"
	.text
	.type	stbi_de_iphone, @function
stbi_de_iphone:
.LFB105:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	eax, 3
	jne	.L790
	mov	DWORD PTR -24[rbp], 0
	jmp	.L791
.L792:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -25[rbp], al
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR 2[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR -25[rbp]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -16[rbp], 3
	add	DWORD PTR -24[rbp], 1
.L791:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jb	.L792
	jmp	.L802
.L790:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	eax, 4
	je	.L794
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 2649
	lea	rsi, .LC4[rip]
	lea	rdi, .LC59[rip]
	call	__assert_fail@PLT
.L794:
	mov	eax, DWORD PTR stbi_unpremultiply_on_load[rip]
	test	eax, eax
	je	.L795
	mov	DWORD PTR -24[rbp], 0
	jmp	.L796
.L799:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -27[rbp], al
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -26[rbp], al
	cmp	BYTE PTR -27[rbp], 0
	je	.L797
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	sal	eax, 8
	sub	eax, edx
	movzx	ecx, BYTE PTR -27[rbp]
	cdq
	idiv	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, edx
	sal	eax, 8
	sub	eax, edx
	movzx	esi, BYTE PTR -27[rbp]
	cdq
	idiv	esi
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	movzx	edx, BYTE PTR -26[rbp]
	mov	eax, edx
	sal	eax, 8
	sub	eax, edx
	movzx	edi, BYTE PTR -27[rbp]
	cdq
	idiv	edi
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 2
	mov	BYTE PTR [rax], dl
	jmp	.L798
.L797:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR 2[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR -26[rbp]
	mov	BYTE PTR [rdx], al
.L798:
	add	QWORD PTR -16[rbp], 4
	add	DWORD PTR -24[rbp], 1
.L796:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jb	.L799
	jmp	.L802
.L795:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L800
.L801:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -28[rbp], al
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR 2[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR -28[rbp]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -16[rbp], 4
	add	DWORD PTR -24[rbp], 1
.L800:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jb	.L801
.L802:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE105:
	.size	stbi_de_iphone, .-stbi_de_iphone
	.section	.rodata
.LC60:
	.string	"multiple IHDR"
.LC61:
	.string	"bad IHDR len"
.LC62:
	.string	"8bit only"
.LC63:
	.string	"bad ctype"
.LC64:
	.string	"bad comp method"
.LC65:
	.string	"bad filter method"
.LC66:
	.string	"bad interlace method"
.LC67:
	.string	"0-pixel image"
.LC68:
	.string	"first not IHDR"
.LC69:
	.string	"invalid PLTE"
.LC70:
	.string	"tRNS after IDAT"
.LC71:
	.string	"tRNS before PLTE"
.LC72:
	.string	"bad tRNS len"
.LC73:
	.string	"tRNS with alpha"
.LC74:
	.string	"no PLTE"
.LC75:
	.string	"outofdata"
.LC76:
	.string	"no IDAT"
	.text
	.type	parse_png_file, @function
parse_png_file:
.LFB106:
	.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, 1160
	.cfi_offset 3, -24
	mov	QWORD PTR -1160[rbp], rdi
	mov	DWORD PTR -1164[rbp], esi
	mov	DWORD PTR -1168[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	BYTE PTR -1142[rbp], 0
	mov	BYTE PTR -1141[rbp], 0
	mov	DWORD PTR -1136[rbp], 0
	mov	DWORD PTR -1132[rbp], 0
	mov	DWORD PTR -1124[rbp], 0
	mov	DWORD PTR -1120[rbp], 1
	mov	DWORD PTR -1112[rbp], 0
	mov	DWORD PTR -1108[rbp], 0
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1160[rbp]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -1160[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -1160[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	check_png_header
	test	eax, eax
	jne	.L804
	mov	eax, 0
	jmp	.L877
.L804:
	cmp	DWORD PTR -1164[rbp], 1
	jne	.L806
	mov	eax, 1
	jmp	.L877
.L806:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get_chunk_header
	mov	QWORD PTR -1068[rbp], rax
	mov	eax, DWORD PTR -1064[rbp]
	cmp	eax, 1951551059
	je	.L807
	cmp	eax, 1951551059
	ja	.L808
	cmp	eax, 1347179589
	je	.L809
	cmp	eax, 1347179589
	ja	.L808
	cmp	eax, 1229472850
	je	.L810
	cmp	eax, 1229472850
	ja	.L808
	cmp	eax, 1229278788
	je	.L811
	cmp	eax, 1229278788
	ja	.L808
	cmp	eax, 1130840649
	je	.L812
	cmp	eax, 1229209940
	je	.L813
	jmp	.L808
.L812:
	mov	eax, DWORD PTR stbi_de_iphone_flag[rip]
	mov	DWORD PTR -1108[rbp], eax
	mov	eax, DWORD PTR -1068[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	jmp	.L814
.L810:
	cmp	DWORD PTR -1120[rbp], 0
	jne	.L815
	lea	rdi, .LC60[rip]
	call	e
	jmp	.L877
.L815:
	mov	DWORD PTR -1120[rbp], 0
	mov	eax, DWORD PTR -1068[rbp]
	cmp	eax, 13
	je	.L817
	lea	rdi, .LC61[rip]
	call	e
	jmp	.L877
.L817:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get32
	mov	rdx, QWORD PTR -1088[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 16777216
	jbe	.L818
	lea	rdi, .LC34[rip]
	call	e
	jmp	.L877
.L818:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get32
	mov	rdx, QWORD PTR -1088[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 16777216
	jbe	.L819
	lea	rdi, .LC34[rip]
	call	e
	jmp	.L877
.L819:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1104[rbp], eax
	cmp	DWORD PTR -1104[rbp], 8
	je	.L820
	lea	rdi, .LC62[rip]
	call	e
	jmp	.L877
.L820:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1100[rbp], eax
	cmp	DWORD PTR -1100[rbp], 6
	jle	.L821
	lea	rdi, .LC63[rip]
	call	e
	jmp	.L877
.L821:
	cmp	DWORD PTR -1100[rbp], 3
	jne	.L822
	mov	BYTE PTR -1142[rbp], 3
	jmp	.L823
.L822:
	mov	eax, DWORD PTR -1100[rbp]
	and	eax, 1
	test	eax, eax
	je	.L823
	lea	rdi, .LC63[rip]
	call	e
	jmp	.L877
.L823:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1096[rbp], eax
	cmp	DWORD PTR -1096[rbp], 0
	je	.L824
	lea	rdi, .LC64[rip]
	call	e
	jmp	.L877
.L824:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1092[rbp], eax
	cmp	DWORD PTR -1092[rbp], 0
	je	.L825
	lea	rdi, .LC65[rip]
	call	e
	jmp	.L877
.L825:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1112[rbp], eax
	cmp	DWORD PTR -1112[rbp], 1
	jle	.L826
	lea	rdi, .LC66[rip]
	call	e
	jmp	.L877
.L826:
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L827
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jne	.L828
.L827:
	lea	rdi, .LC67[rip]
	call	e
	jmp	.L877
.L828:
	cmp	BYTE PTR -1142[rbp], 0
	jne	.L829
	mov	eax, DWORD PTR -1100[rbp]
	and	eax, 2
	test	eax, eax
	je	.L830
	mov	edx, 3
	jmp	.L831
.L830:
	mov	edx, 1
.L831:
	mov	eax, DWORD PTR -1100[rbp]
	sar	eax, 2
	and	eax, 1
	add	edx, eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -1088[rbp]
	mov	ebx, DWORD PTR [rax]
	mov	eax, 1073741824
	mov	edx, 0
	div	ebx
	mov	edx, eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jnb	.L832
	lea	rdi, .LC34[rip]
	call	e
	jmp	.L877
.L832:
	cmp	DWORD PTR -1164[rbp], 2
	jne	.L879
	mov	eax, 1
	jmp	.L877
.L829:
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 8[rax], 1
	mov	rax, QWORD PTR -1088[rbp]
	mov	ebx, DWORD PTR [rax]
	mov	eax, 268435456
	mov	edx, 0
	div	ebx
	mov	edx, eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jnb	.L879
	lea	rdi, .LC34[rip]
	call	e
	jmp	.L877
.L809:
	cmp	DWORD PTR -1120[rbp], 0
	je	.L834
	lea	rdi, .LC68[rip]
	call	e
	jmp	.L877
.L834:
	mov	eax, DWORD PTR -1068[rbp]
	cmp	eax, 768
	jbe	.L835
	lea	rdi, .LC69[rip]
	call	e
	jmp	.L877
.L835:
	mov	eax, DWORD PTR -1068[rbp]
	mov	edx, eax
	mov	eax, 2863311531
	imul	rax, rdx
	shr	rax, 32
	shr	eax
	mov	DWORD PTR -1124[rbp], eax
	mov	edx, DWORD PTR -1124[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	eax, DWORD PTR -1068[rbp]
	cmp	edx, eax
	je	.L836
	lea	rdi, .LC69[rip]
	call	e
	jmp	.L877
.L836:
	mov	DWORD PTR -1128[rbp], 0
	jmp	.L837
.L838:
	mov	eax, DWORD PTR -1128[rbp]
	lea	ebx, 0[0+rax*4]
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, ebx
	mov	BYTE PTR -1056[rbp+rdx], al
	mov	eax, DWORD PTR -1128[rbp]
	sal	eax, 2
	lea	ebx, 1[rax]
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, ebx
	mov	BYTE PTR -1056[rbp+rdx], al
	mov	eax, DWORD PTR -1128[rbp]
	sal	eax, 2
	lea	ebx, 2[rax]
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, ebx
	mov	BYTE PTR -1056[rbp+rdx], al
	mov	eax, DWORD PTR -1128[rbp]
	sal	eax, 2
	add	eax, 3
	mov	eax, eax
	mov	BYTE PTR -1056[rbp+rax], -1
	add	DWORD PTR -1128[rbp], 1
.L837:
	mov	eax, DWORD PTR -1128[rbp]
	cmp	eax, DWORD PTR -1124[rbp]
	jb	.L838
	jmp	.L814
.L807:
	cmp	DWORD PTR -1120[rbp], 0
	je	.L839
	lea	rdi, .LC68[rip]
	call	e
	jmp	.L877
.L839:
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L840
	lea	rdi, .LC70[rip]
	call	e
	jmp	.L877
.L840:
	cmp	BYTE PTR -1142[rbp], 0
	je	.L841
	cmp	DWORD PTR -1164[rbp], 2
	jne	.L842
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 8[rax], 4
	mov	eax, 1
	jmp	.L877
.L842:
	cmp	DWORD PTR -1124[rbp], 0
	jne	.L843
	lea	rdi, .LC71[rip]
	call	e
	jmp	.L877
.L843:
	mov	eax, DWORD PTR -1068[rbp]
	cmp	DWORD PTR -1124[rbp], eax
	jnb	.L844
	lea	rdi, .LC72[rip]
	call	e
	jmp	.L877
.L844:
	mov	BYTE PTR -1142[rbp], 4
	mov	DWORD PTR -1128[rbp], 0
	jmp	.L845
.L846:
	mov	eax, DWORD PTR -1128[rbp]
	sal	eax, 2
	lea	ebx, 3[rax]
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, ebx
	mov	BYTE PTR -1056[rbp+rdx], al
	add	DWORD PTR -1128[rbp], 1
.L845:
	mov	eax, DWORD PTR -1068[rbp]
	cmp	DWORD PTR -1128[rbp], eax
	jb	.L846
	jmp	.L814
.L841:
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 8[rax]
	and	eax, 1
	test	eax, eax
	jne	.L848
	lea	rdi, .LC73[rip]
	call	e
	jmp	.L877
.L848:
	mov	edx, DWORD PTR -1068[rbp]
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 8[rax]
	add	eax, eax
	cmp	edx, eax
	je	.L849
	lea	rdi, .LC72[rip]
	call	e
	jmp	.L877
.L849:
	mov	BYTE PTR -1141[rbp], 1
	mov	DWORD PTR -1116[rbp], 0
	jmp	.L850
.L851:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get16
	mov	edx, eax
	mov	eax, DWORD PTR -1116[rbp]
	cdqe
	mov	BYTE PTR -1059[rbp+rax], dl
	add	DWORD PTR -1116[rbp], 1
.L850:
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	DWORD PTR -1116[rbp], eax
	jl	.L851
	jmp	.L814
.L813:
	cmp	DWORD PTR -1120[rbp], 0
	je	.L852
	lea	rdi, .LC68[rip]
	call	e
	jmp	.L877
.L852:
	cmp	BYTE PTR -1142[rbp], 0
	je	.L853
	cmp	DWORD PTR -1124[rbp], 0
	jne	.L853
	lea	rdi, .LC74[rip]
	call	e
	jmp	.L877
.L853:
	cmp	DWORD PTR -1164[rbp], 2
	jne	.L854
	movzx	edx, BYTE PTR -1142[rbp]
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	eax, 1
	jmp	.L877
.L854:
	mov	edx, DWORD PTR -1068[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	add	eax, edx
	cmp	DWORD PTR -1132[rbp], eax
	jnb	.L855
	cmp	DWORD PTR -1132[rbp], 0
	jne	.L857
	mov	eax, DWORD PTR -1068[rbp]
	mov	edx, 4096
	cmp	eax, 4096
	cmovb	eax, edx
	mov	DWORD PTR -1132[rbp], eax
	jmp	.L857
.L858:
	sal	DWORD PTR -1132[rbp]
.L857:
	mov	edx, DWORD PTR -1068[rbp]
	mov	eax, DWORD PTR -1136[rbp]
	add	eax, edx
	cmp	DWORD PTR -1132[rbp], eax
	jb	.L858
	mov	edx, DWORD PTR -1132[rbp]
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -1080[rbp], rax
	cmp	QWORD PTR -1080[rbp], 0
	jne	.L859
	lea	rdi, .LC6[rip]
	call	e
	jmp	.L877
.L859:
	mov	rax, QWORD PTR -1160[rbp]
	mov	rdx, QWORD PTR -1080[rbp]
	mov	QWORD PTR 8[rax], rdx
.L855:
	mov	eax, DWORD PTR -1068[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1160[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1136[rbp]
	add	rcx, rax
	mov	rax, QWORD PTR -1088[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	test	eax, eax
	jne	.L860
	lea	rdi, .LC75[rip]
	call	e
	jmp	.L877
.L860:
	mov	eax, DWORD PTR -1068[rbp]
	add	DWORD PTR -1136[rbp], eax
	jmp	.L814
.L811:
	cmp	DWORD PTR -1120[rbp], 0
	je	.L861
	lea	rdi, .LC68[rip]
	call	e
	jmp	.L877
.L861:
	cmp	DWORD PTR -1164[rbp], 0
	je	.L863
	mov	eax, 1
	jmp	.L877
.L863:
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L864
	lea	rdi, .LC76[rip]
	call	e
	jmp	.L877
.L864:
	cmp	DWORD PTR -1108[rbp], 0
	sete	al
	movzx	ecx, al
	mov	esi, DWORD PTR -1136[rbp]
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, -1140[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	mov	edx, 16384
	mov	rdi, rax
	call	stbi_zlib_decode_malloc_guesssize_headerflag
	mov	rdx, QWORD PTR -1160[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L865
	mov	eax, 0
	jmp	.L877
.L865:
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -1160[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 8[rax]
	add	eax, 1
	cmp	DWORD PTR -1168[rbp], eax
	jne	.L866
	cmp	DWORD PTR -1168[rbp], 3
	je	.L866
	cmp	BYTE PTR -1142[rbp], 0
	je	.L867
.L866:
	cmp	BYTE PTR -1141[rbp], 0
	je	.L868
.L867:
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 8[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 12[rax], edx
	jmp	.L869
.L868:
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 12[rax], edx
.L869:
	mov	rax, QWORD PTR -1088[rbp]
	mov	ecx, DWORD PTR 12[rax]
	mov	edx, DWORD PTR -1140[rbp]
	mov	rax, QWORD PTR -1160[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	edi, DWORD PTR -1112[rbp]
	mov	rax, QWORD PTR -1160[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	create_png_image
	test	eax, eax
	jne	.L870
	mov	eax, 0
	jmp	.L877
.L870:
	cmp	BYTE PTR -1141[rbp], 0
	je	.L871
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, DWORD PTR 12[rax]
	lea	rcx, -1059[rbp]
	mov	rax, QWORD PTR -1160[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	compute_transparency
	test	eax, eax
	jne	.L871
	mov	eax, 0
	jmp	.L877
.L871:
	cmp	DWORD PTR -1108[rbp], 0
	je	.L872
	mov	rax, QWORD PTR -1088[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	eax, 2
	jle	.L872
	mov	rax, QWORD PTR -1160[rbp]
	mov	rdi, rax
	call	stbi_de_iphone
.L872:
	cmp	BYTE PTR -1142[rbp], 0
	je	.L873
	movzx	edx, BYTE PTR -1142[rbp]
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 8[rax], edx
	movzx	edx, BYTE PTR -1142[rbp]
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR 12[rax], edx
	cmp	DWORD PTR -1168[rbp], 2
	jle	.L874
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, DWORD PTR -1168[rbp]
	mov	DWORD PTR 12[rax], edx
.L874:
	mov	rax, QWORD PTR -1088[rbp]
	mov	ecx, DWORD PTR 12[rax]
	mov	edx, DWORD PTR -1124[rbp]
	lea	rsi, -1056[rbp]
	mov	rax, QWORD PTR -1160[rbp]
	mov	rdi, rax
	call	expand_palette
	test	eax, eax
	jne	.L873
	mov	eax, 0
	jmp	.L877
.L873:
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -1160[rbp]
	mov	QWORD PTR 16[rax], 0
	mov	eax, 1
	jmp	.L877
.L808:
	cmp	DWORD PTR -1120[rbp], 0
	je	.L875
	lea	rdi, .LC68[rip]
	call	e
	jmp	.L877
.L875:
	mov	eax, DWORD PTR -1064[rbp]
	and	eax, 536870912
	test	eax, eax
	jne	.L876
	mov	eax, DWORD PTR -1064[rbp]
	shr	eax, 24
	mov	BYTE PTR invalid_chunk.1[rip], al
	mov	eax, DWORD PTR -1064[rbp]
	shr	eax, 16
	mov	BYTE PTR invalid_chunk.1[rip+1], al
	mov	eax, DWORD PTR -1064[rbp]
	shr	eax, 8
	mov	BYTE PTR invalid_chunk.1[rip+2], al
	mov	eax, DWORD PTR -1064[rbp]
	mov	BYTE PTR invalid_chunk.1[rip+3], al
	lea	rdi, invalid_chunk.1[rip]
	call	e
	jmp	.L877
.L876:
	mov	eax, DWORD PTR -1068[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	jmp	.L814
.L879:
	nop
.L814:
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdi, rax
	call	get32
	jmp	.L806
.L877:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L878
	call	__stack_chk_fail@PLT
.L878:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE106:
	.size	parse_png_file, .-parse_png_file
	.type	do_png, @function
do_png:
.LFB107:
	.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	QWORD PTR -8[rbp], 0
	cmp	DWORD PTR -52[rbp], 0
	js	.L881
	cmp	DWORD PTR -52[rbp], 4
	jle	.L882
.L881:
	lea	rdi, .LC37[rip]
	call	e
	mov	eax, 0
	jmp	.L883
.L882:
	mov	edx, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	parse_png_file
	test	eax, eax
	je	.L884
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], 0
	cmp	DWORD PTR -52[rbp], 0
	je	.L885
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 12[rax]
	cmp	DWORD PTR -52[rbp], eax
	je	.L885
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, DWORD PTR 12[rax]
	mov	edx, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	convert_format
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 12[rax], edx
	cmp	QWORD PTR -8[rbp], 0
	jne	.L885
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L883
.L885:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	cmp	QWORD PTR -48[rbp], 0
	je	.L884
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
.L884:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
.L883:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE107:
	.size	do_png, .-do_png
	.type	stbi_png_load, @function
stbi_png_load:
.LFB108:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	DWORD PTR -84[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	edi, DWORD PTR -84[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	lea	rax, -48[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	do_png
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L888
	call	__stack_chk_fail@PLT
.L888:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE108:
	.size	stbi_png_load, .-stbi_png_load
	.type	stbi_png_test, @function
stbi_png_test:
.LFB109:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	check_png_header
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE109:
	.size	stbi_png_test, .-stbi_png_test
	.type	stbi_png_info_raw, @function
stbi_png_info_raw:
.LFB110:
	.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	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 0
	mov	esi, 2
	mov	rdi, rax
	call	parse_png_file
	test	eax, eax
	jne	.L892
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L893
.L892:
	cmp	QWORD PTR -16[rbp], 0
	je	.L894
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
.L894:
	cmp	QWORD PTR -24[rbp], 0
	je	.L895
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
.L895:
	cmp	QWORD PTR -32[rbp], 0
	je	.L896
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
.L896:
	mov	eax, 1
.L893:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE110:
	.size	stbi_png_info_raw, .-stbi_png_info_raw
	.type	stbi_png_info, @function
stbi_png_info:
.LFB111:
	.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	QWORD PTR -80[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rcx, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	stbi_png_info_raw
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L899
	call	__stack_chk_fail@PLT
.L899:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE111:
	.size	stbi_png_info, .-stbi_png_info
	.type	bmp_test, @function
bmp_test:
.LFB112:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 66
	je	.L901
	mov	eax, 0
	jmp	.L902
.L901:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 77
	je	.L903
	mov	eax, 0
	jmp	.L902
.L903:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 12
	je	.L904
	cmp	DWORD PTR -4[rbp], 40
	je	.L904
	cmp	DWORD PTR -4[rbp], 56
	je	.L904
	cmp	DWORD PTR -4[rbp], 108
	jne	.L905
.L904:
	mov	eax, 1
	jmp	.L902
.L905:
	mov	eax, 0
.L902:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE112:
	.size	bmp_test, .-bmp_test
	.type	stbi_bmp_test, @function
stbi_bmp_test:
.LFB113:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	bmp_test
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE113:
	.size	stbi_bmp_test, .-stbi_bmp_test
	.type	high_bit, @function
high_bit:
.LFB114:
	.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 -4[rbp], 0
	cmp	DWORD PTR -20[rbp], 0
	jne	.L909
	mov	eax, -1
	jmp	.L910
.L909:
	cmp	DWORD PTR -20[rbp], 65535
	jbe	.L911
	add	DWORD PTR -4[rbp], 16
	shr	DWORD PTR -20[rbp], 16
.L911:
	cmp	DWORD PTR -20[rbp], 255
	jbe	.L912
	add	DWORD PTR -4[rbp], 8
	shr	DWORD PTR -20[rbp], 8
.L912:
	cmp	DWORD PTR -20[rbp], 15
	jbe	.L913
	add	DWORD PTR -4[rbp], 4
	shr	DWORD PTR -20[rbp], 4
.L913:
	cmp	DWORD PTR -20[rbp], 3
	jbe	.L914
	add	DWORD PTR -4[rbp], 2
	shr	DWORD PTR -20[rbp], 2
.L914:
	cmp	DWORD PTR -20[rbp], 1
	jbe	.L915
	add	DWORD PTR -4[rbp], 1
	shr	DWORD PTR -20[rbp]
.L915:
	mov	eax, DWORD PTR -4[rbp]
.L910:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE114:
	.size	high_bit, .-high_bit
	.type	bitcount, @function
bitcount:
.LFB115:
	.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]
	and	eax, 1431655765
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax
	and	eax, 1431655765
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 858993459
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 2
	and	eax, 858993459
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	and	eax, 252645135
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 8
	add	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 16
	add	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE115:
	.size	bitcount, .-bitcount
	.type	shiftsigned, @function
shiftsigned:
.LFB116:
	.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
	cmp	DWORD PTR -24[rbp], 0
	jns	.L919
	mov	eax, DWORD PTR -24[rbp]
	neg	eax
	mov	ecx, eax
	sal	DWORD PTR -20[rbp], cl
	jmp	.L920
.L919:
	mov	eax, DWORD PTR -24[rbp]
	mov	ecx, eax
	sar	DWORD PTR -20[rbp], cl
.L920:
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -4[rbp], eax
	jmp	.L921
.L922:
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	add	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	add	DWORD PTR -4[rbp], eax
.L921:
	cmp	DWORD PTR -4[rbp], 7
	jle	.L922
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE116:
	.size	shiftsigned, .-shiftsigned
	.section	.rodata
.LC77:
	.string	"not BMP"
.LC78:
	.string	"unknown BMP"
.LC79:
	.string	"bad BMP"
.LC80:
	.string	"monochrome"
.LC81:
	.string	"BMP RLE"
.LC82:
	.string	"hsz == 108"
.LC83:
	.string	"invalid"
.LC84:
	.string	"bad bpp"
.LC85:
	.string	"bad masks"
	.text
	.type	bmp_load, @function
bmp_load:
.LFB117:
	.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, 1256
	.cfi_offset 3, -24
	mov	QWORD PTR -1224[rbp], rdi
	mov	QWORD PTR -1232[rbp], rsi
	mov	QWORD PTR -1240[rbp], rdx
	mov	QWORD PTR -1248[rbp], rcx
	mov	DWORD PTR -1252[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -1208[rbp], 0
	mov	DWORD PTR -1204[rbp], 0
	mov	DWORD PTR -1200[rbp], 0
	mov	DWORD PTR -1196[rbp], 0
	mov	DWORD PTR -1120[rbp], 0
	mov	DWORD PTR -1192[rbp], 0
	mov	DWORD PTR -1116[rbp], 0
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 66
	jne	.L925
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 77
	je	.L926
.L925:
	lea	rdi, .LC77[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L926:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get16le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get16le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1112[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1108[rbp], eax
	cmp	DWORD PTR -1108[rbp], 12
	je	.L928
	cmp	DWORD PTR -1108[rbp], 40
	je	.L928
	cmp	DWORD PTR -1108[rbp], 56
	je	.L928
	cmp	DWORD PTR -1108[rbp], 108
	je	.L928
	lea	rdi, .LC78[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L928:
	cmp	DWORD PTR -1108[rbp], 12
	jne	.L929
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get16le
	mov	edx, eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get16le
	mov	edx, eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L930
.L929:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rdx, QWORD PTR -1224[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rdx, QWORD PTR -1224[rbp]
	mov	DWORD PTR 4[rdx], eax
.L930:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get16le
	cmp	eax, 1
	je	.L931
	lea	rdi, .LC79[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L931:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -1104[rbp], eax
	cmp	DWORD PTR -1104[rbp], 1
	jne	.L932
	lea	rdi, .LC80[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L932:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	setg	al
	movzx	eax, al
	mov	DWORD PTR -1100[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdq
	xor	eax, edx
	sub	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	DWORD PTR 4[rax], edx
	cmp	DWORD PTR -1108[rbp], 12
	jne	.L933
	cmp	DWORD PTR -1104[rbp], 23
	jg	.L934
	mov	eax, DWORD PTR -1112[rbp]
	sub	eax, 38
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -1192[rbp], eax
	jmp	.L934
.L933:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1116[rbp], eax
	cmp	DWORD PTR -1116[rbp], 1
	je	.L935
	cmp	DWORD PTR -1116[rbp], 2
	jne	.L936
.L935:
	lea	rdi, .LC81[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L936:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	cmp	DWORD PTR -1108[rbp], 40
	je	.L937
	cmp	DWORD PTR -1108[rbp], 56
	jne	.L938
.L937:
	cmp	DWORD PTR -1108[rbp], 56
	jne	.L939
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
.L939:
	cmp	DWORD PTR -1104[rbp], 16
	je	.L940
	cmp	DWORD PTR -1104[rbp], 32
	jne	.L1010
.L940:
	mov	DWORD PTR -1200[rbp], 0
	mov	eax, DWORD PTR -1200[rbp]
	mov	DWORD PTR -1204[rbp], eax
	mov	eax, DWORD PTR -1204[rbp]
	mov	DWORD PTR -1208[rbp], eax
	cmp	DWORD PTR -1116[rbp], 0
	jne	.L942
	cmp	DWORD PTR -1104[rbp], 32
	jne	.L943
	mov	DWORD PTR -1208[rbp], 16711680
	mov	DWORD PTR -1204[rbp], 65280
	mov	DWORD PTR -1200[rbp], 255
	mov	DWORD PTR -1196[rbp], -16777216
	mov	DWORD PTR -1120[rbp], 1
	jmp	.L1010
.L943:
	mov	DWORD PTR -1208[rbp], 31744
	mov	DWORD PTR -1204[rbp], 992
	mov	DWORD PTR -1200[rbp], 31
	jmp	.L1010
.L942:
	cmp	DWORD PTR -1116[rbp], 3
	jne	.L944
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1208[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1204[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1200[rbp], eax
	mov	eax, DWORD PTR -1208[rbp]
	cmp	eax, DWORD PTR -1204[rbp]
	jne	.L1010
	mov	eax, DWORD PTR -1204[rbp]
	cmp	eax, DWORD PTR -1200[rbp]
	jne	.L1010
	lea	rdi, .LC79[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L944:
	lea	rdi, .LC79[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L938:
	cmp	DWORD PTR -1108[rbp], 108
	je	.L946
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 3022
	lea	rsi, .LC4[rip]
	lea	rdi, .LC82[rip]
	call	__assert_fail@PLT
.L946:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1208[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1204[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1200[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1196[rbp], eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -1188[rbp], 0
	jmp	.L947
.L948:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
	add	DWORD PTR -1188[rbp], 1
.L947:
	cmp	DWORD PTR -1188[rbp], 11
	jle	.L948
	jmp	.L945
.L1010:
	nop
.L945:
	cmp	DWORD PTR -1104[rbp], 15
	jg	.L934
	mov	eax, DWORD PTR -1112[rbp]
	sub	eax, 14
	sub	eax, DWORD PTR -1108[rbp]
	sar	eax, 2
	mov	DWORD PTR -1192[rbp], eax
.L934:
	cmp	DWORD PTR -1196[rbp], 0
	je	.L949
	mov	edx, 4
	jmp	.L950
.L949:
	mov	edx, 3
.L950:
	mov	rax, QWORD PTR -1224[rbp]
	mov	DWORD PTR 8[rax], edx
	cmp	DWORD PTR -1252[rbp], 0
	je	.L951
	cmp	DWORD PTR -1252[rbp], 2
	jle	.L951
	mov	eax, DWORD PTR -1252[rbp]
	mov	DWORD PTR -1176[rbp], eax
	jmp	.L952
.L951:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -1176[rbp], eax
.L952:
	mov	rax, QWORD PTR -1224[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -1176[rbp]
	imul	edx, eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -1080[rbp], rax
	cmp	QWORD PTR -1080[rbp], 0
	jne	.L953
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L953:
	cmp	DWORD PTR -1104[rbp], 15
	jg	.L954
	mov	DWORD PTR -1172[rbp], 0
	cmp	DWORD PTR -1192[rbp], 0
	je	.L955
	cmp	DWORD PTR -1192[rbp], 256
	jle	.L956
.L955:
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC83[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L956:
	mov	DWORD PTR -1188[rbp], 0
	jmp	.L957
.L959:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, DWORD PTR -1188[rbp]
	movsx	rdx, edx
	mov	BYTE PTR -1054[rbp+rdx*4], al
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, DWORD PTR -1188[rbp]
	movsx	rdx, edx
	mov	BYTE PTR -1055[rbp+rdx*4], al
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, DWORD PTR -1188[rbp]
	movsx	rdx, edx
	mov	BYTE PTR -1056[rbp+rdx*4], al
	cmp	DWORD PTR -1108[rbp], 12
	je	.L958
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8
.L958:
	mov	eax, DWORD PTR -1188[rbp]
	cdqe
	mov	BYTE PTR -1053[rbp+rax*4], -1
	add	DWORD PTR -1188[rbp], 1
.L957:
	mov	eax, DWORD PTR -1188[rbp]
	cmp	eax, DWORD PTR -1192[rbp]
	jl	.L959
	mov	eax, DWORD PTR -1112[rbp]
	sub	eax, 14
	sub	eax, DWORD PTR -1108[rbp]
	cmp	DWORD PTR -1108[rbp], 12
	jne	.L960
	mov	edx, 3
	jmp	.L961
.L960:
	mov	edx, 4
.L961:
	mov	ecx, edx
	imul	ecx, DWORD PTR -1192[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	cmp	DWORD PTR -1104[rbp], 4
	jne	.L962
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, 1
	shr	eax
	mov	DWORD PTR -1180[rbp], eax
	jmp	.L963
.L962:
	cmp	DWORD PTR -1104[rbp], 8
	jne	.L964
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1180[rbp], eax
	jmp	.L963
.L964:
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC84[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L963:
	mov	eax, DWORD PTR -1180[rbp]
	neg	eax
	and	eax, 3
	mov	DWORD PTR -1096[rbp], eax
	mov	DWORD PTR -1184[rbp], 0
	jmp	.L965
.L975:
	mov	DWORD PTR -1188[rbp], 0
	jmp	.L966
.L974:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1168[rbp], eax
	mov	DWORD PTR -1164[rbp], 0
	cmp	DWORD PTR -1104[rbp], 4
	jne	.L967
	mov	eax, DWORD PTR -1168[rbp]
	and	eax, 15
	mov	DWORD PTR -1164[rbp], eax
	sar	DWORD PTR -1168[rbp], 4
.L967:
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -1168[rbp]
	cdqe
	movzx	eax, BYTE PTR -1056[rbp+rax*4]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -1168[rbp]
	cdqe
	movzx	eax, BYTE PTR -1055[rbp+rax*4]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -1168[rbp]
	cdqe
	movzx	eax, BYTE PTR -1054[rbp+rax*4]
	mov	BYTE PTR [rdx], al
	cmp	DWORD PTR -1176[rbp], 4
	jne	.L968
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
.L968:
	mov	eax, DWORD PTR -1188[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	je	.L1011
	cmp	DWORD PTR -1104[rbp], 8
	jne	.L971
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8
	jmp	.L972
.L971:
	mov	eax, DWORD PTR -1164[rbp]
.L972:
	mov	DWORD PTR -1168[rbp], eax
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -1168[rbp]
	cdqe
	movzx	eax, BYTE PTR -1056[rbp+rax*4]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -1168[rbp]
	cdqe
	movzx	eax, BYTE PTR -1055[rbp+rax*4]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -1168[rbp]
	cdqe
	movzx	eax, BYTE PTR -1054[rbp+rax*4]
	mov	BYTE PTR [rdx], al
	cmp	DWORD PTR -1176[rbp], 4
	jne	.L973
	mov	eax, DWORD PTR -1172[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1172[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
.L973:
	add	DWORD PTR -1188[rbp], 2
.L966:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1188[rbp], eax
	jl	.L974
	jmp	.L970
.L1011:
	nop
.L970:
	mov	edx, DWORD PTR -1096[rbp]
	mov	rax, QWORD PTR -1224[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	add	DWORD PTR -1184[rbp], 1
.L965:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1184[rbp], eax
	jl	.L975
	jmp	.L976
.L954:
	mov	DWORD PTR -1160[rbp], 0
	mov	DWORD PTR -1156[rbp], 0
	mov	DWORD PTR -1152[rbp], 0
	mov	DWORD PTR -1148[rbp], 0
	mov	DWORD PTR -1144[rbp], 0
	mov	DWORD PTR -1140[rbp], 0
	mov	DWORD PTR -1136[rbp], 0
	mov	DWORD PTR -1132[rbp], 0
	mov	DWORD PTR -1128[rbp], 0
	mov	DWORD PTR -1124[rbp], 0
	mov	eax, DWORD PTR -1112[rbp]
	sub	eax, 14
	sub	eax, DWORD PTR -1108[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	cmp	DWORD PTR -1104[rbp], 24
	jne	.L977
	mov	rax, QWORD PTR -1224[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -1180[rbp], eax
	jmp	.L978
.L977:
	cmp	DWORD PTR -1104[rbp], 16
	jne	.L979
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, eax
	mov	DWORD PTR -1180[rbp], eax
	jmp	.L978
.L979:
	mov	DWORD PTR -1180[rbp], 0
.L978:
	mov	eax, DWORD PTR -1180[rbp]
	neg	eax
	and	eax, 3
	mov	DWORD PTR -1096[rbp], eax
	cmp	DWORD PTR -1104[rbp], 24
	jne	.L980
	mov	DWORD PTR -1124[rbp], 1
	jmp	.L981
.L980:
	cmp	DWORD PTR -1104[rbp], 32
	jne	.L981
	cmp	DWORD PTR -1200[rbp], 255
	jne	.L981
	cmp	DWORD PTR -1204[rbp], 65280
	jne	.L981
	cmp	DWORD PTR -1208[rbp], 16711680
	jne	.L981
	cmp	DWORD PTR -1196[rbp], -16777216
	jne	.L981
	mov	DWORD PTR -1124[rbp], 2
.L981:
	cmp	DWORD PTR -1124[rbp], 0
	jne	.L982
	cmp	DWORD PTR -1208[rbp], 0
	je	.L983
	cmp	DWORD PTR -1204[rbp], 0
	je	.L983
	cmp	DWORD PTR -1200[rbp], 0
	jne	.L984
.L983:
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC85[rip]
	call	e
	mov	eax, 0
	jmp	.L1008
.L984:
	mov	eax, DWORD PTR -1208[rbp]
	mov	edi, eax
	call	high_bit
	sub	eax, 7
	mov	DWORD PTR -1160[rbp], eax
	mov	eax, DWORD PTR -1208[rbp]
	mov	edi, eax
	call	bitcount
	mov	DWORD PTR -1144[rbp], eax
	mov	eax, DWORD PTR -1204[rbp]
	mov	edi, eax
	call	high_bit
	sub	eax, 7
	mov	DWORD PTR -1156[rbp], eax
	mov	eax, DWORD PTR -1208[rbp]
	mov	edi, eax
	call	bitcount
	mov	DWORD PTR -1140[rbp], eax
	mov	eax, DWORD PTR -1200[rbp]
	mov	edi, eax
	call	high_bit
	sub	eax, 7
	mov	DWORD PTR -1152[rbp], eax
	mov	eax, DWORD PTR -1208[rbp]
	mov	edi, eax
	call	bitcount
	mov	DWORD PTR -1136[rbp], eax
	mov	eax, DWORD PTR -1196[rbp]
	mov	edi, eax
	call	high_bit
	sub	eax, 7
	mov	DWORD PTR -1148[rbp], eax
	mov	eax, DWORD PTR -1208[rbp]
	mov	edi, eax
	call	bitcount
	mov	DWORD PTR -1132[rbp], eax
.L982:
	mov	DWORD PTR -1184[rbp], 0
	jmp	.L985
.L1000:
	cmp	DWORD PTR -1124[rbp], 0
	je	.L986
	mov	DWORD PTR -1188[rbp], 0
	jmp	.L987
.L991:
	mov	eax, DWORD PTR -1128[rbp]
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -1080[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR [rbx], al
	mov	eax, DWORD PTR -1128[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -1080[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR [rbx], al
	mov	eax, DWORD PTR -1128[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR [rbx], al
	add	DWORD PTR -1128[rbp], 3
	cmp	DWORD PTR -1124[rbp], 2
	jne	.L988
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get8
	jmp	.L989
.L988:
	mov	eax, 255
.L989:
	mov	DWORD PTR -1084[rbp], eax
	cmp	DWORD PTR -1176[rbp], 4
	jne	.L990
	mov	eax, DWORD PTR -1128[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1128[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -1084[rbp]
	mov	BYTE PTR [rax], dl
.L990:
	add	DWORD PTR -1188[rbp], 1
.L987:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1188[rbp], eax
	jl	.L991
	jmp	.L992
.L986:
	mov	DWORD PTR -1188[rbp], 0
	jmp	.L993
.L999:
	cmp	DWORD PTR -1104[rbp], 16
	jne	.L994
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get16le
	jmp	.L995
.L994:
	mov	rax, QWORD PTR -1224[rbp]
	mov	rdi, rax
	call	get32le
.L995:
	mov	DWORD PTR -1092[rbp], eax
	mov	eax, DWORD PTR -1092[rbp]
	and	eax, DWORD PTR -1208[rbp]
	mov	ecx, eax
	mov	edx, DWORD PTR -1144[rbp]
	mov	eax, DWORD PTR -1160[rbp]
	mov	esi, eax
	mov	edi, ecx
	call	shiftsigned
	mov	ecx, eax
	mov	eax, DWORD PTR -1128[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1128[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -1092[rbp]
	and	eax, DWORD PTR -1204[rbp]
	mov	ecx, eax
	mov	edx, DWORD PTR -1140[rbp]
	mov	eax, DWORD PTR -1156[rbp]
	mov	esi, eax
	mov	edi, ecx
	call	shiftsigned
	mov	ecx, eax
	mov	eax, DWORD PTR -1128[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1128[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -1092[rbp]
	and	eax, DWORD PTR -1200[rbp]
	mov	ecx, eax
	mov	edx, DWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1152[rbp]
	mov	esi, eax
	mov	edi, ecx
	call	shiftsigned
	mov	ecx, eax
	mov	eax, DWORD PTR -1128[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1128[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	cmp	DWORD PTR -1196[rbp], 0
	je	.L996
	mov	eax, DWORD PTR -1092[rbp]
	and	eax, DWORD PTR -1196[rbp]
	mov	ecx, eax
	mov	edx, DWORD PTR -1132[rbp]
	mov	eax, DWORD PTR -1148[rbp]
	mov	esi, eax
	mov	edi, ecx
	call	shiftsigned
	jmp	.L997
.L996:
	mov	eax, 255
.L997:
	mov	DWORD PTR -1088[rbp], eax
	cmp	DWORD PTR -1176[rbp], 4
	jne	.L998
	mov	eax, DWORD PTR -1128[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1128[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -1088[rbp]
	mov	BYTE PTR [rax], dl
.L998:
	add	DWORD PTR -1188[rbp], 1
.L993:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1188[rbp], eax
	jl	.L999
.L992:
	mov	edx, DWORD PTR -1096[rbp]
	mov	rax, QWORD PTR -1224[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	add	DWORD PTR -1184[rbp], 1
.L985:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1184[rbp], eax
	jl	.L1000
.L976:
	cmp	DWORD PTR -1100[rbp], 0
	je	.L1001
	mov	DWORD PTR -1184[rbp], 0
	jmp	.L1002
.L1005:
	mov	rax, QWORD PTR -1224[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -1184[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -1176[rbp]
	imul	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -1184[rbp]
	sub	eax, edx
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	imul	edx, eax
	mov	eax, DWORD PTR -1176[rbp]
	imul	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, rdx
	mov	QWORD PTR -1064[rbp], rax
	mov	DWORD PTR -1188[rbp], 0
	jmp	.L1003
.L1004:
	mov	eax, DWORD PTR -1188[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1209[rbp], al
	mov	eax, DWORD PTR -1188[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1064[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -1188[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -1072[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -1188[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1064[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -1209[rbp]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -1188[rbp], 1
.L1003:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	imul	eax, DWORD PTR -1176[rbp]
	cmp	DWORD PTR -1188[rbp], eax
	jl	.L1004
	add	DWORD PTR -1184[rbp], 1
.L1002:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	sar	eax
	cmp	DWORD PTR -1184[rbp], eax
	jl	.L1005
.L1001:
	cmp	DWORD PTR -1252[rbp], 0
	je	.L1006
	mov	eax, DWORD PTR -1252[rbp]
	cmp	eax, DWORD PTR -1176[rbp]
	je	.L1006
	mov	rax, QWORD PTR -1224[rbp]
	mov	edi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1224[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR -1252[rbp]
	mov	esi, DWORD PTR -1176[rbp]
	mov	rax, QWORD PTR -1080[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	convert_format
	mov	QWORD PTR -1080[rbp], rax
	cmp	QWORD PTR -1080[rbp], 0
	jne	.L1006
	mov	rax, QWORD PTR -1080[rbp]
	jmp	.L1008
.L1006:
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1232[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1240[rbp]
	mov	DWORD PTR [rax], edx
	cmp	QWORD PTR -1248[rbp], 0
	je	.L1007
	mov	rax, QWORD PTR -1224[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -1248[rbp]
	mov	DWORD PTR [rax], edx
.L1007:
	mov	rax, QWORD PTR -1080[rbp]
.L1008:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1009
	call	__stack_chk_fail@PLT
.L1009:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE117:
	.size	bmp_load, .-bmp_load
	.type	stbi_bmp_load, @function
stbi_bmp_load:
.LFB118:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	DWORD PTR -36[rbp], r8d
	mov	edi, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	bmp_load
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE118:
	.size	stbi_bmp_load, .-stbi_bmp_load
	.type	tga_info, @function
tga_info:
.LFB119:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 1
	jle	.L1015
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1016
.L1015:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 1
	je	.L1017
	cmp	DWORD PTR -16[rbp], 2
	je	.L1017
	cmp	DWORD PTR -16[rbp], 3
	je	.L1017
	cmp	DWORD PTR -16[rbp], 9
	je	.L1017
	cmp	DWORD PTR -16[rbp], 10
	je	.L1017
	cmp	DWORD PTR -16[rbp], 11
	je	.L1017
	mov	eax, 0
	jmp	.L1016
.L1017:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 9
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jg	.L1018
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1016
.L1018:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	jg	.L1019
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1016
.L1019:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 8
	je	.L1020
	cmp	DWORD PTR -16[rbp], 16
	je	.L1020
	cmp	DWORD PTR -16[rbp], 24
	je	.L1020
	cmp	DWORD PTR -16[rbp], 32
	je	.L1020
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1016
.L1020:
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	QWORD PTR -32[rbp], 0
	je	.L1021
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
.L1021:
	cmp	QWORD PTR -40[rbp], 0
	je	.L1022
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
.L1022:
	cmp	QWORD PTR -48[rbp], 0
	je	.L1023
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
.L1023:
	mov	eax, 1
.L1016:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE119:
	.size	tga_info, .-tga_info
	.type	stbi_tga_info, @function
stbi_tga_info:
.LFB120:
	.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	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tga_info
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE120:
	.size	stbi_tga_info, .-stbi_tga_info
	.type	tga_test, @function
tga_test:
.LFB121:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1
	jle	.L1027
	mov	eax, 0
	jmp	.L1028
.L1027:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1
	je	.L1029
	cmp	DWORD PTR -4[rbp], 2
	je	.L1029
	cmp	DWORD PTR -4[rbp], 3
	je	.L1029
	cmp	DWORD PTR -4[rbp], 9
	je	.L1029
	cmp	DWORD PTR -4[rbp], 10
	je	.L1029
	cmp	DWORD PTR -4[rbp], 11
	je	.L1029
	mov	eax, 0
	jmp	.L1028
.L1029:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	test	eax, eax
	jg	.L1030
	mov	eax, 0
	jmp	.L1028
.L1030:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	test	eax, eax
	jg	.L1031
	mov	eax, 0
	jmp	.L1028
.L1031:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 8
	je	.L1032
	cmp	DWORD PTR -4[rbp], 16
	je	.L1032
	cmp	DWORD PTR -4[rbp], 24
	je	.L1032
	cmp	DWORD PTR -4[rbp], 32
	je	.L1032
	mov	eax, 0
	jmp	.L1028
.L1032:
	mov	eax, 1
.L1028:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE121:
	.size	tga_test, .-tga_test
	.type	stbi_tga_test, @function
stbi_tga_test:
.LFB122:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tga_test
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE122:
	.size	stbi_tga_test, .-stbi_tga_test
	.section	.rodata
.LC86:
	.string	"bad palette"
	.text
	.type	tga_load, @function
tga_load:
.LFB123:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 184
	.cfi_offset 3, -24
	mov	QWORD PTR -152[rbp], rdi
	mov	QWORD PTR -160[rbp], rsi
	mov	QWORD PTR -168[rbp], rdx
	mov	QWORD PTR -176[rbp], rcx
	mov	DWORD PTR -180[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -88[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -136[rbp], eax
	mov	DWORD PTR -132[rbp], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -84[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -80[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -72[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -64[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -60[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -128[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -56[rbp], eax
	mov	QWORD PTR -48[rbp], 0
	mov	DWORD PTR -116[rbp], 0
	mov	DWORD PTR -112[rbp], 0
	mov	DWORD PTR -108[rbp], 1
	cmp	DWORD PTR -136[rbp], 7
	jle	.L1036
	sub	DWORD PTR -136[rbp], 8
	mov	DWORD PTR -132[rbp], 1
.L1036:
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 32
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	DWORD PTR -56[rbp], eax
	cmp	DWORD PTR -64[rbp], 0
	jle	.L1037
	cmp	DWORD PTR -60[rbp], 0
	jle	.L1037
	cmp	DWORD PTR -136[rbp], 0
	jle	.L1037
	cmp	DWORD PTR -136[rbp], 3
	jg	.L1037
	cmp	DWORD PTR -128[rbp], 8
	je	.L1038
	cmp	DWORD PTR -128[rbp], 16
	je	.L1038
	cmp	DWORD PTR -128[rbp], 24
	je	.L1038
	cmp	DWORD PTR -128[rbp], 32
	je	.L1038
.L1037:
	mov	eax, 0
	jmp	.L1076
.L1038:
	cmp	DWORD PTR -88[rbp], 0
	je	.L1040
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -128[rbp], eax
.L1040:
	mov	rax, QWORD PTR -160[rbp]
	mov	edx, DWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	edx, DWORD PTR -60[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -180[rbp], 0
	jle	.L1041
	cmp	DWORD PTR -180[rbp], 4
	jle	.L1042
.L1041:
	mov	eax, DWORD PTR -128[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	DWORD PTR -180[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, DWORD PTR -180[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L1043
.L1042:
	mov	eax, DWORD PTR -128[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -176[rbp]
	mov	DWORD PTR [rax], edx
.L1043:
	mov	eax, DWORD PTR -64[rbp]
	imul	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -180[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -40[rbp], 0
	jne	.L1044
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L1076
.L1044:
	mov	edx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	cmp	DWORD PTR -88[rbp], 0
	je	.L1045
	mov	edx, DWORD PTR -84[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -76[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -48[rbp], rax
	cmp	QWORD PTR -48[rbp], 0
	jne	.L1046
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L1076
.L1046:
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -76[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	edx, eax
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	test	eax, eax
	jne	.L1045
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC86[rip]
	call	e
	mov	eax, 0
	jmp	.L1076
.L1045:
	mov	BYTE PTR -25[rbp], 0
	movzx	eax, BYTE PTR -25[rbp]
	mov	BYTE PTR -26[rbp], al
	movzx	eax, BYTE PTR -26[rbp]
	mov	BYTE PTR -27[rbp], al
	movzx	eax, BYTE PTR -27[rbp]
	mov	BYTE PTR -28[rbp], al
	mov	DWORD PTR -124[rbp], 0
	jmp	.L1047
.L1069:
	cmp	DWORD PTR -132[rbp], 0
	je	.L1048
	cmp	DWORD PTR -116[rbp], 0
	jne	.L1049
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 127
	add	eax, 1
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	sar	eax, 7
	mov	DWORD PTR -112[rbp], eax
	mov	DWORD PTR -108[rbp], 1
	jmp	.L1050
.L1049:
	cmp	DWORD PTR -112[rbp], 0
	jne	.L1050
	mov	DWORD PTR -108[rbp], 1
	jmp	.L1050
.L1048:
	mov	DWORD PTR -108[rbp], 1
.L1050:
	cmp	DWORD PTR -108[rbp], 0
	je	.L1051
	cmp	DWORD PTR -88[rbp], 0
	je	.L1052
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	movzx	eax, al
	mov	DWORD PTR -104[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jl	.L1053
	mov	DWORD PTR -104[rbp], 0
.L1053:
	mov	eax, DWORD PTR -128[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR -104[rbp]
	imul	eax, edx
	mov	DWORD PTR -104[rbp], eax
	mov	DWORD PTR -120[rbp], 0
	jmp	.L1054
.L1055:
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -120[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	mov	BYTE PTR -32[rbp+rax], dl
	add	DWORD PTR -120[rbp], 1
.L1054:
	mov	eax, DWORD PTR -120[rbp]
	sal	eax, 3
	cmp	DWORD PTR -128[rbp], eax
	jg	.L1055
	jmp	.L1056
.L1052:
	mov	DWORD PTR -120[rbp], 0
	jmp	.L1057
.L1058:
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	get8u
	mov	edx, DWORD PTR -120[rbp]
	movsx	rdx, edx
	mov	BYTE PTR -32[rbp+rdx], al
	add	DWORD PTR -120[rbp], 1
.L1057:
	mov	eax, DWORD PTR -120[rbp]
	sal	eax, 3
	cmp	DWORD PTR -128[rbp], eax
	jg	.L1058
.L1056:
	cmp	DWORD PTR -128[rbp], 32
	je	.L1059
	cmp	DWORD PTR -128[rbp], 32
	jg	.L1060
	cmp	DWORD PTR -128[rbp], 24
	je	.L1061
	cmp	DWORD PTR -128[rbp], 24
	jg	.L1060
	cmp	DWORD PTR -128[rbp], 8
	je	.L1062
	cmp	DWORD PTR -128[rbp], 16
	je	.L1063
	jmp	.L1060
.L1062:
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -28[rbp], al
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -27[rbp], al
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -26[rbp], al
	mov	BYTE PTR -25[rbp], -1
	jmp	.L1060
.L1063:
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -28[rbp], al
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -27[rbp], al
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -26[rbp], al
	movzx	eax, BYTE PTR -31[rbp]
	mov	BYTE PTR -25[rbp], al
	jmp	.L1060
.L1061:
	movzx	eax, BYTE PTR -30[rbp]
	mov	BYTE PTR -28[rbp], al
	movzx	eax, BYTE PTR -31[rbp]
	mov	BYTE PTR -27[rbp], al
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -26[rbp], al
	mov	BYTE PTR -25[rbp], -1
	jmp	.L1060
.L1059:
	movzx	eax, BYTE PTR -30[rbp]
	mov	BYTE PTR -28[rbp], al
	movzx	eax, BYTE PTR -31[rbp]
	mov	BYTE PTR -27[rbp], al
	movzx	eax, BYTE PTR -32[rbp]
	mov	BYTE PTR -26[rbp], al
	movzx	eax, BYTE PTR -29[rbp]
	mov	BYTE PTR -25[rbp], al
	nop
.L1060:
	mov	DWORD PTR -108[rbp], 0
.L1051:
	cmp	DWORD PTR -180[rbp], 4
	je	.L1064
	cmp	DWORD PTR -180[rbp], 4
	jg	.L1065
	cmp	DWORD PTR -180[rbp], 3
	je	.L1066
	cmp	DWORD PTR -180[rbp], 3
	jg	.L1065
	cmp	DWORD PTR -180[rbp], 1
	je	.L1067
	cmp	DWORD PTR -180[rbp], 2
	je	.L1068
	jmp	.L1065
.L1067:
	movzx	eax, BYTE PTR -26[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -27[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -28[rbp]
	movzx	eax, al
	mov	esi, DWORD PTR -124[rbp]
	imul	esi, DWORD PTR -180[rbp]
	movsx	rdi, esi
	mov	rsi, QWORD PTR -40[rbp]
	lea	rbx, [rdi+rsi]
	mov	esi, ecx
	mov	edi, eax
	call	compute_y
	mov	BYTE PTR [rbx], al
	jmp	.L1065
.L1068:
	movzx	eax, BYTE PTR -26[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -27[rbp]
	movzx	ecx, al
	movzx	eax, BYTE PTR -28[rbp]
	movzx	eax, al
	mov	esi, DWORD PTR -124[rbp]
	imul	esi, DWORD PTR -180[rbp]
	movsx	rdi, esi
	mov	rsi, QWORD PTR -40[rbp]
	lea	rbx, [rdi+rsi]
	mov	esi, ecx
	mov	edi, eax
	call	compute_y
	mov	BYTE PTR [rbx], al
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -25[rbp]
	mov	BYTE PTR [rdx], al
	jmp	.L1065
.L1066:
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -28[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -27[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -26[rbp]
	mov	BYTE PTR [rdx], al
	jmp	.L1065
.L1064:
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -28[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -27[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -26[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -124[rbp]
	imul	eax, DWORD PTR -180[rbp]
	cdqe
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -25[rbp]
	mov	BYTE PTR [rdx], al
	nop
.L1065:
	sub	DWORD PTR -116[rbp], 1
	add	DWORD PTR -124[rbp], 1
.L1047:
	mov	eax, DWORD PTR -64[rbp]
	imul	eax, DWORD PTR -60[rbp]
	cmp	DWORD PTR -124[rbp], eax
	jl	.L1069
	cmp	DWORD PTR -56[rbp], 0
	je	.L1070
	mov	DWORD PTR -120[rbp], 0
	jmp	.L1071
.L1074:
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -64[rbp]
	mov	edx, DWORD PTR -180[rbp]
	imul	eax, edx
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	sub	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -64[rbp]
	mov	edx, DWORD PTR -180[rbp]
	imul	eax, edx
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	imul	eax, DWORD PTR -180[rbp]
	mov	DWORD PTR -124[rbp], eax
	jmp	.L1072
.L1073:
	mov	eax, DWORD PTR -100[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -137[rbp], al
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -100[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -137[rbp]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -100[rbp], 1
	add	DWORD PTR -96[rbp], 1
	sub	DWORD PTR -124[rbp], 1
.L1072:
	cmp	DWORD PTR -124[rbp], 0
	jg	.L1073
	add	DWORD PTR -120[rbp], 1
.L1071:
	mov	eax, DWORD PTR -120[rbp]
	add	eax, eax
	cmp	DWORD PTR -60[rbp], eax
	jg	.L1074
.L1070:
	cmp	QWORD PTR -48[rbp], 0
	je	.L1075
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	free@PLT
.L1075:
	mov	DWORD PTR -68[rbp], 0
	mov	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -84[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
.L1076:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1077
	call	__stack_chk_fail@PLT
.L1077:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE123:
	.size	tga_load, .-tga_load
	.type	stbi_tga_load, @function
stbi_tga_load:
.LFB124:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	DWORD PTR -36[rbp], r8d
	mov	edi, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	tga_load
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE124:
	.size	stbi_tga_load, .-stbi_tga_load
	.type	psd_test, @function
psd_test:
.LFB125:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get32
	cmp	eax, 943870035
	je	.L1081
	mov	eax, 0
	jmp	.L1082
.L1081:
	mov	eax, 1
.L1082:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE125:
	.size	psd_test, .-psd_test
	.type	stbi_psd_test, @function
stbi_psd_test:
.LFB126:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	psd_test
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE126:
	.size	stbi_psd_test, .-stbi_psd_test
	.section	.rodata
.LC87:
	.string	"not PSD"
.LC88:
	.string	"wrong version"
.LC89:
	.string	"wrong channel count"
.LC90:
	.string	"unsupported bit depth"
.LC91:
	.string	"wrong color format"
	.text
	.type	psd_load, @function
psd_load:
.LFB127:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	DWORD PTR -100[rbp], r8d
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get32
	cmp	eax, 943870035
	je	.L1086
	lea	rdi, .LC87[rip]
	call	e
	mov	eax, 0
	jmp	.L1087
.L1086:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get16
	cmp	eax, 1
	je	.L1088
	lea	rdi, .LC88[rip]
	call	e
	mov	eax, 0
	jmp	.L1087
.L1088:
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	js	.L1089
	cmp	DWORD PTR -44[rbp], 16
	jle	.L1090
.L1089:
	lea	rdi, .LC89[rip]
	call	e
	mov	eax, 0
	jmp	.L1087
.L1090:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get16
	cmp	eax, 8
	je	.L1091
	lea	rdi, .LC90[rip]
	call	e
	mov	eax, 0
	jmp	.L1087
.L1091:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get16
	cmp	eax, 3
	je	.L1092
	lea	rdi, .LC91[rip]
	call	e
	mov	eax, 0
	jmp	.L1087
.L1092:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -32[rbp], eax
	cmp	DWORD PTR -32[rbp], 1
	jle	.L1093
	lea	rdi, .LC52[rip]
	call	e
	mov	eax, 0
	jmp	.L1087
.L1093:
	mov	eax, DWORD PTR -36[rbp]
	imul	eax, DWORD PTR -40[rbp]
	sal	eax, 2
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L1094
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L1087
.L1094:
	mov	eax, DWORD PTR -36[rbp]
	imul	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -32[rbp], 0
	je	.L1095
	mov	eax, DWORD PTR -40[rbp]
	imul	eax, DWORD PTR -44[rbp]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1096
.L1110:
	mov	eax, DWORD PTR -60[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L1097
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1098
.L1101:
	cmp	DWORD PTR -60[rbp], 3
	jne	.L1099
	mov	edx, -1
	jmp	.L1100
.L1099:
	mov	edx, 0
.L1100:
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -16[rbp], 4
	add	DWORD PTR -56[rbp], 1
.L1098:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L1101
	jmp	.L1102
.L1097:
	mov	DWORD PTR -52[rbp], 0
	jmp	.L1103
.L1109:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -48[rbp], eax
	cmp	DWORD PTR -48[rbp], 128
	je	.L1103
	cmp	DWORD PTR -48[rbp], 127
	jg	.L1104
	add	DWORD PTR -48[rbp], 1
	mov	eax, DWORD PTR -48[rbp]
	add	DWORD PTR -52[rbp], eax
	jmp	.L1105
.L1106:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -16[rbp]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -16[rbp], 4
	sub	DWORD PTR -48[rbp], 1
.L1105:
	cmp	DWORD PTR -48[rbp], 0
	jne	.L1106
	jmp	.L1103
.L1104:
	cmp	DWORD PTR -48[rbp], 128
	jle	.L1103
	xor	DWORD PTR -48[rbp], 255
	add	DWORD PTR -48[rbp], 2
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -61[rbp], al
	mov	eax, DWORD PTR -48[rbp]
	add	DWORD PTR -52[rbp], eax
	jmp	.L1107
.L1108:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR -61[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -16[rbp], 4
	sub	DWORD PTR -48[rbp], 1
.L1107:
	cmp	DWORD PTR -48[rbp], 0
	jne	.L1108
.L1103:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L1109
.L1102:
	add	DWORD PTR -60[rbp], 1
.L1096:
	cmp	DWORD PTR -60[rbp], 3
	jle	.L1110
	jmp	.L1111
.L1095:
	mov	DWORD PTR -60[rbp], 0
	jmp	.L1112
.L1121:
	mov	eax, DWORD PTR -60[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L1113
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1114
.L1117:
	cmp	DWORD PTR -60[rbp], 3
	jne	.L1115
	mov	edx, -1
	jmp	.L1116
.L1115:
	mov	edx, 0
.L1116:
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
	add	QWORD PTR -8[rbp], 4
	add	DWORD PTR -56[rbp], 1
.L1114:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L1117
	jmp	.L1118
.L1113:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L1119
.L1120:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -8[rbp]
	mov	BYTE PTR [rdx], al
	add	QWORD PTR -8[rbp], 4
	add	DWORD PTR -56[rbp], 1
.L1119:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L1120
.L1118:
	add	DWORD PTR -60[rbp], 1
.L1112:
	cmp	DWORD PTR -60[rbp], 3
	jle	.L1121
.L1111:
	cmp	DWORD PTR -100[rbp], 0
	je	.L1122
	cmp	DWORD PTR -100[rbp], 4
	je	.L1122
	mov	esi, DWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -36[rbp]
	mov	edx, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, esi
	mov	esi, 4
	mov	rdi, rax
	call	convert_format
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L1122
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L1087
.L1122:
	cmp	QWORD PTR -96[rbp], 0
	je	.L1123
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	DWORD PTR [rax], edx
.L1123:
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
.L1087:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE127:
	.size	psd_load, .-psd_load
	.type	stbi_psd_load, @function
stbi_psd_load:
.LFB128:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	DWORD PTR -36[rbp], r8d
	mov	edi, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	psd_load
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE128:
	.size	stbi_psd_load, .-stbi_psd_load
	.type	pic_is4, @function
pic_is4:
.LFB129:
	.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
	mov	DWORD PTR -4[rbp], 0
	jmp	.L1127
.L1130:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	edx, DWORD PTR -4[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -32[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	cmp	eax, edx
	je	.L1128
	mov	eax, 0
	jmp	.L1129
.L1128:
	add	DWORD PTR -4[rbp], 1
.L1127:
	cmp	DWORD PTR -4[rbp], 3
	jle	.L1130
	mov	eax, 1
.L1129:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE129:
	.size	pic_is4, .-pic_is4
	.section	.rodata
.LC92:
	.string	"S\200\3664"
.LC93:
	.string	"PICT"
	.text
	.type	pic_test, @function
pic_test:
.LFB130:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC92[rip]
	mov	rdi, rax
	call	pic_is4
	test	eax, eax
	jne	.L1132
	mov	eax, 0
	jmp	.L1133
.L1132:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L1134
.L1135:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	add	DWORD PTR -4[rbp], 1
.L1134:
	cmp	DWORD PTR -4[rbp], 83
	jle	.L1135
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC93[rip]
	mov	rdi, rax
	call	pic_is4
	test	eax, eax
	jne	.L1136
	mov	eax, 0
	jmp	.L1133
.L1136:
	mov	eax, 1
.L1133:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE130:
	.size	pic_test, .-pic_test
	.section	.rodata
.LC94:
	.string	"bad file"
	.text
	.type	pic_readval, @function
pic_readval:
.LFB131:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -24[rbp], 128
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1138
.L1142:
	mov	eax, DWORD PTR -44[rbp]
	and	eax, DWORD PTR -24[rbp]
	test	eax, eax
	je	.L1139
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L1140
	lea	rdi, .LC94[rip]
	call	e
	mov	eax, 0
	jmp	.L1141
.L1140:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR [rbx], al
.L1139:
	add	DWORD PTR -20[rbp], 1
	sar	DWORD PTR -24[rbp]
.L1138:
	cmp	DWORD PTR -20[rbp], 3
	jle	.L1142
	mov	rax, QWORD PTR -56[rbp]
.L1141:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE131:
	.size	pic_readval, .-pic_readval
	.type	pic_copyval, @function
pic_copyval:
.LFB132:
	.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -8[rbp], 128
	mov	DWORD PTR -4[rbp], 0
	jmp	.L1144
.L1146:
	mov	eax, DWORD PTR -20[rbp]
	and	eax, DWORD PTR -8[rbp]
	test	eax, eax
	je	.L1145
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -4[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -32[rbp]
	add	rdx, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
.L1145:
	add	DWORD PTR -4[rbp], 1
	sar	DWORD PTR -8[rbp]
.L1144:
	cmp	DWORD PTR -4[rbp], 3
	jle	.L1146
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE132:
	.size	pic_copyval, .-pic_copyval
	.section	.rodata
.LC95:
	.string	"bad format"
	.text
	.type	pic_load2, @function
pic_load2:
.LFB133:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -136[rbp], rdi
	mov	DWORD PTR -140[rbp], esi
	mov	DWORD PTR -144[rbp], edx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -160[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -120[rbp], 0
	mov	DWORD PTR -116[rbp], 0
.L1152:
	cmp	DWORD PTR -116[rbp], 10
	jne	.L1148
	lea	rdi, .LC95[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1148:
	mov	eax, DWORD PTR -116[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -116[rbp], edx
	lea	rcx, -48[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -64[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -64[rbp]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -64[rbp]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	or	DWORD PTR -120[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L1150
	lea	rdi, .LC94[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1150:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 8
	je	.L1151
	lea	rdi, .LC95[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1151:
	cmp	DWORD PTR -76[rbp], 0
	jne	.L1152
	mov	eax, DWORD PTR -120[rbp]
	and	eax, 16
	test	eax, eax
	je	.L1153
	mov	edx, 4
	jmp	.L1154
.L1153:
	mov	edx, 3
.L1154:
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -112[rbp], 0
	jmp	.L1155
.L1190:
	mov	DWORD PTR -108[rbp], 0
	jmp	.L1156
.L1189:
	lea	rcx, -48[rbp]
	mov	eax, DWORD PTR -108[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR -140[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	cmp	eax, 2
	je	.L1157
	cmp	eax, 2
	jg	.L1158
	test	eax, eax
	je	.L1159
	cmp	eax, 1
	je	.L1160
.L1158:
	lea	rdi, .LC95[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1159:
	mov	DWORD PTR -104[rbp], 0
	jmp	.L1161
.L1163:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	ecx, al
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pic_readval
	test	rax, rax
	jne	.L1162
	mov	eax, 0
	jmp	.L1191
.L1162:
	add	DWORD PTR -104[rbp], 1
	add	QWORD PTR -72[rbp], 4
.L1161:
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -140[rbp]
	jl	.L1163
	jmp	.L1164
.L1160:
	mov	eax, DWORD PTR -140[rbp]
	mov	DWORD PTR -100[rbp], eax
	jmp	.L1165
.L1172:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -121[rbp], al
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L1166
	lea	rdi, .LC94[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1166:
	movzx	eax, BYTE PTR -121[rbp]
	cmp	DWORD PTR -100[rbp], eax
	jge	.L1168
	mov	eax, DWORD PTR -100[rbp]
	mov	BYTE PTR -121[rbp], al
.L1168:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	ecx, al
	lea	rdx, -12[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pic_readval
	test	rax, rax
	jne	.L1169
	mov	eax, 0
	jmp	.L1191
.L1169:
	mov	DWORD PTR -96[rbp], 0
	jmp	.L1170
.L1171:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	lea	rdx, -12[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	pic_copyval
	add	DWORD PTR -96[rbp], 1
	add	QWORD PTR -72[rbp], 4
.L1170:
	movzx	eax, BYTE PTR -121[rbp]
	cmp	DWORD PTR -96[rbp], eax
	jl	.L1171
	movzx	eax, BYTE PTR -121[rbp]
	sub	DWORD PTR -100[rbp], eax
.L1165:
	cmp	DWORD PTR -100[rbp], 0
	jg	.L1172
	jmp	.L1164
.L1157:
	mov	eax, DWORD PTR -140[rbp]
	mov	DWORD PTR -92[rbp], eax
	jmp	.L1173
.L1188:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -88[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L1174
	lea	rdi, .LC94[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1174:
	cmp	DWORD PTR -88[rbp], 127
	jle	.L1175
	cmp	DWORD PTR -88[rbp], 128
	jne	.L1176
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -88[rbp], eax
	jmp	.L1177
.L1176:
	sub	DWORD PTR -88[rbp], 127
.L1177:
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jle	.L1178
	lea	rdi, .LC94[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1178:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	ecx, al
	lea	rdx, -12[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pic_readval
	test	rax, rax
	jne	.L1180
	mov	eax, 0
	jmp	.L1191
.L1180:
	mov	DWORD PTR -80[rbp], 0
	jmp	.L1181
.L1182:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	lea	rdx, -12[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	pic_copyval
	add	DWORD PTR -80[rbp], 1
	add	QWORD PTR -72[rbp], 4
.L1181:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	jl	.L1182
	jmp	.L1183
.L1175:
	add	DWORD PTR -88[rbp], 1
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jle	.L1184
	lea	rdi, .LC94[rip]
	call	e
	mov	eax, 0
	jmp	.L1191
.L1184:
	mov	DWORD PTR -84[rbp], 0
	jmp	.L1185
.L1187:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	ecx, al
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pic_readval
	test	rax, rax
	jne	.L1186
	mov	eax, 0
	jmp	.L1191
.L1186:
	add	DWORD PTR -84[rbp], 1
	add	QWORD PTR -72[rbp], 4
.L1185:
	mov	eax, DWORD PTR -84[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	jl	.L1187
.L1183:
	mov	eax, DWORD PTR -88[rbp]
	sub	DWORD PTR -92[rbp], eax
.L1173:
	cmp	DWORD PTR -92[rbp], 0
	jg	.L1188
	nop
.L1164:
	add	DWORD PTR -108[rbp], 1
.L1156:
	mov	eax, DWORD PTR -108[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jl	.L1189
	add	DWORD PTR -112[rbp], 1
.L1155:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -144[rbp]
	jl	.L1190
	mov	rax, QWORD PTR -160[rbp]
.L1191:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1192
	call	__stack_chk_fail@PLT
.L1192:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE133:
	.size	pic_load2, .-pic_load2
	.type	pic_load, @function
pic_load:
.LFB134:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -68[rbp], r8d
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1194
.L1195:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8
	add	DWORD PTR -20[rbp], 1
.L1194:
	cmp	DWORD PTR -20[rbp], 91
	jle	.L1195
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L1196
	lea	rdi, .LC94[rip]
	call	e
	mov	eax, 0
	jmp	.L1197
.L1196:
	mov	eax, 268435456
	cdq
	idiv	DWORD PTR -16[rbp]
	cmp	DWORD PTR -12[rbp], eax
	jle	.L1198
	lea	rdi, .LC34[rip]
	call	e
	mov	eax, 0
	jmp	.L1197
.L1198:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get16
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get16
	mov	eax, DWORD PTR -16[rbp]
	imul	eax, DWORD PTR -12[rbp]
	sal	eax, 2
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -16[rbp]
	imul	eax, DWORD PTR -12[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 255
	mov	rdi, rax
	call	memset@PLT
	mov	rdi, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	esi, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	pic_load2
	test	rax, rax
	jne	.L1199
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	QWORD PTR -8[rbp], 0
.L1199:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -68[rbp], 0
	jne	.L1200
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -68[rbp], eax
.L1200:
	mov	esi, DWORD PTR -12[rbp]
	mov	ecx, DWORD PTR -16[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, esi
	mov	esi, 4
	mov	rdi, rax
	call	convert_format
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
.L1197:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE134:
	.size	pic_load, .-pic_load
	.type	stbi_pic_test, @function
stbi_pic_test:
.LFB135:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	pic_test
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE135:
	.size	stbi_pic_test, .-stbi_pic_test
	.type	stbi_pic_load, @function
stbi_pic_load:
.LFB136:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	DWORD PTR -36[rbp], r8d
	mov	edi, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	pic_load
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE136:
	.size	stbi_pic_load, .-stbi_pic_load
	.type	gif_test, @function
gif_test:
.LFB137:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 71
	jne	.L1206
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 73
	jne	.L1206
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 70
	jne	.L1206
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 56
	je	.L1207
.L1206:
	mov	eax, 0
	jmp	.L1208
.L1207:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 57
	je	.L1209
	cmp	DWORD PTR -4[rbp], 55
	je	.L1209
	mov	eax, 0
	jmp	.L1208
.L1209:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 97
	je	.L1210
	mov	eax, 0
	jmp	.L1208
.L1210:
	mov	eax, 1
.L1208:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE137:
	.size	gif_test, .-gif_test
	.type	stbi_gif_test, @function
stbi_gif_test:
.LFB138:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gif_test
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE138:
	.size	stbi_gif_test, .-stbi_gif_test
	.type	stbi_gif_parse_colortable, @function
stbi_gif_parse_colortable:
.LFB139:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	DWORD PTR -56[rbp], ecx
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1214
.L1217:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR 2[rbx], al
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR 1[rbx], al
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR [rbx], al
	cmp	DWORD PTR -56[rbp], 0
	je	.L1215
	mov	edx, 0
	jmp	.L1216
.L1215:
	mov	edx, -1
.L1216:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rcx
	mov	BYTE PTR 3[rax], dl
	add	DWORD PTR -20[rbp], 1
.L1214:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L1217
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE139:
	.size	stbi_gif_parse_colortable, .-stbi_gif_parse_colortable
	.section	.rodata
.LC96:
	.string	"not GIF"
.LC97:
	.string	""
	.text
	.type	stbi_gif_header, @function
stbi_gif_header:
.LFB140:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 71
	jne	.L1219
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 73
	jne	.L1219
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 70
	jne	.L1219
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 56
	je	.L1220
.L1219:
	lea	rdi, .LC96[rip]
	call	e
	jmp	.L1221
.L1220:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -1[rbp], al
	cmp	BYTE PTR -1[rbp], 55
	je	.L1222
	cmp	BYTE PTR -1[rbp], 57
	je	.L1222
	lea	rdi, .LC96[rip]
	call	e
	jmp	.L1221
.L1222:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 97
	je	.L1223
	lea	rdi, .LC96[rip]
	call	e
	jmp	.L1221
.L1223:
	lea	rax, .LC97[rip]
	mov	QWORD PTR failure_reason[rip], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	rdx, QWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	rdx, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -32[rbp]
	mov	DWORD PTR 16[rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -32[rbp]
	mov	DWORD PTR 20[rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -32[rbp]
	mov	DWORD PTR 24[rdx], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 28[rax], -1
	cmp	QWORD PTR -40[rbp], 0
	je	.L1224
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 4
.L1224:
	cmp	DWORD PTR -44[rbp], 0
	je	.L1225
	mov	eax, 1
	jmp	.L1221
.L1225:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	and	eax, 128
	test	eax, eax
	je	.L1226
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	and	eax, 7
	mov	edx, 2
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -32[rbp]
	lea	rsi, 36[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, -1
	mov	rdi, rax
	call	stbi_gif_parse_colortable
.L1226:
	mov	eax, 1
.L1221:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE140:
	.size	stbi_gif_header, .-stbi_gif_header
	.type	stbi_gif_info_raw, @function
stbi_gif_info_raw:
.LFB141:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	r11, -16384[rsp]
.LPSRL0:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL0
	sub	rsp, 2176
	mov	QWORD PTR -18536[rbp], rdi
	mov	QWORD PTR -18544[rbp], rsi
	mov	QWORD PTR -18552[rbp], rdx
	mov	QWORD PTR -18560[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -18560[rbp]
	lea	rsi, -18528[rbp]
	mov	rax, QWORD PTR -18536[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	stbi_gif_header
	test	eax, eax
	jne	.L1228
	mov	rax, QWORD PTR -18536[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1232
.L1228:
	cmp	QWORD PTR -18544[rbp], 0
	je	.L1230
	mov	edx, DWORD PTR -18528[rbp]
	mov	rax, QWORD PTR -18544[rbp]
	mov	DWORD PTR [rax], edx
.L1230:
	cmp	QWORD PTR -18552[rbp], 0
	je	.L1231
	mov	edx, DWORD PTR -18524[rbp]
	mov	rax, QWORD PTR -18552[rbp]
	mov	DWORD PTR [rax], edx
.L1231:
	mov	eax, 1
.L1232:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1233
	call	__stack_chk_fail@PLT
.L1233:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE141:
	.size	stbi_gif_info_raw, .-stbi_gif_info_raw
	.type	stbi_out_gif_code, @function
stbi_out_gif_code:
.LFB142:
	.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	eax, esi
	mov	WORD PTR -28[rbp], ax
	movzx	edx, WORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 520
	movzx	eax, WORD PTR 4[rax+rdx*4]
	test	ax, ax
	js	.L1235
	movzx	edx, WORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 520
	movzx	eax, WORD PTR 4[rax+rdx*4]
	movzx	edx, ax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	stbi_out_gif_code
.L1235:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 18512[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18504[rax]
	cmp	edx, eax
	jge	.L1241
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR 18508[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18512[rax]
	add	eax, ecx
	cdqe
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 18472[rax]
	movzx	edx, WORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 520
	movzx	eax, BYTE PTR 7[rax+rdx*4]
	movzx	eax, al
	sal	eax, 2
	cdqe
	add	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jns	.L1238
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, BYTE PTR 2[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR [rdx], al
.L1238:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18508[rax]
	lea	edx, 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 18508[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 18508[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18500[rax]
	cmp	edx, eax
	jl	.L1234
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 18492[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 18508[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 18512[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18484[rax]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 18512[rax], edx
	jmp	.L1239
.L1240:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 18516[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18480[rax]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 18484[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 18496[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18484[rax]
	sar	eax
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 18512[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18480[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 18480[rax], edx
.L1239:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 18512[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18504[rax]
	cmp	edx, eax
	jl	.L1234
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 18480[rax]
	test	eax, eax
	jg	.L1240
	jmp	.L1234
.L1241:
	nop
.L1234:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE142:
	.size	stbi_out_gif_code, .-stbi_out_gif_code
	.section	.rodata
.LC98:
	.string	"no clear code"
.LC99:
	.string	"too many codes"
.LC100:
	.string	"illegal code in raster"
	.text
	.type	stbi_process_gif_raster, @function
stbi_process_gif_raster:
.LFB143:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -53[rbp], al
	movzx	eax, BYTE PTR -53[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	DWORD PTR -44[rbp], 1
	movzx	eax, BYTE PTR -53[rbp]
	add	eax, 1
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	mov	DWORD PTR -36[rbp], eax
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	jmp	.L1243
.L1244:
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -48[rbp]
	movsx	rdx, edx
	add	rdx, 520
	mov	WORD PTR 4[rax+rdx*4], -1
	mov	eax, DWORD PTR -48[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -48[rbp]
	movsx	rdx, edx
	add	rdx, 520
	mov	BYTE PTR 6[rax+rdx*4], cl
	mov	eax, DWORD PTR -48[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -48[rbp]
	movsx	rdx, edx
	add	rdx, 520
	mov	BYTE PTR 7[rax+rdx*4], cl
	add	DWORD PTR -48[rbp], 1
.L1243:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	jl	.L1244
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 2
	mov	DWORD PTR -32[rbp], eax
	mov	DWORD PTR -28[rbp], -1
	mov	DWORD PTR -52[rbp], 0
.L1261:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	jge	.L1245
	cmp	DWORD PTR -52[rbp], 0
	jne	.L1246
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jne	.L1246
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 8[rax]
	jmp	.L1247
.L1246:
	sub	DWORD PTR -52[rbp], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	or	DWORD PTR -24[rbp], eax
	add	DWORD PTR -20[rbp], 8
	jmp	.L1261
.L1245:
	mov	eax, DWORD PTR -24[rbp]
	and	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	ecx, eax
	sar	DWORD PTR -24[rbp], cl
	mov	eax, DWORD PTR -40[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	jne	.L1249
	movzx	eax, BYTE PTR -53[rbp]
	add	eax, 1
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 2
	mov	DWORD PTR -32[rbp], eax
	mov	DWORD PTR -28[rbp], -1
	mov	DWORD PTR -44[rbp], 0
	jmp	.L1261
.L1249:
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	cmp	DWORD PTR -12[rbp], eax
	jne	.L1250
	mov	edx, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	jmp	.L1251
.L1252:
	mov	edx, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
.L1251:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jg	.L1252
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 8[rax]
	jmp	.L1247
.L1250:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jg	.L1253
	cmp	DWORD PTR -44[rbp], 0
	je	.L1254
	lea	rdi, .LC98[rip]
	call	e
	mov	eax, 0
	jmp	.L1247
.L1254:
	cmp	DWORD PTR -28[rbp], 0
	js	.L1255
	mov	eax, DWORD PTR -32[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -32[rbp], edx
	cdqe
	add	rax, 520
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	add	rax, 4
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -32[rbp], 4096
	jle	.L1256
	lea	rdi, .LC99[rip]
	call	e
	mov	eax, 0
	jmp	.L1247
.L1256:
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 520
	movzx	edx, BYTE PTR 6[rax+rdx*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jne	.L1257
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 2[rax]
	jmp	.L1258
.L1257:
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 520
	movzx	eax, BYTE PTR 6[rax+rdx*4]
.L1258:
	mov	rdx, QWORD PTR -8[rbp]
	mov	BYTE PTR 3[rdx], al
	jmp	.L1259
.L1255:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jne	.L1259
	lea	rdi, .LC100[rip]
	call	e
	mov	eax, 0
	jmp	.L1247
.L1259:
	mov	eax, DWORD PTR -12[rbp]
	movzx	edx, ax
	mov	rax, QWORD PTR -80[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	stbi_out_gif_code
	mov	eax, DWORD PTR -32[rbp]
	and	eax, DWORD PTR -36[rbp]
	test	eax, eax
	jne	.L1260
	cmp	DWORD PTR -32[rbp], 4095
	jg	.L1260
	add	DWORD PTR -40[rbp], 1
	mov	eax, DWORD PTR -40[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	mov	DWORD PTR -36[rbp], eax
.L1260:
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L1261
.L1253:
	lea	rdi, .LC100[rip]
	call	e
	mov	eax, 0
.L1247:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE143:
	.size	stbi_process_gif_raster, .-stbi_process_gif_raster
	.type	stbi_fill_gif_background, @function
stbi_fill_gif_background:
.LFB144:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 20[rax]
	cdqe
	add	rax, 8
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	add	rax, 4
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1263
.L1264:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR 2[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -20[rbp], 4
.L1263:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	sal	eax, 2
	cmp	DWORD PTR -20[rbp], eax
	jl	.L1264
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE144:
	.size	stbi_fill_gif_background, .-stbi_fill_gif_background
	.section	.rodata
.LC101:
	.string	"bad Image Descriptor"
.LC102:
	.string	"missing color table"
.LC103:
	.string	"unknown code"
	.text
	.type	stbi_gif_load_next, @function
stbi_gif_load_next:
.LFB145:
	.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	DWORD PTR -76[rbp], ecx
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L1266
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	stbi_gif_header
	test	eax, eax
	jne	.L1267
	mov	eax, 0
	jmp	.L1268
.L1267:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	sal	eax, 2
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L1269
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L1268
.L1269:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	stbi_fill_gif_background
	jmp	.L1294
.L1266:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 32[rax]
	sar	eax, 2
	and	eax, 7
	cmp	eax, 3
	jne	.L1294
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	sal	eax, 2
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L1271
	lea	rdi, .LC6[rip]
	call	e
	mov	eax, 0
	jmp	.L1268
.L1271:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, edx
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
.L1294:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 59
	je	.L1272
	cmp	eax, 59
	jg	.L1273
	cmp	eax, 33
	je	.L1274
	cmp	eax, 44
	jne	.L1273
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get16le
	mov	DWORD PTR -24[rbp], eax
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jg	.L1275
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jle	.L1276
.L1275:
	lea	rdi, .LC101[rip]
	call	e
	mov	eax, 0
	jmp	.L1268
.L1276:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18516[rax], edx
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18492[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 18516[rax]
	imul	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18496[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 18492[rax]
	mov	eax, DWORD PTR -28[rbp]
	sal	eax, 2
	add	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18500[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 18496[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 18516[rax]
	imul	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18504[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 18492[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18508[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 18496[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18512[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -64[rbp]
	mov	DWORD PTR 18488[rdx], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 18488[rax]
	and	eax, 64
	test	eax, eax
	je	.L1277
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 18516[rax]
	lea	edx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18484[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18480[rax], 3
	jmp	.L1278
.L1277:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 18516[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18484[rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 18480[rax], 0
.L1278:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 18488[rax]
	and	eax, 128
	test	eax, eax
	je	.L1279
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 32[rax]
	and	eax, 1
	test	eax, eax
	je	.L1280
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 28[rax]
	jmp	.L1281
.L1280:
	mov	eax, -1
.L1281:
	mov	rdx, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 18488[rdx]
	and	edx, 7
	mov	esi, 2
	mov	ecx, edx
	sal	esi, cl
	mov	edx, esi
	mov	rcx, QWORD PTR -64[rbp]
	lea	rsi, 1060[rcx]
	mov	rdi, QWORD PTR -56[rbp]
	mov	ecx, eax
	call	stbi_gif_parse_colortable
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1060[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 18472[rax], rdx
	jmp	.L1282
.L1279:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 16[rax]
	and	eax, 128
	test	eax, eax
	je	.L1283
	mov	DWORD PTR -40[rbp], 0
	jmp	.L1284
.L1285:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -40[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 39[rax+rdx*4], -1
	add	DWORD PTR -40[rbp], 1
.L1284:
	cmp	DWORD PTR -40[rbp], 255
	jle	.L1285
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 28[rax]
	test	eax, eax
	js	.L1286
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 32[rax]
	and	eax, 1
	test	eax, eax
	je	.L1286
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR -64[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 39[rax+rdx*4], 0
.L1286:
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 36[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 18472[rax], rdx
	jmp	.L1282
.L1283:
	lea	rdi, .LC102[rip]
	call	e
	mov	eax, 0
	jmp	.L1268
.L1282:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	stbi_process_gif_raster
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L1287
	mov	eax, 0
	jmp	.L1268
.L1287:
	cmp	DWORD PTR -76[rbp], 0
	je	.L1288
	cmp	DWORD PTR -76[rbp], 4
	je	.L1288
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	esi, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	edx, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	r8d, esi
	mov	esi, 4
	mov	rdi, rax
	call	convert_format
	mov	QWORD PTR -16[rbp], rax
.L1288:
	mov	rax, QWORD PTR -16[rbp]
	jmp	.L1268
.L1274:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 249
	jne	.L1292
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 4
	jne	.L1290
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -64[rbp]
	mov	DWORD PTR 32[rdx], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get16le
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -64[rbp]
	mov	DWORD PTR 28[rdx], eax
	jmp	.L1292
.L1290:
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	jmp	.L1291
.L1293:
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
.L1292:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L1293
	jmp	.L1291
.L1272:
	mov	eax, 1
	jmp	.L1268
.L1273:
	lea	rdi, .LC103[rip]
	call	e
	mov	eax, 0
	jmp	.L1268
.L1291:
	jmp	.L1294
.L1268:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE145:
	.size	stbi_gif_load_next, .-stbi_gif_load_next
	.type	stbi_gif_load, @function
stbi_gif_load:
.LFB146:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	r11, -16384[rsp]
.LPSRL1:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL1
	sub	rsp, 2208
	mov	QWORD PTR -18552[rbp], rdi
	mov	QWORD PTR -18560[rbp], rsi
	mov	QWORD PTR -18568[rbp], rdx
	mov	QWORD PTR -18576[rbp], rcx
	mov	DWORD PTR -18580[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -18536[rbp], 0
	lea	rax, -18528[rbp]
	mov	edx, 18520
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	ecx, DWORD PTR -18580[rbp]
	mov	rdx, QWORD PTR -18576[rbp]
	lea	rsi, -18528[rbp]
	mov	rax, QWORD PTR -18552[rbp]
	mov	rdi, rax
	call	stbi_gif_load_next
	mov	QWORD PTR -18536[rbp], rax
	cmp	QWORD PTR -18536[rbp], 1
	jne	.L1296
	mov	QWORD PTR -18536[rbp], 0
.L1296:
	cmp	QWORD PTR -18536[rbp], 0
	je	.L1297
	mov	edx, DWORD PTR -18528[rbp]
	mov	rax, QWORD PTR -18560[rbp]
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -18524[rbp]
	mov	rax, QWORD PTR -18568[rbp]
	mov	DWORD PTR [rax], edx
.L1297:
	mov	rax, QWORD PTR -18536[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1299
	call	__stack_chk_fail@PLT
.L1299:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE146:
	.size	stbi_gif_load, .-stbi_gif_load
	.type	stbi_gif_info, @function
stbi_gif_info:
.LFB147:
	.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	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_gif_info_raw
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE147:
	.size	stbi_gif_info, .-stbi_gif_info
	.section	.rodata
.LC104:
	.string	"#?RADIANCE\n"
	.text
	.type	hdr_test, @function
hdr_test:
.LFB148:
	.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
	lea	rax, .LC104[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1303
.L1306:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	edx, DWORD PTR -12[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movsx	edx, dl
	cmp	eax, edx
	je	.L1304
	mov	eax, 0
	jmp	.L1305
.L1304:
	add	DWORD PTR -12[rbp], 1
.L1303:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L1306
	mov	eax, 1
.L1305:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE148:
	.size	hdr_test, .-hdr_test
	.type	stbi_hdr_test, @function
stbi_hdr_test:
.LFB149:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	hdr_test
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE149:
	.size	stbi_hdr_test, .-stbi_hdr_test
	.type	hdr_gettoken, @function
hdr_gettoken:
.LFB150:
	.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
	mov	DWORD PTR -4[rbp], 0
	mov	BYTE PTR -5[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	BYTE PTR -5[rbp], al
	jmp	.L1310
.L1315:
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -5[rbp]
	mov	BYTE PTR [rdx], al
	cmp	DWORD PTR -4[rbp], 1023
	jne	.L1311
	nop
.L1313:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	jne	.L1317
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 10
	jne	.L1313
	jmp	.L1317
.L1311:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	mov	BYTE PTR -5[rbp], al
.L1310:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	jne	.L1314
	cmp	BYTE PTR -5[rbp], 10
	jne	.L1315
	jmp	.L1314
.L1317:
	nop
.L1314:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE150:
	.size	hdr_gettoken, .-hdr_gettoken
	.type	hdr_convert, @function
hdr_convert:
.LFB151:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L1319
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	edx, -136[rax]
	mov	rax, QWORD PTR .LC105[rip]
	mov	edi, edx
	movq	xmm0, rax
	call	ldexp@PLT
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -4[rbp], xmm0
	cmp	DWORD PTR -36[rbp], 2
	jg	.L1320
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mulss	xmm0, DWORD PTR -4[rbp]
	movss	xmm1, DWORD PTR .LC106[rip]
	divss	xmm0, xmm1
	mov	rax, QWORD PTR -24[rbp]
	movss	DWORD PTR [rax], xmm0
	jmp	.L1321
.L1320:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mulss	xmm0, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mulss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mulss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR [rax], xmm0
.L1321:
	cmp	DWORD PTR -36[rbp], 2
	jne	.L1322
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR .LC3[rip]
	movss	DWORD PTR [rax], xmm0
.L1322:
	cmp	DWORD PTR -36[rbp], 4
	jne	.L1328
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR .LC3[rip]
	movss	DWORD PTR [rax], xmm0
	jmp	.L1328
.L1319:
	cmp	DWORD PTR -36[rbp], 4
	je	.L1324
	cmp	DWORD PTR -36[rbp], 4
	jg	.L1328
	cmp	DWORD PTR -36[rbp], 3
	je	.L1325
	cmp	DWORD PTR -36[rbp], 3
	jg	.L1328
	cmp	DWORD PTR -36[rbp], 1
	je	.L1326
	cmp	DWORD PTR -36[rbp], 2
	je	.L1327
	jmp	.L1328
.L1324:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR .LC3[rip]
	movss	DWORD PTR [rax], xmm0
.L1325:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 8[rax]
	pxor	xmm0, xmm0
	movss	DWORD PTR [rdx], xmm0
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	movss	DWORD PTR [rax], xmm0
	jmp	.L1323
.L1327:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR .LC3[rip]
	movss	DWORD PTR [rax], xmm0
.L1326:
	mov	rax, QWORD PTR -24[rbp]
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	nop
.L1323:
.L1328:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE151:
	.size	hdr_convert, .-hdr_convert
	.section	.rodata
.LC107:
	.string	"#?RADIANCE"
.LC108:
	.string	"not HDR"
.LC109:
	.string	"FORMAT=32-bit_rle_rgbe"
.LC110:
	.string	"unsupported format"
.LC111:
	.string	"-Y "
.LC112:
	.string	"unsupported data layout"
.LC113:
	.string	"+X "
	.align 8
.LC114:
	.string	"invalid decoded scanline length"
	.text
	.type	hdr_load, @function
hdr_load:
.LFB152:
	.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, 1176
	.cfi_offset 3, -24
	mov	QWORD PTR -1144[rbp], rdi
	mov	QWORD PTR -1152[rbp], rsi
	mov	QWORD PTR -1160[rbp], rdx
	mov	QWORD PTR -1168[rbp], rcx
	mov	DWORD PTR -1172[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -1128[rbp], 0
	lea	rdx, -1056[rbp]
	mov	rax, QWORD PTR -1144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hdr_gettoken
	lea	rsi, .LC107[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L1330
	lea	rdi, .LC108[rip]
	call	e
	mov	eax, 0
	jmp	.L1365
.L1330:
	lea	rdx, -1056[rbp]
	mov	rax, QWORD PTR -1144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hdr_gettoken
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L1368
	mov	rax, QWORD PTR -1088[rbp]
	lea	rsi, .LC109[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L1330
	mov	DWORD PTR -1128[rbp], 1
	jmp	.L1330
.L1368:
	nop
	cmp	DWORD PTR -1128[rbp], 0
	jne	.L1335
	lea	rdi, .LC110[rip]
	call	e
	mov	eax, 0
	jmp	.L1365
.L1335:
	lea	rdx, -1056[rbp]
	mov	rax, QWORD PTR -1144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hdr_gettoken
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, 3
	lea	rsi, .LC111[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L1336
	lea	rdi, .LC112[rip]
	call	e
	mov	eax, 0
	jmp	.L1365
.L1336:
	mov	rax, QWORD PTR -1088[rbp]
	add	rax, 3
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	lea	rcx, -1088[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -1108[rbp], eax
	jmp	.L1337
.L1338:
	mov	rax, QWORD PTR -1088[rbp]
	add	rax, 1
	mov	QWORD PTR -1088[rbp], rax
.L1337:
	mov	rax, QWORD PTR -1088[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 32
	je	.L1338
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, 3
	lea	rsi, .LC113[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L1339
	lea	rdi, .LC112[rip]
	call	e
	mov	eax, 0
	jmp	.L1365
.L1339:
	mov	rax, QWORD PTR -1088[rbp]
	add	rax, 3
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -1104[rbp], eax
	mov	rax, QWORD PTR -1152[rbp]
	mov	edx, DWORD PTR -1104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1160[rbp]
	mov	edx, DWORD PTR -1108[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1168[rbp]
	mov	DWORD PTR [rax], 3
	cmp	DWORD PTR -1172[rbp], 0
	jne	.L1340
	mov	DWORD PTR -1172[rbp], 3
.L1340:
	mov	eax, DWORD PTR -1108[rbp]
	imul	eax, DWORD PTR -1104[rbp]
	imul	eax, DWORD PTR -1172[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -1072[rbp], rax
	cmp	DWORD PTR -1104[rbp], 7
	jle	.L1341
	cmp	DWORD PTR -1104[rbp], 32767
	jle	.L1342
.L1341:
	mov	DWORD PTR -1120[rbp], 0
	jmp	.L1343
.L1346:
	mov	DWORD PTR -1124[rbp], 0
	jmp	.L1344
.L1369:
	nop
.L1345:
	lea	rcx, -1060[rbp]
	mov	rax, QWORD PTR -1144[rbp]
	mov	edx, 4
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	mov	eax, DWORD PTR -1120[rbp]
	imul	eax, DWORD PTR -1104[rbp]
	imul	eax, DWORD PTR -1172[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -1124[rbp]
	imul	eax, DWORD PTR -1172[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -1072[rbp]
	lea	rcx, [rdx+rax]
	mov	edx, DWORD PTR -1172[rbp]
	lea	rax, -1060[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	hdr_convert
	add	DWORD PTR -1124[rbp], 1
.L1344:
	mov	eax, DWORD PTR -1124[rbp]
	cmp	eax, DWORD PTR -1104[rbp]
	jl	.L1369
	add	DWORD PTR -1120[rbp], 1
.L1343:
	mov	eax, DWORD PTR -1120[rbp]
	cmp	eax, DWORD PTR -1108[rbp]
	jl	.L1346
	jmp	.L1347
.L1342:
	mov	QWORD PTR -1080[rbp], 0
	mov	DWORD PTR -1120[rbp], 0
	jmp	.L1348
.L1364:
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1100[rbp], eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1096[rbp], eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -1092[rbp], eax
	cmp	DWORD PTR -1100[rbp], 2
	jne	.L1349
	cmp	DWORD PTR -1096[rbp], 2
	jne	.L1349
	mov	eax, DWORD PTR -1092[rbp]
	and	eax, 128
	test	eax, eax
	je	.L1350
.L1349:
	mov	eax, DWORD PTR -1100[rbp]
	mov	BYTE PTR -1060[rbp], al
	mov	eax, DWORD PTR -1096[rbp]
	mov	BYTE PTR -1059[rbp], al
	mov	eax, DWORD PTR -1092[rbp]
	mov	BYTE PTR -1058[rbp], al
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -1057[rbp], al
	mov	edx, DWORD PTR -1172[rbp]
	lea	rcx, -1060[rbp]
	mov	rax, QWORD PTR -1072[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hdr_convert
	mov	DWORD PTR -1124[rbp], 1
	mov	DWORD PTR -1120[rbp], 0
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	free@PLT
	jmp	.L1345
.L1350:
	sal	DWORD PTR -1092[rbp], 8
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8
	or	DWORD PTR -1092[rbp], eax
	mov	eax, DWORD PTR -1092[rbp]
	cmp	eax, DWORD PTR -1104[rbp]
	je	.L1351
	mov	rax, QWORD PTR -1072[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	free@PLT
	lea	rdi, .LC114[rip]
	call	e
	mov	eax, 0
	jmp	.L1365
.L1351:
	cmp	QWORD PTR -1080[rbp], 0
	jne	.L1352
	mov	eax, DWORD PTR -1104[rbp]
	sal	eax, 2
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -1080[rbp], rax
.L1352:
	mov	DWORD PTR -1116[rbp], 0
	jmp	.L1353
.L1361:
	mov	DWORD PTR -1124[rbp], 0
	jmp	.L1354
.L1360:
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -1130[rbp], al
	cmp	BYTE PTR -1130[rbp], -128
	jbe	.L1355
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR -1129[rbp], al
	add	BYTE PTR -1130[rbp], -128
	mov	DWORD PTR -1112[rbp], 0
	jmp	.L1356
.L1357:
	mov	eax, DWORD PTR -1124[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1124[rbp], edx
	lea	edx, 0[0+rax*4]
	mov	eax, DWORD PTR -1116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -1129[rbp]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -1112[rbp], 1
.L1356:
	movzx	eax, BYTE PTR -1130[rbp]
	cmp	DWORD PTR -1112[rbp], eax
	jl	.L1357
	jmp	.L1354
.L1355:
	mov	DWORD PTR -1112[rbp], 0
	jmp	.L1358
.L1359:
	mov	eax, DWORD PTR -1124[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -1124[rbp], edx
	lea	edx, 0[0+rax*4]
	mov	eax, DWORD PTR -1116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdi, rax
	call	get8u
	mov	BYTE PTR [rbx], al
	add	DWORD PTR -1112[rbp], 1
.L1358:
	movzx	eax, BYTE PTR -1130[rbp]
	cmp	DWORD PTR -1112[rbp], eax
	jl	.L1359
.L1354:
	mov	eax, DWORD PTR -1124[rbp]
	cmp	eax, DWORD PTR -1104[rbp]
	jl	.L1360
	add	DWORD PTR -1116[rbp], 1
.L1353:
	cmp	DWORD PTR -1116[rbp], 3
	jle	.L1361
	mov	DWORD PTR -1124[rbp], 0
	jmp	.L1362
.L1363:
	mov	eax, DWORD PTR -1124[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -1080[rbp]
	lea	rsi, [rdx+rax]
	mov	eax, DWORD PTR -1120[rbp]
	imul	eax, DWORD PTR -1104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -1124[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -1172[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -1072[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -1172[rbp]
	mov	edx, eax
	mov	rdi, rcx
	call	hdr_convert
	add	DWORD PTR -1124[rbp], 1
.L1362:
	mov	eax, DWORD PTR -1124[rbp]
	cmp	eax, DWORD PTR -1104[rbp]
	jl	.L1363
	add	DWORD PTR -1120[rbp], 1
.L1348:
	mov	eax, DWORD PTR -1120[rbp]
	cmp	eax, DWORD PTR -1108[rbp]
	jl	.L1364
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdi, rax
	call	free@PLT
.L1347:
	mov	rax, QWORD PTR -1072[rbp]
.L1365:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1366
	call	__stack_chk_fail@PLT
.L1366:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE152:
	.size	hdr_load, .-hdr_load
	.type	stbi_hdr_load, @function
stbi_hdr_load:
.LFB153:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	DWORD PTR -36[rbp], r8d
	mov	edi, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	hdr_load
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE153:
	.size	stbi_hdr_load, .-stbi_hdr_load
	.type	stbi_hdr_info, @function
stbi_hdr_info:
.LFB154:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1088
	mov	QWORD PTR -1064[rbp], rdi
	mov	QWORD PTR -1072[rbp], rsi
	mov	QWORD PTR -1080[rbp], rdx
	mov	QWORD PTR -1088[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -1052[rbp], 0
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hdr_gettoken
	lea	rsi, .LC107[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L1373
	mov	rax, QWORD PTR -1064[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1383
.L1373:
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hdr_gettoken
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L1386
	mov	rax, QWORD PTR -1048[rbp]
	lea	rsi, .LC109[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L1373
	mov	DWORD PTR -1052[rbp], 1
	jmp	.L1373
.L1386:
	nop
	cmp	DWORD PTR -1052[rbp], 0
	jne	.L1378
	mov	rax, QWORD PTR -1064[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1383
.L1378:
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hdr_gettoken
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	edx, 3
	lea	rsi, .LC111[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L1379
	mov	rax, QWORD PTR -1064[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1383
.L1379:
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 3
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	lea	rcx, -1048[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	strtol@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -1080[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L1380
.L1381:
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 1
	mov	QWORD PTR -1048[rbp], rax
.L1380:
	mov	rax, QWORD PTR -1048[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 32
	je	.L1381
	mov	rax, QWORD PTR -1048[rbp]
	mov	edx, 3
	lea	rsi, .LC113[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	je	.L1382
	mov	rax, QWORD PTR -1064[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1383
.L1382:
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 3
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	edx, 10
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -1072[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1088[rbp]
	mov	DWORD PTR [rax], 3
	mov	eax, 1
.L1383:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1384
	call	__stack_chk_fail@PLT
.L1384:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE154:
	.size	stbi_hdr_info, .-stbi_hdr_info
	.type	stbi_bmp_info, @function
stbi_bmp_info:
.LFB155:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 66
	jne	.L1388
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	eax, 77
	je	.L1389
.L1388:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1390
.L1389:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 12
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32le
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 12
	je	.L1391
	cmp	DWORD PTR -4[rbp], 40
	je	.L1391
	cmp	DWORD PTR -4[rbp], 56
	je	.L1391
	cmp	DWORD PTR -4[rbp], 108
	je	.L1391
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1390
.L1391:
	cmp	DWORD PTR -4[rbp], 12
	jne	.L1392
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	rdx, QWORD PTR -32[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	mov	rdx, QWORD PTR -40[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L1393
.L1392:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32le
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32le
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
.L1393:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	cmp	eax, 1
	je	.L1394
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1390
.L1394:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16le
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 1
.L1390:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE155:
	.size	stbi_bmp_info, .-stbi_bmp_info
	.type	stbi_psd_info, @function
stbi_psd_info:
.LFB156:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32
	cmp	eax, 943870035
	je	.L1396
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1397
.L1396:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	cmp	eax, 1
	je	.L1398
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1397
.L1398:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	js	.L1399
	cmp	DWORD PTR -4[rbp], 16
	jle	.L1400
.L1399:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1397
.L1400:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	cmp	eax, 8
	je	.L1401
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1397
.L1401:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get16
	cmp	eax, 3
	je	.L1402
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1397
.L1402:
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], 4
	mov	eax, 1
.L1397:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE156:
	.size	stbi_psd_info, .-stbi_psd_info
	.type	stbi_pic_info, @function
stbi_pic_info:
.LFB157:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	QWORD PTR -112[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -68[rbp], 0
	mov	DWORD PTR -64[rbp], 0
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 92
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get16
	mov	rdx, QWORD PTR -96[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get16
	mov	rdx, QWORD PTR -104[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L1404
	mov	eax, 0
	jmp	.L1413
.L1404:
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L1406
	mov	rax, QWORD PTR -96[rbp]
	mov	esi, DWORD PTR [rax]
	mov	eax, 268435456
	cdq
	idiv	esi
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jge	.L1406
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1413
.L1406:
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	skip
.L1410:
	cmp	DWORD PTR -64[rbp], 10
	jne	.L1407
	mov	eax, 0
	jmp	.L1413
.L1407:
	mov	eax, DWORD PTR -64[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -64[rbp], edx
	lea	rcx, -48[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8
	mov	DWORD PTR -60[rbp], eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -56[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -56[rbp]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8u
	mov	rdx, QWORD PTR -56[rbp]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	or	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	at_eof
	test	eax, eax
	je	.L1408
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1413
.L1408:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 8
	je	.L1409
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	stbi_rewind
	mov	eax, 0
	jmp	.L1413
.L1409:
	cmp	DWORD PTR -60[rbp], 0
	jne	.L1410
	mov	eax, DWORD PTR -68[rbp]
	and	eax, 16
	test	eax, eax
	je	.L1411
	mov	edx, 4
	jmp	.L1412
.L1411:
	mov	edx, 3
.L1412:
	mov	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 1
.L1413:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1414
	call	__stack_chk_fail@PLT
.L1414:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE157:
	.size	stbi_pic_info, .-stbi_pic_info
	.type	stbi_info_main, @function
stbi_info_main:
.LFB158:
	.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	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_jpeg_info
	test	eax, eax
	je	.L1416
	mov	eax, 1
	jmp	.L1417
.L1416:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_png_info
	test	eax, eax
	je	.L1418
	mov	eax, 1
	jmp	.L1417
.L1418:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_gif_info
	test	eax, eax
	je	.L1419
	mov	eax, 1
	jmp	.L1417
.L1419:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_bmp_info
	test	eax, eax
	je	.L1420
	mov	eax, 1
	jmp	.L1417
.L1420:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_psd_info
	test	eax, eax
	je	.L1421
	mov	eax, 1
	jmp	.L1417
.L1421:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_pic_info
	test	eax, eax
	je	.L1422
	mov	eax, 1
	jmp	.L1417
.L1422:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_hdr_info
	test	eax, eax
	je	.L1423
	mov	eax, 1
	jmp	.L1417
.L1423:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_tga_info
	test	eax, eax
	je	.L1424
	mov	eax, 1
	jmp	.L1417
.L1424:
	lea	rdi, .LC0[rip]
	call	e
.L1417:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE158:
	.size	stbi_info_main, .-stbi_info_main
	.globl	stbi_info
	.type	stbi_info, @function
stbi_info:
.LFB159:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L1426
	lea	rdi, .LC2[rip]
	call	e
	jmp	.L1427
.L1426:
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stbi_info_from_file
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	eax, DWORD PTR -12[rbp]
.L1427:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE159:
	.size	stbi_info, .-stbi_info
	.globl	stbi_info_from_file
	.type	stbi_info_from_file, @function
stbi_info_from_file:
.LFB160:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -248[rbp], rdi
	mov	QWORD PTR -256[rbp], rsi
	mov	QWORD PTR -264[rbp], rdx
	mov	QWORD PTR -272[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	rdi, rax
	call	ftell@PLT
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -248[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	start_file
	mov	rcx, QWORD PTR -272[rbp]
	mov	rdx, QWORD PTR -264[rbp]
	mov	rsi, QWORD PTR -256[rbp]
	lea	rax, -224[rbp]
	mov	rdi, rax
	call	stbi_info_main
	mov	DWORD PTR -236[rbp], eax
	mov	rcx, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	mov	eax, DWORD PTR -236[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1430
	call	__stack_chk_fail@PLT
.L1430:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE160:
	.size	stbi_info_from_file, .-stbi_info_from_file
	.globl	stbi_info_from_memory
	.type	stbi_info_from_memory, @function
stbi_info_from_memory:
.LFB161:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	DWORD PTR -236[rbp], esi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	QWORD PTR -264[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -236[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_mem
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	lea	rax, -224[rbp]
	mov	rdi, rax
	call	stbi_info_main
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1433
	call	__stack_chk_fail@PLT
.L1433:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE161:
	.size	stbi_info_from_memory, .-stbi_info_from_memory
	.globl	stbi_info_from_callbacks
	.type	stbi_info_from_callbacks, @function
stbi_info_from_callbacks:
.LFB162:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -248[rbp], rdx
	mov	QWORD PTR -256[rbp], rcx
	mov	QWORD PTR -264[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	start_callbacks
	mov	rcx, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -248[rbp]
	lea	rax, -224[rbp]
	mov	rdi, rax
	call	stbi_info_main
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1436
	call	__stack_chk_fail@PLT
.L1436:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE162:
	.size	stbi_info_from_callbacks, .-stbi_info_from_callbacks
	.section	.rodata
	.align 8
	.type	__PRETTY_FUNCTION__.14, @object
	.size	__PRETTY_FUNCTION__.14, 15
__PRETTY_FUNCTION__.14:
	.string	"convert_format"
	.type	__PRETTY_FUNCTION__.13, @object
	.size	__PRETTY_FUNCTION__.13, 7
__PRETTY_FUNCTION__.13:
	.string	"decode"
	.align 8
	.type	__PRETTY_FUNCTION__.12, @object
	.size	__PRETTY_FUNCTION__.12, 12
__PRETTY_FUNCTION__.12:
	.string	"bit_reverse"
	.align 8
	.type	__PRETTY_FUNCTION__.11, @object
	.size	__PRETTY_FUNCTION__.11, 15
__PRETTY_FUNCTION__.11:
	.string	"zbuild_huffman"
	.align 8
	.type	__PRETTY_FUNCTION__.10, @object
	.size	__PRETTY_FUNCTION__.10, 10
__PRETTY_FUNCTION__.10:
	.string	"fill_bits"
	.align 16
	.type	__PRETTY_FUNCTION__.9, @object
	.size	__PRETTY_FUNCTION__.9, 16
__PRETTY_FUNCTION__.9:
	.string	"zhuffman_decode"
	.data
	.align 16
	.type	length_dezigzag.8, @object
	.size	length_dezigzag.8, 19
length_dezigzag.8:
	.string	"\020\021\022"
	.ascii	"\b\007\t\006\n\005\013\004\f\003\r\002\016\001\017"
	.section	.rodata
	.align 16
	.type	__PRETTY_FUNCTION__.7, @object
	.size	__PRETTY_FUNCTION__.7, 22
__PRETTY_FUNCTION__.7:
	.string	"compute_huffman_codes"
	.align 16
	.type	__PRETTY_FUNCTION__.6, @object
	.size	__PRETTY_FUNCTION__.6, 25
__PRETTY_FUNCTION__.6:
	.string	"parse_uncompressed_block"
	.data
	.align 8
	.type	png_sig.5, @object
	.size	png_sig.5, 8
png_sig.5:
	.ascii	"\211PNG\r\n\032\n"
	.section	.rodata
	.align 16
	.type	__PRETTY_FUNCTION__.4, @object
	.size	__PRETTY_FUNCTION__.4, 21
__PRETTY_FUNCTION__.4:
	.string	"create_png_image_raw"
	.align 16
	.type	__PRETTY_FUNCTION__.3, @object
	.size	__PRETTY_FUNCTION__.3, 21
__PRETTY_FUNCTION__.3:
	.string	"compute_transparency"
	.align 8
	.type	__PRETTY_FUNCTION__.2, @object
	.size	__PRETTY_FUNCTION__.2, 15
__PRETTY_FUNCTION__.2:
	.string	"stbi_de_iphone"
	.data
	.align 16
	.type	invalid_chunk.1, @object
	.size	invalid_chunk.1, 21
invalid_chunk.1:
	.string	"XXXX chunk not known"
	.section	.rodata
	.align 8
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 9
__PRETTY_FUNCTION__.0:
	.string	"bmp_load"
	.align 4
.LC3:
	.long	1065353216
	.align 4
.LC8:
	.long	1132396544
	.align 4
.LC9:
	.long	1056964608
	.align 8
.LC105:
	.long	0
	.long	1072693248
	.align 4
.LC106:
	.long	1077936128
	.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	"388382.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_mem, %function
start_mem:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #176]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #176]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #168]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #172]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	start_mem, .-start_mem
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_callbacks, %function
start_callbacks:
	@ 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]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	add	r3, r3, #16
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	mov	r2, #128
	str	r2, [r3, #36]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	add	r2, r3, #40
	ldr	r3, [fp, #-8]
	str	r2, [r3, #176]
	ldr	r0, [fp, #-8]
	bl	refill_buffer
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	start_callbacks, .-start_callbacks
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stdio_read, %function
stdio_read:
	@ 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]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	mov	r1, #1
	ldr	r0, [fp, #-12]
	bl	fread
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stdio_read, .-stdio_read
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stdio_skip, %function
stdio_skip:
	@ 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]
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	fseek
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stdio_skip, .-stdio_skip
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stdio_eof, %function
stdio_eof:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	feof
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stdio_eof, .-stdio_eof
	.data
	.align	2
	.type	stbi_stdio_callbacks, %object
	.size	stbi_stdio_callbacks, 12
stbi_stdio_callbacks:
	.word	stdio_read
	.word	stdio_skip
	.word	stdio_eof
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_file, %function
start_file:
	@ 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	r2, [fp, #-12]
	ldr	r1, .L9
	ldr	r0, [fp, #-8]
	bl	start_callbacks
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L10:
	.align	2
.L9:
	.word	stbi_stdio_callbacks
	.size	start_file, .-start_file
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_rewind, %function
stbi_rewind:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #176]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #168]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	stbi_rewind, .-stbi_rewind
	.local	failure_reason
	.comm	failure_reason,4,4
	.align	2
	.global	stbi_failure_reason
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_failure_reason, %function
stbi_failure_reason:
	@ 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, .L14
	ldr	r3, [r3]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L15:
	.align	2
.L14:
	.word	failure_reason
	.size	stbi_failure_reason, .-stbi_failure_reason
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	e, %function
e:
	@ 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, .L18
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L19:
	.align	2
.L18:
	.word	failure_reason
	.size	e, .-e
	.align	2
	.global	stbi_image_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_image_free, %function
stbi_image_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_image_free, .-stbi_image_free
	.section	.rodata
	.align	2
.LC4:
	.ascii	"unknown image type\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_load_main, %function
stbi_load_main:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	stbi_jpeg_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L22
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_jpeg_load
	mov	r3, r0
	b	.L23
.L22:
	ldr	r0, [fp, #-16]
	bl	stbi_png_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L24
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_png_load
	mov	r3, r0
	b	.L23
.L24:
	ldr	r0, [fp, #-16]
	bl	stbi_bmp_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L25
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_bmp_load
	mov	r3, r0
	b	.L23
.L25:
	ldr	r0, [fp, #-16]
	bl	stbi_gif_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L26
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_gif_load
	mov	r3, r0
	b	.L23
.L26:
	ldr	r0, [fp, #-16]
	bl	stbi_psd_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L27
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_psd_load
	mov	r3, r0
	b	.L23
.L27:
	ldr	r0, [fp, #-16]
	bl	stbi_pic_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L28
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_pic_load
	mov	r3, r0
	b	.L23
.L28:
	ldr	r0, [fp, #-16]
	bl	stbi_hdr_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L29
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_hdr_load
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r1, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L30
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	b	.L31
.L30:
	ldr	r3, [fp, #4]
.L31:
	ldr	r0, [fp, #-8]
	bl	hdr_to_ldr
	mov	r3, r0
	b	.L23
.L29:
	ldr	r0, [fp, #-16]
	bl	stbi_tga_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L32
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_tga_load
	mov	r3, r0
	b	.L23
.L32:
	ldr	r0, .L33
	bl	e
	mov	r3, #0
.L23:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L34:
	.align	2
.L33:
	.word	.LC4
	.size	stbi_load_main, .-stbi_load_main
	.section	.rodata
	.align	2
.LC5:
	.ascii	"rb\000"
	.align	2
.LC6:
	.ascii	"can't fopen\000"
	.text
	.align	2
	.global	stbi_load
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_load, %function
stbi_load:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r1, .L38
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L36
	ldr	r0, .L38+4
	bl	e
	mov	r3, #0
	b	.L37
.L36:
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-12]
	bl	stbi_load_from_file
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	fclose
	ldr	r3, [fp, #-8]
.L37:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L39:
	.align	2
.L38:
	.word	.LC5
	.word	.LC6
	.size	stbi_load, .-stbi_load
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_load_from_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_load_from_file, %function
stbi_load_from_file:
	@ args = 4, pretend = 0, frame = 200
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #208
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, .L43
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_file
	sub	r0, fp, #188
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-204]
	ldr	r2, [fp, #-200]
	ldr	r1, [fp, #-196]
	bl	stbi_load_main
	mov	r3, r0
	ldr	r2, .L43
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L42
	bl	__stack_chk_fail
.L42:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L44:
	.align	2
.L43:
	.word	.LC7
	.size	stbi_load_from_file, .-stbi_load_from_file
	.section	.rodata
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_load_from_memory
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_load_from_memory, %function
stbi_load_from_memory:
	@ args = 8, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #216
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-208]
	ldr	r3, .L48
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_mem
	sub	r0, fp, #188
	ldr	r3, [fp, #8]
	str	r3, [sp]
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-204]
	ldr	r1, [fp, #-200]
	bl	stbi_load_main
	mov	r3, r0
	ldr	r2, .L48
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L47
	bl	__stack_chk_fail
.L47:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L49:
	.align	2
.L48:
	.word	.LC8
	.size	stbi_load_from_memory, .-stbi_load_from_memory
	.section	.rodata
	.align	2
.LC9:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_load_from_callbacks
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_load_from_callbacks, %function
stbi_load_from_callbacks:
	@ args = 8, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #216
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-208]
	ldr	r3, .L53
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_callbacks
	sub	r0, fp, #188
	ldr	r3, [fp, #8]
	str	r3, [sp]
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-204]
	ldr	r1, [fp, #-200]
	bl	stbi_load_main
	mov	r3, r0
	ldr	r2, .L53
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L52
	bl	__stack_chk_fail
.L52:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L54:
	.align	2
.L53:
	.word	.LC9
	.size	stbi_load_from_callbacks, .-stbi_load_from_callbacks
	.align	2
	.global	stbi_loadf_main
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_loadf_main, %function
stbi_loadf_main:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	stbi_hdr_test
	mov	r3, r0
	cmp	r3, #0
	beq	.L56
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_hdr_load
	mov	r3, r0
	b	.L57
.L56:
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stbi_load_main
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L58
	ldr	r3, [fp, #-20]
	ldr	r1, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L59
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	b	.L60
.L59:
	ldr	r3, [fp, #4]
.L60:
	ldr	r0, [fp, #-8]
	bl	ldr_to_hdr
	mov	r3, r0
	b	.L57
.L58:
	ldr	r0, .L61
	bl	e
	mov	r3, #0
.L57:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L62:
	.align	2
.L61:
	.word	.LC4
	.size	stbi_loadf_main, .-stbi_loadf_main
	.section	.rodata
	.align	2
.LC10:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_loadf_from_memory
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_loadf_from_memory, %function
stbi_loadf_from_memory:
	@ args = 8, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #216
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-208]
	ldr	r3, .L66
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_mem
	sub	r0, fp, #188
	ldr	r3, [fp, #8]
	str	r3, [sp]
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-204]
	ldr	r1, [fp, #-200]
	bl	stbi_loadf_main
	mov	r3, r0
	ldr	r2, .L66
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L65
	bl	__stack_chk_fail
.L65:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L67:
	.align	2
.L66:
	.word	.LC10
	.size	stbi_loadf_from_memory, .-stbi_loadf_from_memory
	.section	.rodata
	.align	2
.LC11:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_loadf_from_callbacks
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_loadf_from_callbacks, %function
stbi_loadf_from_callbacks:
	@ args = 8, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #216
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-208]
	ldr	r3, .L71
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_callbacks
	sub	r0, fp, #188
	ldr	r3, [fp, #8]
	str	r3, [sp]
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-204]
	ldr	r1, [fp, #-200]
	bl	stbi_loadf_main
	mov	r3, r0
	ldr	r2, .L71
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L70
	bl	__stack_chk_fail
.L70:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L72:
	.align	2
.L71:
	.word	.LC11
	.size	stbi_loadf_from_callbacks, .-stbi_loadf_from_callbacks
	.align	2
	.global	stbi_loadf
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_loadf, %function
stbi_loadf:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r1, .L76
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L74
	ldr	r0, .L76+4
	bl	e
	mov	r3, #0
	b	.L75
.L74:
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-12]
	bl	stbi_loadf_from_file
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	fclose
	ldr	r3, [fp, #-8]
.L75:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L77:
	.align	2
.L76:
	.word	.LC5
	.word	.LC6
	.size	stbi_loadf, .-stbi_loadf
	.section	.rodata
	.align	2
.LC12:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_loadf_from_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_loadf_from_file, %function
stbi_loadf_from_file:
	@ args = 4, pretend = 0, frame = 200
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #208
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, .L81
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_file
	sub	r0, fp, #188
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-204]
	ldr	r2, [fp, #-200]
	ldr	r1, [fp, #-196]
	bl	stbi_loadf_main
	mov	r3, r0
	ldr	r2, .L81
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L80
	bl	__stack_chk_fail
.L80:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L82:
	.align	2
.L81:
	.word	.LC12
	.size	stbi_loadf_from_file, .-stbi_loadf_from_file
	.section	.rodata
	.align	2
.LC13:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_is_hdr_from_memory
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_is_hdr_from_memory, %function
stbi_is_hdr_from_memory:
	@ args = 0, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #192
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	ldr	r3, .L86
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_mem
	sub	r3, fp, #188
	mov	r0, r3
	bl	stbi_hdr_test
	mov	r3, r0
	ldr	r2, .L86
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L85
	bl	__stack_chk_fail
.L85:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L87:
	.align	2
.L86:
	.word	.LC13
	.size	stbi_is_hdr_from_memory, .-stbi_is_hdr_from_memory
	.align	2
	.global	stbi_is_hdr
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_is_hdr, %function
stbi_is_hdr:
	@ 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	r1, .L91
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L89
	ldr	r0, [fp, #-8]
	bl	stbi_is_hdr_from_file
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	fclose
.L89:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L92:
	.align	2
.L91:
	.word	.LC5
	.size	stbi_is_hdr, .-stbi_is_hdr
	.section	.rodata
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_is_hdr_from_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_is_hdr_from_file, %function
stbi_is_hdr_from_file:
	@ args = 0, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #192
	str	r0, [fp, #-192]
	ldr	r3, .L96
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_file
	sub	r3, fp, #188
	mov	r0, r3
	bl	stbi_hdr_test
	mov	r3, r0
	ldr	r2, .L96
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L95
	bl	__stack_chk_fail
.L95:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L97:
	.align	2
.L96:
	.word	.LC14
	.size	stbi_is_hdr_from_file, .-stbi_is_hdr_from_file
	.section	.rodata
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_is_hdr_from_callbacks
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_is_hdr_from_callbacks, %function
stbi_is_hdr_from_callbacks:
	@ args = 0, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #192
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	ldr	r3, .L101
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_callbacks
	sub	r3, fp, #188
	mov	r0, r3
	bl	stbi_hdr_test
	mov	r3, r0
	ldr	r2, .L101
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L100
	bl	__stack_chk_fail
.L100:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L102:
	.align	2
.L101:
	.word	.LC15
	.size	stbi_is_hdr_from_callbacks, .-stbi_is_hdr_from_callbacks
	.data
	.align	2
	.type	h2l_gamma_i, %object
	.size	h2l_gamma_i, 4
h2l_gamma_i:
	.word	1055439406
	.align	2
	.type	h2l_scale_i, %object
	.size	h2l_scale_i, 4
h2l_scale_i:
	.word	1065353216
	.align	2
	.type	l2h_gamma, %object
	.size	l2h_gamma, 4
l2h_gamma:
	.word	1074580685
	.align	2
	.type	l2h_scale, %object
	.size	l2h_scale, 4
l2h_scale:
	.word	1065353216
	.global	__aeabi_fdiv
	.text
	.align	2
	.global	stbi_hdr_to_ldr_gamma
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_hdr_to_ldr_gamma, %function
stbi_hdr_to_ldr_gamma:
	@ 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]	@ float
	ldr	r1, [fp, #-8]	@ float
	mov	r0, #1065353216
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L104
	str	r2, [r3]	@ float
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L105:
	.align	2
.L104:
	.word	h2l_gamma_i
	.size	stbi_hdr_to_ldr_gamma, .-stbi_hdr_to_ldr_gamma
	.align	2
	.global	stbi_hdr_to_ldr_scale
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_hdr_to_ldr_scale, %function
stbi_hdr_to_ldr_scale:
	@ 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]	@ float
	ldr	r1, [fp, #-8]	@ float
	mov	r0, #1065353216
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L107
	str	r2, [r3]	@ float
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L108:
	.align	2
.L107:
	.word	h2l_scale_i
	.size	stbi_hdr_to_ldr_scale, .-stbi_hdr_to_ldr_scale
	.align	2
	.global	stbi_ldr_to_hdr_gamma
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_ldr_to_hdr_gamma, %function
stbi_ldr_to_hdr_gamma:
	@ 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]	@ float
	ldr	r2, .L110
	ldr	r3, [fp, #-8]	@ float
	str	r3, [r2]	@ float
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L111:
	.align	2
.L110:
	.word	l2h_gamma
	.size	stbi_ldr_to_hdr_gamma, .-stbi_ldr_to_hdr_gamma
	.align	2
	.global	stbi_ldr_to_hdr_scale
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_ldr_to_hdr_scale, %function
stbi_ldr_to_hdr_scale:
	@ 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]	@ float
	ldr	r2, .L113
	ldr	r3, [fp, #-8]	@ float
	str	r3, [r2]	@ float
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L114:
	.align	2
.L113:
	.word	l2h_scale
	.size	stbi_ldr_to_hdr_scale, .-stbi_ldr_to_hdr_scale
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	refill_buffer, %function
refill_buffer:
	@ 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]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-16]
	ldr	r0, [r2, #28]
	ldr	r2, [fp, #-16]
	add	r1, r2, #40
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #36]
	blx	r3
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L116
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #172]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #168]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #168]
	mov	r2, #0
	strb	r2, [r3]
	b	.L118
.L116:
	ldr	r3, [fp, #-16]
	add	r2, r3, #40
	ldr	r3, [fp, #-16]
	str	r2, [r3, #168]
	ldr	r3, [fp, #-16]
	add	r2, r3, #40
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #172]
.L118:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	refill_buffer, .-refill_buffer
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get8, %function
get8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #172]
	cmp	r2, r3
	bcs	.L120
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #168]
	add	r1, r3, #1
	ldr	r2, [fp, #-8]
	str	r1, [r2, #168]
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L121
.L120:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	beq	.L122
	ldr	r0, [fp, #-8]
	bl	refill_buffer
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #168]
	add	r1, r3, #1
	ldr	r2, [fp, #-8]
	str	r1, [r2, #168]
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L121
.L122:
	mov	r3, #0
.L121:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get8, .-get8
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	at_eof, %function
at_eof:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L124
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #28]
	mov	r0, r2
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L125
	mov	r3, #0
	b	.L126
.L125:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L124
	mov	r3, #1
	b	.L126
.L124:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #172]
	cmp	r2, r3
	movcs	r3, #1
	movcc	r3, #0
	and	r3, r3, #255
.L126:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	at_eof, .-at_eof
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get8u, %function
get8u:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get8u, .-get8u
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip, %function
skip:
	@ 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, #-16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L130
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #172]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #168]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bge	.L130
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #172]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #168]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-16]
	ldr	r0, [r2, #28]
	ldr	r1, [fp, #-20]
	ldr	r2, [fp, #-8]
	sub	r2, r1, r2
	mov	r1, r2
	blx	r3
	b	.L129
.L130:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #168]
.L129:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	skip, .-skip
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	getn, %function
getn:
	@ 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]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L133
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #172]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #168]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bge	.L133
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #168]
	ldr	r2, [fp, #-16]
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	memcpy
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	ldr	r0, [r2, #28]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-28]
	add	ip, r1, r2
	ldr	r1, [fp, #-32]
	ldr	r2, [fp, #-16]
	sub	r2, r1, r2
	mov	r1, ip
	blx	r3
	str	r0, [fp, #-12]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #172]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #168]
	ldr	r3, [fp, #-8]
	b	.L134
.L133:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-32]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #172]
	cmp	r2, r3
	bhi	.L135
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #168]
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	memcpy
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #168]
	ldr	r3, [fp, #-32]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #168]
	mov	r3, #1
	b	.L134
.L135:
	mov	r3, #0
.L134:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	getn, .-getn
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get16, %function
get16:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	get8
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r4, r3, #8
	ldr	r0, [fp, #-24]
	bl	get8
	mov	r3, r0
	add	r3, r4, r3
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	get16, .-get16
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get32, %function
get32:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	get16
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r4, r3, #16
	ldr	r0, [fp, #-24]
	bl	get16
	mov	r3, r0
	add	r3, r4, r3
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	get32, .-get32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get16le, %function
get16le:
	@ 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	r0, [fp, #-16]
	bl	get8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	lsl	r2, r3, #8
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get16le, .-get16le
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get32le, %function
get32le:
	@ 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	r0, [fp, #-16]
	bl	get16le
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get16le
	mov	r3, r0
	lsl	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get32le, .-get32le
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_y, %function
compute_y:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r1, r2, r3
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #1
	mov	r2, r3
	mov	r3, r2
	add	r1, r1, r3
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	add	r3, r1, r3
	asr	r3, r3, #8
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	compute_y, .-compute_y
	.section	.rodata
	.align	2
.LC16:
	.ascii	"the_stack_data/388382.c\000"
	.align	2
.LC17:
	.ascii	"req_comp >= 1 && req_comp <= 4\000"
	.align	2
.LC18:
	.ascii	"outofmem\000"
	.align	2
.LC19:
	.ascii	"0\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	convert_format, %function
convert_format:
	@ args = 4, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bne	.L147
	ldr	r3, [fp, #-32]
	b	.L148
.L147:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L149
	ldr	r3, [fp, #-40]
	cmp	r3, #4
	ble	.L194
.L149:
	ldr	r3, .L195
	mov	r2, #840
	ldr	r1, .L195+4
	ldr	r0, .L195+8
	bl	__assert_fail
.L194:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-44]
	mul	r3, r2, r3
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L151
	ldr	r0, [fp, #-32]
	bl	free
	ldr	r0, .L195+12
	bl	e
	mov	r3, #0
	b	.L148
.L151:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L152
.L192:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-44]
	mul	r3, r2, r3
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-44]
	mul	r3, r2, r3
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-36]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	sub	r3, r3, #10
	cmp	r3, #25
	ldrls	pc, [pc, r3, asl #2]
	b	.L193
.L155:
	.word	.L166
	.word	.L165
	.word	.L164
	.word	.L193
	.word	.L193
	.word	.L193
	.word	.L193
	.word	.L163
	.word	.L193
	.word	.L162
	.word	.L161
	.word	.L193
	.word	.L193
	.word	.L193
	.word	.L193
	.word	.L160
	.word	.L159
	.word	.L193
	.word	.L158
	.word	.L193
	.word	.L193
	.word	.L193
	.word	.L193
	.word	.L157
	.word	.L156
	.word	.L154
.L166:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L167
.L168:
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L167:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L168
	b	.L169
.L165:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L170
.L171:
	ldr	r3, [fp, #-12]
	add	r2, r3, #2
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	str	r3, [fp, #-12]
.L170:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L171
	b	.L169
.L164:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L172
.L173:
	ldr	r3, [fp, #-12]
	add	r2, r3, #2
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	str	r3, [fp, #-12]
.L172:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L173
	b	.L169
.L163:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L174
.L175:
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L174:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L175
	b	.L169
.L162:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L176
.L177:
	ldr	r3, [fp, #-12]
	add	r2, r3, #2
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	str	r3, [fp, #-12]
.L176:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L177
	b	.L169
.L161:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L178
.L179:
	ldr	r3, [fp, #-12]
	add	r2, r3, #2
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	ldr	r2, [fp, #-16]
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	str	r3, [fp, #-12]
.L178:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L179
	b	.L169
.L158:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L180
.L181:
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldr	r2, [fp, #-16]
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	ldr	r2, [fp, #-16]
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	str	r3, [fp, #-12]
.L180:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L181
	b	.L169
.L160:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L182
.L183:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	bl	compute_y
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L182:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L183
	b	.L169
.L159:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L184
.L185:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	bl	compute_y
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L184:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L185
	b	.L169
.L157:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L186
.L187:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	bl	compute_y
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L186:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L187
	b	.L169
.L156:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L188
.L189:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	bl	compute_y
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldr	r2, [fp, #-16]
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L188:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L189
	b	.L169
.L154:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L190
.L191:
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldr	r2, [fp, #-16]
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	ldr	r2, [fp, #-16]
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	str	r3, [fp, #-12]
.L190:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L191
	b	.L169
.L193:
	ldr	r3, .L195
	ldr	r2, .L195+16
	ldr	r1, .L195+4
	ldr	r0, .L195+20
	bl	__assert_fail
.L169:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L152:
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L192
	ldr	r0, [fp, #-32]
	bl	free
	ldr	r3, [fp, #-8]
.L148:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L196:
	.align	2
.L195:
	.word	__PRETTY_FUNCTION__.6827
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	869
	.word	.LC19
	.size	convert_format, .-convert_format
	.global	__aeabi_i2f
	.global	__aeabi_f2d
	.global	__aeabi_d2f
	.global	__aeabi_fmul
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ldr_to_hdr, %function
ldr_to_hdr:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	ldr	r2, [fp, #-44]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L198
	ldr	r0, [fp, #-32]
	bl	free
	ldr	r0, .L207
	bl	e
	mov	r3, #0
	b	.L199
.L198:
	ldr	r3, [fp, #-44]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L200
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-20]
	b	.L201
.L200:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
.L201:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L202
.L206:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L203
.L204:
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-44]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	ldr	r1, .L207+4
	mov	r0, r3
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, .L207+8
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	pow
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	ldr	r3, .L207+12
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-44]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r4, r2, r3
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L203:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L204
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bge	.L205
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-44]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	__aeabi_i2f
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-44]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r4, r2, r3
	ldr	r1, .L207+4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [r4]	@ float
.L205:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L202:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L206
	ldr	r0, [fp, #-32]
	bl	free
	ldr	r3, [fp, #-16]
.L199:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L208:
	.align	2
.L207:
	.word	.LC18
	.word	1132396544
	.word	l2h_gamma
	.word	l2h_scale
	.size	ldr_to_hdr, .-ldr_to_hdr
	.global	__aeabi_fadd
	.global	__aeabi_fcmplt
	.global	__aeabi_fcmpgt
	.global	__aeabi_f2iz
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hdr_to_ldr, %function
hdr_to_ldr:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-48]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L210
	ldr	r0, [fp, #-40]
	bl	free
	ldr	r0, .L231
	bl	e
	mov	r3, #0
	b	.L211
.L210:
	ldr	r3, [fp, #-52]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L212
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-28]
	b	.L213
.L212:
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
.L213:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L214
.L226:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L215
.L220:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-52]
	mul	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	ldr	r2, .L231+4
	ldr	r2, [r2]	@ float
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, .L231+8
	ldr	r3, [r3]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	pow
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	ldr	r1, .L231+12
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, #1056964608
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-24]	@ float
	mov	r1, #0
	ldr	r0, [fp, #-24]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L216
	mov	r3, #0
	str	r3, [fp, #-24]	@ float
.L216:
	ldr	r1, .L231+12
	ldr	r0, [fp, #-24]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L218
	ldr	r3, .L231+12
	str	r3, [fp, #-24]	@ float
.L218:
	ldr	r0, [fp, #-24]	@ float
	bl	__aeabi_f2iz
	mov	r1, r0
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-52]
	mul	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L215:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L220
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L221
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-52]
	mul	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	ldr	r1, .L231+12
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, #1056964608
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	mov	r1, #0
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L222
	mov	r3, #0
	str	r3, [fp, #-20]	@ float
.L222:
	ldr	r1, .L231+12
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L224
	ldr	r3, .L231+12
	str	r3, [fp, #-20]	@ float
.L224:
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_f2iz
	mov	r1, r0
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-52]
	mul	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	and	r2, r1, #255
	strb	r2, [r3]
.L221:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L214:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-48]
	mul	r3, r2, r3
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L226
	ldr	r0, [fp, #-40]
	bl	free
	ldr	r3, [fp, #-16]
.L211:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L232:
	.align	2
.L231:
	.word	.LC18
	.word	h2l_scale_i
	.word	h2l_gamma_i
	.word	1132396544
	.size	hdr_to_ldr, .-hdr_to_ldr
	.section	.rodata
	.align	2
.LC20:
	.ascii	"bad code lengths\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	build_huffman, %function
build_huffman:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L234
.L237:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L235
.L236:
	ldr	r3, [fp, #-32]
	and	r2, r3, #255
	ldr	r3, [fp, #-24]
	add	r1, r3, #1
	str	r1, [fp, #-24]
	add	r2, r2, #1
	and	r1, r2, #255
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #1280]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L235:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L236
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L234:
	ldr	r3, [fp, #-32]
	cmp	r3, #15
	ble	.L237
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1280
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #1
	str	r3, [fp, #-28]
	b	.L238
.L243:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	sub	r2, r2, r3
	ldr	r1, [fp, #-40]
	ldr	r3, [fp, #-28]
	add	r3, r3, #400
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1280
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bne	.L239
	b	.L240
.L241:
	ldr	r2, [fp, #-20]
	add	r3, r2, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r1, r3, #1
	str	r1, [fp, #-24]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, [fp, #-40]
	add	r3, r3, #256
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
.L240:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1280
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	beq	.L241
	mov	r2, #1
	ldr	r3, [fp, #-28]
	lsl	r3, r2, r3
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L239
	ldr	r0, .L249
	bl	e
	mov	r3, r0
	b	.L242
.L239:
	ldr	r3, [fp, #-28]
	rsb	r3, r3, #16
	ldr	r2, [fp, #-20]
	lsl	r3, r2, r3
	mov	r1, r3
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-28]
	add	r3, r3, #384
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L238:
	ldr	r3, [fp, #-28]
	cmp	r3, #16
	ble	.L243
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-28]
	add	r3, r3, #384
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	mov	r2, #512
	mov	r1, #255
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L244
.L248:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	add	r3, r3, #1280
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #9
	bgt	.L245
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	add	r3, r3, #256
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	rsb	r3, r3, #9
	lsl	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	rsb	r3, r3, #9
	mov	r2, #1
	lsl	r3, r2, r3
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L246
.L247:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	and	r1, r2, #255
	ldr	r2, [fp, #-40]
	strb	r1, [r2, r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L246:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L247
.L245:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L244:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L248
	mov	r3, #1
.L242:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L250:
	.align	2
.L249:
	.word	.LC20
	.size	build_huffman, .-build_huffman
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	grow_buffer_unsafe, %function
grow_buffer_unsafe:
	@ 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]
.L256:
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldr	r3, [r3, #1672]
	cmp	r3, #0
	bne	.L252
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	mov	r3, r0
	b	.L253
.L252:
	mov	r3, #0
.L253:
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #255
	bne	.L254
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L254
	ldr	r3, [fp, #-8]
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	strb	r2, [r3, #1668]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #1672]
	b	.L251
.L254:
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldr	r3, [r3, #1660]
	ldr	r2, [fp, #-16]
	add	r2, r2, #12288
	ldr	r2, [r2, #1664]
	rsb	r2, r2, #24
	ldr	r1, [fp, #-12]
	lsl	r2, r1, r2
	orr	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r2, r2, #12288
	str	r3, [r2, #1660]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	add	r3, r3, #8
	ldr	r2, [fp, #-16]
	add	r2, r2, #12288
	str	r3, [r2, #1664]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	cmp	r3, #24
	ble	.L256
.L251:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	grow_buffer_unsafe, .-grow_buffer_unsafe
	.data
	.align	2
	.type	bmask, %object
	.size	bmask, 68
bmask:
	.word	0
	.word	1
	.word	3
	.word	7
	.word	15
	.word	31
	.word	63
	.word	127
	.word	255
	.word	511
	.word	1023
	.word	2047
	.word	4095
	.word	8191
	.word	16383
	.word	32767
	.word	65535
	.section	.rodata
	.align	2
.LC21:
	.ascii	"(((j->code_buffer) >> (32 - h->size[c])) & bmask[h-"
	.ascii	">size[c]]) == h->code[c]\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decode, %function
decode:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	cmp	r3, #15
	bgt	.L258
	ldr	r0, [fp, #-24]
	bl	grow_buffer_unsafe
.L258:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r3, [r3, #1660]
	lsr	r3, r3, #23
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #254
	bgt	.L259
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	add	r3, r3, #1280
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	ble	.L260
	mvn	r3, #0
	b	.L261
.L260:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r2, [r3, #1660]
	ldr	r3, [fp, #-8]
	lsl	r3, r2, r3
	ldr	r2, [fp, #-24]
	add	r2, r2, #12288
	str	r3, [r2, #1660]
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r2, [r3, #1664]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	ldr	r2, [fp, #-24]
	add	r2, r2, #12288
	str	r3, [r2, #1664]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	add	r3, r3, #1024
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L261
.L259:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r3, [r3, #1660]
	lsr	r3, r3, #16
	str	r3, [fp, #-12]
	mov	r3, #10
	str	r3, [fp, #-20]
.L264:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-20]
	add	r3, r3, #384
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L269
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	b	.L264
.L269:
	nop
	ldr	r3, [fp, #-20]
	cmp	r3, #17
	bne	.L265
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	sub	r3, r3, #16
	ldr	r2, [fp, #-24]
	add	r2, r2, #12288
	str	r3, [r2, #1664]
	mvn	r3, #0
	b	.L261
.L265:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L266
	mvn	r3, #0
	b	.L261
.L266:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r2, [r3, #1660]
	ldr	r3, [fp, #-20]
	rsb	r3, r3, #32
	lsr	r2, r2, r3
	ldr	r1, .L270
	ldr	r3, [fp, #-20]
	ldr	r3, [r1, r3, lsl #2]
	and	r2, r2, r3
	ldr	r1, [fp, #-28]
	ldr	r3, [fp, #-20]
	add	r3, r3, #400
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r2, [r3, #1660]
	ldr	r1, [fp, #-28]
	ldr	r3, [fp, #-16]
	add	r3, r1, r3
	add	r3, r3, #1280
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #32
	lsr	r2, r2, r3
	ldr	r1, [fp, #-28]
	ldr	r3, [fp, #-16]
	add	r3, r1, r3
	add	r3, r3, #1280
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L270
	ldr	r3, [r3, r1, lsl #2]
	and	r3, r3, r2
	ldr	r1, [fp, #-28]
	ldr	r2, [fp, #-16]
	add	r2, r2, #256
	lsl	r2, r2, #1
	add	r2, r1, r2
	ldrh	r2, [r2]
	cmp	r3, r2
	beq	.L267
	ldr	r3, .L270+4
	ldr	r2, .L270+8
	ldr	r1, .L270+12
	ldr	r0, .L270+16
	bl	__assert_fail
.L267:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r2, [r3, #1664]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, [fp, #-24]
	add	r2, r2, #12288
	str	r3, [r2, #1664]
	ldr	r3, [fp, #-24]
	add	r3, r3, #12288
	ldr	r2, [r3, #1660]
	ldr	r3, [fp, #-20]
	lsl	r3, r2, r3
	ldr	r2, [fp, #-24]
	add	r2, r2, #12288
	str	r3, [r2, #1660]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	add	r3, r3, #1024
	ldrb	r3, [r3]	@ zero_extendqisi2
.L261:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L271:
	.align	2
.L270:
	.word	bmask
	.word	__PRETTY_FUNCTION__.7008
	.word	1106
	.word	.LC16
	.word	.LC21
	.size	decode, .-decode
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	extend_receive, %function
extend_receive:
	@ 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]
	sub	r3, r3, #1
	mov	r2, #1
	lsl	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L273
	ldr	r0, [fp, #-16]
	bl	grow_buffer_unsafe
.L273:
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldr	r2, [r3, #1660]
	ldr	r3, [fp, #-20]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r2, .L276
	ldr	r3, [fp, #-20]
	ldr	r3, [r2, r3, lsl #2]
	mvn	r2, r3
	ldr	r3, [fp, #-8]
	and	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r2, r2, #12288
	str	r3, [r2, #1660]
	ldr	r2, .L276
	ldr	r3, [fp, #-20]
	ldr	r3, [r2, r3, lsl #2]
	ldr	r2, [fp, #-8]
	and	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldr	r2, [r3, #1664]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, #12288
	str	r3, [r2, #1664]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bcs	.L274
	mvn	r2, #0
	ldr	r3, [fp, #-20]
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	add	r3, r3, #1
	b	.L275
.L274:
	ldr	r3, [fp, #-8]
.L275:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L277:
	.align	2
.L276:
	.word	bmask
	.size	extend_receive, .-extend_receive
	.data
	.align	2
	.type	dezigzag, %object
	.size	dezigzag, 79
dezigzag:
	.ascii	"\000\001\010\020\011\002\003\012\021\030 \031\022\013"
	.ascii	"\004\005\014\023\032!(0)\"\033\024\015\006\007\016\025"
	.ascii	"\034#*1892+$\035\026\017\027\036%,3:;4-&\037'.5<=6/"
	.ascii	"7>????????????????"
	.section	.rodata
	.align	2
.LC22:
	.ascii	"bad huffman code\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decode_block, %function
decode_block:
	@ args = 4, 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]
	str	r3, [fp, #-52]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-40]
	bl	decode
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L279
	ldr	r0, .L290
	bl	e
	mov	r3, r0
	b	.L280
.L279:
	mov	r2, #128
	mov	r1, #0
	ldr	r0, [fp, #-44]
	bl	memset
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L281
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-40]
	bl	extend_receive
	mov	r3, r0
	b	.L282
.L281:
	mov	r3, #0
.L282:
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #4]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #52
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #4]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #52
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-44]
	strh	r2, [r3]	@ movhi
	mov	r3, #1
	str	r3, [fp, #-32]
.L288:
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-40]
	bl	decode
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L283
	ldr	r0, .L290
	bl	e
	mov	r3, r0
	b	.L280
.L283:
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	asr	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L284
	ldr	r3, [fp, #-16]
	cmp	r3, #240
	bne	.L289
	ldr	r3, [fp, #-32]
	add	r3, r3, #16
	str	r3, [fp, #-32]
	b	.L287
.L284:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-40]
	bl	extend_receive
	mov	r1, r0
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	ldr	r2, .L290+4
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	lsl	r2, r1, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
.L287:
	ldr	r3, [fp, #-32]
	cmp	r3, #63
	ble	.L288
	b	.L286
.L289:
	nop
.L286:
	mov	r3, #1
.L280:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L291:
	.align	2
.L290:
	.word	.LC22
	.word	dezigzag
	.size	decode_block, .-decode_block
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	clamp, %function
clamp:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	bls	.L293
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L294
	mov	r3, #0
	b	.L295
.L294:
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	ble	.L293
	mov	r3, #255
	b	.L295
.L293:
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
.L295:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	clamp, .-clamp
	.section	.rodata
	.align	2
.LC23:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	idct_block, %function
idct_block:
	@ args = 0, pretend = 0, frame = 408
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #412
	str	r0, [fp, #-408]
	str	r1, [fp, #-412]
	str	r2, [fp, #-416]
	str	r3, [fp, #-420]
	ldr	r3, .L304
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #272
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-420]
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-416]
	str	r3, [fp, #-384]
	mov	r3, #0
	str	r3, [fp, #-400]
	b	.L297
.L300:
	ldr	r3, [fp, #-384]
	add	r3, r3, #16
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L298
	ldr	r3, [fp, #-384]
	add	r3, r3, #32
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L298
	ldr	r3, [fp, #-384]
	add	r3, r3, #48
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L298
	ldr	r3, [fp, #-384]
	add	r3, r3, #64
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L298
	ldr	r3, [fp, #-384]
	add	r3, r3, #80
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L298
	ldr	r3, [fp, #-384]
	add	r3, r3, #96
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L298
	ldr	r3, [fp, #-384]
	add	r3, r3, #112
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L298
	ldr	r3, [fp, #-384]
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	lsl	r3, r3, #2
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-396]
	add	r3, r3, #224
	ldr	r2, [fp, #-328]
	str	r2, [r3]
	ldr	r2, [fp, #-396]
	add	r2, r2, #192
	ldr	r3, [r3]
	str	r3, [r2]
	ldr	r3, [fp, #-396]
	add	r3, r3, #160
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r2, [fp, #-396]
	add	r2, r2, #128
	ldr	r3, [r3]
	str	r3, [r2]
	ldr	r3, [fp, #-396]
	add	r3, r3, #96
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r2, [fp, #-396]
	add	r2, r2, #64
	ldr	r3, [r3]
	str	r3, [r2]
	ldr	r3, [fp, #-396]
	add	r3, r3, #32
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-396]
	str	r2, [r3]
	b	.L299
.L298:
	ldr	r3, [fp, #-384]
	add	r3, r3, #32
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	add	r3, r3, #16
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-384]
	add	r3, r3, #96
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	add	r3, r3, #48
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-320]
	ldr	r2, [fp, #-324]
	ldr	r3, [fp, #-320]
	add	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-320]
	ldr	r2, .L304+4
	mul	r3, r2, r3
	ldr	r2, [fp, #-316]
	add	r3, r2, r3
	str	r3, [fp, #-312]
	ldr	r2, [fp, #-324]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r2, r3, #5
	add	r3, r3, r2
	ldr	r2, [fp, #-316]
	add	r3, r2, r3
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-384]
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-384]
	add	r3, r3, #64
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	add	r3, r3, #32
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-320]
	ldr	r2, [fp, #-324]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	lsl	r3, r3, #12
	str	r3, [fp, #-304]
	ldr	r2, [fp, #-324]
	ldr	r3, [fp, #-320]
	sub	r3, r2, r3
	lsl	r3, r3, #12
	str	r3, [fp, #-300]
	ldr	r2, [fp, #-304]
	ldr	r3, [fp, #-308]
	add	r3, r2, r3
	str	r3, [fp, #-296]
	ldr	r2, [fp, #-304]
	ldr	r3, [fp, #-308]
	sub	r3, r2, r3
	str	r3, [fp, #-292]
	ldr	r2, [fp, #-300]
	ldr	r3, [fp, #-312]
	add	r3, r2, r3
	str	r3, [fp, #-288]
	ldr	r2, [fp, #-300]
	ldr	r3, [fp, #-312]
	sub	r3, r2, r3
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-384]
	add	r3, r3, #112
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	add	r3, r3, #56
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-384]
	add	r3, r3, #80
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	add	r3, r3, #40
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-384]
	add	r3, r3, #48
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	add	r3, r3, #24
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-384]
	add	r3, r3, #16
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-392]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-308]
	ldr	r2, [fp, #-304]
	ldr	r3, [fp, #-312]
	add	r3, r2, r3
	str	r3, [fp, #-320]
	ldr	r2, [fp, #-300]
	ldr	r3, [fp, #-308]
	add	r3, r2, r3
	str	r3, [fp, #-280]
	ldr	r2, [fp, #-304]
	ldr	r3, [fp, #-308]
	add	r3, r2, r3
	str	r3, [fp, #-316]
	ldr	r2, [fp, #-300]
	ldr	r3, [fp, #-312]
	add	r3, r2, r3
	str	r3, [fp, #-324]
	ldr	r2, [fp, #-320]
	ldr	r3, [fp, #-280]
	add	r1, r2, r3
	mov	r2, r1
	lsl	r2, r2, #2
	add	r2, r2, r1
	lsl	r3, r2, #4
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r3, r3, #4
	str	r3, [fp, #-276]
	ldr	r2, [fp, #-304]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r1, r3, #4
	add	r3, r3, r1
	lsl	r3, r3, #3
	sub	r3, r3, r2
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-300]
	ldr	r2, .L304+8
	mul	r3, r2, r3
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-312]
	ldr	r2, .L304+12
	mul	r3, r2, r3
	str	r3, [fp, #-312]
	ldr	r2, [fp, #-308]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #9
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-316]
	ldr	r2, .L304+16
	mul	r3, r2, r3
	ldr	r2, [fp, #-276]
	add	r3, r2, r3
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-324]
	mvn	r2, #10496
	mul	r3, r2, r3
	ldr	r2, [fp, #-276]
	add	r3, r2, r3
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-320]
	ldr	r2, .L304+20
	mul	r3, r2, r3
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-280]
	ldr	r2, .L304+24
	mul	r3, r2, r3
	str	r3, [fp, #-280]
	ldr	r2, [fp, #-316]
	ldr	r3, [fp, #-280]
	add	r3, r2, r3
	ldr	r2, [fp, #-308]
	add	r3, r2, r3
	str	r3, [fp, #-308]
	ldr	r2, [fp, #-324]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldr	r2, [fp, #-312]
	add	r3, r2, r3
	str	r3, [fp, #-312]
	ldr	r2, [fp, #-324]
	ldr	r3, [fp, #-280]
	add	r3, r2, r3
	ldr	r2, [fp, #-300]
	add	r3, r2, r3
	str	r3, [fp, #-300]
	ldr	r2, [fp, #-316]
	ldr	r3, [fp, #-320]
	add	r3, r2, r3
	ldr	r2, [fp, #-304]
	add	r3, r2, r3
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-296]
	add	r3, r3, #512
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-288]
	add	r3, r3, #512
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-284]
	add	r3, r3, #512
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-292]
	add	r3, r3, #512
	str	r3, [fp, #-292]
	ldr	r2, [fp, #-296]
	ldr	r3, [fp, #-308]
	add	r3, r2, r3
	asr	r2, r3, #10
	ldr	r3, [fp, #-396]
	str	r2, [r3]
	ldr	r2, [fp, #-296]
	ldr	r3, [fp, #-308]
	sub	r2, r2, r3
	ldr	r3, [fp, #-396]
	add	r3, r3, #224
	asr	r2, r2, #10
	str	r2, [r3]
	ldr	r2, [fp, #-288]
	ldr	r3, [fp, #-312]
	add	r2, r2, r3
	ldr	r3, [fp, #-396]
	add	r3, r3, #32
	asr	r2, r2, #10
	str	r2, [r3]
	ldr	r2, [fp, #-288]
	ldr	r3, [fp, #-312]
	sub	r2, r2, r3
	ldr	r3, [fp, #-396]
	add	r3, r3, #192
	asr	r2, r2, #10
	str	r2, [r3]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-300]
	add	r2, r2, r3
	ldr	r3, [fp, #-396]
	add	r3, r3, #64
	asr	r2, r2, #10
	str	r2, [r3]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-300]
	sub	r2, r2, r3
	ldr	r3, [fp, #-396]
	add	r3, r3, #160
	asr	r2, r2, #10
	str	r2, [r3]
	ldr	r2, [fp, #-292]
	ldr	r3, [fp, #-304]
	add	r2, r2, r3
	ldr	r3, [fp, #-396]
	add	r3, r3, #96
	asr	r2, r2, #10
	str	r2, [r3]
	ldr	r2, [fp, #-292]
	ldr	r3, [fp, #-304]
	sub	r2, r2, r3
	ldr	r3, [fp, #-396]
	add	r3, r3, #128
	asr	r2, r2, #10
	str	r2, [r3]
.L299:
	ldr	r3, [fp, #-400]
	add	r3, r3, #1
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-384]
	add	r3, r3, #2
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-396]
	add	r3, r3, #4
	str	r3, [fp, #-396]
.L297:
	ldr	r3, [fp, #-400]
	cmp	r3, #7
	ble	.L300
	mov	r3, #0
	str	r3, [fp, #-400]
	sub	r3, fp, #272
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-408]
	str	r3, [fp, #-388]
	b	.L301
.L302:
	ldr	r3, [fp, #-396]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-376]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-376]
	add	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-376]
	ldr	r2, .L304+4
	mul	r3, r2, r3
	ldr	r2, [fp, #-372]
	add	r3, r2, r3
	str	r3, [fp, #-368]
	ldr	r2, [fp, #-380]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r2, r3, #5
	add	r3, r3, r2
	ldr	r2, [fp, #-372]
	add	r3, r2, r3
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3]
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-376]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-376]
	add	r3, r2, r3
	lsl	r3, r3, #12
	str	r3, [fp, #-360]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-376]
	sub	r3, r2, r3
	lsl	r3, r3, #12
	str	r3, [fp, #-356]
	ldr	r2, [fp, #-360]
	ldr	r3, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-352]
	ldr	r2, [fp, #-360]
	ldr	r3, [fp, #-364]
	sub	r3, r2, r3
	str	r3, [fp, #-348]
	ldr	r2, [fp, #-356]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	str	r3, [fp, #-344]
	ldr	r2, [fp, #-356]
	ldr	r3, [fp, #-368]
	sub	r3, r2, r3
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-364]
	ldr	r2, [fp, #-360]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	str	r3, [fp, #-376]
	ldr	r2, [fp, #-356]
	ldr	r3, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-336]
	ldr	r2, [fp, #-360]
	ldr	r3, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-372]
	ldr	r2, [fp, #-356]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	ldr	r2, [fp, #-376]
	ldr	r3, [fp, #-336]
	add	r1, r2, r3
	mov	r2, r1
	lsl	r2, r2, #2
	add	r2, r2, r1
	lsl	r3, r2, #4
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r3, r3, #4
	str	r3, [fp, #-332]
	ldr	r2, [fp, #-360]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r1, r3, #4
	add	r3, r3, r1
	lsl	r3, r3, #3
	sub	r3, r3, r2
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-356]
	ldr	r2, .L304+8
	mul	r3, r2, r3
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-368]
	ldr	r2, .L304+12
	mul	r3, r2, r3
	str	r3, [fp, #-368]
	ldr	r2, [fp, #-364]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #9
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-372]
	ldr	r2, .L304+16
	mul	r3, r2, r3
	ldr	r2, [fp, #-332]
	add	r3, r2, r3
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-380]
	mvn	r2, #10496
	mul	r3, r2, r3
	ldr	r2, [fp, #-332]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-376]
	ldr	r2, .L304+20
	mul	r3, r2, r3
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-336]
	ldr	r2, .L304+24
	mul	r3, r2, r3
	str	r3, [fp, #-336]
	ldr	r2, [fp, #-372]
	ldr	r3, [fp, #-336]
	add	r3, r2, r3
	ldr	r2, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-364]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-376]
	add	r3, r2, r3
	ldr	r2, [fp, #-368]
	add	r3, r2, r3
	str	r3, [fp, #-368]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-336]
	add	r3, r2, r3
	ldr	r2, [fp, #-356]
	add	r3, r2, r3
	str	r3, [fp, #-356]
	ldr	r2, [fp, #-372]
	ldr	r3, [fp, #-376]
	add	r3, r2, r3
	ldr	r2, [fp, #-360]
	add	r3, r2, r3
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-352]
	add	r3, r3, #16777216
	add	r3, r3, #65536
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-344]
	add	r3, r3, #16777216
	add	r3, r3, #65536
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-340]
	add	r3, r3, #16777216
	add	r3, r3, #65536
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-348]
	add	r3, r3, #16777216
	add	r3, r3, #65536
	str	r3, [fp, #-348]
	ldr	r2, [fp, #-352]
	ldr	r3, [fp, #-364]
	add	r3, r2, r3
	asr	r3, r3, #17
	mov	r0, r3
	bl	clamp
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-388]
	strb	r2, [r3]
	ldr	r2, [fp, #-352]
	ldr	r3, [fp, #-364]
	sub	r3, r2, r3
	asr	r2, r3, #17
	ldr	r3, [fp, #-388]
	add	r4, r3, #7
	mov	r0, r2
	bl	clamp
	mov	r3, r0
	strb	r3, [r4]
	ldr	r2, [fp, #-344]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	asr	r2, r3, #17
	ldr	r3, [fp, #-388]
	add	r4, r3, #1
	mov	r0, r2
	bl	clamp
	mov	r3, r0
	strb	r3, [r4]
	ldr	r2, [fp, #-344]
	ldr	r3, [fp, #-368]
	sub	r3, r2, r3
	asr	r2, r3, #17
	ldr	r3, [fp, #-388]
	add	r4, r3, #6
	mov	r0, r2
	bl	clamp
	mov	r3, r0
	strb	r3, [r4]
	ldr	r2, [fp, #-340]
	ldr	r3, [fp, #-356]
	add	r3, r2, r3
	asr	r2, r3, #17
	ldr	r3, [fp, #-388]
	add	r4, r3, #2
	mov	r0, r2
	bl	clamp
	mov	r3, r0
	strb	r3, [r4]
	ldr	r2, [fp, #-340]
	ldr	r3, [fp, #-356]
	sub	r3, r2, r3
	asr	r2, r3, #17
	ldr	r3, [fp, #-388]
	add	r4, r3, #5
	mov	r0, r2
	bl	clamp
	mov	r3, r0
	strb	r3, [r4]
	ldr	r2, [fp, #-348]
	ldr	r3, [fp, #-360]
	add	r3, r2, r3
	asr	r2, r3, #17
	ldr	r3, [fp, #-388]
	add	r4, r3, #3
	mov	r0, r2
	bl	clamp
	mov	r3, r0
	strb	r3, [r4]
	ldr	r2, [fp, #-348]
	ldr	r3, [fp, #-360]
	sub	r3, r2, r3
	asr	r2, r3, #17
	ldr	r3, [fp, #-388]
	add	r4, r3, #4
	mov	r0, r2
	bl	clamp
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-400]
	add	r3, r3, #1
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-396]
	add	r3, r3, #32
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-412]
	ldr	r2, [fp, #-388]
	add	r3, r2, r3
	str	r3, [fp, #-388]
.L301:
	ldr	r3, [fp, #-400]
	cmp	r3, #7
	ble	.L302
	nop
	ldr	r3, .L304
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L303
	bl	__stack_chk_fail
.L303:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L305:
	.align	2
.L304:
	.word	.LC23
	.word	-7567
	.word	8410
	.word	12586
	.word	-3685
	.word	-8034
	.word	-1597
	.size	idct_block, .-idct_block
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_marker, %function
get_marker:
	@ 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]
	add	r3, r3, #12288
	ldrb	r3, [r3, #1668]	@ zero_extendqisi2
	cmp	r3, #255
	beq	.L307
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldrb	r3, [r3, #1668]
	strb	r3, [fp, #-5]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	mvn	r2, #0
	strb	r2, [r3, #1668]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	b	.L308
.L307:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #255
	beq	.L310
	mov	r3, #255
	b	.L308
.L311:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-5]
.L310:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #255
	beq	.L311
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
.L308:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get_marker, .-get_marker
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	reset, %function
reset:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #1664]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #1660]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #1672]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #1572]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	ldr	r3, [r3, #1572]
	ldr	r2, [fp, #-8]
	add	r2, r2, #12288
	str	r3, [r2, #1516]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	ldr	r3, [r3, #1516]
	ldr	r2, [fp, #-8]
	add	r2, r2, #12288
	str	r3, [r2, #1460]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	mvn	r2, #0
	strb	r2, [r3, #1668]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	ldr	r3, [r3, #1696]
	cmp	r3, #0
	beq	.L313
	ldr	r3, [fp, #-8]
	add	r3, r3, #12288
	ldr	r3, [r3, #1696]
	b	.L314
.L313:
	mvn	r3, #-2147483648
.L314:
	ldr	r2, [fp, #-8]
	add	r2, r2, #12288
	str	r3, [r2, #1700]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	reset, .-reset
	.section	.rodata
	.align	2
.LC24:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_entropy_coded_data, %function
parse_entropy_coded_data:
	@ args = 0, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #200
	str	r0, [fp, #-192]
	ldr	r3, .L346
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-192]
	bl	reset
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1676]
	cmp	r3, #1
	bne	.L316
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1680]
	str	r3, [fp, #-148]
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #56
	ldr	r3, [r3]
	add	r3, r3, #7
	asr	r3, r3, #3
	str	r3, [fp, #-144]
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #60
	ldr	r3, [r3]
	add	r3, r3, #7
	asr	r3, r3, #3
	str	r3, [fp, #-140]
	mov	r3, #0
	str	r3, [fp, #-184]
	b	.L317
.L326:
	mov	r3, #0
	str	r3, [fp, #-188]
	b	.L318
.L325:
	ldr	r3, [fp, #-192]
	add	r1, r3, #4
	ldr	r0, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #44
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	mov	r3, r2
	add	ip, r1, r3
	ldr	r3, [fp, #-192]
	add	r1, r3, #6720
	add	r1, r1, #4
	ldr	r0, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #48
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	mov	r3, r2
	add	r2, r1, r3
	sub	r1, fp, #136
	ldr	r3, [fp, #-148]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, ip
	ldr	r0, [fp, #-192]
	bl	decode_block
	mov	r3, r0
	cmp	r3, #0
	bne	.L319
	mov	r3, #0
	b	.L328
.L319:
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	ldr	r1, [r3]
	ldr	r0, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13760
	ldr	r3, [r3]
	ldr	r2, [fp, #-184]
	mul	r3, r2, r3
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-188]
	lsl	r3, r3, #3
	add	r3, r2, r3
	add	r0, r1, r3
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	ldr	ip, [r3]
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #40
	ldr	r3, [r3]
	add	r3, r3, #210
	lsl	r3, r3, #6
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	add	r3, r3, #4
	sub	r2, fp, #136
	mov	r1, ip
	bl	idct_block
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1700]
	sub	r3, r3, #1
	ldr	r2, [fp, #-192]
	add	r2, r2, #12288
	str	r3, [r2, #1700]
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1700]
	cmp	r3, #0
	bgt	.L321
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	cmp	r3, #23
	bgt	.L322
	ldr	r0, [fp, #-192]
	bl	grow_buffer_unsafe
.L322:
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldrb	r3, [r3, #1668]	@ zero_extendqisi2
	cmp	r3, #207
	bls	.L323
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldrb	r3, [r3, #1668]	@ zero_extendqisi2
	cmp	r3, #215
	bls	.L324
.L323:
	mov	r3, #1
	b	.L328
.L324:
	ldr	r0, [fp, #-192]
	bl	reset
.L321:
	ldr	r3, [fp, #-188]
	add	r3, r3, #1
	str	r3, [fp, #-188]
.L318:
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-144]
	cmp	r2, r3
	blt	.L325
	ldr	r3, [fp, #-184]
	add	r3, r3, #1
	str	r3, [fp, #-184]
.L317:
	ldr	r2, [fp, #-184]
	ldr	r3, [fp, #-140]
	cmp	r2, r3
	blt	.L326
	b	.L327
.L316:
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L329
.L344:
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L330
.L343:
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L331
.L338:
	ldr	r2, [fp, #-192]
	ldr	r3, [fp, #-172]
	add	r3, r3, #3488
	add	r3, r3, #4
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-160]
	mov	r3, #0
	str	r3, [fp, #-164]
	b	.L332
.L337:
	mov	r3, #0
	str	r3, [fp, #-168]
	b	.L333
.L336:
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	ldr	r2, [fp, #-180]
	mul	r2, r3, r2
	ldr	r3, [fp, #-168]
	add	r3, r2, r3
	lsl	r3, r3, #3
	str	r3, [fp, #-156]
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	ldr	r2, [fp, #-176]
	mul	r2, r3, r2
	ldr	r3, [fp, #-164]
	add	r3, r2, r3
	lsl	r3, r3, #3
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-192]
	add	r1, r3, #4
	ldr	r0, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #44
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	mov	r3, r2
	add	ip, r1, r3
	ldr	r3, [fp, #-192]
	add	r1, r3, #6720
	add	r1, r1, #4
	ldr	r0, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #48
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	mov	r3, r2
	add	r2, r1, r3
	sub	r1, fp, #136
	ldr	r3, [fp, #-160]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, ip
	ldr	r0, [fp, #-192]
	bl	decode_block
	mov	r3, r0
	cmp	r3, #0
	bne	.L334
	mov	r3, #0
	b	.L328
.L334:
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	ldr	r1, [r3]
	ldr	r0, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13760
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	add	r0, r1, r3
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	ldr	ip, [r3]
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #40
	ldr	r3, [r3]
	add	r3, r3, #210
	lsl	r3, r3, #6
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	add	r3, r3, #4
	sub	r2, fp, #136
	mov	r1, ip
	bl	idct_block
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L333:
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	ldr	r2, [fp, #-168]
	cmp	r2, r3
	blt	.L336
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L332:
	ldr	r1, [fp, #-192]
	ldr	r2, [fp, #-160]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	ldr	r2, [fp, #-164]
	cmp	r2, r3
	blt	.L337
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L331:
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1676]
	ldr	r2, [fp, #-172]
	cmp	r2, r3
	blt	.L338
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1700]
	sub	r3, r3, #1
	ldr	r2, [fp, #-192]
	add	r2, r2, #12288
	str	r3, [r2, #1700]
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1700]
	cmp	r3, #0
	bgt	.L339
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1664]
	cmp	r3, #23
	bgt	.L340
	ldr	r0, [fp, #-192]
	bl	grow_buffer_unsafe
.L340:
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldrb	r3, [r3, #1668]	@ zero_extendqisi2
	cmp	r3, #207
	bls	.L341
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldrb	r3, [r3, #1668]	@ zero_extendqisi2
	cmp	r3, #215
	bls	.L342
.L341:
	mov	r3, #1
	b	.L328
.L342:
	ldr	r0, [fp, #-192]
	bl	reset
.L339:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L330:
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1420]
	ldr	r2, [fp, #-180]
	cmp	r2, r3
	blt	.L343
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L329:
	ldr	r3, [fp, #-192]
	add	r3, r3, #12288
	ldr	r3, [r3, #1424]
	ldr	r2, [fp, #-176]
	cmp	r2, r3
	blt	.L344
.L327:
	mov	r3, #1
.L328:
	ldr	r2, .L346
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L345
	bl	__stack_chk_fail
.L345:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L347:
	.align	2
.L346:
	.word	.LC24
	.size	parse_entropy_coded_data, .-parse_entropy_coded_data
	.section	.rodata
	.align	2
.LC25:
	.ascii	"expected marker\000"
	.align	2
.LC26:
	.ascii	"progressive jpeg\000"
	.align	2
.LC27:
	.ascii	"bad DRI len\000"
	.align	2
.LC28:
	.ascii	"bad DQT type\000"
	.align	2
.LC29:
	.ascii	"bad DQT table\000"
	.align	2
.LC30:
	.ascii	"bad DHT header\000"
	.align	2
.LC31:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	process_marker, %function
process_marker:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #124
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	ldr	r3, .L381
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-132]
	cmp	r3, #221
	bgt	.L349
	ldr	r3, [fp, #-132]
	cmp	r3, #194
	blt	.L350
	ldr	r3, [fp, #-132]
	sub	r3, r3, #194
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L350
.L352:
	.word	.L355
	.word	.L350
	.word	.L354
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L350
	.word	.L353
	.word	.L350
	.word	.L351
.L349:
	ldr	r3, [fp, #-132]
	cmp	r3, #255
	bne	.L350
	ldr	r0, .L381+4
	bl	e
	mov	r3, r0
	b	.L356
.L355:
	ldr	r0, .L381+8
	bl	e
	mov	r3, r0
	b	.L356
.L351:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get16
	mov	r3, r0
	cmp	r3, #4
	beq	.L357
	ldr	r0, .L381+12
	bl	e
	mov	r3, r0
	b	.L356
.L357:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get16
	mov	r2, r0
	ldr	r3, [fp, #-128]
	add	r3, r3, #12288
	str	r2, [r3, #1696]
	mov	r3, #1
	b	.L356
.L353:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get16
	mov	r3, r0
	sub	r3, r3, #2
	str	r3, [fp, #-124]
	b	.L358
.L363:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	str	r0, [fp, #-104]
	ldr	r3, [fp, #-104]
	asr	r3, r3, #4
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-104]
	and	r3, r3, #15
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L359
	ldr	r0, .L381+16
	bl	e
	mov	r3, r0
	b	.L356
.L359:
	ldr	r3, [fp, #-96]
	cmp	r3, #3
	ble	.L360
	ldr	r0, .L381+20
	bl	e
	mov	r3, r0
	b	.L356
.L360:
	mov	r3, #0
	str	r3, [fp, #-120]
	b	.L361
.L362:
	ldr	r3, [fp, #-128]
	ldr	r2, [r3]
	ldr	r1, .L381+24
	ldr	r3, [fp, #-120]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r4, r3
	mov	r0, r2
	bl	get8u
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #6
	add	r3, r2, r3
	add	r3, r3, r4
	add	r3, r3, #13440
	add	r3, r3, #4
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L361:
	ldr	r3, [fp, #-120]
	cmp	r3, #63
	ble	.L362
	ldr	r3, [fp, #-124]
	sub	r3, r3, #65
	str	r3, [fp, #-124]
.L358:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bgt	.L363
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	b	.L356
.L354:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get16
	mov	r3, r0
	sub	r3, r3, #2
	str	r3, [fp, #-124]
	b	.L364
.L376:
	mov	r3, #0
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	str	r0, [fp, #-92]
	ldr	r3, [fp, #-92]
	asr	r3, r3, #4
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-92]
	and	r3, r3, #15
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-88]
	cmp	r3, #1
	bgt	.L365
	ldr	r3, [fp, #-84]
	cmp	r3, #3
	ble	.L366
.L365:
	ldr	r0, .L381+28
	bl	e
	mov	r3, r0
	b	.L356
.L366:
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L368
.L369:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-68]
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-68]
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L368:
	ldr	r3, [fp, #-112]
	cmp	r3, #15
	ble	.L369
	ldr	r3, [fp, #-124]
	sub	r3, r3, #17
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bne	.L370
	ldr	r3, [fp, #-128]
	add	r1, r3, #4
	ldr	r2, [fp, #-84]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	mov	r3, r2
	add	r3, r1, r3
	sub	r2, fp, #80
	mov	r1, r2
	mov	r0, r3
	bl	build_huffman
	mov	r3, r0
	cmp	r3, #0
	bne	.L371
	mov	r3, #0
	b	.L356
.L371:
	ldr	r2, [fp, #-84]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	add	r3, r2, #1024
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	add	r3, r3, #4
	str	r3, [fp, #-116]
	b	.L372
.L370:
	ldr	r3, [fp, #-128]
	add	r1, r3, #6720
	add	r1, r1, #4
	ldr	r2, [fp, #-84]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	mov	r3, r2
	add	r3, r1, r3
	sub	r2, fp, #80
	mov	r1, r2
	mov	r0, r3
	bl	build_huffman
	mov	r3, r0
	cmp	r3, #0
	bne	.L373
	mov	r3, #0
	b	.L356
.L373:
	ldr	r2, [fp, #-84]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	add	r3, r2, #7744
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	add	r3, r3, #4
	str	r3, [fp, #-116]
.L372:
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L374
.L375:
	ldr	r3, [fp, #-128]
	ldr	r1, [r3]
	ldr	r3, [fp, #-112]
	ldr	r2, [fp, #-116]
	add	r4, r2, r3
	mov	r0, r1
	bl	get8u
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L374:
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	blt	.L375
	ldr	r2, [fp, #-124]
	ldr	r3, [fp, #-108]
	sub	r3, r2, r3
	str	r3, [fp, #-124]
.L364:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bgt	.L376
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	b	.L356
.L350:
	ldr	r3, [fp, #-132]
	cmp	r3, #223
	ble	.L377
	ldr	r3, [fp, #-132]
	cmp	r3, #239
	ble	.L378
.L377:
	ldr	r3, [fp, #-132]
	cmp	r3, #254
	bne	.L379
.L378:
	ldr	r3, [fp, #-128]
	ldr	r4, [r3]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get16
	mov	r3, r0
	sub	r3, r3, #2
	mov	r1, r3
	mov	r0, r4
	bl	skip
	mov	r3, #1
	b	.L356
.L379:
	mov	r3, #0
.L356:
	ldr	r2, .L381
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L380
	bl	__stack_chk_fail
.L380:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L382:
	.align	2
.L381:
	.word	.LC31
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	dezigzag
	.word	.LC30
	.size	process_marker, .-process_marker
	.section	.rodata
	.align	2
.LC32:
	.ascii	"bad SOS component count\000"
	.align	2
.LC33:
	.ascii	"bad SOS len\000"
	.align	2
.LC34:
	.ascii	"bad DC huff\000"
	.align	2
.LC35:
	.ascii	"bad AC huff\000"
	.align	2
.LC36:
	.ascii	"bad SOS\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	process_scan_header, %function
process_scan_header:
	@ 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, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-32]
	add	r3, r3, #12288
	str	r2, [r3, #1676]
	ldr	r3, [fp, #-32]
	add	r3, r3, #12288
	ldr	r3, [r3, #1676]
	cmp	r3, #0
	ble	.L384
	ldr	r3, [fp, #-32]
	add	r3, r3, #12288
	ldr	r3, [r3, #1676]
	cmp	r3, #4
	bgt	.L384
	ldr	r3, [fp, #-32]
	add	r3, r3, #12288
	ldr	r2, [r3, #1676]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	cmp	r2, r3
	ble	.L385
.L384:
	ldr	r0, .L400
	bl	e
	mov	r3, r0
	b	.L386
.L385:
	ldr	r3, [fp, #-32]
	add	r3, r3, #12288
	ldr	r3, [r3, #1676]
	add	r3, r3, #3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L387
	ldr	r0, .L400+4
	bl	e
	mov	r3, r0
	b	.L386
.L387:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L388
.L396:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L389
.L392:
	ldr	r1, [fp, #-32]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #28
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	beq	.L399
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L389:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L392
	b	.L391
.L399:
	nop
.L391:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L393
	mov	r3, #0
	b	.L386
.L393:
	ldr	r3, [fp, #-8]
	asr	r1, r3, #4
	ldr	r0, [fp, #-32]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #44
	str	r1, [r3]
	ldr	r1, [fp, #-32]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #44
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L394
	ldr	r0, .L400+8
	bl	e
	mov	r3, r0
	b	.L386
.L394:
	ldr	r3, [fp, #-8]
	and	r1, r3, #15
	ldr	r0, [fp, #-32]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #48
	str	r1, [r3]
	ldr	r1, [fp, #-32]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #48
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L395
	ldr	r0, .L400+12
	bl	e
	mov	r3, r0
	b	.L386
.L395:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r3, #3488
	add	r3, r3, #4
	ldr	r1, [fp, #-20]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L388:
	ldr	r3, [fp, #-32]
	add	r3, r3, #12288
	ldr	r3, [r3, #1676]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L396
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	mov	r3, r0
	cmp	r3, #0
	beq	.L397
	ldr	r0, .L400+16
	bl	e
	mov	r3, r0
	b	.L386
.L397:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	mov	r3, r0
	cmp	r3, #0
	beq	.L398
	ldr	r0, .L400+16
	bl	e
	mov	r3, r0
	b	.L386
.L398:
	mov	r3, #1
.L386:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L401:
	.align	2
.L400:
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.size	process_scan_header, .-process_scan_header
	.section	.rodata
	.align	2
.LC37:
	.ascii	"bad SOF len\000"
	.align	2
.LC38:
	.ascii	"only 8-bit\000"
	.align	2
.LC39:
	.ascii	"no header height\000"
	.align	2
.LC40:
	.ascii	"0 width\000"
	.align	2
.LC41:
	.ascii	"bad component count\000"
	.align	2
.LC42:
	.ascii	"bad component ID\000"
	.align	2
.LC43:
	.ascii	"bad H\000"
	.align	2
.LC44:
	.ascii	"bad V\000"
	.align	2
.LC45:
	.ascii	"bad TQ\000"
	.global	__aeabi_uidiv
	.align	2
.LC46:
	.ascii	"too large\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	process_frame_header, %function
process_frame_header:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3, #1
	str	r3, [fp, #-32]
	mov	r3, #1
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	get16
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #10
	bgt	.L403
	ldr	r0, .L431
	bl	e
	mov	r3, r0
	b	.L404
.L403:
	ldr	r0, [fp, #-24]
	bl	get8
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #8
	beq	.L405
	ldr	r0, .L431+4
	bl	e
	mov	r3, r0
	b	.L404
.L405:
	ldr	r0, [fp, #-24]
	bl	get16
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L406
	ldr	r0, .L431+8
	bl	e
	mov	r3, r0
	b	.L404
.L406:
	ldr	r0, [fp, #-24]
	bl	get16
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L407
	ldr	r0, .L431+12
	bl	e
	mov	r3, r0
	b	.L404
.L407:
	ldr	r0, [fp, #-24]
	bl	get8
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	beq	.L408
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	beq	.L408
	ldr	r0, .L431+16
	bl	e
	mov	r3, r0
	b	.L404
.L408:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L409
.L410:
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L409:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L410
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, #8
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	beq	.L411
	ldr	r0, .L431
	bl	e
	mov	r3, r0
	b	.L404
.L411:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L412
.L419:
	ldr	r0, [fp, #-24]
	bl	get8
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #28
	str	r0, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #28
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	cmp	r2, r3
	beq	.L413
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #28
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	beq	.L413
	ldr	r0, .L431+20
	bl	e
	mov	r3, r0
	b	.L404
.L413:
	ldr	r0, [fp, #-24]
	bl	get8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	asr	r1, r3, #4
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	str	r1, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L414
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	cmp	r3, #4
	ble	.L415
.L414:
	ldr	r0, .L431+24
	bl	e
	mov	r3, r0
	b	.L404
.L415:
	ldr	r3, [fp, #-8]
	and	r1, r3, #15
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	str	r1, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L416
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	cmp	r3, #4
	ble	.L417
.L416:
	ldr	r0, .L431+28
	bl	e
	mov	r3, r0
	b	.L404
.L417:
	ldr	r0, [fp, #-24]
	bl	get8
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #40
	str	r0, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #40
	ldr	r3, [r3]
	cmp	r3, #3
	ble	.L418
	ldr	r0, .L431+32
	bl	e
	mov	r3, r0
	b	.L404
.L418:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L412:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L419
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L420
	mov	r3, #1
	b	.L404
.L420:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #1073741824
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bcs	.L421
	ldr	r0, .L431+36
	bl	e
	mov	r3, r0
	b	.L404
.L421:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L422
.L425:
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bge	.L423
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	str	r3, [fp, #-32]
.L423:
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bge	.L424
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	str	r3, [fp, #-28]
.L424:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L422:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L425
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r3, [r2, #1412]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	mov	r2, r3
	ldr	r3, [fp, #-28]
	str	r3, [r2, #1416]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-40]
	add	r2, r2, #12288
	str	r3, [r2, #1428]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-40]
	add	r2, r2, #12288
	str	r3, [r2, #1432]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	add	r2, r2, #12288
	ldr	r2, [r2, #1428]
	add	r3, r3, r2
	sub	r2, r3, #1
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	ldr	r3, [r3, #1428]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	str	r2, [r3, #1420]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-40]
	add	r2, r2, #12288
	ldr	r2, [r2, #1432]
	add	r3, r3, r2
	sub	r2, r3, #1
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	ldr	r3, [r3, #1432]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	str	r2, [r3, #1424]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L426
.L430:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3]
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	mul	r2, r3, r1
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r0, r3
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #56
	str	r0, [r3]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	mul	r2, r3, r1
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r0, r3
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #60
	str	r0, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	ldr	r1, [r3, #1420]
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	mul	r3, r1, r3
	lsl	r1, r3, #3
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13760
	str	r1, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12288
	ldr	r1, [r3, #1424]
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	mul	r3, r1, r3
	lsl	r1, r3, #3
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13760
	add	r3, r3, #4
	str	r1, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	ldr	r1, [r3]
	ldr	r0, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13760
	add	r3, r3, #4
	ldr	r3, [r3]
	mul	r3, r1, r3
	add	r3, r3, #15
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r0, r3
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #12
	str	r0, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L427
	ldr	r3, [fp, #-36]
	sub	r3, r3, #1
	str	r3, [fp, #-36]
	b	.L428
.L429:
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	sub	r3, r3, #1
	str	r3, [fp, #-36]
.L428:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bge	.L429
	ldr	r0, .L431+40
	bl	e
	mov	r3, r0
	b	.L404
.L427:
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r3, #15
	bic	r3, r3, #15
	mov	r0, r3
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	str	r0, [r3]
	ldr	r1, [fp, #-40]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L426:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L430
	mov	r3, #1
.L404:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L432:
	.align	2
.L431:
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC18
	.size	process_frame_header, .-process_frame_header
	.section	.rodata
	.align	2
.LC47:
	.ascii	"no SOI\000"
	.align	2
.LC48:
	.ascii	"no SOF\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decode_jpeg_header, %function
decode_jpeg_header:
	@ 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, #-16]
	add	r3, r3, #12288
	mvn	r2, #0
	strb	r2, [r3, #1668]
	ldr	r0, [fp, #-16]
	bl	get_marker
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #216
	beq	.L434
	ldr	r0, .L445
	bl	e
	mov	r3, r0
	b	.L435
.L434:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L436
	mov	r3, #1
	b	.L435
.L436:
	ldr	r0, [fp, #-16]
	bl	get_marker
	mov	r3, r0
	str	r3, [fp, #-8]
	b	.L437
.L443:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	process_marker
	mov	r3, r0
	cmp	r3, #0
	bne	.L438
	mov	r3, #0
	b	.L435
.L438:
	ldr	r0, [fp, #-16]
	bl	get_marker
	mov	r3, r0
	str	r3, [fp, #-8]
	b	.L439
.L441:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L440
	ldr	r0, .L445+4
	bl	e
	mov	r3, r0
	b	.L435
.L440:
	ldr	r0, [fp, #-16]
	bl	get_marker
	mov	r3, r0
	str	r3, [fp, #-8]
.L439:
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	beq	.L441
.L437:
	ldr	r3, [fp, #-8]
	cmp	r3, #192
	beq	.L442
	ldr	r3, [fp, #-8]
	cmp	r3, #193
	bne	.L443
.L442:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	process_frame_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L444
	mov	r3, #0
	b	.L435
.L444:
	mov	r3, #1
.L435:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L446:
	.align	2
.L445:
	.word	.LC47
	.word	.LC48
	.size	decode_jpeg_header, .-decode_jpeg_header
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decode_jpeg_image, %function
decode_jpeg_image:
	@ 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]
	add	r3, r3, #12288
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #1696]
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	decode_jpeg_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L448
	mov	r3, #0
	b	.L449
.L448:
	ldr	r0, [fp, #-16]
	bl	get_marker
	mov	r3, r0
	str	r3, [fp, #-12]
	b	.L450
.L459:
	ldr	r3, [fp, #-12]
	cmp	r3, #218
	bne	.L451
	ldr	r0, [fp, #-16]
	bl	process_scan_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L452
	mov	r3, #0
	b	.L449
.L452:
	ldr	r0, [fp, #-16]
	bl	parse_entropy_coded_data
	mov	r3, r0
	cmp	r3, #0
	bne	.L453
	mov	r3, #0
	b	.L449
.L453:
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	ldrb	r3, [r3, #1668]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L458
	b	.L455
.L457:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	bne	.L456
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #12288
	strb	r2, [r3, #1668]
	b	.L458
.L456:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L455
	mov	r3, #0
	b	.L449
.L455:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L457
	b	.L458
.L451:
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-16]
	bl	process_marker
	mov	r3, r0
	cmp	r3, #0
	bne	.L458
	mov	r3, #0
	b	.L449
.L458:
	ldr	r0, [fp, #-16]
	bl	get_marker
	mov	r3, r0
	str	r3, [fp, #-12]
.L450:
	ldr	r3, [fp, #-12]
	cmp	r3, #217
	bne	.L459
	mov	r3, #1
.L449:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	decode_jpeg_image, .-decode_jpeg_image
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	resample_row_1, %function
resample_row_1:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	resample_row_1, .-resample_row_1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	resample_row_v_2, %function
resample_row_v_2:
	@ args = 4, 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]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L463
.L464:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-24]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	add	r3, r3, #2
	asr	r2, r3, #2
	ldr	r3, [fp, #-8]
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L463:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L464
	ldr	r3, [fp, #-16]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	resample_row_v_2, .-resample_row_v_2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	resample_row_h_2, %function
resample_row_h_2:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-36]
	cmp	r3, #1
	bne	.L467
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	ldr	r2, [fp, #-12]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-24]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	b	.L468
.L467:
	ldr	r3, [fp, #-12]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-24]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-12]
	add	r2, r2, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	add	r3, r3, #2
	asr	r2, r3, #2
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L469
.L470:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, #2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	add	r3, r3, #1
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L469:
	ldr	r3, [fp, #-36]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L470
	ldr	r3, [fp, #-36]
	sub	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-36]
	sub	r2, r2, #1
	ldr	r1, [fp, #-12]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	add	r3, r3, #2
	asr	r2, r3, #2
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	sub	r3, r3, #1
	ldr	r2, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	add	r3, r3, #1
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
.L468:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	resample_row_h_2, .-resample_row_h_2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	resample_row_hv_2, %function
resample_row_hv_2:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #1
	bne	.L472
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-32]
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	add	r3, r3, #2
	asr	r2, r3, #2
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-24]
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	b	.L473
.L472:
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-32]
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	asr	r3, r3, #2
	and	r2, r3, #255
	ldr	r3, [fp, #-24]
	strb	r2, [r3]
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L474
.L475:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-32]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	add	r3, r3, #8
	asr	r2, r3, #4
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	sub	r3, r3, #1
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	add	r3, r3, #8
	asr	r2, r3, #4
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L474:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L475
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	asr	r2, r3, #2
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #1
	sub	r3, r3, #1
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
.L473:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	resample_row_hv_2, .-resample_row_hv_2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	resample_row_generic, %function
resample_row_generic:
	@ args = 4, 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]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L477
.L480:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L478
.L479:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	ldr	r1, [fp, #4]
	mul	r1, r3, r1
	ldr	r3, [fp, #-8]
	add	r3, r1, r3
	mov	r1, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L478:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L479
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L477:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L480
	ldr	r3, [fp, #-16]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	resample_row_generic, .-resample_row_generic
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	YCbCr_to_RGB_row, %function
YCbCr_to_RGB_row:
	@ args = 8, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #52
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L483
.L490:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r3, r3, #32768
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #128
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #128
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #6
	sub	r3, r3, r2
	lsl	r3, r3, #5
	add	r3, r3, r2
	lsl	r2, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-12]
	ldr	r2, .L491
	mul	r2, r3, r2
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r1, .L491+4
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r1, r3, #7
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	asr	r3, r3, #16
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	asr	r3, r3, #16
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	asr	r3, r3, #16
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	cmp	r3, #255
	bls	.L484
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L485
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L484
.L485:
	mov	r3, #255
	str	r3, [fp, #-28]
.L484:
	ldr	r3, [fp, #-24]
	cmp	r3, #255
	bls	.L486
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L487
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L486
.L487:
	mov	r3, #255
	str	r3, [fp, #-24]
.L486:
	ldr	r3, [fp, #-20]
	cmp	r3, #255
	bls	.L488
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L489
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L488
.L489:
	mov	r3, #255
	str	r3, [fp, #-20]
.L488:
	ldr	r3, [fp, #-28]
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	ldr	r2, [fp, #-24]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #2
	ldr	r2, [fp, #-20]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L483:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L490
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L492:
	.align	2
.L491:
	.word	-46802
	.word	-22554
	.size	YCbCr_to_RGB_row, .-YCbCr_to_RGB_row
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cleanup_jpeg, %function
cleanup_jpeg:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L494
.L497:
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L495
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
.L495:
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L496
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	mov	r2, #0
	str	r2, [r3]
.L496:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L494:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L497
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cleanup_jpeg, .-cleanup_jpeg
	.section	.rodata
	.align	2
.LC49:
	.ascii	"bad req_comp\000"
	.global	__aeabi_idiv
	.align	2
.LC50:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	load_jpeg_image, %function
load_jpeg_image:
	@ args = 4, pretend = 0, frame = 216
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #228
	str	r0, [fp, #-216]
	str	r1, [fp, #-220]
	str	r2, [fp, #-224]
	str	r3, [fp, #-228]
	ldr	r3, .L538
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #4]
	cmp	r3, #0
	blt	.L499
	ldr	r3, [fp, #4]
	cmp	r3, #4
	ble	.L500
.L499:
	ldr	r0, .L538+4
	bl	e
	mov	r3, #0
	b	.L501
.L500:
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r0, [fp, #-216]
	bl	decode_jpeg_image
	mov	r3, r0
	cmp	r3, #0
	bne	.L502
	ldr	r0, [fp, #-216]
	bl	cleanup_jpeg
	mov	r3, #0
	b	.L501
.L502:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L503
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	b	.L504
.L503:
	ldr	r3, [fp, #4]
.L504:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	cmp	r3, #3
	bne	.L505
	ldr	r3, [fp, #-188]
	cmp	r3, #2
	bgt	.L505
	mov	r3, #1
	str	r3, [fp, #-208]
	b	.L506
.L505:
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-208]
.L506:
	mov	r3, #0
	str	r3, [fp, #-204]
	b	.L507
.L515:
	sub	r2, fp, #144
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #5
	add	r3, r2, r3
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r3, #3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r0, r3
	ldr	r1, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	str	r0, [r3]
	ldr	r1, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L508
	ldr	r0, [fp, #-216]
	bl	cleanup_jpeg
	ldr	r0, .L538+8
	bl	e
	mov	r3, #0
	b	.L501
.L508:
	ldr	r3, [fp, #-216]
	add	r3, r3, #12288
	ldr	r0, [r3, #1412]
	ldr	r1, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #32
	ldr	r3, [r3]
	mov	r1, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-164]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-216]
	add	r3, r3, #12288
	ldr	r0, [r3, #1416]
	ldr	r1, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13696
	add	r3, r3, #36
	ldr	r3, [r3]
	mov	r1, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-164]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #16]
	asr	r2, r3, #1
	ldr	r3, [fp, #-164]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-164]
	ldr	r2, [r2, #12]
	add	r3, r3, r2
	sub	r2, r3, #1
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #12]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-164]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-164]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r1, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-164]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-164]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-164]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #12]
	cmp	r3, #1
	bne	.L510
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L510
	ldr	r3, [fp, #-164]
	ldr	r2, .L538+12
	str	r2, [r3]
	b	.L511
.L510:
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #12]
	cmp	r3, #1
	bne	.L512
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L512
	ldr	r3, [fp, #-164]
	ldr	r2, .L538+16
	str	r2, [r3]
	b	.L511
.L512:
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #12]
	cmp	r3, #2
	bne	.L513
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L513
	ldr	r3, [fp, #-164]
	ldr	r2, .L538+20
	str	r2, [r3]
	b	.L511
.L513:
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #12]
	cmp	r3, #2
	bne	.L514
	ldr	r3, [fp, #-164]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L514
	ldr	r3, [fp, #-164]
	ldr	r2, .L538+24
	str	r2, [r3]
	b	.L511
.L514:
	ldr	r3, [fp, #-164]
	ldr	r2, .L538+28
	str	r2, [r3]
.L511:
	ldr	r3, [fp, #-204]
	add	r3, r3, #1
	str	r3, [fp, #-204]
.L507:
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-208]
	cmp	r2, r3
	blt	.L515
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-188]
	mul	r3, r2, r3
	ldr	r2, [fp, #-216]
	ldr	r2, [r2]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	add	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	cmp	r3, #0
	bne	.L516
	ldr	r0, [fp, #-216]
	bl	cleanup_jpeg
	ldr	r0, .L538+8
	bl	e
	mov	r3, #0
	b	.L501
.L516:
	mov	r3, #0
	str	r3, [fp, #-196]
	b	.L517
.L535:
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-188]
	mul	r3, r2, r3
	ldr	r2, [fp, #-196]
	mul	r3, r2, r3
	ldr	r2, [fp, #-184]
	add	r3, r2, r3
	str	r3, [fp, #-192]
	mov	r3, #0
	str	r3, [fp, #-204]
	b	.L518
.L524:
	sub	r2, fp, #144
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #5
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #16]
	asr	r3, r3, #1
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-172]
	ldr	r4, [r3]
	ldr	r1, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #13760
	add	r3, r3, #16
	ldr	r0, [r3]
	ldr	r3, [fp, #-168]
	cmp	r3, #0
	beq	.L519
	ldr	r3, [fp, #-172]
	ldr	r1, [r3, #8]
	b	.L520
.L519:
	ldr	r3, [fp, #-172]
	ldr	r1, [r3, #4]
.L520:
	ldr	r3, [fp, #-168]
	cmp	r3, #0
	beq	.L521
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #4]
	b	.L522
.L521:
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #8]
.L522:
	ldr	r3, [fp, #-172]
	ldr	ip, [r3, #20]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #12]
	str	r3, [sp]
	mov	r3, ip
	blx	r4
	mov	r2, r0
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-148]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #24]
	add	r2, r3, #1
	ldr	r3, [fp, #-172]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	blt	.L523
	ldr	r3, [fp, #-172]
	mov	r2, #0
	str	r2, [r3, #24]
	ldr	r3, [fp, #-172]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-172]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3, #28]
	add	r2, r3, #1
	ldr	r3, [fp, #-172]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-172]
	ldr	r1, [r3, #28]
	ldr	r0, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13696
	add	r3, r3, #60
	ldr	r3, [r3]
	cmp	r1, r3
	bge	.L523
	ldr	r3, [fp, #-172]
	ldr	r1, [r3, #8]
	ldr	r0, [fp, #-216]
	ldr	r2, [fp, #-204]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r0, r3
	add	r3, r3, #13760
	ldr	r3, [r3]
	add	r2, r1, r3
	ldr	r3, [fp, #-172]
	str	r2, [r3, #8]
.L523:
	ldr	r3, [fp, #-204]
	add	r3, r3, #1
	str	r3, [fp, #-204]
.L518:
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-208]
	cmp	r2, r3
	blt	.L524
	ldr	r3, [fp, #-188]
	cmp	r3, #2
	ble	.L525
	ldr	r3, [fp, #-160]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	cmp	r3, #3
	bne	.L526
	ldr	r2, [fp, #-156]
	ldr	r1, [fp, #-152]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, [fp, #-188]
	str	r3, [sp, #4]
	str	r0, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-176]
	ldr	r0, [fp, #-192]
	bl	YCbCr_to_RGB_row
	b	.L527
.L526:
	mov	r3, #0
	str	r3, [fp, #-200]
	b	.L528
.L529:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-200]
	add	r3, r2, r3
	ldr	r2, [fp, #-192]
	add	r2, r2, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-192]
	add	r3, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-192]
	strb	r2, [r3]
	ldr	r3, [fp, #-192]
	add	r3, r3, #3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-188]
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-200]
	add	r3, r3, #1
	str	r3, [fp, #-200]
.L528:
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-200]
	cmp	r2, r3
	bcc	.L529
	b	.L527
.L525:
	ldr	r3, [fp, #-160]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-188]
	cmp	r3, #1
	bne	.L530
	mov	r3, #0
	str	r3, [fp, #-200]
	b	.L531
.L532:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-200]
	add	r2, r2, r3
	ldr	r1, [fp, #-192]
	ldr	r3, [fp, #-200]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #1
	str	r3, [fp, #-200]
.L531:
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-200]
	cmp	r2, r3
	bcc	.L532
	b	.L527
.L530:
	mov	r3, #0
	str	r3, [fp, #-200]
	b	.L533
.L534:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-200]
	add	r2, r2, r3
	ldr	r3, [fp, #-192]
	add	r1, r3, #1
	str	r1, [fp, #-192]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-192]
	add	r2, r3, #1
	str	r2, [fp, #-192]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #1
	str	r3, [fp, #-200]
.L533:
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-200]
	cmp	r2, r3
	bcc	.L534
.L527:
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	str	r3, [fp, #-196]
.L517:
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-196]
	cmp	r2, r3
	bcc	.L535
	ldr	r0, [fp, #-216]
	bl	cleanup_jpeg
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-220]
	str	r2, [r3]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	cmp	r3, #0
	beq	.L536
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-228]
	str	r2, [r3]
.L536:
	ldr	r3, [fp, #-184]
.L501:
	ldr	r2, .L538
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L537
	bl	__stack_chk_fail
.L537:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L539:
	.align	2
.L538:
	.word	.LC50
	.word	.LC49
	.word	.LC18
	.word	resample_row_1
	.word	resample_row_v_2
	.word	resample_row_h_2
	.word	resample_row_hv_2
	.word	resample_row_generic
	.size	load_jpeg_image, .-load_jpeg_image
	.section	.rodata
	.align	2
.LC51:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_jpeg_load, %function
stbi_jpeg_load:
	@ args = 4, pretend = 0, frame = 14016
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #14016
	sub	sp, sp, #8
	sub	ip, fp, #12288
	sub	ip, ip, #4
	str	r0, [ip, #-1716]
	sub	r0, fp, #12288
	sub	r0, r0, #4
	str	r1, [r0, #-1720]
	sub	r1, fp, #12288
	sub	r1, r1, #4
	str	r2, [r1, #-1724]
	sub	r2, fp, #12288
	sub	r2, r2, #4
	str	r3, [r2, #-1728]
	ldr	r3, .L543
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #12288
	sub	r3, r3, #4
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #4
	ldr	r3, [r3, #-1716]
	str	r3, [r2, #-1708]
	sub	r3, fp, #12288
	sub	r3, r3, #4
	mov	ip, r3
	sub	r3, fp, #12288
	sub	r3, r3, #4
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #4
	mov	r1, r3
	sub	r0, fp, #13952
	sub	r0, r0, #4
	sub	r0, r0, #44
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [ip, #-1728]
	ldr	r2, [r2, #-1724]
	ldr	r1, [r1, #-1720]
	bl	load_jpeg_image
	mov	r3, r0
	ldr	r2, .L543
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L542
	bl	__stack_chk_fail
.L542:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L544:
	.align	2
.L543:
	.word	.LC51
	.size	stbi_jpeg_load, .-stbi_jpeg_load
	.section	.rodata
	.align	2
.LC52:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_jpeg_test, %function
stbi_jpeg_test:
	@ args = 0, pretend = 0, frame = 14008
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #13952
	sub	sp, sp, #60
	sub	r3, fp, #12288
	sub	r3, r3, #12
	str	r0, [r3, #-1716]
	ldr	r3, .L548
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #12288
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #12
	ldr	r3, [r3, #-1716]
	str	r3, [r2, #-1708]
	sub	r3, fp, #12288
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #13952
	sub	r3, r3, #12
	sub	r3, r3, #44
	mov	r1, #1
	mov	r0, r3
	bl	decode_jpeg_header
	str	r0, [r4, #-1712]
	sub	r3, fp, #12288
	sub	r3, r3, #12
	ldr	r0, [r3, #-1716]
	bl	stbi_rewind
	sub	r3, fp, #12288
	sub	r3, r3, #12
	ldr	r3, [r3, #-1712]
	ldr	r2, .L548
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L547
	bl	__stack_chk_fail
.L547:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L549:
	.align	2
.L548:
	.word	.LC52
	.size	stbi_jpeg_test, .-stbi_jpeg_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_jpeg_info_raw, %function
stbi_jpeg_info_raw:
	@ 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]
	str	r3, [fp, #-20]
	mov	r1, #2
	ldr	r0, [fp, #-8]
	bl	decode_jpeg_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L551
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	stbi_rewind
	mov	r3, #0
	b	.L552
.L551:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L553
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	str	r2, [r3]
.L553:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L554
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
.L554:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L555
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
.L555:
	mov	r3, #1
.L552:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_jpeg_info_raw, .-stbi_jpeg_info_raw
	.section	.rodata
	.align	2
.LC53:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_jpeg_info, %function
stbi_jpeg_info:
	@ args = 0, pretend = 0, frame = 14016
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #14016
	sub	ip, fp, #12288
	sub	ip, ip, #4
	str	r0, [ip, #-1716]
	sub	r0, fp, #12288
	sub	r0, r0, #4
	str	r1, [r0, #-1720]
	sub	r1, fp, #12288
	sub	r1, r1, #4
	str	r2, [r1, #-1724]
	sub	r2, fp, #12288
	sub	r2, r2, #4
	str	r3, [r2, #-1728]
	ldr	r3, .L559
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #12288
	sub	r3, r3, #4
	mov	r2, r3
	sub	r3, fp, #12288
	sub	r3, r3, #4
	ldr	r3, [r3, #-1716]
	str	r3, [r2, #-1708]
	sub	r3, fp, #12288
	sub	r3, r3, #4
	sub	r2, fp, #12288
	sub	r2, r2, #4
	sub	r1, fp, #12288
	sub	r1, r1, #4
	sub	r0, fp, #13952
	sub	r0, r0, #4
	sub	r0, r0, #44
	ldr	r3, [r3, #-1728]
	ldr	r2, [r2, #-1724]
	ldr	r1, [r1, #-1720]
	bl	stbi_jpeg_info_raw
	mov	r3, r0
	ldr	r2, .L559
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L558
	bl	__stack_chk_fail
.L558:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L560:
	.align	2
.L559:
	.word	.LC53
	.size	stbi_jpeg_info, .-stbi_jpeg_info
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bitreverse16, %function
bitreverse16:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	asr	r3, r3, #1
	ldr	r2, .L563
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r1, r3, #1
	ldr	r3, .L563+4
	and	r3, r3, r1
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	asr	r3, r3, #2
	ldr	r2, .L563+8
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r1, r3, #2
	ldr	r3, .L563+12
	and	r3, r3, r1
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	asr	r3, r3, #4
	ldr	r2, .L563+16
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r1, r3, #4
	ldr	r3, .L563+20
	and	r3, r3, r1
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	asr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L564:
	.align	2
.L563:
	.word	21845
	.word	43690
	.word	13107
	.word	52428
	.word	3855
	.word	61680
	.size	bitreverse16, .-bitreverse16
	.section	.rodata
	.align	2
.LC54:
	.ascii	"bits <= 16\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bit_reverse, %function
bit_reverse:
	@ 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]
	cmp	r3, #16
	ble	.L566
	ldr	r3, .L568
	ldr	r2, .L568+4
	ldr	r1, .L568+8
	ldr	r0, .L568+12
	bl	__assert_fail
.L566:
	ldr	r0, [fp, #-8]
	bl	bitreverse16
	mov	r2, r0
	ldr	r3, [fp, #-12]
	rsb	r3, r3, #16
	asr	r3, r2, r3
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L569:
	.align	2
.L568:
	.word	__PRETTY_FUNCTION__.7409
	.word	1978
	.word	.LC16
	.word	.LC54
	.size	bit_reverse, .-bit_reverse
	.section	.rodata
	.align	2
.LC55:
	.ascii	"sizes[i] <= (1 << i)\000"
	.align	2
.LC56:
	.ascii	"bad codelengths\000"
	.align	2
.LC57:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	zbuild_huffman, %function
zbuild_huffman:
	@ args = 0, pretend = 0, frame = 176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #176
	str	r0, [fp, #-168]
	str	r1, [fp, #-172]
	str	r2, [fp, #-176]
	ldr	r3, .L588
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-160]
	sub	r3, fp, #76
	mov	r2, #68
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-168]
	mov	r2, #1024
	mov	r1, #255
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-164]
	b	.L571
.L572:
	ldr	r3, [fp, #-164]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r2, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-72]
	add	r1, r3, #1
	lsl	r3, r2, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	str	r1, [r3, #-72]
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L571:
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	blt	.L572
	mov	r3, #0
	str	r3, [fp, #-76]
	mov	r3, #1
	str	r3, [fp, #-164]
	b	.L573
.L575:
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-72]
	mov	r1, #1
	ldr	r3, [fp, #-164]
	lsl	r3, r1, r3
	cmp	r2, r3
	ble	.L574
	ldr	r3, .L588+4
	ldr	r2, .L588+8
	ldr	r1, .L588+12
	ldr	r0, .L588+16
	bl	__assert_fail
.L574:
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L573:
	ldr	r3, [fp, #-164]
	cmp	r3, #15
	ble	.L575
	mov	r3, #0
	str	r3, [fp, #-156]
	mov	r3, #1
	str	r3, [fp, #-164]
	b	.L576
.L579:
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-156]
	str	r2, [r3, #-136]
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-168]
	ldr	r3, [fp, #-164]
	add	r3, r3, #512
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-168]
	ldr	r3, [fp, #-164]
	add	r3, r3, #560
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-72]
	ldr	r2, [fp, #-156]
	add	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-72]
	cmp	r3, #0
	beq	.L577
	mov	r2, #1
	ldr	r3, [fp, #-164]
	lsl	r3, r2, r3
	ldr	r2, [fp, #-156]
	cmp	r2, r3
	ble	.L577
	ldr	r0, .L588+20
	bl	e
	mov	r3, r0
	b	.L586
.L577:
	ldr	r3, [fp, #-164]
	rsb	r3, r3, #16
	ldr	r2, [fp, #-156]
	lsl	r1, r2, r3
	ldr	r3, [fp, #-168]
	ldr	r2, [fp, #-164]
	add	r2, r2, #264
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #1
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-72]
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L576:
	ldr	r3, [fp, #-164]
	cmp	r3, #15
	ble	.L579
	ldr	r3, [fp, #-168]
	mov	r2, #65536
	str	r2, [r3, #1120]
	mov	r3, #0
	str	r3, [fp, #-164]
	b	.L580
.L585:
	ldr	r3, [fp, #-164]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	cmp	r3, #0
	beq	.L581
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-136]
	ldr	r1, [fp, #-168]
	ldr	r2, [fp, #-148]
	add	r2, r2, #512
	lsl	r2, r2, #1
	add	r2, r1, r2
	ldrh	r2, [r2]
	sub	r3, r3, r2
	ldr	r1, [fp, #-168]
	ldr	r2, [fp, #-148]
	add	r2, r2, #560
	lsl	r2, r2, #1
	add	r2, r1, r2
	add	r2, r2, #4
	ldrh	r2, [r2]
	add	r3, r3, r2
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-148]
	and	r1, r3, #255
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-144]
	add	r3, r2, r3
	add	r3, r3, #1152
	add	r3, r3, #4
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-168]
	ldr	r3, [fp, #-144]
	add	r3, r3, #720
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-148]
	cmp	r3, #9
	bgt	.L582
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-136]
	ldr	r1, [fp, #-148]
	mov	r0, r3
	bl	bit_reverse
	str	r0, [fp, #-152]
	b	.L583
.L584:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-168]
	ldr	r3, [fp, #-152]
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	mov	r2, #1
	ldr	r3, [fp, #-148]
	lsl	r3, r2, r3
	ldr	r2, [fp, #-152]
	add	r3, r2, r3
	str	r3, [fp, #-152]
.L583:
	ldr	r3, [fp, #-152]
	cmp	r3, #512
	blt	.L584
.L582:
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-136]
	add	r2, r3, #1
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-136]
.L581:
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L580:
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	blt	.L585
	mov	r3, #1
.L586:
	ldr	r2, .L588
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L587
	bl	__stack_chk_fail
.L587:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L589:
	.align	2
.L588:
	.word	.LC57
	.word	__PRETTY_FUNCTION__.7423
	.word	1996
	.word	.LC16
	.word	.LC55
	.word	.LC56
	.size	zbuild_huffman, .-zbuild_huffman
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	zget8, %function
zget8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bcc	.L591
	mov	r3, #0
	b	.L592
.L591:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	add	r1, r3, #1
	ldr	r2, [fp, #-8]
	str	r1, [r2]
	ldrb	r3, [r3]	@ zero_extendqisi2
.L592:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	zget8, .-zget8
	.section	.rodata
	.align	2
.LC58:
	.ascii	"z->code_buffer < (1U << z->num_bits)\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	fill_bits, %function
fill_bits:
	@ 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]
.L595:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	lsr	r3, r2, r3
	cmp	r3, #0
	beq	.L594
	ldr	r3, .L596
	ldr	r2, .L596+4
	ldr	r1, .L596+8
	ldr	r0, .L596+12
	bl	__assert_fail
.L594:
	ldr	r0, [fp, #-8]
	bl	zget8
	mov	r2, r0
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	orr	r2, r3, r2
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	add	r2, r3, #8
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #24
	ble	.L595
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L597:
	.align	2
.L596:
	.word	__PRETTY_FUNCTION__.7457
	.word	2058
	.word	.LC16
	.word	.LC58
	.size	fill_bits, .-fill_bits
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	zreceive, %function
zreceive:
	@ 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, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L599
	ldr	r0, [fp, #-16]
	bl	fill_bits
.L599:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	mov	r1, #1
	ldr	r2, [fp, #-20]
	lsl	r2, r1, r2
	sub	r2, r2, #1
	and	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-20]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	zreceive, .-zreceive
	.section	.rodata
	.align	2
.LC59:
	.ascii	"z->size[b] == s\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	zhuffman_decode, %function
zhuffman_decode:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	cmp	r3, #15
	bgt	.L602
	ldr	r0, [fp, #-24]
	bl	fill_bits
.L602:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	ldr	r2, [fp, #-28]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, .L612
	cmp	r3, r2
	bgt	.L603
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	add	r3, r3, #1152
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	sub	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	add	r3, r3, #720
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
	b	.L604
.L603:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	mov	r1, #16
	mov	r0, r3
	bl	bit_reverse
	str	r0, [fp, #-8]
	mov	r3, #10
	str	r3, [fp, #-16]
.L607:
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-16]
	add	r2, r2, #264
	ldr	r3, [r3, r2, lsl #2]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L611
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L607
.L611:
	nop
	ldr	r3, [fp, #-16]
	cmp	r3, #16
	bne	.L608
	mvn	r3, #0
	b	.L604
.L608:
	ldr	r3, [fp, #-16]
	rsb	r3, r3, #16
	ldr	r2, [fp, #-8]
	asr	r3, r2, r3
	ldr	r1, [fp, #-28]
	ldr	r2, [fp, #-16]
	add	r2, r2, #512
	lsl	r2, r2, #1
	add	r2, r1, r2
	ldrh	r2, [r2]
	sub	r3, r3, r2
	ldr	r1, [fp, #-28]
	ldr	r2, [fp, #-16]
	add	r2, r2, #560
	lsl	r2, r2, #1
	add	r2, r1, r2
	add	r2, r2, #4
	ldrh	r2, [r2]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	add	r3, r3, #1152
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	beq	.L609
	ldr	r3, .L612+4
	ldr	r2, .L612+8
	ldr	r1, .L612+12
	ldr	r0, .L612+16
	bl	__assert_fail
.L609:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	sub	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	add	r3, r3, #720
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
.L604:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L613:
	.align	2
.L612:
	.word	65534
	.word	__PRETTY_FUNCTION__.7474
	.word	2095
	.word	.LC16
	.word	.LC59
	.size	zhuffman_decode, .-zhuffman_decode
	.section	.rodata
	.align	2
.LC60:
	.ascii	"output buffer limit\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expand, %function
expand:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	bne	.L615
	ldr	r0, .L620
	bl	e
	mov	r3, r0
	b	.L616
.L615:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	b	.L617
.L618:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	str	r3, [fp, #-16]
.L617:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L618
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-16]
	mov	r1, r2
	mov	r0, r3
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L619
	ldr	r0, .L620+4
	bl	e
	mov	r3, r0
	b	.L616
.L619:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #24]
	mov	r3, #1
.L616:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L621:
	.align	2
.L620:
	.word	.LC60
	.word	.LC18
	.size	expand, .-expand
	.data
	.align	2
	.type	length_base, %object
	.size	length_base, 124
length_base:
	.word	3
	.word	4
	.word	5
	.word	6
	.word	7
	.word	8
	.word	9
	.word	10
	.word	11
	.word	13
	.word	15
	.word	17
	.word	19
	.word	23
	.word	27
	.word	31
	.word	35
	.word	43
	.word	51
	.word	59
	.word	67
	.word	83
	.word	99
	.word	115
	.word	131
	.word	163
	.word	195
	.word	227
	.word	258
	.word	0
	.word	0
	.align	2
	.type	length_extra, %object
	.size	length_extra, 124
length_extra:
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	1
	.word	1
	.word	1
	.word	1
	.word	2
	.word	2
	.word	2
	.word	2
	.word	3
	.word	3
	.word	3
	.word	3
	.word	4
	.word	4
	.word	4
	.word	4
	.word	5
	.word	5
	.word	5
	.word	5
	.word	0
	.word	0
	.word	0
	.align	2
	.type	dist_base, %object
	.size	dist_base, 128
dist_base:
	.word	1
	.word	2
	.word	3
	.word	4
	.word	5
	.word	7
	.word	9
	.word	13
	.word	17
	.word	25
	.word	33
	.word	49
	.word	65
	.word	97
	.word	129
	.word	193
	.word	257
	.word	385
	.word	513
	.word	769
	.word	1025
	.word	1537
	.word	2049
	.word	3073
	.word	4097
	.word	6145
	.word	8193
	.word	12289
	.word	16385
	.word	24577
	.word	0
	.word	0
	.align	2
	.type	dist_extra, %object
	.size	dist_extra, 128
dist_extra:
	.word	0
	.word	0
	.word	0
	.word	0
	.word	1
	.word	1
	.word	2
	.word	2
	.word	3
	.word	3
	.word	4
	.word	4
	.word	5
	.word	5
	.word	6
	.word	6
	.word	7
	.word	7
	.word	8
	.word	8
	.word	9
	.word	9
	.word	10
	.word	10
	.word	11
	.word	11
	.word	12
	.word	12
	.word	13
	.word	13
	.space	8
	.section	.rodata
	.align	2
.LC61:
	.ascii	"bad dist\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_huffman_block, %function
parse_huffman_block:
	@ 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]
.L636:
	ldr	r3, [fp, #-24]
	add	r3, r3, #32
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	zhuffman_decode
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	bgt	.L623
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L624
	ldr	r0, .L637
	bl	e
	mov	r3, r0
	b	.L625
.L624:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	cmp	r2, r3
	bcc	.L626
	mov	r1, #1
	ldr	r0, [fp, #-24]
	bl	expand
	mov	r3, r0
	cmp	r3, #0
	bne	.L626
	mov	r3, #0
	b	.L625
.L626:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	add	r1, r3, #1
	ldr	r2, [fp, #-24]
	str	r1, [r2, #16]
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L636
.L623:
	ldr	r3, [fp, #-8]
	cmp	r3, #256
	bne	.L628
	mov	r3, #1
	b	.L625
.L628:
	ldr	r3, [fp, #-8]
	sub	r3, r3, #256
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r2, .L637+4
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-16]
	ldr	r2, .L637+8
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L629
	ldr	r2, .L637+8
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	zreceive
	mov	r2, r0
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
.L629:
	ldr	r3, [fp, #-24]
	add	r3, r3, #2048
	add	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	zhuffman_decode
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L630
	ldr	r0, .L637
	bl	e
	mov	r3, r0
	b	.L625
.L630:
	ldr	r2, .L637+12
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-12]
	ldr	r2, .L637+16
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L631
	ldr	r2, .L637+16
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	zreceive
	mov	r2, r0
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
.L631:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	sub	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	ble	.L632
	ldr	r0, .L637+20
	bl	e
	mov	r3, r0
	b	.L625
.L632:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	cmp	r2, r3
	bls	.L633
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	expand
	mov	r3, r0
	cmp	r3, #0
	bne	.L633
	mov	r3, #0
	b	.L625
.L633:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	rsb	r3, r3, #0
	add	r3, r2, r3
	str	r3, [fp, #-20]
	b	.L634
.L635:
	ldr	r2, [fp, #-20]
	add	r3, r2, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	add	r0, r3, #1
	ldr	r1, [fp, #-24]
	str	r0, [r1, #16]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L634:
	ldr	r3, [fp, #-16]
	sub	r2, r3, #1
	str	r2, [fp, #-16]
	cmp	r3, #0
	bne	.L635
	b	.L636
.L625:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L638:
	.align	2
.L637:
	.word	.LC22
	.word	length_base
	.word	length_extra
	.word	dist_base
	.word	dist_extra
	.word	.LC61
	.size	parse_huffman_block, .-parse_huffman_block
	.section	.rodata
	.align	2
.LC62:
	.ascii	"c >= 0 && c < 19\000"
	.align	2
.LC63:
	.ascii	"c == 18\000"
	.align	2
.LC64:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_huffman_codes, %function
compute_huffman_codes:
	@ args = 0, pretend = 0, frame = 2536
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2528
	sub	sp, sp, #8
	str	r0, [fp, #-2536]
	ldr	r3, .L658
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #5
	ldr	r0, [fp, #-2536]
	bl	zreceive
	mov	r3, r0
	add	r3, r3, #256
	add	r3, r3, #1
	str	r3, [fp, #-2524]
	mov	r1, #5
	ldr	r0, [fp, #-2536]
	bl	zreceive
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-2520]
	mov	r1, #4
	ldr	r0, [fp, #-2536]
	bl	zreceive
	mov	r3, r0
	add	r3, r3, #4
	str	r3, [fp, #-2516]
	sub	r3, fp, #484
	mov	r2, #19
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-2532]
	b	.L640
.L641:
	mov	r1, #3
	ldr	r0, [fp, #-2536]
	bl	zreceive
	mov	r3, r0
	str	r3, [fp, #-2508]
	ldr	r2, .L658+4
	ldr	r3, [fp, #-2532]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-2508]
	and	r2, r3, #255
	sub	r3, fp, #4
	add	r3, r3, r1
	strb	r2, [r3, #-480]
	ldr	r3, [fp, #-2532]
	add	r3, r3, #1
	str	r3, [fp, #-2532]
.L640:
	ldr	r2, [fp, #-2532]
	ldr	r3, [fp, #-2516]
	cmp	r2, r3
	blt	.L641
	sub	r1, fp, #484
	sub	r3, fp, #2496
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #19
	mov	r0, r3
	bl	zbuild_huffman
	mov	r3, r0
	cmp	r3, #0
	bne	.L642
	mov	r3, #0
	b	.L655
.L642:
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L644
.L651:
	sub	r3, fp, #2496
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-2536]
	bl	zhuffman_decode
	str	r0, [fp, #-2512]
	ldr	r3, [fp, #-2512]
	cmp	r3, #0
	blt	.L645
	ldr	r3, [fp, #-2512]
	cmp	r3, #18
	ble	.L657
.L645:
	ldr	r3, .L658+8
	ldr	r2, .L658+12
	ldr	r1, .L658+16
	ldr	r0, .L658+20
	bl	__assert_fail
.L657:
	ldr	r3, [fp, #-2512]
	cmp	r3, #15
	bgt	.L647
	ldr	r3, [fp, #-2528]
	add	r2, r3, #1
	str	r2, [fp, #-2528]
	ldr	r2, [fp, #-2512]
	and	r2, r2, #255
	sub	r1, fp, #4
	add	r3, r1, r3
	strb	r2, [r3, #-460]
	b	.L644
.L647:
	ldr	r3, [fp, #-2512]
	cmp	r3, #16
	bne	.L648
	mov	r1, #2
	ldr	r0, [fp, #-2536]
	bl	zreceive
	mov	r3, r0
	add	r3, r3, #3
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2528]
	sub	r2, fp, #464
	add	r0, r2, r3
	ldr	r3, [fp, #-2528]
	sub	r3, r3, #1
	sub	r2, fp, #4
	add	r3, r2, r3
	ldrb	r3, [r3, #-460]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-2512]
	mov	r2, r3
	bl	memset
	ldr	r2, [fp, #-2528]
	ldr	r3, [fp, #-2512]
	add	r3, r2, r3
	str	r3, [fp, #-2528]
	b	.L644
.L648:
	ldr	r3, [fp, #-2512]
	cmp	r3, #17
	bne	.L649
	mov	r1, #3
	ldr	r0, [fp, #-2536]
	bl	zreceive
	mov	r3, r0
	add	r3, r3, #3
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2528]
	sub	r2, fp, #464
	add	r3, r2, r3
	ldr	r2, [fp, #-2512]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r2, [fp, #-2528]
	ldr	r3, [fp, #-2512]
	add	r3, r2, r3
	str	r3, [fp, #-2528]
	b	.L644
.L649:
	ldr	r3, [fp, #-2512]
	cmp	r3, #18
	beq	.L650
	ldr	r3, .L658+8
	ldr	r2, .L658+24
	ldr	r1, .L658+16
	ldr	r0, .L658+28
	bl	__assert_fail
.L650:
	mov	r1, #7
	ldr	r0, [fp, #-2536]
	bl	zreceive
	mov	r3, r0
	add	r3, r3, #11
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2528]
	sub	r2, fp, #464
	add	r3, r2, r3
	ldr	r2, [fp, #-2512]
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r2, [fp, #-2528]
	ldr	r3, [fp, #-2512]
	add	r3, r2, r3
	str	r3, [fp, #-2528]
.L644:
	ldr	r2, [fp, #-2524]
	ldr	r3, [fp, #-2520]
	add	r3, r2, r3
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	blt	.L651
	ldr	r2, [fp, #-2524]
	ldr	r3, [fp, #-2520]
	add	r3, r2, r3
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	beq	.L652
	ldr	r0, .L658+32
	bl	e
	mov	r3, r0
	b	.L655
.L652:
	ldr	r3, [fp, #-2536]
	add	r3, r3, #32
	sub	r1, fp, #464
	ldr	r2, [fp, #-2524]
	mov	r0, r3
	bl	zbuild_huffman
	mov	r3, r0
	cmp	r3, #0
	bne	.L653
	mov	r3, #0
	b	.L655
.L653:
	ldr	r3, [fp, #-2536]
	add	r3, r3, #2048
	add	r3, r3, #4
	ldr	r2, [fp, #-2524]
	sub	r1, fp, #464
	add	r1, r1, r2
	ldr	r2, [fp, #-2520]
	mov	r0, r3
	bl	zbuild_huffman
	mov	r3, r0
	cmp	r3, #0
	bne	.L654
	mov	r3, #0
	b	.L655
.L654:
	mov	r3, #1
.L655:
	ldr	r2, .L658
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L656
	bl	__stack_chk_fail
.L656:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L659:
	.align	2
.L658:
	.word	.LC64
	.word	length_dezigzag.7503
	.word	__PRETTY_FUNCTION__.7517
	.word	2182
	.word	.LC16
	.word	.LC62
	.word	2194
	.word	.LC63
	.word	.LC56
	.size	compute_huffman_codes, .-compute_huffman_codes
	.section	.rodata
	.align	2
.LC65:
	.ascii	"a->num_bits == 0\000"
	.align	2
.LC66:
	.ascii	"zlib corrupt\000"
	.align	2
.LC67:
	.ascii	"read past buffer\000"
	.align	2
.LC68:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_uncompressed_block, %function
parse_uncompressed_block:
	@ 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, .L673
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	and	r3, r3, #7
	cmp	r3, #0
	beq	.L661
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	and	r3, r3, #7
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	zreceive
.L661:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L662
.L663:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	add	r1, r3, #1
	str	r1, [fp, #-24]
	and	r2, r2, #255
	sub	r1, fp, #4
	add	r3, r1, r3
	strb	r2, [r3, #-8]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #12]
	lsr	r2, r3, #8
	ldr	r3, [fp, #-32]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	sub	r2, r3, #8
	ldr	r3, [fp, #-32]
	str	r2, [r3, #8]
.L662:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bgt	.L663
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L665
	ldr	r3, .L673+4
	ldr	r2, .L673+8
	ldr	r1, .L673+12
	ldr	r0, .L673+16
	bl	__assert_fail
.L666:
	ldr	r0, [fp, #-32]
	bl	zget8
	mov	r1, r0
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	and	r2, r1, #255
	sub	r1, fp, #4
	add	r3, r1, r3
	strb	r2, [r3, #-8]
.L665:
	ldr	r3, [fp, #-24]
	cmp	r3, #3
	ble	.L666
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	eor	r3, r3, #65280
	eor	r3, r3, #255
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L667
	ldr	r0, .L673+20
	bl	e
	mov	r3, r0
	b	.L671
.L667:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bls	.L669
	ldr	r0, .L673+24
	bl	e
	mov	r3, r0
	b	.L671
.L669:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #24]
	cmp	r2, r3
	bls	.L670
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	expand
	mov	r3, r0
	cmp	r3, #0
	bne	.L670
	mov	r3, #0
	b	.L671
.L670:
	ldr	r3, [fp, #-32]
	ldr	r0, [r3, #16]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	mov	r1, r3
	bl	memcpy
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #16]
	mov	r3, #1
.L671:
	ldr	r2, .L673
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L672
	bl	__stack_chk_fail
.L672:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L674:
	.align	2
.L673:
	.word	.LC68
	.word	__PRETTY_FUNCTION__.7531
	.word	2219
	.word	.LC16
	.word	.LC65
	.word	.LC66
	.word	.LC67
	.size	parse_uncompressed_block, .-parse_uncompressed_block
	.section	.rodata
	.align	2
.LC69:
	.ascii	"bad zlib header\000"
	.align	2
.LC70:
	.ascii	"no preset dict\000"
	.align	2
.LC71:
	.ascii	"bad compression\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_zlib_header, %function
parse_zlib_header:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	zget8
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	zget8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsl	r2, r3, #8
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, .L680
	smull	r1, r3, r2, r3
	add	r3, r3, r2
	asr	r1, r3, #4
	asr	r3, r2, #31
	sub	r1, r1, r3
	mov	r3, r1
	lsl	r3, r3, #5
	sub	r3, r3, r1
	sub	r1, r2, r3
	cmp	r1, #0
	beq	.L676
	ldr	r0, .L680+4
	bl	e
	mov	r3, r0
	b	.L677
.L676:
	ldr	r3, [fp, #-8]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L678
	ldr	r0, .L680+8
	bl	e
	mov	r3, r0
	b	.L677
.L678:
	ldr	r3, [fp, #-12]
	cmp	r3, #8
	beq	.L679
	ldr	r0, .L680+12
	bl	e
	mov	r3, r0
	b	.L677
.L679:
	mov	r3, #1
.L677:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L681:
	.align	2
.L680:
	.word	-2078209981
	.word	.LC69
	.word	.LC70
	.word	.LC71
	.size	parse_zlib_header, .-parse_zlib_header
	.local	default_length
	.comm	default_length,288,4
	.local	default_distance
	.comm	default_distance,32,4
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_defaults, %function
init_defaults:
	@ 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, #0
	str	r3, [fp, #-8]
	b	.L683
.L684:
	ldr	r2, .L693
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #8
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L683:
	ldr	r3, [fp, #-8]
	cmp	r3, #143
	ble	.L684
	b	.L685
.L686:
	ldr	r2, .L693
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #9
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L685:
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	ble	.L686
	b	.L687
.L688:
	ldr	r2, .L693
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #7
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L687:
	ldr	r3, [fp, #-8]
	cmp	r3, #280
	blt	.L688
	b	.L689
.L690:
	ldr	r2, .L693
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #8
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L689:
	ldr	r3, [fp, #-8]
	cmp	r3, #288
	blt	.L690
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L691
.L692:
	ldr	r2, .L693+4
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #5
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L691:
	ldr	r3, [fp, #-8]
	cmp	r3, #31
	ble	.L692
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L694:
	.align	2
.L693:
	.word	default_length
	.word	default_distance
	.size	init_defaults, .-init_defaults
	.comm	stbi_png_partial,4,4
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_zlib, %function
parse_zlib:
	@ 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]
	cmp	r3, #0
	beq	.L696
	ldr	r0, [fp, #-16]
	bl	parse_zlib_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L696
	mov	r3, #0
	b	.L697
.L696:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #12]
.L707:
	mov	r1, #1
	ldr	r0, [fp, #-16]
	bl	zreceive
	mov	r3, r0
	str	r3, [fp, #-12]
	mov	r1, #2
	ldr	r0, [fp, #-16]
	bl	zreceive
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L698
	ldr	r0, [fp, #-16]
	bl	parse_uncompressed_block
	mov	r3, r0
	cmp	r3, #0
	bne	.L699
	mov	r3, #0
	b	.L697
.L698:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bne	.L700
	mov	r3, #0
	b	.L697
.L700:
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bne	.L701
	ldr	r3, .L709
	ldrb	r3, [r3, #31]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L702
	bl	init_defaults
.L702:
	ldr	r3, [fp, #-16]
	add	r3, r3, #32
	mov	r2, #288
	ldr	r1, .L709+4
	mov	r0, r3
	bl	zbuild_huffman
	mov	r3, r0
	cmp	r3, #0
	bne	.L703
	mov	r3, #0
	b	.L697
.L703:
	ldr	r3, [fp, #-16]
	add	r3, r3, #2048
	add	r3, r3, #4
	mov	r2, #32
	ldr	r1, .L709
	mov	r0, r3
	bl	zbuild_huffman
	mov	r3, r0
	cmp	r3, #0
	bne	.L704
	mov	r3, #0
	b	.L697
.L701:
	ldr	r0, [fp, #-16]
	bl	compute_huffman_codes
	mov	r3, r0
	cmp	r3, #0
	bne	.L704
	mov	r3, #0
	b	.L697
.L704:
	ldr	r0, [fp, #-16]
	bl	parse_huffman_block
	mov	r3, r0
	cmp	r3, #0
	bne	.L699
	mov	r3, #0
	b	.L697
.L699:
	ldr	r3, .L709+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L705
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	sub	r3, r2, r3
	cmp	r3, #65536
	bgt	.L708
.L705:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L707
	b	.L706
.L708:
	nop
.L706:
	mov	r3, #1
.L697:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L710:
	.align	2
.L709:
	.word	default_distance
	.word	default_length
	.word	stbi_png_partial
	.size	parse_zlib, .-parse_zlib
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_zlib, %function
do_zlib:
	@ args = 4, 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]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #28]
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-8]
	bl	parse_zlib
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	do_zlib, .-do_zlib
	.section	.rodata
	.align	2
.LC72:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_zlib_decode_malloc_guesssize
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_zlib_decode_malloc_guesssize, %function
stbi_zlib_decode_malloc_guesssize:
	@ args = 0, pretend = 0, frame = 4096
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #4096
	sub	sp, sp, #8
	str	r0, [fp, #-4088]
	str	r1, [fp, #-4092]
	sub	r1, fp, #4096
	str	r2, [r1]
	sub	r2, fp, #4096
	sub	r2, r2, #4
	str	r3, [r2]
	ldr	r3, .L720
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #4096
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-4084]
	ldr	r3, [fp, #-4084]
	cmp	r3, #0
	bne	.L714
	mov	r3, #0
	b	.L718
.L714:
	ldr	r3, [fp, #-4088]
	str	r3, [fp, #-4080]
	ldr	r3, [fp, #-4092]
	ldr	r2, [fp, #-4088]
	add	r3, r2, r3
	str	r3, [fp, #-4076]
	sub	r0, fp, #4064
	sub	r0, r0, #4
	sub	r0, r0, #12
	mov	r3, #1
	str	r3, [sp]
	mov	r3, #1
	sub	r2, fp, #4096
	ldr	r2, [r2]
	ldr	r1, [fp, #-4084]
	bl	do_zlib
	mov	r3, r0
	cmp	r3, #0
	beq	.L716
	sub	r3, fp, #4096
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L717
	ldr	r2, [fp, #-4064]
	ldr	r3, [fp, #-4060]
	sub	r2, r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #4
	ldr	r3, [r3]
	str	r2, [r3]
.L717:
	ldr	r3, [fp, #-4060]
	b	.L718
.L716:
	ldr	r3, [fp, #-4060]
	mov	r0, r3
	bl	free
	mov	r3, #0
.L718:
	ldr	r2, .L720
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L719
	bl	__stack_chk_fail
.L719:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L721:
	.align	2
.L720:
	.word	.LC72
	.size	stbi_zlib_decode_malloc_guesssize, .-stbi_zlib_decode_malloc_guesssize
	.align	2
	.global	stbi_zlib_decode_malloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_zlib_decode_malloc, %function
stbi_zlib_decode_malloc:
	@ 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]
	ldr	r3, [fp, #-16]
	mov	r2, #16384
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_zlib_decode_malloc_guesssize
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_zlib_decode_malloc, .-stbi_zlib_decode_malloc
	.section	.rodata
	.align	2
.LC73:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_zlib_decode_malloc_guesssize_headerflag
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_zlib_decode_malloc_guesssize_headerflag, %function
stbi_zlib_decode_malloc_guesssize_headerflag:
	@ args = 4, pretend = 0, frame = 4096
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #4096
	sub	sp, sp, #8
	str	r0, [fp, #-4088]
	str	r1, [fp, #-4092]
	sub	r1, fp, #4096
	str	r2, [r1]
	sub	r2, fp, #4096
	sub	r2, r2, #4
	str	r3, [r2]
	ldr	r3, .L731
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #4096
	ldr	r3, [r3]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-4084]
	ldr	r3, [fp, #-4084]
	cmp	r3, #0
	bne	.L725
	mov	r3, #0
	b	.L729
.L725:
	ldr	r3, [fp, #-4088]
	str	r3, [fp, #-4080]
	ldr	r3, [fp, #-4092]
	ldr	r2, [fp, #-4088]
	add	r3, r2, r3
	str	r3, [fp, #-4076]
	sub	r0, fp, #4064
	sub	r0, r0, #4
	sub	r0, r0, #12
	ldr	r3, [fp, #4]
	str	r3, [sp]
	mov	r3, #1
	sub	r2, fp, #4096
	ldr	r2, [r2]
	ldr	r1, [fp, #-4084]
	bl	do_zlib
	mov	r3, r0
	cmp	r3, #0
	beq	.L727
	sub	r3, fp, #4096
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L728
	ldr	r2, [fp, #-4064]
	ldr	r3, [fp, #-4060]
	sub	r2, r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #4
	ldr	r3, [r3]
	str	r2, [r3]
.L728:
	ldr	r3, [fp, #-4060]
	b	.L729
.L727:
	ldr	r3, [fp, #-4060]
	mov	r0, r3
	bl	free
	mov	r3, #0
.L729:
	ldr	r2, .L731
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L730
	bl	__stack_chk_fail
.L730:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L732:
	.align	2
.L731:
	.word	.LC73
	.size	stbi_zlib_decode_malloc_guesssize_headerflag, .-stbi_zlib_decode_malloc_guesssize_headerflag
	.section	.rodata
	.align	2
.LC74:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_zlib_decode_buffer
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_zlib_decode_buffer, %function
stbi_zlib_decode_buffer:
	@ args = 0, pretend = 0, frame = 4096
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #4096
	sub	sp, sp, #8
	str	r0, [fp, #-4088]
	str	r1, [fp, #-4092]
	sub	r1, fp, #4096
	str	r2, [r1]
	sub	r2, fp, #4096
	sub	r2, r2, #4
	str	r3, [r2]
	ldr	r3, .L738
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #4096
	ldr	r3, [r3]
	str	r3, [fp, #-4080]
	sub	r3, fp, #4096
	sub	r3, r3, #4
	ldr	r3, [r3]
	sub	r2, fp, #4096
	ldr	r2, [r2]
	add	r3, r2, r3
	str	r3, [fp, #-4076]
	sub	r0, fp, #4064
	sub	r0, r0, #4
	sub	r0, r0, #12
	mov	r3, #1
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-4092]
	ldr	r1, [fp, #-4088]
	bl	do_zlib
	mov	r3, r0
	cmp	r3, #0
	beq	.L734
	ldr	r2, [fp, #-4064]
	ldr	r3, [fp, #-4060]
	sub	r3, r2, r3
	b	.L736
.L734:
	mvn	r3, #0
.L736:
	ldr	r2, .L738
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L737
	bl	__stack_chk_fail
.L737:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L739:
	.align	2
.L738:
	.word	.LC74
	.size	stbi_zlib_decode_buffer, .-stbi_zlib_decode_buffer
	.section	.rodata
	.align	2
.LC75:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_zlib_decode_noheader_malloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_zlib_decode_noheader_malloc, %function
stbi_zlib_decode_noheader_malloc:
	@ args = 0, pretend = 0, frame = 4096
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #4096
	sub	sp, sp, #8
	str	r0, [fp, #-4088]
	str	r1, [fp, #-4092]
	sub	r3, fp, #4096
	str	r2, [r3]
	ldr	r3, .L747
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r0, #16384
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-4084]
	ldr	r3, [fp, #-4084]
	cmp	r3, #0
	bne	.L741
	mov	r3, #0
	b	.L745
.L741:
	ldr	r3, [fp, #-4088]
	str	r3, [fp, #-4080]
	ldr	r3, [fp, #-4092]
	ldr	r2, [fp, #-4088]
	add	r3, r2, r3
	str	r3, [fp, #-4076]
	sub	r0, fp, #4064
	sub	r0, r0, #4
	sub	r0, r0, #12
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #1
	mov	r2, #16384
	ldr	r1, [fp, #-4084]
	bl	do_zlib
	mov	r3, r0
	cmp	r3, #0
	beq	.L743
	sub	r3, fp, #4096
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L744
	ldr	r2, [fp, #-4064]
	ldr	r3, [fp, #-4060]
	sub	r2, r2, r3
	sub	r3, fp, #4096
	ldr	r3, [r3]
	str	r2, [r3]
.L744:
	ldr	r3, [fp, #-4060]
	b	.L745
.L743:
	ldr	r3, [fp, #-4060]
	mov	r0, r3
	bl	free
	mov	r3, #0
.L745:
	ldr	r2, .L747
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L746
	bl	__stack_chk_fail
.L746:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L748:
	.align	2
.L747:
	.word	.LC75
	.size	stbi_zlib_decode_noheader_malloc, .-stbi_zlib_decode_noheader_malloc
	.section	.rodata
	.align	2
.LC76:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_zlib_decode_noheader_buffer
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_zlib_decode_noheader_buffer, %function
stbi_zlib_decode_noheader_buffer:
	@ args = 0, pretend = 0, frame = 4096
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #4096
	sub	sp, sp, #8
	str	r0, [fp, #-4088]
	str	r1, [fp, #-4092]
	sub	r1, fp, #4096
	str	r2, [r1]
	sub	r2, fp, #4096
	sub	r2, r2, #4
	str	r3, [r2]
	ldr	r3, .L754
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #4096
	ldr	r3, [r3]
	str	r3, [fp, #-4080]
	sub	r3, fp, #4096
	sub	r3, r3, #4
	ldr	r3, [r3]
	sub	r2, fp, #4096
	ldr	r2, [r2]
	add	r3, r2, r3
	str	r3, [fp, #-4076]
	sub	r0, fp, #4064
	sub	r0, r0, #4
	sub	r0, r0, #12
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-4092]
	ldr	r1, [fp, #-4088]
	bl	do_zlib
	mov	r3, r0
	cmp	r3, #0
	beq	.L750
	ldr	r2, [fp, #-4064]
	ldr	r3, [fp, #-4060]
	sub	r3, r2, r3
	b	.L752
.L750:
	mvn	r3, #0
.L752:
	ldr	r2, .L754
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L753
	bl	__stack_chk_fail
.L753:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L755:
	.align	2
.L754:
	.word	.LC76
	.size	stbi_zlib_decode_noheader_buffer, .-stbi_zlib_decode_noheader_buffer
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_chunk_header, %function
get_chunk_header:
	@ 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	r0, [fp, #-20]
	bl	get32
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-20]
	bl	get32
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, r3
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	ldr	r0, [fp, #-16]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get_chunk_header, .-get_chunk_header
	.section	.rodata
	.align	2
.LC77:
	.ascii	"bad png sig\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_png_header, %function
check_png_header:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L759
.L762:
	ldr	r0, [fp, #-16]
	bl	get8u
	mov	r3, r0
	mov	r1, r3
	ldr	r2, .L763
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	beq	.L760
	ldr	r0, .L763+4
	bl	e
	mov	r3, r0
	b	.L761
.L760:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L759:
	ldr	r3, [fp, #-8]
	cmp	r3, #7
	ble	.L762
	mov	r3, #1
.L761:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L764:
	.align	2
.L763:
	.word	png_sig.7632
	.word	.LC77
	.size	check_png_header, .-check_png_header
	.data
	.align	2
	.type	first_row_filter, %object
	.size	first_row_filter, 5
first_row_filter:
	.ascii	"\000\001\000\005\006"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	paeth, %function
paeth:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	cmp	r3, #0
	rsblt	r3, r3, #0
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	cmp	r3, #0
	rsblt	r3, r3, #0
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	cmp	r3, #0
	rsblt	r3, r3, #0
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bgt	.L766
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bgt	.L766
	ldr	r3, [fp, #-24]
	b	.L767
.L766:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bgt	.L768
	ldr	r3, [fp, #-28]
	b	.L767
.L768:
	ldr	r3, [fp, #-32]
.L767:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	paeth, .-paeth
	.section	.rodata
	.align	2
.LC78:
	.ascii	"out_n == s->img_n || out_n == s->img_n+1\000"
	.align	2
.LC79:
	.ascii	"not enough pixels\000"
	.align	2
.LC80:
	.ascii	"invalid filter\000"
	.align	2
.LC81:
	.ascii	"img_n+1 == out_n\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	create_png_image_raw, %function
create_png_image_raw:
	@ args = 8, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #4]
	mul	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	beq	.L770
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	add	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	beq	.L770
	ldr	r3, .L869
	ldr	r2, .L869+4
	ldr	r1, .L869+8
	ldr	r0, .L869+12
	bl	__assert_fail
.L770:
	ldr	r3, .L869+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L771
	mov	r3, #1
	str	r3, [fp, #8]
.L771:
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	ldr	r2, [fp, #-68]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L772
	ldr	r0, .L869+20
	bl	e
	mov	r3, r0
	b	.L773
.L772:
	ldr	r3, .L869+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L774
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #4]
	cmp	r2, r3
	bne	.L775
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #8]
	cmp	r2, r3
	bne	.L775
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	beq	.L774
	ldr	r0, .L869+24
	bl	e
	mov	r3, r0
	b	.L773
.L775:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	bcs	.L774
	ldr	r0, .L869+24
	bl	e
	mov	r3, r0
	b	.L773
.L774:
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L777
.L868:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r1, [fp, #-44]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-20]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-60]
	add	r2, r3, #1
	str	r2, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #4
	ble	.L778
	ldr	r0, .L869+28
	bl	e
	mov	r3, r0
	b	.L773
.L778:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L779
	ldr	r2, .L869+32
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
.L779:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L780
.L790:
	ldr	r3, [fp, #-28]
	cmp	r3, #6
	ldrls	pc, [pc, r3, asl #2]
	b	.L781
.L783:
	.word	.L789
	.word	.L788
	.word	.L787
	.word	.L786
	.word	.L785
	.word	.L784
	.word	.L782
.L789:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	b	.L781
.L788:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	b	.L781
.L787:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L781
.L786:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L781
.L785:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r4, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, #0
	mov	r1, r3
	mov	r0, #0
	bl	paeth
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	add	r2, r4, r2
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L781
.L784:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	b	.L781
.L782:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	nop
.L781:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L780:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L790
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	beq	.L791
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
.L791:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	bne	.L792
	ldr	r3, [fp, #-28]
	cmp	r3, #6
	ldrls	pc, [pc, r3, asl #2]
	b	.L830
.L795:
	.word	.L801
	.word	.L800
	.word	.L799
	.word	.L798
	.word	.L797
	.word	.L796
	.word	.L794
.L801:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L802
.L805:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L803
.L804:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L803:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L804
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L802:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L805
	b	.L830
.L800:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L806
.L809:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L807
.L808:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L807:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L808
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L806:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L809
	b	.L830
.L799:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L810
.L813:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L811
.L812:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L811:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L812
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L810:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L813
	b	.L830
.L798:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L814
.L817:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L815
.L816:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r0, r3
	asr	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L815:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L816
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L814:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L817
	b	.L830
.L797:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L818
.L821:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L819
.L820:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r4, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	bl	paeth
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	add	r2, r4, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L819:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L820
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L818:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L821
	b	.L830
.L796:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L822
.L825:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L823
.L824:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L823:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L824
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L822:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L825
	b	.L830
.L794:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L826
.L829:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L827
.L828:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r4, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	paeth
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	add	r2, r4, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L827:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L828
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L826:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L829
	b	.L830
.L792:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	beq	.L831
	ldr	r3, .L869
	ldr	r2, .L869+36
	ldr	r1, .L869+8
	ldr	r0, .L869+40
	bl	__assert_fail
.L831:
	ldr	r3, [fp, #-28]
	cmp	r3, #6
	ldrls	pc, [pc, r3, asl #2]
	b	.L830
.L833:
	.word	.L839
	.word	.L838
	.word	.L837
	.word	.L836
	.word	.L835
	.word	.L834
	.word	.L832
.L839:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L840
.L843:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L841
.L842:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L841:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L842
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L840:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L843
	b	.L830
.L838:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L844
.L847:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L845
.L846:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-68]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L845:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L846
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L844:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L847
	b	.L830
.L837:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L848
.L851:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L849
.L850:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L849:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L850
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L848:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L851
	b	.L830
.L836:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L852
.L855:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L853
.L854:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-68]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r0, r3
	asr	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L853:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L854
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L852:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L855
	b	.L830
.L835:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L856
.L859:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L857
.L858:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r4, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-68]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-68]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	bl	paeth
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	add	r2, r4, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L857:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L858
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L856:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L859
	b	.L830
.L834:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L860
.L863:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L861
.L862:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-68]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r0, [fp, #-36]
	add	r3, r0, r3
	add	r2, r1, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L861:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L862
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L860:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L863
	b	.L830
.L832:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L864
.L867:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L865
.L870:
	.align	2
.L869:
	.word	__PRETTY_FUNCTION__.7675
	.word	2449
	.word	.LC16
	.word	.LC78
	.word	stbi_png_partial
	.word	.LC18
	.word	.LC79
	.word	.LC80
	.word	first_row_filter
	.word	2500
	.word	.LC81
.L866:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrb	r4, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-68]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	paeth
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	add	r2, r4, r2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L865:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L866
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L864:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L867
	nop
.L830:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L777:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	bcc	.L868
	mov	r3, #1
.L773:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	create_png_image_raw, .-create_png_image_raw
	.section	.rodata
	.align	2
.LC0:
	.word	0
	.word	4
	.word	0
	.word	2
	.word	0
	.word	1
	.word	0
	.align	2
.LC1:
	.word	0
	.word	0
	.word	4
	.word	0
	.word	2
	.word	0
	.word	1
	.align	2
.LC2:
	.word	8
	.word	8
	.word	4
	.word	4
	.word	2
	.word	2
	.word	1
	.align	2
.LC3:
	.word	8
	.word	8
	.word	8
	.word	4
	.word	4
	.word	2
	.word	2
	.align	2
.LC82:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	create_png_image, %function
create_png_image:
	@ args = 4, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #168
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	str	r2, [fp, #-160]
	str	r3, [fp, #-164]
	ldr	r3, .L883
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L872
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	ldr	r2, [r2]
	ldr	r2, [r2, #4]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-164]
	ldr	r2, [fp, #-160]
	ldr	r1, [fp, #-156]
	ldr	r0, [fp, #-152]
	bl	create_png_image_raw
	mov	r3, r0
	b	.L873
.L872:
	ldr	r3, .L883+4
	ldr	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, .L883+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	ldr	r2, [r2]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	ldr	r2, [fp, #-164]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-132]
	mov	r3, #0
	str	r3, [fp, #-148]
	b	.L874
.L881:
	ldr	r3, .L883+8
	sub	ip, fp, #120
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	ldr	r3, .L883+12
	sub	ip, fp, #92
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	ldr	r3, .L883+16
	sub	ip, fp, #64
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	ldr	r3, .L883+20
	sub	ip, fp, #36
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-116]
	sub	r2, r2, r3
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-60]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-60]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-88]
	sub	r2, r2, r3
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-32]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-32]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-128]
	cmp	r3, #0
	beq	.L875
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	beq	.L875
	ldr	r3, [fp, #-128]
	ldr	r2, [fp, #-124]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-164]
	ldr	r2, [fp, #-160]
	ldr	r1, [fp, #-156]
	ldr	r0, [fp, #-152]
	bl	create_png_image_raw
	mov	r3, r0
	cmp	r3, #0
	bne	.L876
	ldr	r0, [fp, #-132]
	bl	free
	mov	r3, #0
	b	.L873
.L876:
	mov	r3, #0
	str	r3, [fp, #-140]
	b	.L877
.L880:
	mov	r3, #0
	str	r3, [fp, #-144]
	b	.L878
.L879:
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-32]
	ldr	r2, [fp, #-140]
	mul	r2, r3, r2
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-88]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mul	r3, r2, r3
	ldr	r2, [fp, #-164]
	mul	r2, r3, r2
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-60]
	ldr	r1, [fp, #-144]
	mul	r1, r3, r1
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r0, fp, #4
	add	r3, r0, r3
	ldr	r3, [r3, #-116]
	add	r3, r1, r3
	ldr	r1, [fp, #-164]
	mul	r3, r1, r3
	add	r3, r2, r3
	ldr	r2, [fp, #-132]
	add	r0, r2, r3
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-140]
	ldr	r1, [fp, #-128]
	mul	r1, r2, r1
	ldr	r2, [fp, #-144]
	add	r2, r1, r2
	ldr	r1, [fp, #-164]
	mul	r2, r1, r2
	add	r3, r3, r2
	ldr	r2, [fp, #-164]
	mov	r1, r3
	bl	memcpy
	ldr	r3, [fp, #-144]
	add	r3, r3, #1
	str	r3, [fp, #-144]
.L878:
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	blt	.L879
	ldr	r3, [fp, #-140]
	add	r3, r3, #1
	str	r3, [fp, #-140]
.L877:
	ldr	r2, [fp, #-140]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	blt	.L880
	ldr	r3, [fp, #-152]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-128]
	ldr	r2, [fp, #-164]
	mul	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-124]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-156]
	add	r3, r3, r2
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-128]
	ldr	r2, [fp, #-164]
	mul	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-124]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-160]
	sub	r3, r3, r2
	str	r3, [fp, #-160]
.L875:
	ldr	r3, [fp, #-148]
	add	r3, r3, #1
	str	r3, [fp, #-148]
.L874:
	ldr	r3, [fp, #-148]
	cmp	r3, #6
	ble	.L881
	ldr	r3, [fp, #-152]
	ldr	r2, [fp, #-132]
	str	r2, [r3, #12]
	ldr	r2, .L883+4
	ldr	r3, [fp, #-136]
	str	r3, [r2]
	mov	r3, #1
.L873:
	ldr	r2, .L883
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L882
	bl	__stack_chk_fail
.L882:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L884:
	.align	2
.L883:
	.word	.LC82
	.word	stbi_png_partial
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.size	create_png_image, .-create_png_image
	.section	.rodata
	.align	2
.LC83:
	.ascii	"out_n == 2 || out_n == 4\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_transparency, %function
compute_transparency:
	@ 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]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	beq	.L886
	ldr	r3, [fp, #-32]
	cmp	r3, #4
	beq	.L886
	ldr	r3, .L897
	ldr	r2, .L897+4
	ldr	r1, .L897+8
	ldr	r0, .L897+12
	bl	__assert_fail
.L886:
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	bne	.L887
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L888
.L891:
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L889
	mov	r2, #0
	b	.L890
.L889:
	mov	r2, #255
.L890:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L888:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L891
	b	.L892
.L887:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L893
.L895:
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L894
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L894
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L894
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	mov	r2, #0
	strb	r2, [r3]
.L894:
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L893:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L895
.L892:
	mov	r3, #1
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L898:
	.align	2
.L897:
	.word	__PRETTY_FUNCTION__.7829
	.word	2569
	.word	.LC16
	.word	.LC83
	.size	compute_transparency, .-compute_transparency
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expand_palette, %function
expand_palette:
	@ 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]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	ldr	r2, [r2]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-24]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L900
	ldr	r0, .L908
	bl	e
	mov	r3, r0
	b	.L901
.L900:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-52]
	cmp	r3, #3
	bne	.L902
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L903
.L904:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-28]
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	ldr	r2, [fp, #-44]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L903:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L904
	b	.L905
.L902:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L906
.L907:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-28]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldr	r2, [fp, #-44]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	ldr	r2, [fp, #-44]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L906:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L907
.L905:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #12]
	mov	r3, #1
.L901:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L909:
	.align	2
.L908:
	.word	.LC18
	.size	expand_palette, .-expand_palette
	.local	stbi_unpremultiply_on_load
	.comm	stbi_unpremultiply_on_load,4,4
	.local	stbi_de_iphone_flag
	.comm	stbi_de_iphone_flag,4,4
	.align	2
	.global	stbi_set_unpremultiply_on_load
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_set_unpremultiply_on_load, %function
stbi_set_unpremultiply_on_load:
	@ 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, .L911
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L912:
	.align	2
.L911:
	.word	stbi_unpremultiply_on_load
	.size	stbi_set_unpremultiply_on_load, .-stbi_set_unpremultiply_on_load
	.align	2
	.global	stbi_convert_iphone_png_to_rgb
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_convert_iphone_png_to_rgb, %function
stbi_convert_iphone_png_to_rgb:
	@ 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, .L914
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L915:
	.align	2
.L914:
	.word	stbi_de_iphone_flag
	.size	stbi_convert_iphone_png_to_rgb, .-stbi_convert_iphone_png_to_rgb
	.section	.rodata
	.align	2
.LC84:
	.ascii	"s->img_out_n == 4\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_de_iphone, %function
stbi_de_iphone:
	@ 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, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	cmp	r3, #3
	bne	.L917
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L918
.L919:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]
	strb	r3, [fp, #-21]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r2, [fp, #-21]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L918:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L919
	b	.L929
.L917:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	cmp	r3, #4
	beq	.L921
	ldr	r3, .L930
	ldr	r2, .L930+4
	ldr	r1, .L930+8
	ldr	r0, .L930+12
	bl	__assert_fail
.L921:
	ldr	r3, .L930+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L922
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L923
.L926:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #3]
	strb	r3, [fp, #-23]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]
	strb	r3, [fp, #-22]
	ldrb	r3, [fp, #-23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L924
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #8
	sub	r3, r3, r2
	ldrb	r2, [fp, #-23]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #8
	sub	r3, r3, r2
	ldrb	r2, [fp, #-23]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldrb	r2, [fp, #-22]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #8
	sub	r3, r3, r2
	ldrb	r2, [fp, #-23]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L925
.L924:
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r2, [fp, #-22]
	strb	r2, [r3]
.L925:
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L923:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L926
	b	.L929
.L922:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L927
.L928:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]
	strb	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r2, [fp, #-24]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L927:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L928
.L929:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L931:
	.align	2
.L930:
	.word	__PRETTY_FUNCTION__.7874
	.word	2649
	.word	.LC16
	.word	.LC84
	.word	stbi_unpremultiply_on_load
	.size	stbi_de_iphone, .-stbi_de_iphone
	.section	.rodata
	.align	2
.LC85:
	.ascii	"multiple IHDR\000"
	.align	2
.LC86:
	.ascii	"bad IHDR len\000"
	.align	2
.LC87:
	.ascii	"8bit only\000"
	.align	2
.LC88:
	.ascii	"bad ctype\000"
	.align	2
.LC89:
	.ascii	"bad comp method\000"
	.align	2
.LC90:
	.ascii	"bad filter method\000"
	.align	2
.LC91:
	.ascii	"bad interlace method\000"
	.align	2
.LC92:
	.ascii	"0-pixel image\000"
	.align	2
.LC93:
	.ascii	"first not IHDR\000"
	.align	2
.LC94:
	.ascii	"invalid PLTE\000"
	.align	2
.LC95:
	.ascii	"tRNS after IDAT\000"
	.align	2
.LC96:
	.ascii	"tRNS before PLTE\000"
	.align	2
.LC97:
	.ascii	"bad tRNS len\000"
	.align	2
.LC98:
	.ascii	"tRNS with alpha\000"
	.align	2
.LC99:
	.ascii	"no PLTE\000"
	.align	2
.LC100:
	.ascii	"outofdata\000"
	.align	2
.LC101:
	.ascii	"no IDAT\000"
	.align	2
.LC102:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_png_file, %function
parse_png_file:
	@ args = 0, pretend = 0, frame = 1120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1120
	sub	sp, sp, #12
	str	r0, [fp, #-1120]
	str	r1, [fp, #-1124]
	str	r2, [fp, #-1128]
	ldr	r3, .L1009
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	strb	r3, [fp, #-1114]
	mov	r3, #0
	strb	r3, [fp, #-1113]
	mov	r3, #0
	str	r3, [fp, #-1108]
	mov	r3, #0
	str	r3, [fp, #-1104]
	mov	r3, #0
	str	r3, [fp, #-1096]
	mov	r3, #1
	str	r3, [fp, #-1092]
	mov	r3, #0
	str	r3, [fp, #-1084]
	mov	r3, #0
	str	r3, [fp, #-1080]
	ldr	r3, [fp, #-1120]
	ldr	r3, [r3]
	str	r3, [fp, #-1076]
	ldr	r3, [fp, #-1120]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1120]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1120]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r0, [fp, #-1076]
	bl	check_png_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L933
	mov	r3, #0
	b	.L1006
.L933:
	ldr	r3, [fp, #-1124]
	cmp	r3, #1
	bne	.L935
	mov	r3, #1
	b	.L1006
.L935:
	sub	r3, fp, #1040
	sub	r3, r3, #12
	ldr	r1, [fp, #-1076]
	mov	r0, r3
	bl	get_chunk_header
	ldr	r3, [fp, #-1048]
	ldr	r2, .L1009+4
	cmp	r3, r2
	beq	.L936
	ldr	r2, .L1009+4
	cmp	r3, r2
	bhi	.L937
	ldr	r2, .L1009+8
	cmp	r3, r2
	beq	.L938
	ldr	r2, .L1009+8
	cmp	r3, r2
	bhi	.L937
	ldr	r2, .L1009+12
	cmp	r3, r2
	beq	.L939
	ldr	r2, .L1009+12
	cmp	r3, r2
	bhi	.L937
	ldr	r2, .L1009+16
	cmp	r3, r2
	beq	.L940
	ldr	r2, .L1009+16
	cmp	r3, r2
	bhi	.L937
	ldr	r2, .L1009+20
	cmp	r3, r2
	beq	.L941
	ldr	r2, .L1009+24
	cmp	r3, r2
	beq	.L942
	b	.L937
.L941:
	ldr	r3, .L1009+28
	ldr	r3, [r3]
	str	r3, [fp, #-1080]
	ldr	r3, [fp, #-1052]
	mov	r1, r3
	ldr	r0, [fp, #-1076]
	bl	skip
	b	.L943
.L939:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	bne	.L944
	ldr	r0, .L1009+32
	bl	e
	mov	r3, r0
	b	.L1006
.L944:
	mov	r3, #0
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #-1052]
	cmp	r3, #13
	beq	.L946
	ldr	r0, .L1009+36
	bl	e
	mov	r3, r0
	b	.L1006
.L946:
	ldr	r0, [fp, #-1076]
	bl	get32
	mov	r2, r0
	ldr	r3, [fp, #-1076]
	str	r2, [r3]
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3]
	cmp	r3, #16777216
	bls	.L947
	ldr	r0, .L1009+40
	bl	e
	mov	r3, r0
	b	.L1006
.L947:
	ldr	r0, [fp, #-1076]
	bl	get32
	mov	r2, r0
	ldr	r3, [fp, #-1076]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #4]
	cmp	r3, #16777216
	bls	.L948
	ldr	r0, .L1009+40
	bl	e
	mov	r3, r0
	b	.L1006
.L948:
	ldr	r0, [fp, #-1076]
	bl	get8
	str	r0, [fp, #-1072]
	ldr	r3, [fp, #-1072]
	cmp	r3, #8
	beq	.L949
	ldr	r0, .L1009+44
	bl	e
	mov	r3, r0
	b	.L1006
.L949:
	ldr	r0, [fp, #-1076]
	bl	get8
	str	r0, [fp, #-1068]
	ldr	r3, [fp, #-1068]
	cmp	r3, #6
	ble	.L950
	ldr	r0, .L1009+48
	bl	e
	mov	r3, r0
	b	.L1006
.L950:
	ldr	r3, [fp, #-1068]
	cmp	r3, #3
	bne	.L951
	mov	r3, #3
	strb	r3, [fp, #-1114]
	b	.L952
.L951:
	ldr	r3, [fp, #-1068]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L952
	ldr	r0, .L1009+48
	bl	e
	mov	r3, r0
	b	.L1006
.L952:
	ldr	r0, [fp, #-1076]
	bl	get8
	str	r0, [fp, #-1064]
	ldr	r3, [fp, #-1064]
	cmp	r3, #0
	beq	.L953
	ldr	r0, .L1009+52
	bl	e
	mov	r3, r0
	b	.L1006
.L953:
	ldr	r0, [fp, #-1076]
	bl	get8
	str	r0, [fp, #-1060]
	ldr	r3, [fp, #-1060]
	cmp	r3, #0
	beq	.L954
	ldr	r0, .L1009+56
	bl	e
	mov	r3, r0
	b	.L1006
.L954:
	ldr	r0, [fp, #-1076]
	bl	get8
	str	r0, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	cmp	r3, #1
	ble	.L955
	ldr	r0, .L1009+60
	bl	e
	mov	r3, r0
	b	.L1006
.L955:
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L956
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L957
.L956:
	ldr	r0, .L1009+64
	bl	e
	mov	r3, r0
	b	.L1006
.L957:
	ldrb	r3, [fp, #-1114]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L958
	ldr	r3, [fp, #-1068]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L959
	mov	r2, #3
	b	.L960
.L959:
	mov	r2, #1
.L960:
	ldr	r3, [fp, #-1068]
	asr	r3, r3, #2
	and	r3, r3, #1
	add	r2, r2, r3
	ldr	r3, [fp, #-1076]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #1073741824
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #8]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bcs	.L961
	ldr	r0, .L1009+40
	bl	e
	mov	r3, r0
	b	.L1006
.L961:
	ldr	r3, [fp, #-1124]
	cmp	r3, #2
	bne	.L1008
	mov	r3, #1
	b	.L1006
.L958:
	ldr	r3, [fp, #-1076]
	mov	r2, #1
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #268435456
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bcs	.L1008
	ldr	r0, .L1009+40
	bl	e
	mov	r3, r0
	b	.L1006
.L938:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	beq	.L963
	ldr	r0, .L1009+68
	bl	e
	mov	r3, r0
	b	.L1006
.L963:
	ldr	r3, [fp, #-1052]
	cmp	r3, #768
	bls	.L964
	ldr	r0, .L1009+72
	bl	e
	mov	r3, r0
	b	.L1006
.L964:
	ldr	r3, [fp, #-1052]
	ldr	r2, .L1009+76
	umull	r1, r3, r2, r3
	lsr	r3, r3, #1
	str	r3, [fp, #-1096]
	ldr	r2, [fp, #-1096]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-1052]
	cmp	r2, r3
	beq	.L965
	ldr	r0, .L1009+72
	bl	e
	mov	r3, r0
	b	.L1006
.L965:
	mov	r3, #0
	str	r3, [fp, #-1100]
	b	.L966
.L967:
	ldr	r3, [fp, #-1100]
	lsl	r4, r3, #2
	ldr	r0, [fp, #-1076]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #12
	add	r3, r3, r4
	strb	r2, [r3, #-1028]
	ldr	r3, [fp, #-1100]
	lsl	r3, r3, #2
	add	r4, r3, #1
	ldr	r0, [fp, #-1076]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #12
	add	r3, r3, r4
	strb	r2, [r3, #-1028]
	ldr	r3, [fp, #-1100]
	lsl	r3, r3, #2
	add	r4, r3, #2
	ldr	r0, [fp, #-1076]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #12
	add	r3, r3, r4
	strb	r2, [r3, #-1028]
	ldr	r3, [fp, #-1100]
	lsl	r3, r3, #2
	add	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3, #-1028]
	ldr	r3, [fp, #-1100]
	add	r3, r3, #1
	str	r3, [fp, #-1100]
.L966:
	ldr	r2, [fp, #-1100]
	ldr	r3, [fp, #-1096]
	cmp	r2, r3
	bcc	.L967
	b	.L943
.L936:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	beq	.L968
	ldr	r0, .L1009+68
	bl	e
	mov	r3, r0
	b	.L1006
.L968:
	ldr	r3, [fp, #-1120]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L969
	ldr	r0, .L1009+80
	bl	e
	mov	r3, r0
	b	.L1006
.L969:
	ldrb	r3, [fp, #-1114]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L970
	ldr	r3, [fp, #-1124]
	cmp	r3, #2
	bne	.L971
	ldr	r3, [fp, #-1076]
	mov	r2, #4
	str	r2, [r3, #8]
	mov	r3, #1
	b	.L1006
.L971:
	ldr	r3, [fp, #-1096]
	cmp	r3, #0
	bne	.L972
	ldr	r0, .L1009+84
	bl	e
	mov	r3, r0
	b	.L1006
.L972:
	ldr	r3, [fp, #-1052]
	ldr	r2, [fp, #-1096]
	cmp	r2, r3
	bcs	.L973
	ldr	r0, .L1009+88
	bl	e
	mov	r3, r0
	b	.L1006
.L973:
	mov	r3, #4
	strb	r3, [fp, #-1114]
	mov	r3, #0
	str	r3, [fp, #-1100]
	b	.L974
.L975:
	ldr	r3, [fp, #-1100]
	lsl	r3, r3, #2
	add	r4, r3, #3
	ldr	r0, [fp, #-1076]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #12
	add	r3, r3, r4
	strb	r2, [r3, #-1028]
	ldr	r3, [fp, #-1100]
	add	r3, r3, #1
	str	r3, [fp, #-1100]
.L974:
	ldr	r3, [fp, #-1052]
	ldr	r2, [fp, #-1100]
	cmp	r2, r3
	bcc	.L975
	b	.L943
.L970:
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #8]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L977
	ldr	r0, .L1009+92
	bl	e
	mov	r3, r0
	b	.L1006
.L977:
	ldr	r2, [fp, #-1052]
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #1
	cmp	r2, r3
	beq	.L978
	ldr	r0, .L1009+88
	bl	e
	mov	r3, r0
	b	.L1006
.L978:
	mov	r3, #1
	strb	r3, [fp, #-1113]
	mov	r3, #0
	str	r3, [fp, #-1088]
	b	.L979
.L980:
	ldr	r0, [fp, #-1076]
	bl	get16
	mov	r3, r0
	and	r1, r3, #255
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldr	r2, [fp, #-1088]
	add	r3, r3, r2
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1088]
	add	r3, r3, #1
	str	r3, [fp, #-1088]
.L979:
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-1088]
	cmp	r2, r3
	blt	.L980
	b	.L943
.L942:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	beq	.L981
	ldr	r0, .L1009+68
	bl	e
	mov	r3, r0
	b	.L1006
.L981:
	ldrb	r3, [fp, #-1114]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L982
	ldr	r3, [fp, #-1096]
	cmp	r3, #0
	bne	.L982
	ldr	r0, .L1009+96
	bl	e
	mov	r3, r0
	b	.L1006
.L982:
	ldr	r3, [fp, #-1124]
	cmp	r3, #2
	bne	.L983
	ldrb	r2, [fp, #-1114]	@ zero_extendqisi2
	ldr	r3, [fp, #-1076]
	str	r2, [r3, #8]
	mov	r3, #1
	b	.L1006
.L983:
	ldr	r2, [fp, #-1052]
	ldr	r3, [fp, #-1108]
	add	r3, r2, r3
	ldr	r2, [fp, #-1104]
	cmp	r2, r3
	bcs	.L984
	ldr	r3, [fp, #-1104]
	cmp	r3, #0
	bne	.L986
	ldr	r3, [fp, #-1052]
	cmp	r3, #4096
	movcs	r3, r3
	movcc	r3, #4096
	str	r3, [fp, #-1104]
	b	.L986
.L987:
	ldr	r3, [fp, #-1104]
	lsl	r3, r3, #1
	str	r3, [fp, #-1104]
.L986:
	ldr	r2, [fp, #-1052]
	ldr	r3, [fp, #-1108]
	add	r3, r2, r3
	ldr	r2, [fp, #-1104]
	cmp	r2, r3
	bcc	.L987
	ldr	r3, [fp, #-1120]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-1104]
	mov	r0, r3
	bl	realloc
	str	r0, [fp, #-1056]
	ldr	r3, [fp, #-1056]
	cmp	r3, #0
	bne	.L988
	ldr	r0, .L1009+100
	bl	e
	mov	r3, r0
	b	.L1006
.L988:
	ldr	r3, [fp, #-1120]
	ldr	r2, [fp, #-1056]
	str	r2, [r3, #4]
.L984:
	ldr	r3, [fp, #-1120]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1108]
	add	r3, r2, r3
	ldr	r2, [fp, #-1052]
	mov	r1, r3
	ldr	r0, [fp, #-1076]
	bl	getn
	mov	r3, r0
	cmp	r3, #0
	bne	.L989
	ldr	r0, .L1009+104
	bl	e
	mov	r3, r0
	b	.L1006
.L989:
	ldr	r3, [fp, #-1052]
	ldr	r2, [fp, #-1108]
	add	r3, r2, r3
	str	r3, [fp, #-1108]
	b	.L943
.L940:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	beq	.L990
	ldr	r0, .L1009+68
	bl	e
	mov	r3, r0
	b	.L1006
.L990:
	ldr	r3, [fp, #-1124]
	cmp	r3, #0
	beq	.L992
	mov	r3, #1
	b	.L1006
.L992:
	ldr	r3, [fp, #-1120]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L993
	ldr	r0, .L1009+108
	bl	e
	mov	r3, r0
	b	.L1006
.L993:
	ldr	r3, [fp, #-1120]
	ldr	r0, [r3, #4]
	ldr	r1, [fp, #-1108]
	ldr	r3, [fp, #-1080]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #1088
	sub	r3, r3, #12
	sub	r3, r3, #12
	str	r2, [sp]
	mov	r2, #16384
	bl	stbi_zlib_decode_malloc_guesssize_headerflag
	mov	r2, r0
	ldr	r3, [fp, #-1120]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1120]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L994
	mov	r3, #0
	b	.L1006
.L994:
	ldr	r3, [fp, #-1120]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-1120]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #8]
	add	r3, r3, #1
	ldr	r2, [fp, #-1128]
	cmp	r2, r3
	bne	.L995
	ldr	r3, [fp, #-1128]
	cmp	r3, #3
	beq	.L995
	ldrb	r3, [fp, #-1114]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L996
.L995:
	ldrb	r3, [fp, #-1113]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L997
.L996:
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-1076]
	str	r2, [r3, #12]
	b	.L998
.L997:
	ldr	r3, [fp, #-1076]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-1076]
	str	r2, [r3, #12]
.L998:
	ldr	r3, [fp, #-1120]
	ldr	r1, [r3, #8]
	ldr	r2, [fp, #-1112]
	ldr	r3, [fp, #-1076]
	ldr	r0, [r3, #12]
	ldr	r3, [fp, #-1084]
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-1120]
	bl	create_png_image
	mov	r3, r0
	cmp	r3, #0
	bne	.L999
	mov	r3, #0
	b	.L1006
.L999:
	ldrb	r3, [fp, #-1113]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1000
	ldr	r3, [fp, #-1076]
	ldr	r2, [r3, #12]
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r1, r3
	ldr	r0, [fp, #-1120]
	bl	compute_transparency
	mov	r3, r0
	cmp	r3, #0
	bne	.L1000
	mov	r3, #0
	b	.L1006
.L1000:
	ldr	r3, [fp, #-1080]
	cmp	r3, #0
	beq	.L1001
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #12]
	cmp	r3, #2
	ble	.L1001
	ldr	r0, [fp, #-1120]
	bl	stbi_de_iphone
.L1001:
	ldrb	r3, [fp, #-1114]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1002
	ldrb	r2, [fp, #-1114]	@ zero_extendqisi2
	ldr	r3, [fp, #-1076]
	str	r2, [r3, #8]
	ldrb	r2, [fp, #-1114]	@ zero_extendqisi2
	ldr	r3, [fp, #-1076]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-1128]
	cmp	r3, #2
	ble	.L1003
	ldr	r3, [fp, #-1076]
	ldr	r2, [fp, #-1128]
	str	r2, [r3, #12]
.L1003:
	ldr	r2, [fp, #-1096]
	ldr	r3, [fp, #-1076]
	ldr	r3, [r3, #12]
	sub	r1, fp, #1024
	sub	r1, r1, #12
	sub	r1, r1, #4
	ldr	r0, [fp, #-1120]
	bl	expand_palette
	mov	r3, r0
	cmp	r3, #0
	bne	.L1002
	mov	r3, #0
	b	.L1006
.L1002:
	ldr	r3, [fp, #-1120]
	ldr	r3, [r3, #8]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-1120]
	mov	r2, #0
	str	r2, [r3, #8]
	mov	r3, #1
	b	.L1006
.L937:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	beq	.L1004
	ldr	r0, .L1009+68
	bl	e
	mov	r3, r0
	b	.L1006
.L1004:
	ldr	r3, [fp, #-1048]
	and	r3, r3, #536870912
	cmp	r3, #0
	bne	.L1005
	ldr	r3, [fp, #-1048]
	lsr	r3, r3, #24
	and	r2, r3, #255
	ldr	r3, .L1009+112
	strb	r2, [r3]
	ldr	r3, [fp, #-1048]
	lsr	r3, r3, #16
	and	r2, r3, #255
	ldr	r3, .L1009+112
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-1048]
	lsr	r3, r3, #8
	and	r2, r3, #255
	ldr	r3, .L1009+112
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-1048]
	and	r2, r3, #255
	ldr	r3, .L1009+112
	strb	r2, [r3, #3]
	ldr	r0, .L1009+112
	bl	e
	mov	r3, r0
	b	.L1006
.L1005:
	ldr	r3, [fp, #-1052]
	mov	r1, r3
	ldr	r0, [fp, #-1076]
	bl	skip
	b	.L943
.L1008:
	nop
.L943:
	ldr	r0, [fp, #-1076]
	bl	get32
	b	.L935
.L1006:
	ldr	r2, .L1009
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1007
	bl	__stack_chk_fail
.L1007:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1010:
	.align	2
.L1009:
	.word	.LC102
	.word	1951551059
	.word	1347179589
	.word	1229472850
	.word	1229278788
	.word	1130840649
	.word	1229209940
	.word	stbi_de_iphone_flag
	.word	.LC85
	.word	.LC86
	.word	.LC46
	.word	.LC87
	.word	.LC88
	.word	.LC89
	.word	.LC90
	.word	.LC91
	.word	.LC92
	.word	.LC93
	.word	.LC94
	.word	-1431655765
	.word	.LC95
	.word	.LC96
	.word	.LC97
	.word	.LC98
	.word	.LC99
	.word	.LC18
	.word	.LC100
	.word	.LC101
	.word	invalid_chunk.7929
	.size	parse_png_file, .-parse_png_file
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_png, %function
do_png:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	blt	.L1012
	ldr	r3, [fp, #4]
	cmp	r3, #4
	ble	.L1013
.L1012:
	ldr	r0, .L1017
	bl	e
	mov	r3, #0
	b	.L1014
.L1013:
	ldr	r2, [fp, #4]
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	parse_png_file
	mov	r3, r0
	cmp	r3, #0
	beq	.L1015
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L1016
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #4]
	cmp	r2, r3
	beq	.L1016
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #4]
	ldr	r0, [fp, #-8]
	bl	convert_format
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #4]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L1016
	ldr	r3, [fp, #-8]
	b	.L1014
.L1016:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1015
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-28]
	str	r2, [r3]
.L1015:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
.L1014:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1018:
	.align	2
.L1017:
	.word	.LC49
	.size	do_png, .-do_png
	.section	.rodata
	.align	2
.LC103:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_png_load, %function
stbi_png_load:
	@ args = 4, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L1022
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-24]
	sub	r0, fp, #24
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	bl	do_png
	mov	r3, r0
	ldr	r2, .L1022
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1021
	bl	__stack_chk_fail
.L1021:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1023:
	.align	2
.L1022:
	.word	.LC103
	.size	stbi_png_load, .-stbi_png_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_png_test, %function
stbi_png_test:
	@ 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	r0, [fp, #-16]
	bl	check_png_header
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_png_test, .-stbi_png_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_png_info_raw, %function
stbi_png_info_raw:
	@ 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]
	str	r3, [fp, #-20]
	mov	r2, #0
	mov	r1, #2
	ldr	r0, [fp, #-8]
	bl	parse_png_file
	mov	r3, r0
	cmp	r3, #0
	bne	.L1027
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	stbi_rewind
	mov	r3, #0
	b	.L1028
.L1027:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1029
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	str	r2, [r3]
.L1029:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1030
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
.L1030:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1031
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
.L1031:
	mov	r3, #1
.L1028:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_png_info_raw, .-stbi_png_info_raw
	.section	.rodata
	.align	2
.LC104:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_png_info, %function
stbi_png_info:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L1035
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-24]
	sub	r0, fp, #24
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	bl	stbi_png_info_raw
	mov	r3, r0
	ldr	r2, .L1035
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1034
	bl	__stack_chk_fail
.L1034:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1036:
	.align	2
.L1035:
	.word	.LC104
	.size	stbi_png_info, .-stbi_png_info
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bmp_test, %function
bmp_test:
	@ 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	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #66
	beq	.L1038
	mov	r3, #0
	b	.L1039
.L1038:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #77
	beq	.L1040
	mov	r3, #0
	b	.L1039
.L1040:
	ldr	r0, [fp, #-16]
	bl	get32le
	ldr	r0, [fp, #-16]
	bl	get16le
	ldr	r0, [fp, #-16]
	bl	get16le
	ldr	r0, [fp, #-16]
	bl	get32le
	ldr	r0, [fp, #-16]
	bl	get32le
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #12
	beq	.L1041
	ldr	r3, [fp, #-8]
	cmp	r3, #40
	beq	.L1041
	ldr	r3, [fp, #-8]
	cmp	r3, #56
	beq	.L1041
	ldr	r3, [fp, #-8]
	cmp	r3, #108
	bne	.L1042
.L1041:
	mov	r3, #1
	b	.L1039
.L1042:
	mov	r3, #0
.L1039:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bmp_test, .-bmp_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_bmp_test, %function
stbi_bmp_test:
	@ 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	r0, [fp, #-16]
	bl	bmp_test
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_bmp_test, .-stbi_bmp_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	high_bit, %function
high_bit:
	@ 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, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L1046
	mvn	r3, #0
	b	.L1047
.L1046:
	ldr	r3, [fp, #-16]
	cmp	r3, #65536
	bcc	.L1048
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #16
	str	r3, [fp, #-16]
.L1048:
	ldr	r3, [fp, #-16]
	cmp	r3, #255
	bls	.L1049
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #8
	str	r3, [fp, #-16]
.L1049:
	ldr	r3, [fp, #-16]
	cmp	r3, #15
	bls	.L1050
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #4
	str	r3, [fp, #-16]
.L1050:
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	bls	.L1051
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #2
	str	r3, [fp, #-16]
.L1051:
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	bls	.L1052
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #1
	str	r3, [fp, #-16]
.L1052:
	ldr	r3, [fp, #-8]
.L1047:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	high_bit, .-high_bit
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bitcount, %function
bitcount:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L1055
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsr	r1, r3, #1
	ldr	r3, .L1055
	and	r3, r3, r1
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L1055+4
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsr	r1, r3, #2
	ldr	r3, .L1055+4
	and	r3, r3, r1
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsr	r2, r3, #4
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, .L1055+8
	and	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #8
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #16
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L1056:
	.align	2
.L1055:
	.word	1431655765
	.word	858993459
	.word	252645135
	.size	bitcount, .-bitcount
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	shiftsigned, %function
shiftsigned:
	@ 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]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L1058
	ldr	r3, [fp, #-20]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-16]
	lsl	r3, r2, r3
	str	r3, [fp, #-16]
	b	.L1059
.L1058:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	asr	r3, r2, r3
	str	r3, [fp, #-16]
.L1059:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	b	.L1060
.L1061:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	asr	r3, r2, r3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-8]
.L1060:
	ldr	r3, [fp, #-8]
	cmp	r3, #7
	ble	.L1061
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	shiftsigned, .-shiftsigned
	.section	.rodata
	.align	2
.LC105:
	.ascii	"not BMP\000"
	.align	2
.LC106:
	.ascii	"unknown BMP\000"
	.align	2
.LC107:
	.ascii	"bad BMP\000"
	.align	2
.LC108:
	.ascii	"monochrome\000"
	.align	2
.LC109:
	.ascii	"BMP RLE\000"
	.align	2
.LC110:
	.ascii	"hsz == 108\000"
	.align	2
.LC111:
	.ascii	"invalid\000"
	.align	2
.LC112:
	.ascii	"bad bpp\000"
	.align	2
.LC113:
	.ascii	"bad masks\000"
	.align	2
.LC114:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bmp_load, %function
bmp_load:
	@ args = 4, pretend = 0, frame = 1192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1200
	sub	sp, sp, #4
	str	r0, [fp, #-1192]
	str	r1, [fp, #-1196]
	str	r2, [fp, #-1200]
	str	r3, [fp, #-1204]
	ldr	r3, .L1151
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-1176]
	mov	r3, #0
	str	r3, [fp, #-1172]
	mov	r3, #0
	str	r3, [fp, #-1168]
	mov	r3, #0
	str	r3, [fp, #-1164]
	mov	r3, #0
	str	r3, [fp, #-1088]
	mov	r3, #0
	str	r3, [fp, #-1160]
	mov	r3, #0
	str	r3, [fp, #-1084]
	ldr	r0, [fp, #-1192]
	bl	get8
	mov	r3, r0
	cmp	r3, #66
	bne	.L1064
	ldr	r0, [fp, #-1192]
	bl	get8
	mov	r3, r0
	cmp	r3, #77
	beq	.L1065
.L1064:
	ldr	r0, .L1151+4
	bl	e
	mov	r3, #0
	b	.L1147
.L1065:
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get16le
	ldr	r0, [fp, #-1192]
	bl	get16le
	ldr	r0, [fp, #-1192]
	bl	get32le
	mov	r3, r0
	str	r3, [fp, #-1080]
	ldr	r0, [fp, #-1192]
	bl	get32le
	mov	r3, r0
	str	r3, [fp, #-1076]
	ldr	r3, [fp, #-1076]
	cmp	r3, #12
	beq	.L1067
	ldr	r3, [fp, #-1076]
	cmp	r3, #40
	beq	.L1067
	ldr	r3, [fp, #-1076]
	cmp	r3, #56
	beq	.L1067
	ldr	r3, [fp, #-1076]
	cmp	r3, #108
	beq	.L1067
	ldr	r0, .L1151+8
	bl	e
	mov	r3, #0
	b	.L1147
.L1067:
	ldr	r3, [fp, #-1076]
	cmp	r3, #12
	bne	.L1068
	ldr	r0, [fp, #-1192]
	bl	get16le
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1192]
	str	r2, [r3]
	ldr	r0, [fp, #-1192]
	bl	get16le
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1192]
	str	r2, [r3, #4]
	b	.L1069
.L1068:
	ldr	r0, [fp, #-1192]
	bl	get32le
	mov	r2, r0
	ldr	r3, [fp, #-1192]
	str	r2, [r3]
	ldr	r0, [fp, #-1192]
	bl	get32le
	mov	r2, r0
	ldr	r3, [fp, #-1192]
	str	r2, [r3, #4]
.L1069:
	ldr	r0, [fp, #-1192]
	bl	get16le
	mov	r3, r0
	cmp	r3, #1
	beq	.L1070
	ldr	r0, .L1151+12
	bl	e
	mov	r3, #0
	b	.L1147
.L1070:
	ldr	r0, [fp, #-1192]
	bl	get16le
	str	r0, [fp, #-1072]
	ldr	r3, [fp, #-1072]
	cmp	r3, #1
	bne	.L1071
	ldr	r0, .L1151+16
	bl	e
	mov	r3, #0
	b	.L1147
.L1071:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-1068]
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	rsblt	r3, r3, #0
	mov	r2, r3
	ldr	r3, [fp, #-1192]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1076]
	cmp	r3, #12
	bne	.L1072
	ldr	r3, [fp, #-1072]
	cmp	r3, #23
	bgt	.L1073
	ldr	r3, [fp, #-1080]
	sub	r3, r3, #38
	ldr	r2, .L1151+20
	smull	r1, r2, r3, r2
	asr	r3, r3, #31
	sub	r3, r2, r3
	str	r3, [fp, #-1160]
	b	.L1073
.L1072:
	ldr	r0, [fp, #-1192]
	bl	get32le
	mov	r3, r0
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	cmp	r3, #1
	beq	.L1074
	ldr	r3, [fp, #-1084]
	cmp	r3, #2
	bne	.L1075
.L1074:
	ldr	r0, .L1151+24
	bl	e
	mov	r3, #0
	b	.L1147
.L1075:
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r3, [fp, #-1076]
	cmp	r3, #40
	beq	.L1076
	ldr	r3, [fp, #-1076]
	cmp	r3, #56
	bne	.L1077
.L1076:
	ldr	r3, [fp, #-1076]
	cmp	r3, #56
	bne	.L1078
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r0, [fp, #-1192]
	bl	get32le
.L1078:
	ldr	r3, [fp, #-1072]
	cmp	r3, #16
	beq	.L1079
	ldr	r3, [fp, #-1072]
	cmp	r3, #32
	bne	.L1149
.L1079:
	mov	r3, #0
	str	r3, [fp, #-1168]
	ldr	r3, [fp, #-1168]
	str	r3, [fp, #-1172]
	ldr	r3, [fp, #-1172]
	str	r3, [fp, #-1176]
	ldr	r3, [fp, #-1084]
	cmp	r3, #0
	bne	.L1081
	ldr	r3, [fp, #-1072]
	cmp	r3, #32
	bne	.L1082
	mov	r3, #16711680
	str	r3, [fp, #-1176]
	mov	r3, #65280
	str	r3, [fp, #-1172]
	mov	r3, #255
	str	r3, [fp, #-1168]
	mov	r3, #-16777216
	str	r3, [fp, #-1164]
	mov	r3, #1
	str	r3, [fp, #-1088]
	b	.L1149
.L1082:
	mov	r3, #31744
	str	r3, [fp, #-1176]
	mov	r3, #992
	str	r3, [fp, #-1172]
	mov	r3, #31
	str	r3, [fp, #-1168]
	b	.L1149
.L1081:
	ldr	r3, [fp, #-1084]
	cmp	r3, #3
	bne	.L1083
	ldr	r0, [fp, #-1192]
	bl	get32le
	str	r0, [fp, #-1176]
	ldr	r0, [fp, #-1192]
	bl	get32le
	str	r0, [fp, #-1172]
	ldr	r0, [fp, #-1192]
	bl	get32le
	str	r0, [fp, #-1168]
	ldr	r2, [fp, #-1176]
	ldr	r3, [fp, #-1172]
	cmp	r2, r3
	bne	.L1149
	ldr	r2, [fp, #-1172]
	ldr	r3, [fp, #-1168]
	cmp	r2, r3
	bne	.L1149
	ldr	r0, .L1151+12
	bl	e
	mov	r3, #0
	b	.L1147
.L1083:
	ldr	r0, .L1151+12
	bl	e
	mov	r3, #0
	b	.L1147
.L1077:
	ldr	r3, [fp, #-1076]
	cmp	r3, #108
	beq	.L1085
	ldr	r3, .L1151+28
	ldr	r2, .L1151+32
	ldr	r1, .L1151+36
	ldr	r0, .L1151+40
	bl	__assert_fail
.L1085:
	ldr	r0, [fp, #-1192]
	bl	get32le
	str	r0, [fp, #-1176]
	ldr	r0, [fp, #-1192]
	bl	get32le
	str	r0, [fp, #-1172]
	ldr	r0, [fp, #-1192]
	bl	get32le
	str	r0, [fp, #-1168]
	ldr	r0, [fp, #-1192]
	bl	get32le
	str	r0, [fp, #-1164]
	ldr	r0, [fp, #-1192]
	bl	get32le
	mov	r3, #0
	str	r3, [fp, #-1156]
	b	.L1086
.L1087:
	ldr	r0, [fp, #-1192]
	bl	get32le
	ldr	r3, [fp, #-1156]
	add	r3, r3, #1
	str	r3, [fp, #-1156]
.L1086:
	ldr	r3, [fp, #-1156]
	cmp	r3, #11
	ble	.L1087
	b	.L1084
.L1149:
	nop
.L1084:
	ldr	r3, [fp, #-1072]
	cmp	r3, #15
	bgt	.L1073
	ldr	r3, [fp, #-1080]
	sub	r2, r3, #14
	ldr	r3, [fp, #-1076]
	sub	r3, r2, r3
	asr	r3, r3, #2
	str	r3, [fp, #-1160]
.L1073:
	ldr	r3, [fp, #-1164]
	cmp	r3, #0
	beq	.L1088
	mov	r2, #4
	b	.L1089
.L1088:
	mov	r2, #3
.L1089:
	ldr	r3, [fp, #-1192]
	str	r2, [r3, #8]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L1090
	ldr	r3, [fp, #4]
	cmp	r3, #2
	ble	.L1090
	ldr	r3, [fp, #4]
	str	r3, [fp, #-1144]
	b	.L1091
.L1090:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-1144]
.L1091:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1144]
	mul	r3, r2, r3
	ldr	r2, [fp, #-1192]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-1180]
	ldr	r3, [fp, #-1180]
	cmp	r3, #0
	bne	.L1092
	ldr	r0, .L1151+44
	bl	e
	mov	r3, #0
	b	.L1147
.L1092:
	ldr	r3, [fp, #-1072]
	cmp	r3, #15
	bgt	.L1093
	mov	r3, #0
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1160]
	cmp	r3, #0
	beq	.L1094
	ldr	r3, [fp, #-1160]
	cmp	r3, #256
	ble	.L1095
.L1094:
	ldr	r0, [fp, #-1180]
	bl	free
	ldr	r0, .L1151+48
	bl	e
	mov	r3, #0
	b	.L1147
.L1095:
	mov	r3, #0
	str	r3, [fp, #-1156]
	b	.L1096
.L1098:
	ldr	r0, [fp, #-1192]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1156]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	strb	r2, [r3, #-1026]
	ldr	r0, [fp, #-1192]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1156]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	strb	r2, [r3, #-1027]
	ldr	r0, [fp, #-1192]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1156]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	strb	r2, [r3, #-1028]
	ldr	r3, [fp, #-1076]
	cmp	r3, #12
	beq	.L1097
	ldr	r0, [fp, #-1192]
	bl	get8
.L1097:
	ldr	r3, [fp, #-1156]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3, #-1025]
	ldr	r3, [fp, #-1156]
	add	r3, r3, #1
	str	r3, [fp, #-1156]
.L1096:
	ldr	r2, [fp, #-1156]
	ldr	r3, [fp, #-1160]
	cmp	r2, r3
	blt	.L1098
	ldr	r3, [fp, #-1080]
	sub	r2, r3, #14
	ldr	r3, [fp, #-1076]
	sub	r2, r2, r3
	ldr	r3, [fp, #-1076]
	cmp	r3, #12
	bne	.L1099
	mov	r3, #3
	b	.L1100
.L1099:
	mov	r3, #4
.L1100:
	ldr	r1, [fp, #-1160]
	mul	r3, r1, r3
	sub	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-1192]
	bl	skip
	ldr	r3, [fp, #-1072]
	cmp	r3, #4
	bne	.L1101
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	add	r3, r3, #1
	lsr	r3, r3, #1
	str	r3, [fp, #-1148]
	b	.L1102
.L1101:
	ldr	r3, [fp, #-1072]
	cmp	r3, #8
	bne	.L1103
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	str	r3, [fp, #-1148]
	b	.L1102
.L1103:
	ldr	r0, [fp, #-1180]
	bl	free
	ldr	r0, .L1151+52
	bl	e
	mov	r3, #0
	b	.L1147
.L1102:
	ldr	r3, [fp, #-1148]
	rsb	r3, r3, #0
	and	r3, r3, #3
	str	r3, [fp, #-1064]
	mov	r3, #0
	str	r3, [fp, #-1152]
	b	.L1104
.L1114:
	mov	r3, #0
	str	r3, [fp, #-1156]
	b	.L1105
.L1113:
	ldr	r0, [fp, #-1192]
	bl	get8
	str	r0, [fp, #-1136]
	mov	r3, #0
	str	r3, [fp, #-1132]
	ldr	r3, [fp, #-1072]
	cmp	r3, #4
	bne	.L1106
	ldr	r3, [fp, #-1136]
	and	r3, r3, #15
	str	r3, [fp, #-1132]
	ldr	r3, [fp, #-1136]
	asr	r3, r3, #4
	str	r3, [fp, #-1136]
.L1106:
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r2, r3, r2
	ldr	r3, [fp, #-1136]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldrb	r3, [r3, #-1028]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r2, r3, r2
	ldr	r3, [fp, #-1136]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldrb	r3, [r3, #-1027]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r2, r3, r2
	ldr	r3, [fp, #-1136]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldrb	r3, [r3, #-1026]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-1144]
	cmp	r3, #4
	bne	.L1107
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	mvn	r2, #0
	strb	r2, [r3]
.L1107:
	ldr	r3, [fp, #-1156]
	add	r3, r3, #1
	ldr	r2, [fp, #-1192]
	ldr	r2, [r2]
	cmp	r3, r2
	beq	.L1150
	ldr	r3, [fp, #-1072]
	cmp	r3, #8
	bne	.L1110
	ldr	r0, [fp, #-1192]
	bl	get8
	mov	r3, r0
	b	.L1111
.L1110:
	ldr	r3, [fp, #-1132]
.L1111:
	str	r3, [fp, #-1136]
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r2, r3, r2
	ldr	r3, [fp, #-1136]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldrb	r3, [r3, #-1028]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r2, r3, r2
	ldr	r3, [fp, #-1136]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldrb	r3, [r3, #-1027]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r2, r3, r2
	ldr	r3, [fp, #-1136]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	ldrb	r3, [r3, #-1026]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-1144]
	cmp	r3, #4
	bne	.L1112
	ldr	r3, [fp, #-1140]
	add	r2, r3, #1
	str	r2, [fp, #-1140]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	mvn	r2, #0
	strb	r2, [r3]
.L1112:
	ldr	r3, [fp, #-1156]
	add	r3, r3, #2
	str	r3, [fp, #-1156]
.L1105:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1156]
	cmp	r3, r2
	blt	.L1113
	b	.L1109
.L1150:
	nop
.L1109:
	ldr	r1, [fp, #-1064]
	ldr	r0, [fp, #-1192]
	bl	skip
	ldr	r3, [fp, #-1152]
	add	r3, r3, #1
	str	r3, [fp, #-1152]
.L1104:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1152]
	cmp	r3, r2
	blt	.L1114
	b	.L1115
.L1093:
	mov	r3, #0
	str	r3, [fp, #-1128]
	mov	r3, #0
	str	r3, [fp, #-1124]
	mov	r3, #0
	str	r3, [fp, #-1120]
	mov	r3, #0
	str	r3, [fp, #-1116]
	mov	r3, #0
	str	r3, [fp, #-1112]
	mov	r3, #0
	str	r3, [fp, #-1108]
	mov	r3, #0
	str	r3, [fp, #-1104]
	mov	r3, #0
	str	r3, [fp, #-1100]
	mov	r3, #0
	str	r3, [fp, #-1096]
	mov	r3, #0
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #-1080]
	sub	r2, r3, #14
	ldr	r3, [fp, #-1076]
	sub	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-1192]
	bl	skip
	ldr	r3, [fp, #-1072]
	cmp	r3, #24
	bne	.L1116
	ldr	r3, [fp, #-1192]
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-1148]
	b	.L1117
.L1116:
	ldr	r3, [fp, #-1072]
	cmp	r3, #16
	bne	.L1118
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-1148]
	b	.L1117
.L1118:
	mov	r3, #0
	str	r3, [fp, #-1148]
.L1117:
	ldr	r3, [fp, #-1148]
	rsb	r3, r3, #0
	and	r3, r3, #3
	str	r3, [fp, #-1064]
	ldr	r3, [fp, #-1072]
	cmp	r3, #24
	bne	.L1119
	mov	r3, #1
	str	r3, [fp, #-1092]
	b	.L1120
.L1119:
	ldr	r3, [fp, #-1072]
	cmp	r3, #32
	bne	.L1120
	ldr	r3, [fp, #-1168]
	cmp	r3, #255
	bne	.L1120
	ldr	r3, [fp, #-1172]
	cmp	r3, #65280
	bne	.L1120
	ldr	r3, [fp, #-1176]
	cmp	r3, #16711680
	bne	.L1120
	ldr	r3, [fp, #-1164]
	cmp	r3, #-16777216
	bne	.L1120
	mov	r3, #2
	str	r3, [fp, #-1092]
.L1120:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	bne	.L1121
	ldr	r3, [fp, #-1176]
	cmp	r3, #0
	beq	.L1122
	ldr	r3, [fp, #-1172]
	cmp	r3, #0
	beq	.L1122
	ldr	r3, [fp, #-1168]
	cmp	r3, #0
	bne	.L1123
.L1122:
	ldr	r0, [fp, #-1180]
	bl	free
	ldr	r0, .L1151+56
	bl	e
	mov	r3, #0
	b	.L1147
.L1123:
	ldr	r0, [fp, #-1176]
	bl	high_bit
	mov	r3, r0
	sub	r3, r3, #7
	str	r3, [fp, #-1128]
	ldr	r0, [fp, #-1176]
	bl	bitcount
	str	r0, [fp, #-1112]
	ldr	r0, [fp, #-1172]
	bl	high_bit
	mov	r3, r0
	sub	r3, r3, #7
	str	r3, [fp, #-1124]
	ldr	r0, [fp, #-1176]
	bl	bitcount
	str	r0, [fp, #-1108]
	ldr	r0, [fp, #-1168]
	bl	high_bit
	mov	r3, r0
	sub	r3, r3, #7
	str	r3, [fp, #-1120]
	ldr	r0, [fp, #-1176]
	bl	bitcount
	str	r0, [fp, #-1104]
	ldr	r0, [fp, #-1164]
	bl	high_bit
	mov	r3, r0
	sub	r3, r3, #7
	str	r3, [fp, #-1116]
	ldr	r0, [fp, #-1176]
	bl	bitcount
	str	r0, [fp, #-1100]
.L1121:
	mov	r3, #0
	str	r3, [fp, #-1152]
	b	.L1124
.L1139:
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	beq	.L1125
	mov	r3, #0
	str	r3, [fp, #-1156]
	b	.L1126
.L1130:
	ldr	r3, [fp, #-1096]
	add	r3, r3, #2
	ldr	r2, [fp, #-1180]
	add	r4, r2, r3
	ldr	r0, [fp, #-1192]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-1096]
	add	r3, r3, #1
	ldr	r2, [fp, #-1180]
	add	r4, r2, r3
	ldr	r0, [fp, #-1192]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-1096]
	ldr	r2, [fp, #-1180]
	add	r4, r2, r3
	ldr	r0, [fp, #-1192]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-1096]
	add	r3, r3, #3
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1092]
	cmp	r3, #2
	bne	.L1127
	ldr	r0, [fp, #-1192]
	bl	get8
	mov	r3, r0
	b	.L1128
.L1127:
	mov	r3, #255
.L1128:
	str	r3, [fp, #-1052]
	ldr	r3, [fp, #-1144]
	cmp	r3, #4
	bne	.L1129
	ldr	r3, [fp, #-1096]
	add	r2, r3, #1
	str	r2, [fp, #-1096]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	ldr	r2, [fp, #-1052]
	and	r2, r2, #255
	strb	r2, [r3]
.L1129:
	ldr	r3, [fp, #-1156]
	add	r3, r3, #1
	str	r3, [fp, #-1156]
.L1126:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1156]
	cmp	r3, r2
	blt	.L1130
	b	.L1131
.L1125:
	mov	r3, #0
	str	r3, [fp, #-1156]
	b	.L1132
.L1138:
	ldr	r3, [fp, #-1072]
	cmp	r3, #16
	bne	.L1133
	ldr	r0, [fp, #-1192]
	bl	get16le
	mov	r3, r0
	b	.L1134
.L1133:
	ldr	r0, [fp, #-1192]
	bl	get32le
	mov	r3, r0
.L1134:
	str	r3, [fp, #-1060]
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1176]
	and	r3, r3, r2
	ldr	r2, [fp, #-1112]
	ldr	r1, [fp, #-1128]
	mov	r0, r3
	bl	shiftsigned
	mov	r1, r0
	ldr	r3, [fp, #-1096]
	add	r2, r3, #1
	str	r2, [fp, #-1096]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1172]
	and	r3, r3, r2
	ldr	r2, [fp, #-1108]
	ldr	r1, [fp, #-1124]
	mov	r0, r3
	bl	shiftsigned
	mov	r1, r0
	ldr	r3, [fp, #-1096]
	add	r2, r3, #1
	str	r2, [fp, #-1096]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1168]
	and	r3, r3, r2
	ldr	r2, [fp, #-1104]
	ldr	r1, [fp, #-1120]
	mov	r0, r3
	bl	shiftsigned
	mov	r1, r0
	ldr	r3, [fp, #-1096]
	add	r2, r3, #1
	str	r2, [fp, #-1096]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1164]
	cmp	r3, #0
	beq	.L1135
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1164]
	and	r3, r3, r2
	ldr	r2, [fp, #-1100]
	ldr	r1, [fp, #-1116]
	mov	r0, r3
	bl	shiftsigned
	mov	r3, r0
	b	.L1136
.L1135:
	mov	r3, #255
.L1136:
	str	r3, [fp, #-1056]
	ldr	r3, [fp, #-1144]
	cmp	r3, #4
	bne	.L1137
	ldr	r3, [fp, #-1096]
	add	r2, r3, #1
	str	r2, [fp, #-1096]
	mov	r2, r3
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	ldr	r2, [fp, #-1056]
	and	r2, r2, #255
	strb	r2, [r3]
.L1137:
	ldr	r3, [fp, #-1156]
	add	r3, r3, #1
	str	r3, [fp, #-1156]
.L1132:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1156]
	cmp	r3, r2
	blt	.L1138
.L1131:
	ldr	r1, [fp, #-1064]
	ldr	r0, [fp, #-1192]
	bl	skip
	ldr	r3, [fp, #-1152]
	add	r3, r3, #1
	str	r3, [fp, #-1152]
.L1124:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1152]
	cmp	r3, r2
	blt	.L1139
.L1115:
	ldr	r3, [fp, #-1068]
	cmp	r3, #0
	beq	.L1140
	mov	r3, #0
	str	r3, [fp, #-1152]
	b	.L1141
.L1144:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1152]
	mul	r3, r2, r3
	ldr	r2, [fp, #-1144]
	mul	r3, r2, r3
	ldr	r2, [fp, #-1180]
	add	r3, r2, r3
	str	r3, [fp, #-1048]
	ldr	r3, [fp, #-1192]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1152]
	sub	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-1192]
	ldr	r2, [r2]
	mul	r3, r2, r3
	ldr	r2, [fp, #-1144]
	mul	r3, r2, r3
	ldr	r2, [fp, #-1180]
	add	r3, r2, r3
	str	r3, [fp, #-1044]
	mov	r3, #0
	str	r3, [fp, #-1156]
	b	.L1142
.L1143:
	ldr	r3, [fp, #-1156]
	ldr	r2, [fp, #-1048]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-1181]
	ldr	r3, [fp, #-1156]
	ldr	r2, [fp, #-1044]
	add	r2, r2, r3
	ldr	r3, [fp, #-1156]
	ldr	r1, [fp, #-1048]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-1156]
	ldr	r2, [fp, #-1044]
	add	r3, r2, r3
	ldrb	r2, [fp, #-1181]
	strb	r2, [r3]
	ldr	r3, [fp, #-1156]
	add	r3, r3, #1
	str	r3, [fp, #-1156]
.L1142:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	mul	r3, r2, r3
	ldr	r2, [fp, #-1156]
	cmp	r2, r3
	blt	.L1143
	ldr	r3, [fp, #-1152]
	add	r3, r3, #1
	str	r3, [fp, #-1152]
.L1141:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #4]
	asr	r3, r3, #1
	ldr	r2, [fp, #-1152]
	cmp	r2, r3
	blt	.L1144
.L1140:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L1145
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-1144]
	cmp	r2, r3
	beq	.L1145
	ldr	r3, [fp, #-1192]
	ldr	r2, [r3]
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #4]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-1144]
	ldr	r0, [fp, #-1180]
	bl	convert_format
	str	r0, [fp, #-1180]
	ldr	r3, [fp, #-1180]
	cmp	r3, #0
	bne	.L1145
	ldr	r3, [fp, #-1180]
	b	.L1147
.L1145:
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1196]
	str	r2, [r3]
	ldr	r3, [fp, #-1192]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1200]
	str	r2, [r3]
	ldr	r3, [fp, #-1204]
	cmp	r3, #0
	beq	.L1146
	ldr	r3, [fp, #-1192]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-1204]
	str	r2, [r3]
.L1146:
	ldr	r3, [fp, #-1180]
.L1147:
	ldr	r2, .L1151
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1148
	bl	__stack_chk_fail
.L1148:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1152:
	.align	2
.L1151:
	.word	.LC114
	.word	.LC105
	.word	.LC106
	.word	.LC107
	.word	.LC108
	.word	1431655766
	.word	.LC109
	.word	__PRETTY_FUNCTION__.8014
	.word	3022
	.word	.LC16
	.word	.LC110
	.word	.LC18
	.word	.LC111
	.word	.LC112
	.word	.LC113
	.size	bmp_load, .-bmp_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_bmp_load, %function
stbi_bmp_load:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	bmp_load
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_bmp_load, .-stbi_bmp_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tga_info, %function
tga_info:
	@ 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]
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-24]
	bl	get8u
	ldr	r0, [fp, #-24]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	ble	.L1156
	ldr	r0, [fp, #-24]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1157
.L1156:
	ldr	r0, [fp, #-24]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	beq	.L1158
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	beq	.L1158
	ldr	r3, [fp, #-20]
	cmp	r3, #3
	beq	.L1158
	ldr	r3, [fp, #-20]
	cmp	r3, #9
	beq	.L1158
	ldr	r3, [fp, #-20]
	cmp	r3, #10
	beq	.L1158
	ldr	r3, [fp, #-20]
	cmp	r3, #11
	beq	.L1158
	mov	r3, #0
	b	.L1157
.L1158:
	mov	r1, #9
	ldr	r0, [fp, #-24]
	bl	skip
	ldr	r0, [fp, #-24]
	bl	get16le
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bgt	.L1159
	ldr	r0, [fp, #-24]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1157
.L1159:
	ldr	r0, [fp, #-24]
	bl	get16le
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bgt	.L1160
	ldr	r0, [fp, #-24]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1157
.L1160:
	ldr	r0, [fp, #-24]
	bl	get8
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #8
	beq	.L1161
	ldr	r3, [fp, #-20]
	cmp	r3, #16
	beq	.L1161
	ldr	r3, [fp, #-20]
	cmp	r3, #24
	beq	.L1161
	ldr	r3, [fp, #-20]
	cmp	r3, #32
	beq	.L1161
	ldr	r0, [fp, #-24]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1157
.L1161:
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1162
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
.L1162:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L1163
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
.L1163:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1164
	ldr	r3, [fp, #-8]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
.L1164:
	mov	r3, #1
.L1157:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tga_info, .-tga_info
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_tga_info, %function
stbi_tga_info:
	@ 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]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	tga_info
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_tga_info, .-stbi_tga_info
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tga_test, %function
tga_test:
	@ 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	r0, [fp, #-16]
	bl	get8u
	ldr	r0, [fp, #-16]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	ble	.L1168
	mov	r3, #0
	b	.L1169
.L1168:
	ldr	r0, [fp, #-16]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	beq	.L1170
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	beq	.L1170
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	beq	.L1170
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	beq	.L1170
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	beq	.L1170
	ldr	r3, [fp, #-8]
	cmp	r3, #11
	beq	.L1170
	mov	r3, #0
	b	.L1169
.L1170:
	ldr	r0, [fp, #-16]
	bl	get16
	ldr	r0, [fp, #-16]
	bl	get16
	ldr	r0, [fp, #-16]
	bl	get8
	ldr	r0, [fp, #-16]
	bl	get16
	ldr	r0, [fp, #-16]
	bl	get16
	ldr	r0, [fp, #-16]
	bl	get16
	mov	r3, r0
	cmp	r3, #0
	bgt	.L1171
	mov	r3, #0
	b	.L1169
.L1171:
	ldr	r0, [fp, #-16]
	bl	get16
	mov	r3, r0
	cmp	r3, #0
	bgt	.L1172
	mov	r3, #0
	b	.L1169
.L1172:
	ldr	r0, [fp, #-16]
	bl	get8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #8
	beq	.L1173
	ldr	r3, [fp, #-8]
	cmp	r3, #16
	beq	.L1173
	ldr	r3, [fp, #-8]
	cmp	r3, #24
	beq	.L1173
	ldr	r3, [fp, #-8]
	cmp	r3, #32
	beq	.L1173
	mov	r3, #0
	b	.L1169
.L1173:
	mov	r3, #1
.L1169:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tga_test, .-tga_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_tga_test, %function
stbi_tga_test:
	@ 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	r0, [fp, #-16]
	bl	tga_test
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_tga_test, .-stbi_tga_test
	.section	.rodata
	.align	2
.LC115:
	.ascii	"bad palette\000"
	.align	2
.LC116:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tga_load, %function
tga_load:
	@ args = 4, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #132
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	str	r2, [fp, #-136]
	str	r3, [fp, #-140]
	ldr	r3, .L1221
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-72]
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-68]
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-116]
	ldr	r0, [fp, #-128]
	bl	get16le
	str	r0, [fp, #-64]
	ldr	r0, [fp, #-128]
	bl	get16le
	str	r0, [fp, #-60]
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-56]
	ldr	r0, [fp, #-128]
	bl	get16le
	str	r0, [fp, #-52]
	ldr	r0, [fp, #-128]
	bl	get16le
	str	r0, [fp, #-48]
	ldr	r0, [fp, #-128]
	bl	get16le
	str	r0, [fp, #-44]
	ldr	r0, [fp, #-128]
	bl	get16le
	str	r0, [fp, #-40]
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-112]
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-108]
	mov	r3, #0
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-92]
	mov	r3, #1
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-120]
	cmp	r3, #7
	ble	.L1177
	ldr	r3, [fp, #-120]
	sub	r3, r3, #8
	str	r3, [fp, #-120]
	mov	r3, #1
	str	r3, [fp, #-116]
.L1177:
	ldr	r3, [fp, #-36]
	and	r3, r3, #32
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	ble	.L1178
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L1178
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	ble	.L1178
	ldr	r3, [fp, #-120]
	cmp	r3, #3
	bgt	.L1178
	ldr	r3, [fp, #-112]
	cmp	r3, #8
	beq	.L1179
	ldr	r3, [fp, #-112]
	cmp	r3, #16
	beq	.L1179
	ldr	r3, [fp, #-112]
	cmp	r3, #24
	beq	.L1179
	ldr	r3, [fp, #-112]
	cmp	r3, #32
	beq	.L1179
.L1178:
	mov	r3, #0
	b	.L1219
.L1179:
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L1181
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-112]
.L1181:
	ldr	r3, [fp, #-132]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-136]
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	ble	.L1182
	ldr	r3, [fp, #4]
	cmp	r3, #4
	ble	.L1183
.L1182:
	ldr	r3, [fp, #-112]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	str	r3, [fp, #4]
	ldr	r3, [fp, #-140]
	ldr	r2, [fp, #4]
	str	r2, [r3]
	b	.L1184
.L1183:
	ldr	r3, [fp, #-112]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-140]
	str	r2, [r3]
.L1184:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L1185
	ldr	r0, .L1221+4
	bl	e
	mov	r3, #0
	b	.L1219
.L1185:
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-128]
	bl	skip
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L1186
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-128]
	bl	skip
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-56]
	mul	r3, r2, r3
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bne	.L1187
	ldr	r0, .L1221+4
	bl	e
	mov	r3, #0
	b	.L1219
.L1187:
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-56]
	mul	r3, r2, r3
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r1, [fp, #-108]
	ldr	r0, [fp, #-128]
	bl	getn
	mov	r3, r0
	cmp	r3, #0
	bne	.L1186
	ldr	r0, [fp, #-32]
	bl	free
	ldr	r0, [fp, #-108]
	bl	free
	ldr	r0, .L1221+8
	bl	e
	mov	r3, #0
	b	.L1219
.L1186:
	mov	r3, #0
	strb	r3, [fp, #-17]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	strb	r3, [fp, #-18]
	ldrb	r3, [fp, #-18]	@ zero_extendqisi2
	strb	r3, [fp, #-19]
	ldrb	r3, [fp, #-19]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-104]
	b	.L1188
.L1212:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L1189
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L1190
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	and	r3, r3, #127
	add	r3, r3, #1
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-28]
	asr	r3, r3, #7
	str	r3, [fp, #-92]
	mov	r3, #1
	str	r3, [fp, #-88]
	b	.L1191
.L1190:
	ldr	r3, [fp, #-92]
	cmp	r3, #0
	bne	.L1191
	mov	r3, #1
	str	r3, [fp, #-88]
	b	.L1191
.L1189:
	mov	r3, #1
	str	r3, [fp, #-88]
.L1191:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L1192
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L1193
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L1194
	mov	r3, #0
	str	r3, [fp, #-84]
.L1194:
	ldr	r3, [fp, #-112]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-84]
	mul	r3, r2, r3
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L1195
.L1196:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-108]
	add	r3, r3, r2
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #24
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L1195:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-112]
	cmp	r2, r3
	bgt	.L1196
	b	.L1197
.L1193:
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L1198
.L1199:
	ldr	r0, [fp, #-128]
	bl	get8u
	mov	r3, r0
	mov	r1, r3
	sub	r2, fp, #24
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L1198:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-112]
	cmp	r2, r3
	bgt	.L1199
.L1197:
	ldr	r3, [fp, #-112]
	sub	r3, r3, #8
	cmp	r3, #24
	ldrls	pc, [pc, r3, asl #2]
	b	.L1200
.L1202:
	.word	.L1205
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1204
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1203
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1200
	.word	.L1201
.L1205:
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-19]
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-18]
	mvn	r3, #0
	strb	r3, [fp, #-17]
	b	.L1200
.L1204:
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-19]
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-18]
	ldrb	r3, [fp, #-23]	@ zero_extendqisi2
	strb	r3, [fp, #-17]
	b	.L1200
.L1203:
	ldrb	r3, [fp, #-22]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	ldrb	r3, [fp, #-23]	@ zero_extendqisi2
	strb	r3, [fp, #-19]
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-18]
	mvn	r3, #0
	strb	r3, [fp, #-17]
	b	.L1200
.L1201:
	ldrb	r3, [fp, #-22]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	ldrb	r3, [fp, #-23]	@ zero_extendqisi2
	strb	r3, [fp, #-19]
	ldrb	r3, [fp, #-24]	@ zero_extendqisi2
	strb	r3, [fp, #-18]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	strb	r3, [fp, #-17]
	nop
.L1200:
	mov	r3, #0
	str	r3, [fp, #-88]
.L1192:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L1206
.L1208:
	.word	.L1211
	.word	.L1210
	.word	.L1209
	.word	.L1207
.L1211:
	ldrb	r3, [fp, #-20]	@ zero_extendqisi2
	mov	r0, r3
	ldrb	r3, [fp, #-19]	@ zero_extendqisi2
	mov	r1, r3
	ldrb	r3, [fp, #-18]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r4, r3, r2
	mov	r2, ip
	bl	compute_y
	mov	r3, r0
	strb	r3, [r4]
	b	.L1206
.L1210:
	ldrb	r3, [fp, #-20]	@ zero_extendqisi2
	mov	r0, r3
	ldrb	r3, [fp, #-19]	@ zero_extendqisi2
	mov	r1, r3
	ldrb	r3, [fp, #-18]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r4, r3, r2
	mov	r2, ip
	bl	compute_y
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [fp, #-17]	@ zero_extendqisi2
	strb	r2, [r3]
	b	.L1206
.L1209:
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r2, [fp, #-20]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [fp, #-19]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [fp, #-18]	@ zero_extendqisi2
	strb	r2, [r3]
	b	.L1206
.L1207:
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r2, [fp, #-20]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [fp, #-19]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [fp, #-18]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [fp, #-17]	@ zero_extendqisi2
	strb	r2, [r3]
	nop
.L1206:
	ldr	r3, [fp, #-96]
	sub	r3, r3, #1
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L1188:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	ldr	r2, [fp, #-104]
	cmp	r2, r3
	blt	.L1212
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1213
	mov	r3, #0
	str	r3, [fp, #-100]
	b	.L1214
.L1217:
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #-44]
	mul	r2, r3, r2
	ldr	r3, [fp, #4]
	mul	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-40]
	sub	r2, r3, #1
	ldr	r3, [fp, #-100]
	sub	r3, r2, r3
	ldr	r2, [fp, #-44]
	mul	r2, r3, r2
	ldr	r3, [fp, #4]
	mul	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	str	r3, [fp, #-104]
	b	.L1215
.L1216:
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-121]
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-32]
	add	r2, r2, r3
	ldr	r3, [fp, #-80]
	ldr	r1, [fp, #-32]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r2, [fp, #-121]
	strb	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-104]
	sub	r3, r3, #1
	str	r3, [fp, #-104]
.L1215:
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bgt	.L1216
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L1214:
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bgt	.L1217
.L1213:
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	beq	.L1218
	ldr	r0, [fp, #-108]
	bl	free
.L1218:
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-32]
.L1219:
	ldr	r2, .L1221
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1220
	bl	__stack_chk_fail
.L1220:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1222:
	.align	2
.L1221:
	.word	.LC116
	.word	.LC18
	.word	.LC115
	.size	tga_load, .-tga_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_tga_load, %function
stbi_tga_load:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	tga_load
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_tga_load, .-stbi_tga_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	psd_test, %function
psd_test:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	get32
	mov	r3, r0
	ldr	r2, .L1228
	cmp	r3, r2
	beq	.L1226
	mov	r3, #0
	b	.L1227
.L1226:
	mov	r3, #1
.L1227:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1229:
	.align	2
.L1228:
	.word	943870035
	.size	psd_test, .-psd_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_psd_test, %function
stbi_psd_test:
	@ 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	r0, [fp, #-16]
	bl	psd_test
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_psd_test, .-stbi_psd_test
	.section	.rodata
	.align	2
.LC117:
	.ascii	"not PSD\000"
	.align	2
.LC118:
	.ascii	"wrong version\000"
	.align	2
.LC119:
	.ascii	"wrong channel count\000"
	.align	2
.LC120:
	.ascii	"unsupported bit depth\000"
	.align	2
.LC121:
	.ascii	"wrong color format\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	psd_load, %function
psd_load:
	@ args = 4, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r0, [fp, #-64]
	bl	get32
	mov	r3, r0
	ldr	r2, .L1271
	cmp	r3, r2
	beq	.L1233
	ldr	r0, .L1271+4
	bl	e
	mov	r3, #0
	b	.L1234
.L1233:
	ldr	r0, [fp, #-64]
	bl	get16
	mov	r3, r0
	cmp	r3, #1
	beq	.L1235
	ldr	r0, .L1271+8
	bl	e
	mov	r3, #0
	b	.L1234
.L1235:
	mov	r1, #6
	ldr	r0, [fp, #-64]
	bl	skip
	ldr	r0, [fp, #-64]
	bl	get16
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	blt	.L1236
	ldr	r3, [fp, #-24]
	cmp	r3, #16
	ble	.L1237
.L1236:
	ldr	r0, .L1271+12
	bl	e
	mov	r3, #0
	b	.L1234
.L1237:
	ldr	r0, [fp, #-64]
	bl	get32
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-64]
	bl	get32
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-64]
	bl	get16
	mov	r3, r0
	cmp	r3, #8
	beq	.L1238
	ldr	r0, .L1271+16
	bl	e
	mov	r3, #0
	b	.L1234
.L1238:
	ldr	r0, [fp, #-64]
	bl	get16
	mov	r3, r0
	cmp	r3, #3
	beq	.L1239
	ldr	r0, .L1271+20
	bl	e
	mov	r3, #0
	b	.L1234
.L1239:
	ldr	r0, [fp, #-64]
	bl	get32
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	skip
	ldr	r0, [fp, #-64]
	bl	get32
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	skip
	ldr	r0, [fp, #-64]
	bl	get32
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	skip
	ldr	r0, [fp, #-64]
	bl	get16
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	ble	.L1240
	ldr	r0, .L1271+24
	bl	e
	mov	r3, #0
	b	.L1234
.L1240:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L1241
	ldr	r0, .L1271+28
	bl	e
	mov	r3, #0
	b	.L1234
.L1241:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	mul	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1242
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	mul	r3, r2, r3
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	skip
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L1243
.L1257:
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L1244
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1245
.L1248:
	ldr	r3, [fp, #-52]
	cmp	r3, #3
	bne	.L1246
	mov	r2, #255
	b	.L1247
.L1246:
	mov	r2, #0
.L1247:
	ldr	r3, [fp, #-32]
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1245:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L1248
	b	.L1249
.L1244:
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L1250
.L1256:
	ldr	r0, [fp, #-64]
	bl	get8
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #128
	beq	.L1250
	ldr	r3, [fp, #-40]
	cmp	r3, #127
	bgt	.L1251
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	b	.L1252
.L1253:
	ldr	r0, [fp, #-64]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-32]
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-40]
.L1252:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L1253
	b	.L1250
.L1251:
	ldr	r3, [fp, #-40]
	cmp	r3, #128
	ble	.L1250
	ldr	r3, [fp, #-40]
	eor	r3, r3, #255
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r3, r3, #2
	str	r3, [fp, #-40]
	ldr	r0, [fp, #-64]
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-53]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	b	.L1254
.L1255:
	ldr	r3, [fp, #-32]
	ldrb	r2, [fp, #-53]
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-40]
.L1254:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L1255
.L1250:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L1256
.L1249:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L1243:
	ldr	r3, [fp, #-52]
	cmp	r3, #3
	ble	.L1257
	b	.L1258
.L1242:
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L1259
.L1268:
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	ble	.L1260
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1261
.L1264:
	ldr	r3, [fp, #-52]
	cmp	r3, #3
	bne	.L1262
	mov	r2, #255
	b	.L1263
.L1262:
	mov	r2, #0
.L1263:
	ldr	r3, [fp, #-28]
	strb	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1261:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L1264
	b	.L1265
.L1260:
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1266
.L1267:
	ldr	r0, [fp, #-64]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	strb	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1266:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L1267
.L1265:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L1259:
	ldr	r3, [fp, #-52]
	cmp	r3, #3
	ble	.L1268
.L1258:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L1269
	ldr	r3, [fp, #4]
	cmp	r3, #4
	beq	.L1269
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #4]
	mov	r1, #4
	ldr	r0, [fp, #-36]
	bl	convert_format
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L1269
	ldr	r3, [fp, #-36]
	b	.L1234
.L1269:
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L1270
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-24]
	str	r2, [r3]
.L1270:
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
.L1234:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1272:
	.align	2
.L1271:
	.word	943870035
	.word	.LC117
	.word	.LC118
	.word	.LC119
	.word	.LC120
	.word	.LC121
	.word	.LC71
	.word	.LC18
	.size	psd_load, .-psd_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_psd_load, %function
stbi_psd_load:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	psd_load
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_psd_load, .-stbi_psd_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pic_is4, %function
pic_is4:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L1276
.L1279:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r1, r0
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	beq	.L1277
	mov	r3, #0
	b	.L1278
.L1277:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L1276:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	ble	.L1279
	mov	r3, #1
.L1278:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pic_is4, .-pic_is4
	.section	.rodata
	.align	2
.LC122:
	.ascii	"S\200\3664\000"
	.align	2
.LC123:
	.ascii	"PICT\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pic_test, %function
pic_test:
	@ 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	r1, .L1286
	ldr	r0, [fp, #-16]
	bl	pic_is4
	mov	r3, r0
	cmp	r3, #0
	bne	.L1281
	mov	r3, #0
	b	.L1282
.L1281:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L1283
.L1284:
	ldr	r0, [fp, #-16]
	bl	get8
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L1283:
	ldr	r3, [fp, #-8]
	cmp	r3, #83
	ble	.L1284
	ldr	r1, .L1286+4
	ldr	r0, [fp, #-16]
	bl	pic_is4
	mov	r3, r0
	cmp	r3, #0
	bne	.L1285
	mov	r3, #0
	b	.L1282
.L1285:
	mov	r3, #1
.L1282:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1287:
	.align	2
.L1286:
	.word	.LC122
	.word	.LC123
	.size	pic_test, .-pic_test
	.section	.rodata
	.align	2
.LC124:
	.ascii	"bad file\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pic_readval, %function
pic_readval:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #128
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1289
.L1293:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-20]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L1290
	ldr	r0, [fp, #-24]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L1291
	ldr	r0, .L1294
	bl	e
	mov	r3, #0
	b	.L1292
.L1291:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	add	r4, r2, r3
	ldr	r0, [fp, #-24]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4]
.L1290:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	asr	r3, r3, #1
	str	r3, [fp, #-20]
.L1289:
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	ble	.L1293
	ldr	r3, [fp, #-32]
.L1292:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1295:
	.align	2
.L1294:
	.word	.LC124
	.size	pic_readval, .-pic_readval
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pic_copyval, %function
pic_copyval:
	@ 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, #128
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L1297
.L1299:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L1298
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r1, [fp, #-20]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L1298:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	asr	r3, r3, #1
	str	r3, [fp, #-12]
.L1297:
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	ble	.L1299
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	pic_copyval, .-pic_copyval
	.section	.rodata
	.align	2
.LC125:
	.ascii	"bad format\000"
	.align	2
.LC126:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pic_load2, %function
pic_load2:
	@ args = 4, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #128
	str	r0, [fp, #-112]
	str	r1, [fp, #-116]
	str	r2, [fp, #-120]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-128]
	ldr	r3, .L1346
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-100]
.L1305:
	ldr	r3, [fp, #-100]
	cmp	r3, #10
	bne	.L1301
	ldr	r0, .L1346+4
	bl	e
	mov	r3, #0
	b	.L1344
.L1301:
	ldr	r2, [fp, #-100]
	add	r3, r2, #1
	str	r3, [fp, #-100]
	sub	r1, fp, #44
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-56]
	ldr	r0, [fp, #-112]
	bl	get8
	str	r0, [fp, #-52]
	ldr	r0, [fp, #-112]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	strb	r2, [r3]
	ldr	r0, [fp, #-112]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	strb	r2, [r3, #1]
	ldr	r0, [fp, #-112]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-56]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-104]
	orr	r3, r3, r2
	str	r3, [fp, #-104]
	ldr	r0, [fp, #-112]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L1303
	ldr	r0, .L1346+8
	bl	e
	mov	r3, #0
	b	.L1344
.L1303:
	ldr	r3, [fp, #-56]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #8
	beq	.L1304
	ldr	r0, .L1346+4
	bl	e
	mov	r3, #0
	b	.L1344
.L1304:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L1305
	ldr	r3, [fp, #-104]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L1306
	mov	r2, #4
	b	.L1307
.L1306:
	mov	r2, #3
.L1307:
	ldr	r3, [fp, #-124]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-96]
	b	.L1308
.L1343:
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L1309
.L1342:
	sub	r1, fp, #44
	ldr	r2, [fp, #-92]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-96]
	ldr	r2, [fp, #-116]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #2
	beq	.L1310
	cmp	r3, #2
	bgt	.L1311
	cmp	r3, #0
	beq	.L1312
	cmp	r3, #1
	beq	.L1313
.L1311:
	ldr	r0, .L1346+4
	bl	e
	mov	r3, #0
	b	.L1344
.L1312:
	mov	r3, #0
	str	r3, [fp, #-84]
	b	.L1314
.L1316:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	ldr	r2, [fp, #-88]
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	pic_readval
	mov	r3, r0
	cmp	r3, #0
	bne	.L1315
	mov	r3, #0
	b	.L1344
.L1315:
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	str	r3, [fp, #-88]
.L1314:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-116]
	cmp	r2, r3
	blt	.L1316
	b	.L1317
.L1313:
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-80]
	b	.L1318
.L1325:
	ldr	r0, [fp, #-112]
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-105]
	ldr	r0, [fp, #-112]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L1319
	ldr	r0, .L1346+8
	bl	e
	mov	r3, #0
	b	.L1344
.L1319:
	ldrb	r3, [fp, #-105]	@ zero_extendqisi2
	ldr	r2, [fp, #-80]
	cmp	r2, r3
	bge	.L1321
	ldr	r3, [fp, #-80]
	strb	r3, [fp, #-105]
.L1321:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r1, r3
	sub	r3, fp, #12
	mov	r2, r3
	ldr	r0, [fp, #-112]
	bl	pic_readval
	mov	r3, r0
	cmp	r3, #0
	bne	.L1322
	mov	r3, #0
	b	.L1344
.L1322:
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L1323
.L1324:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r0, r3
	sub	r3, fp, #12
	mov	r2, r3
	ldr	r1, [fp, #-88]
	bl	pic_copyval
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	str	r3, [fp, #-88]
.L1323:
	ldrb	r3, [fp, #-105]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	cmp	r2, r3
	blt	.L1324
	ldrb	r3, [fp, #-105]	@ zero_extendqisi2
	ldr	r2, [fp, #-80]
	sub	r3, r2, r3
	str	r3, [fp, #-80]
.L1318:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bgt	.L1325
	b	.L1317
.L1310:
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-72]
	b	.L1326
.L1341:
	ldr	r0, [fp, #-112]
	bl	get8
	str	r0, [fp, #-68]
	ldr	r0, [fp, #-112]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L1327
	ldr	r0, .L1346+8
	bl	e
	mov	r3, #0
	b	.L1344
.L1327:
	ldr	r3, [fp, #-68]
	cmp	r3, #127
	ble	.L1328
	ldr	r3, [fp, #-68]
	cmp	r3, #128
	bne	.L1329
	ldr	r0, [fp, #-112]
	bl	get16
	str	r0, [fp, #-68]
	b	.L1330
.L1329:
	ldr	r3, [fp, #-68]
	sub	r3, r3, #127
	str	r3, [fp, #-68]
.L1330:
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	ble	.L1331
	ldr	r0, .L1346+8
	bl	e
	mov	r3, #0
	b	.L1344
.L1331:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r1, r3
	sub	r3, fp, #12
	mov	r2, r3
	ldr	r0, [fp, #-112]
	bl	pic_readval
	mov	r3, r0
	cmp	r3, #0
	bne	.L1333
	mov	r3, #0
	b	.L1344
.L1333:
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L1334
.L1335:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r0, r3
	sub	r3, fp, #12
	mov	r2, r3
	ldr	r1, [fp, #-88]
	bl	pic_copyval
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	str	r3, [fp, #-88]
.L1334:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	blt	.L1335
	b	.L1336
.L1328:
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	ble	.L1337
	ldr	r0, .L1346+8
	bl	e
	mov	r3, #0
	b	.L1344
.L1337:
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1338
.L1340:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	ldr	r2, [fp, #-88]
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	pic_readval
	mov	r3, r0
	cmp	r3, #0
	bne	.L1339
	mov	r3, #0
	b	.L1344
.L1339:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	str	r3, [fp, #-88]
.L1338:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	blt	.L1340
.L1336:
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-68]
	sub	r3, r2, r3
	str	r3, [fp, #-72]
.L1326:
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bgt	.L1341
	nop
.L1317:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
.L1309:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	blt	.L1342
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	str	r3, [fp, #-96]
.L1308:
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-120]
	cmp	r2, r3
	blt	.L1343
	ldr	r3, [fp, #-128]
.L1344:
	ldr	r2, .L1346
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1345
	bl	__stack_chk_fail
.L1345:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1347:
	.align	2
.L1346:
	.word	.LC126
	.word	.LC125
	.word	.LC124
	.size	pic_load2, .-pic_load2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pic_load, %function
pic_load:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1349
.L1350:
	ldr	r0, [fp, #-24]
	bl	get8
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1349:
	ldr	r3, [fp, #-16]
	cmp	r3, #91
	ble	.L1350
	ldr	r0, [fp, #-24]
	bl	get16
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	get16
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L1351
	ldr	r0, .L1356
	bl	e
	mov	r3, #0
	b	.L1352
.L1351:
	ldr	r1, [fp, #-12]
	mov	r0, #268435456
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	ble	.L1353
	ldr	r0, .L1356+4
	bl	e
	mov	r3, #0
	b	.L1352
.L1353:
	ldr	r0, [fp, #-24]
	bl	get32
	ldr	r0, [fp, #-24]
	bl	get16
	ldr	r0, [fp, #-24]
	bl	get16
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #255
	ldr	r0, [fp, #-20]
	bl	memset
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	pic_load2
	mov	r3, r0
	cmp	r3, #0
	bne	.L1354
	ldr	r0, [fp, #-20]
	bl	free
	mov	r3, #0
	str	r3, [fp, #-20]
.L1354:
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L1355
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #4]
.L1355:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #4]
	mov	r1, #4
	ldr	r0, [fp, #-20]
	bl	convert_format
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
.L1352:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1357:
	.align	2
.L1356:
	.word	.LC124
	.word	.LC46
	.size	pic_load, .-pic_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_pic_test, %function
stbi_pic_test:
	@ 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	r0, [fp, #-16]
	bl	pic_test
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_pic_test, .-stbi_pic_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_pic_load, %function
stbi_pic_load:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	pic_load
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_pic_load, .-stbi_pic_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gif_test, %function
gif_test:
	@ 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	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #71
	bne	.L1363
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #73
	bne	.L1363
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #70
	bne	.L1363
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #56
	beq	.L1364
.L1363:
	mov	r3, #0
	b	.L1365
.L1364:
	ldr	r0, [fp, #-16]
	bl	get8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #57
	beq	.L1366
	ldr	r3, [fp, #-8]
	cmp	r3, #55
	beq	.L1366
	mov	r3, #0
	b	.L1365
.L1366:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #97
	beq	.L1367
	mov	r3, #0
	b	.L1365
.L1367:
	mov	r3, #1
.L1365:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gif_test, .-gif_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_gif_test, %function
stbi_gif_test:
	@ 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	r0, [fp, #-16]
	bl	gif_test
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_gif_test, .-stbi_gif_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_gif_parse_colortable, %function
stbi_gif_parse_colortable:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1371
.L1374:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r4, r2, r3
	ldr	r0, [fp, #-24]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4, #2]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r4, r2, r3
	ldr	r0, [fp, #-24]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4, #1]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r4, r2, r3
	ldr	r0, [fp, #-24]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1372
	mov	r1, #0
	b	.L1373
.L1372:
	mov	r1, #255
.L1373:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1371:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L1374
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	stbi_gif_parse_colortable, .-stbi_gif_parse_colortable
	.section	.rodata
	.align	2
.LC127:
	.ascii	"not GIF\000"
	.align	2
.LC128:
	.ascii	"\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_gif_header, %function
stbi_gif_header:
	@ 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]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #71
	bne	.L1376
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #73
	bne	.L1376
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #70
	bne	.L1376
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #56
	beq	.L1377
.L1376:
	ldr	r0, .L1384
	bl	e
	mov	r3, r0
	b	.L1378
.L1377:
	ldr	r0, [fp, #-16]
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #55
	beq	.L1379
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #57
	beq	.L1379
	ldr	r0, .L1384
	bl	e
	mov	r3, r0
	b	.L1378
.L1379:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #97
	beq	.L1380
	ldr	r0, .L1384
	bl	e
	mov	r3, r0
	b	.L1378
.L1380:
	ldr	r3, .L1384+4
	ldr	r2, .L1384+8
	str	r2, [r3]
	ldr	r0, [fp, #-16]
	bl	get16le
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r0, [fp, #-16]
	bl	get16le
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #12]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	mvn	r2, #0
	str	r2, [r3, #24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L1381
	ldr	r3, [fp, #-24]
	mov	r2, #4
	str	r2, [r3]
.L1381:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1382
	mov	r3, #1
	b	.L1378
.L1382:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L1383
	ldr	r3, [fp, #-20]
	add	r1, r3, #32
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	and	r3, r3, #7
	mov	r2, #2
	lsl	r2, r2, r3
	mvn	r3, #0
	ldr	r0, [fp, #-16]
	bl	stbi_gif_parse_colortable
.L1383:
	mov	r3, #1
.L1378:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1385:
	.align	2
.L1384:
	.word	.LC127
	.word	failure_reason
	.word	.LC128
	.size	stbi_gif_header, .-stbi_gif_header
	.section	.rodata
	.align	2
.LC129:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_gif_info_raw, %function
stbi_gif_info_raw:
	@ args = 0, pretend = 0, frame = 18528
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #18432
	sub	sp, sp, #96
	sub	ip, fp, #16384
	sub	ip, ip, #4
	str	r0, [ip, #-2132]
	sub	r0, fp, #16384
	sub	r0, r0, #4
	str	r1, [r0, #-2136]
	sub	r1, fp, #16384
	sub	r1, r1, #4
	str	r2, [r1, #-2140]
	sub	r2, fp, #16384
	sub	r2, r2, #4
	str	r3, [r2, #-2144]
	ldr	r3, .L1393
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #16384
	sub	r3, r3, #4
	mov	r2, r3
	sub	r1, fp, #18432
	sub	r1, r1, #4
	sub	r1, r1, #80
	sub	r3, fp, #16384
	sub	r3, r3, #4
	mov	r0, r3
	mov	r3, #1
	ldr	r2, [r2, #-2144]
	ldr	r0, [r0, #-2132]
	bl	stbi_gif_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L1387
	sub	r3, fp, #16384
	sub	r3, r3, #4
	ldr	r0, [r3, #-2132]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1391
.L1387:
	sub	r3, fp, #16384
	sub	r3, r3, #4
	ldr	r3, [r3, #-2136]
	cmp	r3, #0
	beq	.L1389
	sub	r3, fp, #16384
	sub	r3, r3, #4
	ldr	r2, [r3, #-2128]
	sub	r3, fp, #16384
	sub	r3, r3, #4
	ldr	r3, [r3, #-2136]
	str	r2, [r3]
.L1389:
	sub	r3, fp, #16384
	sub	r3, r3, #4
	ldr	r3, [r3, #-2140]
	cmp	r3, #0
	beq	.L1390
	sub	r3, fp, #16384
	sub	r3, r3, #4
	ldr	r2, [r3, #-2124]
	sub	r3, fp, #16384
	sub	r3, r3, #4
	ldr	r3, [r3, #-2140]
	str	r2, [r3]
.L1390:
	mov	r3, #1
.L1391:
	ldr	r2, .L1393
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1392
	bl	__stack_chk_fail
.L1392:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1394:
	.align	2
.L1393:
	.word	.LC129
	.size	stbi_gif_info_raw, .-stbi_gif_info_raw
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_out_gif_code, %function
stbi_out_gif_code:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, r1
	strh	r3, [fp, #-18]	@ movhi
	ldrh	r3, [fp, #-18]
	ldr	r2, [fp, #-16]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldrsh	r3, [r3]
	cmp	r3, #0
	blt	.L1396
	ldrh	r3, [fp, #-18]
	ldr	r2, [fp, #-16]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	stbi_out_gif_code
.L1396:
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r2, [r3, #2116]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2108]
	cmp	r2, r3
	bge	.L1402
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	ldr	r1, [r2, #2112]
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	ldr	r2, [r2, #2116]
	add	r2, r1, r2
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r2, [r3, #2080]
	ldrh	r3, [fp, #-18]
	ldr	r1, [fp, #-16]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	cmp	r3, #0
	bge	.L1399
	ldr	r3, [fp, #-8]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	ldr	r2, [fp, #-8]
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	ldr	r2, [fp, #-8]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	ldr	r2, [fp, #-8]
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	strb	r2, [r3]
.L1399:
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2112]
	add	r3, r3, #4
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	str	r3, [r2, #2112]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r2, [r3, #2112]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2104]
	cmp	r2, r3
	blt	.L1395
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2096]
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	str	r3, [r2, #2112]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r2, [r3, #2116]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2088]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	str	r3, [r2, #2116]
	b	.L1400
.L1401:
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r2, [r3, #2120]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2084]
	lsl	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	str	r3, [r2, #2088]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r2, [r3, #2100]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2088]
	asr	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	str	r3, [r2, #2116]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2084]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r2, r2, #16384
	str	r3, [r2, #2084]
.L1400:
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r2, [r3, #2116]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2108]
	cmp	r2, r3
	blt	.L1395
	ldr	r3, [fp, #-16]
	add	r3, r3, #16384
	ldr	r3, [r3, #2084]
	cmp	r3, #0
	bgt	.L1401
	b	.L1395
.L1402:
	nop
.L1395:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_out_gif_code, .-stbi_out_gif_code
	.section	.rodata
	.align	2
.LC130:
	.ascii	"no clear code\000"
	.align	2
.LC131:
	.ascii	"too many codes\000"
	.align	2
.LC132:
	.ascii	"illegal code in raster\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_process_gif_raster, %function
stbi_process_gif_raster:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-53]
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	mov	r2, #1
	lsl	r3, r2, r3
	str	r3, [fp, #-16]
	mov	r3, #1
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	add	r3, r3, #1
	str	r3, [fp, #-40]
	mov	r2, #1
	ldr	r3, [fp, #-40]
	lsl	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1404
.L1405:
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-48]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-48]
	and	r1, r3, #255
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-48]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-48]
	and	r1, r3, #255
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-48]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1404:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1405
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-32]
	mvn	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-52]
.L1422:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bge	.L1406
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L1407
	ldr	r0, [fp, #-64]
	bl	get8
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L1407
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	b	.L1408
.L1407:
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r0, [fp, #-64]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-20]
	lsl	r3, r2, r3
	ldr	r2, [fp, #-24]
	orr	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	str	r3, [fp, #-20]
	b	.L1422
.L1406:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-36]
	and	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-40]
	asr	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bne	.L1410
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	add	r3, r3, #1
	str	r3, [fp, #-40]
	mov	r2, #1
	ldr	r3, [fp, #-40]
	lsl	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-32]
	mvn	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L1422
.L1410:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L1411
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-64]
	bl	skip
	b	.L1412
.L1413:
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-64]
	bl	skip
.L1412:
	ldr	r0, [fp, #-64]
	bl	get8
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bgt	.L1413
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	b	.L1408
.L1411:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bgt	.L1414
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L1415
	ldr	r0, .L1423
	bl	e
	mov	r3, #0
	b	.L1408
.L1415:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L1416
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	add	r3, r3, #520
	lsl	r3, r3, #2
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-32]
	cmp	r3, #4096
	ble	.L1417
	ldr	r0, .L1423+4
	bl	e
	mov	r3, #0
	b	.L1408
.L1417:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-28]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #2]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bne	.L1418
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	b	.L1419
.L1418:
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-12]
	add	r3, r3, #520
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
.L1419:
	ldr	r2, [fp, #-8]
	strb	r3, [r2, #3]
	b	.L1420
.L1416:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bne	.L1420
	ldr	r0, .L1423+8
	bl	e
	mov	r3, #0
	b	.L1408
.L1420:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	stbi_out_gif_code
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L1421
	ldr	r3, [fp, #-32]
	cmp	r3, #4096
	bge	.L1421
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
	mov	r2, #1
	ldr	r3, [fp, #-40]
	lsl	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-36]
.L1421:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-28]
	b	.L1422
.L1414:
	ldr	r0, .L1423+8
	bl	e
	mov	r3, #0
.L1408:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1424:
	.align	2
.L1423:
	.word	.LC130
	.word	.LC131
	.word	.LC132
	.size	stbi_process_gif_raster, .-stbi_process_gif_raster
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_fill_gif_background, %function
stbi_fill_gif_background:
	@ 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, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	add	r3, r3, #8
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1426
.L1427:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	ldr	r2, [fp, #-12]
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	ldr	r2, [fp, #-12]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	ldr	r2, [fp, #-12]
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-16]
.L1426:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L1427
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	stbi_fill_gif_background, .-stbi_fill_gif_background
	.section	.rodata
	.align	2
.LC133:
	.ascii	"bad Image Descriptor\000"
	.align	2
.LC134:
	.ascii	"missing color table\000"
	.align	2
.LC135:
	.ascii	"unknown code\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_gif_load_next, %function
stbi_gif_load_next:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L1429
	mov	r3, #0
	ldr	r2, [fp, #-48]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	stbi_gif_header
	mov	r3, r0
	cmp	r3, #0
	bne	.L1430
	mov	r3, #0
	b	.L1431
.L1430:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-44]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L1432
	ldr	r0, .L1458
	bl	e
	mov	r3, #0
	b	.L1431
.L1432:
	ldr	r0, [fp, #-44]
	bl	stbi_fill_gif_background
	b	.L1457
.L1429:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #28]
	asr	r3, r3, #2
	and	r3, r3, #7
	cmp	r3, #3
	bne	.L1457
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-44]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L1434
	ldr	r0, .L1458
	bl	e
	mov	r3, #0
	b	.L1431
.L1434:
	ldr	r3, [fp, #-44]
	ldr	r0, [r3, #8]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r1, [fp, #-28]
	bl	memcpy
.L1457:
	ldr	r0, [fp, #-40]
	bl	get8
	mov	r3, r0
	cmp	r3, #59
	beq	.L1435
	cmp	r3, #59
	bgt	.L1436
	cmp	r3, #33
	beq	.L1437
	cmp	r3, #44
	bne	.L1436
	ldr	r0, [fp, #-40]
	bl	get16le
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	get16le
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	get16le
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-40]
	bl	get16le
	str	r0, [fp, #-12]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L1438
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	ble	.L1439
.L1438:
	ldr	r0, .L1458+4
	bl	e
	mov	r3, #0
	b	.L1431
.L1439:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2120]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2096]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2120]
	ldr	r2, [fp, #-20]
	mul	r3, r2, r3
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2100]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r2, [r3, #2096]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2104]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r2, [r3, #2100]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2120]
	ldr	r1, [fp, #-12]
	mul	r3, r1, r3
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2108]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2096]
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2112]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2100]
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2116]
	ldr	r0, [fp, #-40]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	str	r2, [r3, #2092]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2092]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L1440
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2120]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2088]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	mov	r2, r3
	mov	r3, #3
	str	r3, [r2, #2084]
	b	.L1441
.L1440:
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2120]
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2088]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #2084]
.L1441:
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2092]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L1442
	ldr	r3, [fp, #-44]
	add	r1, r3, #1056
	ldr	r3, [fp, #-44]
	add	r3, r3, #16384
	ldr	r3, [r3, #2092]
	and	r3, r3, #7
	mov	r2, #2
	lsl	r2, r2, r3
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #28]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L1443
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #24]
	b	.L1444
.L1443:
	mvn	r3, #0
.L1444:
	ldr	r0, [fp, #-40]
	bl	stbi_gif_parse_colortable
	ldr	r3, [fp, #-44]
	add	r3, r3, #1056
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2080]
	b	.L1445
.L1442:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L1446
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L1447
.L1448:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3, #35]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L1447:
	ldr	r3, [fp, #-36]
	cmp	r3, #255
	ble	.L1448
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	blt	.L1449
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #28]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L1449
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3, #35]
.L1449:
	ldr	r3, [fp, #-44]
	add	r3, r3, #32
	ldr	r2, [fp, #-44]
	add	r2, r2, #16384
	str	r3, [r2, #2080]
	b	.L1445
.L1446:
	ldr	r0, .L1458+8
	bl	e
	mov	r3, #0
	b	.L1431
.L1445:
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	stbi_process_gif_raster
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L1450
	mov	r3, #0
	b	.L1431
.L1450:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	beq	.L1451
	ldr	r3, [fp, #-52]
	cmp	r3, #4
	beq	.L1451
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #4]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-52]
	mov	r1, #4
	ldr	r0, [fp, #-32]
	bl	convert_format
	str	r0, [fp, #-32]
.L1451:
	ldr	r3, [fp, #-32]
	b	.L1431
.L1437:
	ldr	r0, [fp, #-40]
	bl	get8
	mov	r3, r0
	cmp	r3, #249
	bne	.L1455
	ldr	r0, [fp, #-40]
	bl	get8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #4
	bne	.L1453
	ldr	r0, [fp, #-40]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-44]
	str	r2, [r3, #28]
	ldr	r0, [fp, #-40]
	bl	get16le
	ldr	r0, [fp, #-40]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-44]
	str	r2, [r3, #24]
	b	.L1455
.L1453:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-40]
	bl	skip
	b	.L1454
.L1456:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-40]
	bl	skip
.L1455:
	ldr	r0, [fp, #-40]
	bl	get8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L1456
	b	.L1454
.L1435:
	mov	r3, #1
	b	.L1431
.L1436:
	ldr	r0, .L1458+12
	bl	e
	mov	r3, #0
	b	.L1431
.L1454:
	b	.L1457
.L1431:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1459:
	.align	2
.L1458:
	.word	.LC18
	.word	.LC133
	.word	.LC134
	.word	.LC135
	.size	stbi_gif_load_next, .-stbi_gif_load_next
	.section	.rodata
	.align	2
.LC136:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_gif_load, %function
stbi_gif_load:
	@ args = 4, pretend = 0, frame = 18536
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #18432
	sub	sp, sp, #108
	sub	ip, fp, #16384
	sub	ip, ip, #12
	str	r0, [ip, #-2140]
	sub	r0, fp, #16384
	sub	r0, r0, #12
	str	r1, [r0, #-2144]
	sub	r1, fp, #16384
	sub	r1, r1, #12
	str	r2, [r1, #-2148]
	sub	r2, fp, #16384
	sub	r2, r2, #12
	str	r3, [r2, #-2152]
	ldr	r3, .L1465
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #16384
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-2132]
	sub	r3, fp, #16384
	sub	r3, r3, #12
	sub	r3, r3, #2128
	ldr	r2, .L1465+4
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #16384
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #16384
	sub	r3, r3, #12
	mov	r2, r3
	sub	r1, fp, #18432
	sub	r1, r1, #12
	sub	r1, r1, #80
	sub	r3, fp, #16384
	sub	r3, r3, #12
	mov	r0, r3
	ldr	r3, [fp, #4]
	ldr	r2, [r2, #-2152]
	ldr	r0, [r0, #-2140]
	bl	stbi_gif_load_next
	str	r0, [r4, #-2132]
	sub	r3, fp, #16384
	sub	r3, r3, #12
	ldr	r3, [r3, #-2132]
	cmp	r3, #1
	bne	.L1461
	sub	r3, fp, #16384
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-2132]
.L1461:
	sub	r3, fp, #16384
	sub	r3, r3, #12
	ldr	r3, [r3, #-2132]
	cmp	r3, #0
	beq	.L1462
	sub	r3, fp, #16384
	sub	r3, r3, #12
	ldr	r2, [r3, #-2128]
	sub	r3, fp, #16384
	sub	r3, r3, #12
	ldr	r3, [r3, #-2144]
	str	r2, [r3]
	sub	r3, fp, #16384
	sub	r3, r3, #12
	ldr	r2, [r3, #-2124]
	sub	r3, fp, #16384
	sub	r3, r3, #12
	ldr	r3, [r3, #-2148]
	str	r2, [r3]
.L1462:
	sub	r3, fp, #16384
	sub	r3, r3, #12
	ldr	r3, [r3, #-2132]
	ldr	r2, .L1465
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1464
	bl	__stack_chk_fail
.L1464:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1466:
	.align	2
.L1465:
	.word	.LC136
	.word	18508
	.size	stbi_gif_load, .-stbi_gif_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_gif_info, %function
stbi_gif_info:
	@ 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]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_gif_info_raw
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_gif_info, .-stbi_gif_info
	.section	.rodata
	.align	2
.LC137:
	.ascii	"#?RADIANCE\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hdr_test, %function
hdr_test:
	@ 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, .L1474
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1470
.L1473:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r1, r0
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	beq	.L1471
	mov	r3, #0
	b	.L1472
.L1471:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1470:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L1473
	mov	r3, #1
.L1472:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1475:
	.align	2
.L1474:
	.word	.LC137
	.size	hdr_test, .-hdr_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_hdr_test, %function
stbi_hdr_test:
	@ 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	r0, [fp, #-16]
	bl	hdr_test
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_hdr_test, .-stbi_hdr_test
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hdr_gettoken, %function
hdr_gettoken:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	strb	r3, [fp, #-9]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	strb	r3, [fp, #-9]
	b	.L1479
.L1484:
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	ldrb	r2, [fp, #-9]
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, .L1487
	cmp	r3, r2
	bne	.L1480
	nop
.L1482:
	ldr	r0, [fp, #-16]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	bne	.L1486
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #10
	bne	.L1482
	b	.L1486
.L1480:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	strb	r3, [fp, #-9]
.L1479:
	ldr	r0, [fp, #-16]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	bne	.L1483
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L1484
	b	.L1483
.L1486:
	nop
.L1483:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1488:
	.align	2
.L1487:
	.word	1023
	.size	hdr_gettoken, .-hdr_gettoken
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hdr_convert, %function
hdr_convert:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1490
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #136
	mov	r2, r3
	mov	r0, #0
	ldr	r1, .L1501
	bl	ldexp
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	bgt	.L1491
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	ldr	r1, .L1501+4
	mov	r0, r3
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]	@ float
	b	.L1492
.L1491:
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-24]
	add	r4, r3, #4
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-24]
	add	r4, r3, #8
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
.L1492:
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	bne	.L1493
	ldr	r3, [fp, #-24]
	add	r3, r3, #4
	mov	r2, #1065353216
	str	r2, [r3]	@ float
.L1493:
	ldr	r3, [fp, #-32]
	cmp	r3, #4
	bne	.L1500
	ldr	r3, [fp, #-24]
	add	r3, r3, #12
	mov	r2, #1065353216
	str	r2, [r3]	@ float
	b	.L1500
.L1490:
	ldr	r3, [fp, #-32]
	sub	r3, r3, #1
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L1500
.L1496:
	.word	.L1499
	.word	.L1498
	.word	.L1497
	.word	.L1495
.L1495:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12
	mov	r2, #1065353216
	str	r2, [r3]	@ float
.L1497:
	ldr	r3, [fp, #-24]
	add	r2, r3, #8
	mov	r3, #0
	str	r3, [r2]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #4
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	str	r2, [r3]	@ float
	b	.L1494
.L1498:
	ldr	r3, [fp, #-24]
	add	r3, r3, #4
	mov	r2, #1065353216
	str	r2, [r3]	@ float
.L1499:
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3]	@ float
	nop
.L1494:
.L1500:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1502:
	.align	2
.L1501:
	.word	1072693248
	.word	1077936128
	.size	hdr_convert, .-hdr_convert
	.section	.rodata
	.align	2
.LC138:
	.ascii	"#?RADIANCE\000"
	.align	2
.LC139:
	.ascii	"not HDR\000"
	.align	2
.LC140:
	.ascii	"FORMAT=32-bit_rle_rgbe\000"
	.align	2
.LC141:
	.ascii	"unsupported format\000"
	.align	2
.LC142:
	.ascii	"-Y \000"
	.align	2
.LC143:
	.ascii	"unsupported data layout\000"
	.align	2
.LC144:
	.ascii	"+X \000"
	.align	2
.LC145:
	.ascii	"invalid decoded scanline length\000"
	.align	2
.LC146:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hdr_load, %function
hdr_load:
	@ args = 4, pretend = 0, frame = 1104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1104
	sub	sp, sp, #4
	str	r0, [fp, #-1104]
	str	r1, [fp, #-1108]
	str	r2, [fp, #-1112]
	str	r3, [fp, #-1116]
	ldr	r3, .L1544
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-1092]
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	hdr_gettoken
	mov	r3, r0
	ldr	r1, .L1544+4
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L1504
	ldr	r0, .L1544+8
	bl	e
	mov	r3, #0
	b	.L1539
.L1504:
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	hdr_gettoken
	mov	r3, r0
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1096]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1542
	ldr	r3, [fp, #-1096]
	ldr	r1, .L1544+12
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1504
	mov	r3, #1
	str	r3, [fp, #-1092]
	b	.L1504
.L1542:
	nop
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	bne	.L1509
	ldr	r0, .L1544+16
	bl	e
	mov	r3, #0
	b	.L1539
.L1509:
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	hdr_gettoken
	mov	r3, r0
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1096]
	mov	r2, #3
	ldr	r1, .L1544+20
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L1510
	ldr	r0, .L1544+24
	bl	e
	mov	r3, #0
	b	.L1539
.L1510:
	ldr	r3, [fp, #-1096]
	add	r3, r3, #3
	str	r3, [fp, #-1096]
	ldr	r0, [fp, #-1096]
	sub	r3, fp, #1072
	sub	r3, r3, #12
	sub	r3, r3, #12
	mov	r2, #10
	mov	r1, r3
	bl	strtol
	str	r0, [fp, #-1068]
	b	.L1511
.L1512:
	ldr	r3, [fp, #-1096]
	add	r3, r3, #1
	str	r3, [fp, #-1096]
.L1511:
	ldr	r3, [fp, #-1096]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L1512
	ldr	r3, [fp, #-1096]
	mov	r2, #3
	ldr	r1, .L1544+28
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L1513
	ldr	r0, .L1544+24
	bl	e
	mov	r3, #0
	b	.L1539
.L1513:
	ldr	r3, [fp, #-1096]
	add	r3, r3, #3
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1096]
	mov	r2, #10
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	str	r0, [fp, #-1064]
	ldr	r3, [fp, #-1108]
	ldr	r2, [fp, #-1064]
	str	r2, [r3]
	ldr	r3, [fp, #-1112]
	ldr	r2, [fp, #-1068]
	str	r2, [r3]
	ldr	r3, [fp, #-1116]
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L1514
	mov	r3, #3
	str	r3, [fp, #4]
.L1514:
	ldr	r3, [fp, #-1068]
	ldr	r2, [fp, #-1064]
	mul	r3, r2, r3
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-1060]
	ldr	r3, [fp, #-1064]
	cmp	r3, #7
	ble	.L1515
	ldr	r3, [fp, #-1064]
	cmp	r3, #32768
	blt	.L1516
.L1515:
	mov	r3, #0
	str	r3, [fp, #-1080]
	b	.L1517
.L1520:
	mov	r3, #0
	str	r3, [fp, #-1084]
	b	.L1518
.L1543:
	nop
.L1519:
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #4
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	getn
	ldr	r3, [fp, #-1080]
	ldr	r2, [fp, #-1064]
	mul	r3, r2, r3
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r1, r3
	ldr	r3, [fp, #-1084]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	add	r3, r1, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1060]
	add	r0, r2, r3
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldr	r2, [fp, #4]
	mov	r1, r3
	bl	hdr_convert
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
.L1518:
	ldr	r2, [fp, #-1084]
	ldr	r3, [fp, #-1064]
	cmp	r2, r3
	blt	.L1543
	ldr	r3, [fp, #-1080]
	add	r3, r3, #1
	str	r3, [fp, #-1080]
.L1517:
	ldr	r2, [fp, #-1080]
	ldr	r3, [fp, #-1068]
	cmp	r2, r3
	blt	.L1520
	b	.L1521
.L1516:
	mov	r3, #0
	str	r3, [fp, #-1088]
	mov	r3, #0
	str	r3, [fp, #-1080]
	b	.L1522
.L1538:
	ldr	r0, [fp, #-1104]
	bl	get8
	str	r0, [fp, #-1056]
	ldr	r0, [fp, #-1104]
	bl	get8
	str	r0, [fp, #-1052]
	ldr	r0, [fp, #-1104]
	bl	get8
	str	r0, [fp, #-1048]
	ldr	r3, [fp, #-1056]
	cmp	r3, #2
	bne	.L1523
	ldr	r3, [fp, #-1052]
	cmp	r3, #2
	bne	.L1523
	ldr	r3, [fp, #-1048]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L1524
.L1523:
	ldr	r3, [fp, #-1056]
	and	r3, r3, #255
	strb	r3, [fp, #-1044]
	ldr	r3, [fp, #-1052]
	and	r3, r3, #255
	strb	r3, [fp, #-1043]
	ldr	r3, [fp, #-1048]
	and	r3, r3, #255
	strb	r3, [fp, #-1042]
	ldr	r0, [fp, #-1104]
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-1041]
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldr	r2, [fp, #4]
	mov	r1, r3
	ldr	r0, [fp, #-1060]
	bl	hdr_convert
	mov	r3, #1
	str	r3, [fp, #-1084]
	mov	r3, #0
	str	r3, [fp, #-1080]
	ldr	r0, [fp, #-1088]
	bl	free
	b	.L1519
.L1524:
	ldr	r3, [fp, #-1048]
	lsl	r3, r3, #8
	str	r3, [fp, #-1048]
	ldr	r0, [fp, #-1104]
	bl	get8
	mov	r2, r0
	ldr	r3, [fp, #-1048]
	orr	r3, r3, r2
	str	r3, [fp, #-1048]
	ldr	r2, [fp, #-1048]
	ldr	r3, [fp, #-1064]
	cmp	r2, r3
	beq	.L1525
	ldr	r0, [fp, #-1060]
	bl	free
	ldr	r0, [fp, #-1088]
	bl	free
	ldr	r0, .L1544+32
	bl	e
	mov	r3, #0
	b	.L1539
.L1525:
	ldr	r3, [fp, #-1088]
	cmp	r3, #0
	bne	.L1526
	ldr	r3, [fp, #-1064]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-1088]
.L1526:
	mov	r3, #0
	str	r3, [fp, #-1076]
	b	.L1527
.L1535:
	mov	r3, #0
	str	r3, [fp, #-1084]
	b	.L1528
.L1534:
	ldr	r0, [fp, #-1104]
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-1098]
	ldrb	r3, [fp, #-1098]	@ zero_extendqisi2
	cmp	r3, #128
	bls	.L1529
	ldr	r0, [fp, #-1104]
	bl	get8u
	mov	r3, r0
	strb	r3, [fp, #-1097]
	ldrb	r3, [fp, #-1098]
	sub	r3, r3, #128
	strb	r3, [fp, #-1098]
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L1530
.L1531:
	ldr	r3, [fp, #-1084]
	add	r2, r3, #1
	str	r2, [fp, #-1084]
	lsl	r2, r3, #2
	ldr	r3, [fp, #-1076]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1088]
	add	r3, r3, r2
	ldrb	r2, [fp, #-1097]
	strb	r2, [r3]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L1530:
	ldrb	r3, [fp, #-1098]	@ zero_extendqisi2
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L1531
	b	.L1528
.L1529:
	mov	r3, #0
	str	r3, [fp, #-1072]
	b	.L1532
.L1533:
	ldr	r3, [fp, #-1084]
	add	r2, r3, #1
	str	r2, [fp, #-1084]
	lsl	r2, r3, #2
	ldr	r3, [fp, #-1076]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1088]
	add	r4, r3, r2
	ldr	r0, [fp, #-1104]
	bl	get8u
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #1
	str	r3, [fp, #-1072]
.L1532:
	ldrb	r3, [fp, #-1098]	@ zero_extendqisi2
	ldr	r2, [fp, #-1072]
	cmp	r2, r3
	blt	.L1533
.L1528:
	ldr	r2, [fp, #-1084]
	ldr	r3, [fp, #-1064]
	cmp	r2, r3
	blt	.L1534
	ldr	r3, [fp, #-1076]
	add	r3, r3, #1
	str	r3, [fp, #-1076]
.L1527:
	ldr	r3, [fp, #-1076]
	cmp	r3, #3
	ble	.L1535
	mov	r3, #0
	str	r3, [fp, #-1084]
	b	.L1536
.L1537:
	ldr	r3, [fp, #-1080]
	ldr	r2, [fp, #-1064]
	mul	r2, r3, r2
	ldr	r3, [fp, #-1084]
	add	r3, r2, r3
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1060]
	add	r0, r2, r3
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-1088]
	add	r3, r3, r2
	ldr	r2, [fp, #4]
	mov	r1, r3
	bl	hdr_convert
	ldr	r3, [fp, #-1084]
	add	r3, r3, #1
	str	r3, [fp, #-1084]
.L1536:
	ldr	r2, [fp, #-1084]
	ldr	r3, [fp, #-1064]
	cmp	r2, r3
	blt	.L1537
	ldr	r3, [fp, #-1080]
	add	r3, r3, #1
	str	r3, [fp, #-1080]
.L1522:
	ldr	r2, [fp, #-1080]
	ldr	r3, [fp, #-1068]
	cmp	r2, r3
	blt	.L1538
	ldr	r0, [fp, #-1088]
	bl	free
.L1521:
	ldr	r3, [fp, #-1060]
.L1539:
	ldr	r2, .L1544
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1540
	bl	__stack_chk_fail
.L1540:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1545:
	.align	2
.L1544:
	.word	.LC146
	.word	.LC138
	.word	.LC139
	.word	.LC140
	.word	.LC141
	.word	.LC142
	.word	.LC143
	.word	.LC144
	.word	.LC145
	.size	hdr_load, .-hdr_load
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_hdr_load, %function
stbi_hdr_load:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	hdr_load
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_hdr_load, .-stbi_hdr_load
	.section	.rodata
	.align	2
.LC147:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_hdr_info, %function
stbi_hdr_info:
	@ args = 0, pretend = 0, frame = 1056
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1056
	str	r0, [fp, #-1048]
	str	r1, [fp, #-1052]
	str	r2, [fp, #-1056]
	str	r3, [fp, #-1060]
	ldr	r3, .L1563
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-1036]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1048]
	bl	hdr_gettoken
	mov	r3, r0
	ldr	r1, .L1563+4
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L1549
	ldr	r0, [fp, #-1048]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1559
.L1549:
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1048]
	bl	hdr_gettoken
	mov	r3, r0
	str	r3, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1562
	ldr	r3, [fp, #-1040]
	ldr	r1, .L1563+8
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1549
	mov	r3, #1
	str	r3, [fp, #-1036]
	b	.L1549
.L1562:
	nop
	ldr	r3, [fp, #-1036]
	cmp	r3, #0
	bne	.L1554
	ldr	r0, [fp, #-1048]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1559
.L1554:
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1048]
	bl	hdr_gettoken
	mov	r3, r0
	str	r3, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	mov	r2, #3
	ldr	r1, .L1563+12
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L1555
	ldr	r0, [fp, #-1048]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1559
.L1555:
	ldr	r3, [fp, #-1040]
	add	r3, r3, #3
	str	r3, [fp, #-1040]
	ldr	r0, [fp, #-1040]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r2, #10
	mov	r1, r3
	bl	strtol
	mov	r2, r0
	ldr	r3, [fp, #-1056]
	str	r2, [r3]
	b	.L1556
.L1557:
	ldr	r3, [fp, #-1040]
	add	r3, r3, #1
	str	r3, [fp, #-1040]
.L1556:
	ldr	r3, [fp, #-1040]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L1557
	ldr	r3, [fp, #-1040]
	mov	r2, #3
	ldr	r1, .L1563+16
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L1558
	ldr	r0, [fp, #-1048]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1559
.L1558:
	ldr	r3, [fp, #-1040]
	add	r3, r3, #3
	str	r3, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	mov	r2, #10
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	mov	r2, r0
	ldr	r3, [fp, #-1052]
	str	r2, [r3]
	ldr	r3, [fp, #-1060]
	mov	r2, #3
	str	r2, [r3]
	mov	r3, #1
.L1559:
	ldr	r2, .L1563
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1560
	bl	__stack_chk_fail
.L1560:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1564:
	.align	2
.L1563:
	.word	.LC147
	.word	.LC138
	.word	.LC140
	.word	.LC142
	.word	.LC144
	.size	stbi_hdr_info, .-stbi_hdr_info
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_bmp_info, %function
stbi_bmp_info:
	@ 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]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #66
	bne	.L1566
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #77
	beq	.L1567
.L1566:
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1568
.L1567:
	mov	r1, #12
	ldr	r0, [fp, #-16]
	bl	skip
	ldr	r0, [fp, #-16]
	bl	get32le
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #12
	beq	.L1569
	ldr	r3, [fp, #-8]
	cmp	r3, #40
	beq	.L1569
	ldr	r3, [fp, #-8]
	cmp	r3, #56
	beq	.L1569
	ldr	r3, [fp, #-8]
	cmp	r3, #108
	beq	.L1569
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1568
.L1569:
	ldr	r3, [fp, #-8]
	cmp	r3, #12
	bne	.L1570
	ldr	r0, [fp, #-16]
	bl	get16le
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r0, [fp, #-16]
	bl	get16le
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	b	.L1571
.L1570:
	ldr	r0, [fp, #-16]
	bl	get32le
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r0, [fp, #-16]
	bl	get32le
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
.L1571:
	ldr	r0, [fp, #-16]
	bl	get16le
	mov	r3, r0
	cmp	r3, #1
	beq	.L1572
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1568
.L1572:
	ldr	r0, [fp, #-16]
	bl	get16le
	mov	r3, r0
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	mov	r3, #1
.L1568:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stbi_bmp_info, .-stbi_bmp_info
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_psd_info, %function
stbi_psd_info:
	@ 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]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	get32
	mov	r3, r0
	ldr	r2, .L1581
	cmp	r3, r2
	beq	.L1574
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1575
.L1574:
	ldr	r0, [fp, #-16]
	bl	get16
	mov	r3, r0
	cmp	r3, #1
	beq	.L1576
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1575
.L1576:
	mov	r1, #6
	ldr	r0, [fp, #-16]
	bl	skip
	ldr	r0, [fp, #-16]
	bl	get16
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L1577
	ldr	r3, [fp, #-8]
	cmp	r3, #16
	ble	.L1578
.L1577:
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1575
.L1578:
	ldr	r0, [fp, #-16]
	bl	get32
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r0, [fp, #-16]
	bl	get32
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r0, [fp, #-16]
	bl	get16
	mov	r3, r0
	cmp	r3, #8
	beq	.L1579
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1575
.L1579:
	ldr	r0, [fp, #-16]
	bl	get16
	mov	r3, r0
	cmp	r3, #3
	beq	.L1580
	ldr	r0, [fp, #-16]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1575
.L1580:
	ldr	r3, [fp, #-28]
	mov	r2, #4
	str	r2, [r3]
	mov	r3, #1
.L1575:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1582:
	.align	2
.L1581:
	.word	943870035
	.size	stbi_psd_info, .-stbi_psd_info
	.section	.rodata
	.align	2
.LC148:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_pic_info, %function
stbi_pic_info:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	str	r3, [fp, #-76]
	ldr	r3, .L1595
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r1, #92
	ldr	r0, [fp, #-64]
	bl	skip
	ldr	r0, [fp, #-64]
	bl	get16
	mov	r2, r0
	ldr	r3, [fp, #-68]
	str	r2, [r3]
	ldr	r0, [fp, #-64]
	bl	get16
	mov	r2, r0
	ldr	r3, [fp, #-72]
	str	r2, [r3]
	ldr	r0, [fp, #-64]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L1584
	mov	r3, #0
	b	.L1593
.L1584:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1586
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #268435456
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L1586
	ldr	r0, [fp, #-64]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1593
.L1586:
	mov	r1, #8
	ldr	r0, [fp, #-64]
	bl	skip
.L1590:
	ldr	r3, [fp, #-52]
	cmp	r3, #10
	bne	.L1587
	mov	r3, #0
	b	.L1593
.L1587:
	ldr	r2, [fp, #-52]
	add	r3, r2, #1
	str	r3, [fp, #-52]
	sub	r1, fp, #40
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-48]
	ldr	r0, [fp, #-64]
	bl	get8
	str	r0, [fp, #-44]
	ldr	r0, [fp, #-64]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-48]
	strb	r2, [r3]
	ldr	r0, [fp, #-64]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-48]
	strb	r2, [r3, #1]
	ldr	r0, [fp, #-64]
	bl	get8u
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-48]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-56]
	orr	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r0, [fp, #-64]
	bl	at_eof
	mov	r3, r0
	cmp	r3, #0
	beq	.L1588
	ldr	r0, [fp, #-64]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1593
.L1588:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #8
	beq	.L1589
	ldr	r0, [fp, #-64]
	bl	stbi_rewind
	mov	r3, #0
	b	.L1593
.L1589:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L1590
	ldr	r3, [fp, #-56]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L1591
	mov	r2, #4
	b	.L1592
.L1591:
	mov	r2, #3
.L1592:
	ldr	r3, [fp, #-76]
	str	r2, [r3]
	mov	r3, #1
.L1593:
	ldr	r2, .L1595
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1594
	bl	__stack_chk_fail
.L1594:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1596:
	.align	2
.L1595:
	.word	.LC148
	.size	stbi_pic_info, .-stbi_pic_info
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_info_main, %function
stbi_info_main:
	@ 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]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_jpeg_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1598
	mov	r3, #1
	b	.L1599
.L1598:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_png_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1600
	mov	r3, #1
	b	.L1599
.L1600:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_gif_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1601
	mov	r3, #1
	b	.L1599
.L1601:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_bmp_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1602
	mov	r3, #1
	b	.L1599
.L1602:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_psd_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1603
	mov	r3, #1
	b	.L1599
.L1603:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_pic_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1604
	mov	r3, #1
	b	.L1599
.L1604:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_hdr_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1605
	mov	r3, #1
	b	.L1599
.L1605:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	stbi_tga_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1606
	mov	r3, #1
	b	.L1599
.L1606:
	ldr	r0, .L1607
	bl	e
	mov	r3, r0
.L1599:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1608:
	.align	2
.L1607:
	.word	.LC4
	.size	stbi_info_main, .-stbi_info_main
	.align	2
	.global	stbi_info
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_info, %function
stbi_info:
	@ 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]
	str	r3, [fp, #-28]
	ldr	r1, .L1612
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L1610
	ldr	r0, .L1612+4
	bl	e
	mov	r3, r0
	b	.L1611
.L1610:
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-12]
	bl	stbi_info_from_file
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	fclose
	ldr	r3, [fp, #-8]
.L1611:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1613:
	.align	2
.L1612:
	.word	.LC5
	.word	.LC6
	.size	stbi_info, .-stbi_info
	.section	.rodata
	.align	2
.LC149:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_info_from_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_info_from_file, %function
stbi_info_from_file:
	@ args = 0, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #208
	str	r0, [fp, #-200]
	str	r1, [fp, #-204]
	str	r2, [fp, #-208]
	str	r3, [fp, #-212]
	ldr	r3, .L1617
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-200]
	bl	ftell
	str	r0, [fp, #-196]
	sub	r3, fp, #188
	ldr	r1, [fp, #-200]
	mov	r0, r3
	bl	start_file
	sub	r0, fp, #188
	ldr	r3, [fp, #-212]
	ldr	r2, [fp, #-208]
	ldr	r1, [fp, #-204]
	bl	stbi_info_main
	str	r0, [fp, #-192]
	mov	r2, #0
	ldr	r1, [fp, #-196]
	ldr	r0, [fp, #-200]
	bl	fseek
	ldr	r3, [fp, #-192]
	ldr	r2, .L1617
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1616
	bl	__stack_chk_fail
.L1616:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1618:
	.align	2
.L1617:
	.word	.LC149
	.size	stbi_info_from_file, .-stbi_info_from_file
	.section	.rodata
	.align	2
.LC150:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_info_from_memory
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_info_from_memory, %function
stbi_info_from_memory:
	@ args = 4, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #208
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-208]
	ldr	r3, .L1622
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_mem
	sub	r0, fp, #188
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-204]
	ldr	r1, [fp, #-200]
	bl	stbi_info_main
	mov	r3, r0
	ldr	r2, .L1622
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1621
	bl	__stack_chk_fail
.L1621:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1623:
	.align	2
.L1622:
	.word	.LC150
	.size	stbi_info_from_memory, .-stbi_info_from_memory
	.section	.rodata
	.align	2
.LC151:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stbi_info_from_callbacks
	.syntax unified
	.arm
	.fpu softvfp
	.type	stbi_info_from_callbacks, %function
stbi_info_from_callbacks:
	@ args = 4, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #208
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-208]
	ldr	r3, .L1627
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #188
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-192]
	mov	r0, r3
	bl	start_callbacks
	sub	r0, fp, #188
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-204]
	ldr	r1, [fp, #-200]
	bl	stbi_info_main
	mov	r3, r0
	ldr	r2, .L1627
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1626
	bl	__stack_chk_fail
.L1626:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1628:
	.align	2
.L1627:
	.word	.LC151
	.size	stbi_info_from_callbacks, .-stbi_info_from_callbacks
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.6827, %object
	.size	__PRETTY_FUNCTION__.6827, 15
__PRETTY_FUNCTION__.6827:
	.ascii	"convert_format\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7008, %object
	.size	__PRETTY_FUNCTION__.7008, 7
__PRETTY_FUNCTION__.7008:
	.ascii	"decode\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7409, %object
	.size	__PRETTY_FUNCTION__.7409, 12
__PRETTY_FUNCTION__.7409:
	.ascii	"bit_reverse\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7423, %object
	.size	__PRETTY_FUNCTION__.7423, 15
__PRETTY_FUNCTION__.7423:
	.ascii	"zbuild_huffman\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7457, %object
	.size	__PRETTY_FUNCTION__.7457, 10
__PRETTY_FUNCTION__.7457:
	.ascii	"fill_bits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7474, %object
	.size	__PRETTY_FUNCTION__.7474, 16
__PRETTY_FUNCTION__.7474:
	.ascii	"zhuffman_decode\000"
	.data
	.align	2
	.type	length_dezigzag.7503, %object
	.size	length_dezigzag.7503, 19
length_dezigzag.7503:
	.ascii	"\020\021\022\000\010\007\011\006\012\005\013\004\014"
	.ascii	"\003\015\002\016\001\017"
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.7517, %object
	.size	__PRETTY_FUNCTION__.7517, 22
__PRETTY_FUNCTION__.7517:
	.ascii	"compute_huffman_codes\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7531, %object
	.size	__PRETTY_FUNCTION__.7531, 25
__PRETTY_FUNCTION__.7531:
	.ascii	"parse_uncompressed_block\000"
	.data
	.align	2
	.type	png_sig.7632, %object
	.size	png_sig.7632, 8
png_sig.7632:
	.ascii	"\211PNG\015\012\032\012"
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.7675, %object
	.size	__PRETTY_FUNCTION__.7675, 21
__PRETTY_FUNCTION__.7675:
	.ascii	"create_png_image_raw\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7829, %object
	.size	__PRETTY_FUNCTION__.7829, 21
__PRETTY_FUNCTION__.7829:
	.ascii	"compute_transparency\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7874, %object
	.size	__PRETTY_FUNCTION__.7874, 15
__PRETTY_FUNCTION__.7874:
	.ascii	"stbi_de_iphone\000"
	.data
	.align	2
	.type	invalid_chunk.7929, %object
	.size	invalid_chunk.7929, 21
invalid_chunk.7929:
	.ascii	"XXXX chunk not known\000"
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.8014, %object
	.size	__PRETTY_FUNCTION__.8014, 9
__PRETTY_FUNCTION__.8014:
	.ascii	"bmp_load\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
