	.file	"149331.c"
	.intel_syntax noprefix
	.text
	.globl	hxa_inflate_read_bits
	.type	hxa_inflate_read_bits, @function
hxa_inflate_read_bits:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -16[rbp], eax
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	and	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR 16[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	shr	eax, 3
	mov	eax, eax
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 16[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	and	eax, 7
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	eax, DWORD PTR -12[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L3
	call	__stack_chk_fail@PLT
.L3:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	hxa_inflate_read_bits, .-hxa_inflate_read_bits
	.section	.rodata
	.align 8
.LC0:
	.string	"HxA Error: Deflate error. Block header of uncompressed block is out of bounds."
	.align 8
.LC1:
	.string	"HxA Error: Deflate error. Uncompressed block has non matching complement."
	.align 8
.LC2:
	.string	"HxA Error: Deflate error. Uncompressed block has length that is out of bounds."
	.text
	.globl	hxa_inflate_uncompressed
	.type	hxa_inflate_uncompressed, @function
hxa_inflate_uncompressed:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jbe	.L5
	lea	rdi, .LC0[rip]
	call	puts@PLT
	mov	eax, 0
	jmp	.L6
.L5:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	not	eax
	cmp	DWORD PTR -4[rbp], eax
	je	.L7
	lea	rdi, .LC1[rip]
	call	puts@PLT
	mov	eax, 0
	jmp	.L6
.L7:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jbe	.L8
	lea	rdi, .LC2[rip]
	call	puts@PLT
	mov	eax, 0
	jmp	.L6
.L8:
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR [rcx]
	mov	rcx, QWORD PTR -32[rbp]
	add	rcx, rsi
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 1
.L6:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	hxa_inflate_uncompressed, .-hxa_inflate_uncompressed
	.globl	hxa_inflate_length_bits
	.data
	.align 32
	.type	hxa_inflate_length_bits, @object
	.size	hxa_inflate_length_bits, 120
hxa_inflate_length_bits:
	.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	6
	.globl	hxa_inflate_length_base
	.align 32
	.type	hxa_inflate_length_base, @object
	.size	hxa_inflate_length_base, 120
hxa_inflate_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	323
	.globl	hxa_inflate_distance_bits
	.align 32
	.type	hxa_inflate_distance_bits, @object
	.size	hxa_inflate_distance_bits, 120
hxa_inflate_distance_bits:
	.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
	.globl	hxa_inflate_distance_base
	.align 32
	.type	hxa_inflate_distance_base, @object
	.size	hxa_inflate_distance_base, 120
hxa_inflate_distance_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
	.globl	hxa_inflate_code_length
	.section	.rodata
	.align 16
	.type	hxa_inflate_code_length, @object
	.size	hxa_inflate_code_length, 19
hxa_inflate_code_length:
	.string	"\020\021\022"
	.ascii	"\b\007\t\006\n\005\013\004\f\003\r\002\016\001\017"
	.text
	.type	hxa_tree_lookup, @function
hxa_tree_lookup:
.LFB8:
	.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	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -28[rbp], 0
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
.L12:
	mov	eax, DWORD PTR -24[rbp]
	add	eax, eax
	mov	ebx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	hxa_inflate_read_bits
	add	eax, ebx
	mov	DWORD PTR -24[rbp], eax
	add	DWORD PTR -20[rbp], 1
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	eax, ax
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	eax, ax
	sub	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	js	.L15
	jmp	.L12
.L15:
	nop
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	movsx	rdx, edx
	add	rdx, 16
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	eax, ax
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	hxa_tree_lookup, .-hxa_tree_lookup
	.type	hxa_inflate_build_default_tree, @function
hxa_inflate_build_default_tree:
.LFB9:
	.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	DWORD PTR -4[rbp], 0
	jmp	.L17
.L18:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	WORD PTR [rax+rdx*2], 0
	add	DWORD PTR -4[rbp], 1
.L17:
	cmp	DWORD PTR -4[rbp], 6
	jbe	.L18
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 14[rax], 24
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 16[rax], 152
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR 18[rax], 112
	mov	DWORD PTR -4[rbp], 0
	jmp	.L19
.L20:
	mov	eax, DWORD PTR -4[rbp]
	lea	ecx, 256[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	add	rdx, 16
	mov	WORD PTR [rax+rdx*2], cx
	add	DWORD PTR -4[rbp], 1
.L19:
	cmp	DWORD PTR -4[rbp], 23
	jbe	.L20
	mov	DWORD PTR -4[rbp], 0
	jmp	.L21
.L22:
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 24[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, edx
	add	rdx, 16
	mov	WORD PTR [rax+rdx*2], cx
	add	DWORD PTR -4[rbp], 1
.L21:
	cmp	DWORD PTR -4[rbp], 143
	jbe	.L22
	mov	DWORD PTR -4[rbp], 0
	jmp	.L23
.L24:
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 168[rax]
	add	cx, 280
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, edx
	add	rdx, 16
	mov	WORD PTR [rax+rdx*2], cx
	add	DWORD PTR -4[rbp], 1
.L23:
	cmp	DWORD PTR -4[rbp], 7
	jbe	.L24
	mov	DWORD PTR -4[rbp], 0
	jmp	.L25
.L26:
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 176[rax]
	add	cx, 144
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, edx
	add	rdx, 16
	mov	WORD PTR [rax+rdx*2], cx
	add	DWORD PTR -4[rbp], 1
.L25:
	cmp	DWORD PTR -4[rbp], 111
	jbe	.L26
	mov	DWORD PTR -4[rbp], 0
	jmp	.L27
.L28:
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	WORD PTR [rax+rdx*2], 0
	add	DWORD PTR -4[rbp], 1
.L27:
	cmp	DWORD PTR -4[rbp], 4
	jbe	.L28
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR 10[rax], 32
	mov	DWORD PTR -4[rbp], 0
	jmp	.L29
.L30:
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -4[rbp]
	add	rdx, 16
	mov	WORD PTR [rax+rdx*2], cx
	add	DWORD PTR -4[rbp], 1
.L29:
	cmp	DWORD PTR -4[rbp], 31
	jbe	.L30
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	hxa_inflate_build_default_tree, .-hxa_inflate_build_default_tree
	.type	hxa_inflate_build_tree, @function
hxa_inflate_build_tree:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	DWORD PTR -116[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -88[rbp], 0
	jmp	.L32
.L33:
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -88[rbp]
	mov	WORD PTR [rax+rdx*2], 0
	add	DWORD PTR -88[rbp], 1
.L32:
	cmp	DWORD PTR -88[rbp], 15
	jbe	.L33
	mov	DWORD PTR -88[rbp], 0
	jmp	.L34
.L35:
	mov	edx, DWORD PTR -88[rbp]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdx, QWORD PTR -104[rbp]
	movsx	rcx, eax
	movzx	edx, WORD PTR [rdx+rcx*2]
	lea	ecx, 1[rdx]
	mov	rdx, QWORD PTR -104[rbp]
	cdqe
	mov	WORD PTR [rdx+rax*2], cx
	add	DWORD PTR -88[rbp], 1
.L34:
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jb	.L35
	mov	rax, QWORD PTR -104[rbp]
	mov	WORD PTR [rax], 0
	mov	DWORD PTR -84[rbp], 0
	mov	DWORD PTR -88[rbp], 0
	jmp	.L36
.L37:
	mov	eax, DWORD PTR -88[rbp]
	mov	edx, DWORD PTR -84[rbp]
	mov	DWORD PTR -80[rbp+rax*4], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -88[rbp]
	movzx	eax, WORD PTR [rax+rdx*2]
	movzx	eax, ax
	add	DWORD PTR -84[rbp], eax
	add	DWORD PTR -88[rbp], 1
.L36:
	cmp	DWORD PTR -88[rbp], 15
	jbe	.L37
	mov	DWORD PTR -88[rbp], 0
	jmp	.L38
.L40:
	mov	edx, DWORD PTR -88[rbp]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L39
	mov	edx, DWORD PTR -88[rbp]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	movsx	rdx, eax
	mov	edx, DWORD PTR -80[rbp+rdx*4]
	lea	ecx, 1[rdx]
	cdqe
	mov	DWORD PTR -80[rbp+rax*4], ecx
	mov	eax, DWORD PTR -88[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, edx
	add	rdx, 16
	mov	WORD PTR [rax+rdx*2], cx
.L39:
	add	DWORD PTR -88[rbp], 1
.L38:
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jb	.L40
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L41
	call	__stack_chk_fail@PLT
.L41:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	hxa_inflate_build_tree, .-hxa_inflate_build_tree
	.type	hxa_inflate_decode_tree, @function
hxa_inflate_decode_tree:
.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, 1008
	mov	QWORD PTR -984[rbp], rdi
	mov	QWORD PTR -992[rbp], rsi
	mov	QWORD PTR -1000[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	hxa_inflate_read_bits
	add	eax, 257
	mov	DWORD PTR -968[rbp], eax
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	hxa_inflate_read_bits
	add	eax, 1
	mov	DWORD PTR -964[rbp], eax
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	hxa_inflate_read_bits
	add	eax, 4
	mov	DWORD PTR -960[rbp], eax
	mov	DWORD PTR -976[rbp], 0
	jmp	.L43
.L44:
	mov	eax, DWORD PTR -976[rbp]
	mov	BYTE PTR -336[rbp+rax], 0
	add	DWORD PTR -976[rbp], 1
.L43:
	cmp	DWORD PTR -976[rbp], 18
	jbe	.L44
	mov	DWORD PTR -976[rbp], 0
	jmp	.L45
.L46:
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	hxa_inflate_read_bits
	mov	ecx, eax
	mov	eax, DWORD PTR -976[rbp]
	lea	rdx, hxa_inflate_code_length[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	edx, ecx
	cdqe
	mov	BYTE PTR -336[rbp+rax], dl
	add	DWORD PTR -976[rbp], 1
.L45:
	mov	eax, DWORD PTR -976[rbp]
	cmp	eax, DWORD PTR -960[rbp]
	jb	.L46
	lea	rcx, -336[rbp]
	lea	rax, -944[rbp]
	mov	edx, 19
	mov	rsi, rcx
	mov	rdi, rax
	call	hxa_inflate_build_tree
	mov	DWORD PTR -972[rbp], 0
	jmp	.L47
.L59:
	lea	rdx, -944[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hxa_tree_lookup
	mov	DWORD PTR -956[rbp], eax
	cmp	DWORD PTR -956[rbp], 15
	jbe	.L48
	mov	eax, DWORD PTR -956[rbp]
	and	eax, 3
	cmp	eax, 2
	je	.L49
	cmp	eax, 2
	ja	.L47
	test	eax, eax
	je	.L51
	cmp	eax, 1
	je	.L52
	jmp	.L47
.L51:
	mov	eax, DWORD PTR -972[rbp]
	sub	eax, 1
	mov	eax, eax
	movzx	eax, BYTE PTR -336[rbp+rax]
	movzx	eax, al
	mov	DWORD PTR -948[rbp], eax
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	hxa_inflate_read_bits
	add	eax, 3
	mov	DWORD PTR -952[rbp], eax
	mov	DWORD PTR -976[rbp], 0
	jmp	.L53
.L54:
	mov	eax, DWORD PTR -972[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -972[rbp], edx
	mov	edx, DWORD PTR -948[rbp]
	mov	eax, eax
	mov	BYTE PTR -336[rbp+rax], dl
	add	DWORD PTR -976[rbp], 1
.L53:
	mov	eax, DWORD PTR -976[rbp]
	cmp	eax, DWORD PTR -952[rbp]
	jb	.L54
	jmp	.L47
.L52:
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	hxa_inflate_read_bits
	add	eax, 3
	mov	DWORD PTR -952[rbp], eax
	mov	DWORD PTR -976[rbp], 0
	jmp	.L55
.L56:
	mov	eax, DWORD PTR -972[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -972[rbp], edx
	mov	eax, eax
	mov	BYTE PTR -336[rbp+rax], 0
	add	DWORD PTR -976[rbp], 1
.L55:
	mov	eax, DWORD PTR -976[rbp]
	cmp	eax, DWORD PTR -952[rbp]
	jb	.L56
	jmp	.L47
.L49:
	mov	rax, QWORD PTR -984[rbp]
	mov	esi, 7
	mov	rdi, rax
	call	hxa_inflate_read_bits
	add	eax, 11
	mov	DWORD PTR -952[rbp], eax
	mov	DWORD PTR -976[rbp], 0
	jmp	.L57
.L58:
	mov	eax, DWORD PTR -972[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -972[rbp], edx
	mov	eax, eax
	mov	BYTE PTR -336[rbp+rax], 0
	add	DWORD PTR -976[rbp], 1
.L57:
	mov	eax, DWORD PTR -976[rbp]
	cmp	eax, DWORD PTR -952[rbp]
	jb	.L58
	nop
	jmp	.L47
.L48:
	mov	eax, DWORD PTR -972[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -972[rbp], edx
	mov	edx, DWORD PTR -956[rbp]
	mov	eax, eax
	mov	BYTE PTR -336[rbp+rax], dl
.L47:
	mov	edx, DWORD PTR -968[rbp]
	mov	eax, DWORD PTR -964[rbp]
	add	eax, edx
	cmp	DWORD PTR -972[rbp], eax
	jb	.L59
	mov	edx, DWORD PTR -968[rbp]
	lea	rcx, -336[rbp]
	mov	rax, QWORD PTR -992[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hxa_inflate_build_tree
	mov	eax, DWORD PTR -968[rbp]
	lea	rdx, -336[rbp]
	lea	rcx, [rdx+rax]
	mov	edx, DWORD PTR -964[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hxa_inflate_build_tree
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L60
	call	__stack_chk_fail@PLT
.L60:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	hxa_inflate_decode_tree, .-hxa_inflate_decode_tree
	.section	.rodata
	.align 8
.LC3:
	.string	"HxA Error: Deflate error. Compressed block has length that is out of bounds."
	.text
	.globl	hxa_inflate_decode
	.type	hxa_inflate_decode, @function
hxa_inflate_decode:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 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	QWORD PTR -72[rbp], r8
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hxa_tree_lookup
	mov	DWORD PTR -16[rbp], eax
	jmp	.L62
.L71:
	cmp	DWORD PTR -16[rbp], 255
	ja	.L63
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rdx], rcx
	mov	rdx, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -16[rbp]
	mov	BYTE PTR [rax], dl
	jmp	.L64
.L63:
	cmp	DWORD PTR -16[rbp], 288
	jbe	.L65
	lea	rdi, .LC3[rip]
	call	puts@PLT
	mov	eax, 0
	jmp	.L66
.L65:
	sub	DWORD PTR -16[rbp], 257
	mov	eax, DWORD PTR -16[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, hxa_inflate_length_bits[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	hxa_inflate_read_bits
	mov	ecx, eax
	mov	eax, DWORD PTR -16[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, hxa_inflate_length_base[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	eax, ecx
	mov	DWORD PTR -12[rbp], eax
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hxa_tree_lookup
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, hxa_inflate_distance_bits[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	hxa_inflate_read_bits
	mov	ecx, eax
	mov	eax, DWORD PTR -8[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, hxa_inflate_distance_base[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	eax, ecx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jb	.L67
	mov	eax, DWORD PTR -12[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	ecx, DWORD PTR -4[rbp]
	mov	rsi, rdx
	sub	rsi, rcx
	mov	rdx, QWORD PTR -48[rbp]
	add	rsi, rdx
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -48[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	jmp	.L68
.L67:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L69
.L70:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -4[rbp]
	sub	rax, rdx
	mov	rcx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -20[rbp], 1
.L69:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jb	.L70
.L68:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
.L64:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hxa_tree_lookup
	mov	DWORD PTR -16[rbp], eax
.L62:
	cmp	DWORD PTR -16[rbp], 256
	jne	.L71
	mov	eax, 1
.L66:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	hxa_inflate_decode, .-hxa_inflate_decode
	.section	.rodata
	.align 8
.LC4:
	.string	"HxA Error: Deflate error. Code 3."
	.text
	.globl	hxa_inflate
	.type	hxa_inflate, @function
hxa_inflate:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2528
	mov	QWORD PTR -2504[rbp], rdi
	mov	QWORD PTR -2512[rbp], rsi
	mov	QWORD PTR -2520[rbp], rdx
	mov	QWORD PTR -2528[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -2488[rbp], 0
	mov	rax, QWORD PTR -2520[rbp]
	mov	QWORD PTR -2480[rbp], rax
	mov	rdx, QWORD PTR -2520[rbp]
	mov	rax, QWORD PTR -2528[rbp]
	add	rax, rdx
	mov	QWORD PTR -2472[rbp], rax
	mov	DWORD PTR -2464[rbp], 0
	mov	rax, QWORD PTR -2512[rbp]
	mov	QWORD PTR [rax], 0
	lea	rdx, -1840[rbp]
	lea	rax, -2448[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hxa_inflate_build_default_tree
	jmp	.L73
.L82:
	lea	rax, -2480[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	hxa_inflate_read_bits
	mov	DWORD PTR -2488[rbp], eax
	lea	rax, -2480[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	hxa_inflate_read_bits
	mov	DWORD PTR -2484[rbp], eax
	mov	eax, DWORD PTR -2484[rbp]
	and	eax, 3
	cmp	eax, 3
	je	.L74
	cmp	eax, 3
	ja	.L73
	cmp	eax, 2
	je	.L75
	cmp	eax, 2
	ja	.L73
	test	eax, eax
	je	.L76
	cmp	eax, 1
	je	.L77
	jmp	.L73
.L76:
	mov	rdx, QWORD PTR -2512[rbp]
	mov	rcx, QWORD PTR -2504[rbp]
	lea	rax, -2480[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hxa_inflate_uncompressed
	test	eax, eax
	jne	.L73
	mov	eax, 0
	jmp	.L83
.L77:
	lea	rdi, -1840[rbp]
	lea	rcx, -2448[rbp]
	mov	rdx, QWORD PTR -2512[rbp]
	mov	rsi, QWORD PTR -2504[rbp]
	lea	rax, -2480[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	hxa_inflate_decode
	test	eax, eax
	jne	.L73
	mov	eax, 0
	jmp	.L83
.L75:
	lea	rdx, -624[rbp]
	lea	rcx, -1232[rbp]
	lea	rax, -2480[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hxa_inflate_decode_tree
	lea	rdi, -624[rbp]
	lea	rcx, -1232[rbp]
	mov	rdx, QWORD PTR -2512[rbp]
	mov	rsi, QWORD PTR -2504[rbp]
	lea	rax, -2480[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	hxa_inflate_decode
	test	eax, eax
	jne	.L73
	mov	eax, 0
	jmp	.L83
.L74:
	lea	rdi, .LC4[rip]
	call	puts@PLT
	mov	eax, 0
	jmp	.L83
.L73:
	cmp	DWORD PTR -2488[rbp], 0
	je	.L82
	mov	eax, 1
.L83:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L84
	call	__stack_chk_fail@PLT
.L84:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	hxa_inflate, .-hxa_inflate
	.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	"149331.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	hxa_inflate_read_bits
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_inflate_read_bits, %function
hxa_inflate_read_bits:
	@ 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, .L4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	asr	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3]
	sub	r3, fp, #16
	mov	r2, #4
	mov	r0, r3
	bl	memcpy
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	lsr	r3, r2, r3
	str	r3, [fp, #-12]
	mov	r2, #1
	ldr	r3, [fp, #-28]
	lsl	r3, r2, r3
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-12]
	and	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	lsr	r3, r3, #3
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	and	r2, r3, #7
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	ldr	r2, .L4
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3
	bl	__stack_chk_fail
.L3:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L5:
	.align	2
.L4:
	.word	.LC0
	.size	hxa_inflate_read_bits, .-hxa_inflate_read_bits
	.section	.rodata
	.align	2
.LC1:
	.ascii	"HxA Error: Deflate error. Block header of uncompres"
	.ascii	"sed block is out of bounds.\000"
	.align	2
.LC2:
	.ascii	"HxA Error: Deflate error. Uncompressed block has no"
	.ascii	"n matching complement.\000"
	.align	2
.LC3:
	.ascii	"HxA Error: Deflate error. Uncompressed block has le"
	.ascii	"ngth that is out of bounds.\000"
	.text
	.align	2
	.global	hxa_inflate_uncompressed
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_inflate_uncompressed, %function
hxa_inflate_uncompressed:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bls	.L7
	ldr	r0, .L11
	bl	puts
	mov	r3, #0
	b	.L8
.L7:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-16]
	ldr	r2, [r2]
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-16]
	ldr	r2, [r2]
	add	r2, r2, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	mvn	r3, r3
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	beq	.L9
	ldr	r0, .L11+4
	bl	puts
	mov	r3, #0
	b	.L8
.L9:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bls	.L10
	ldr	r0, .L11+8
	bl	puts
	mov	r3, #0
	b	.L8
.L10:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	add	r0, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	memcpy
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	mov	r3, #1
.L8:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.size	hxa_inflate_uncompressed, .-hxa_inflate_uncompressed
	.global	hxa_inflate_length_bits
	.data
	.align	2
	.type	hxa_inflate_length_bits, %object
	.size	hxa_inflate_length_bits, 120
hxa_inflate_length_bits:
	.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	6
	.global	hxa_inflate_length_base
	.align	2
	.type	hxa_inflate_length_base, %object
	.size	hxa_inflate_length_base, 120
hxa_inflate_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	323
	.global	hxa_inflate_distance_bits
	.align	2
	.type	hxa_inflate_distance_bits, %object
	.size	hxa_inflate_distance_bits, 120
hxa_inflate_distance_bits:
	.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
	.global	hxa_inflate_distance_base
	.align	2
	.type	hxa_inflate_distance_base, %object
	.size	hxa_inflate_distance_base, 120
hxa_inflate_distance_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
	.global	hxa_inflate_code_length
	.section	.rodata
	.align	2
	.type	hxa_inflate_code_length, %object
	.size	hxa_inflate_code_length, 19
hxa_inflate_code_length:
	.ascii	"\020\021\022\000\010\007\011\006\012\005\013\004\014"
	.ascii	"\003\015\002\016\001\017"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_tree_lookup, %function
hxa_tree_lookup:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
.L16:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	mov	r4, r3
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	hxa_inflate_read_bits
	mov	r3, r0
	add	r3, r4, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	sub	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	blt	.L19
	b	.L16
.L19:
	nop
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-36]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	hxa_tree_lookup, .-hxa_tree_lookup
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_inflate_build_default_tree, %function
hxa_inflate_build_default_tree:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L21
.L22:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L21:
	ldr	r3, [fp, #-8]
	cmp	r3, #6
	bls	.L22
	ldr	r3, [fp, #-16]
	mov	r2, #24
	strh	r2, [r3, #14]	@ movhi
	ldr	r3, [fp, #-16]
	mov	r2, #152
	strh	r2, [r3, #16]	@ movhi
	ldr	r3, [fp, #-16]
	mov	r2, #112
	strh	r2, [r3, #18]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L23
.L24:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #256
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L23:
	ldr	r3, [fp, #-8]
	cmp	r3, #23
	bls	.L24
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L25
.L26:
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	ldr	r2, [fp, #-8]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, [fp, #-16]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L25:
	ldr	r3, [fp, #-8]
	cmp	r3, #143
	bls	.L26
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L27
.L28:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	add	r3, r3, #168
	add	r2, r2, #280
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, [fp, #-16]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L27:
	ldr	r3, [fp, #-8]
	cmp	r3, #7
	bls	.L28
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L29
.L30:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	add	r3, r3, #176
	add	r2, r2, #144
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, [fp, #-16]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L29:
	ldr	r3, [fp, #-8]
	cmp	r3, #111
	bls	.L30
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L31
.L32:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L31:
	ldr	r3, [fp, #-8]
	cmp	r3, #4
	bls	.L32
	ldr	r3, [fp, #-20]
	mov	r2, #32
	strh	r2, [r3, #10]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L33
.L34:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-20]
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L33:
	ldr	r3, [fp, #-8]
	cmp	r3, #31
	bls	.L34
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	hxa_inflate_build_default_tree, .-hxa_inflate_build_default_tree
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_inflate_build_tree, %function
hxa_inflate_build_tree:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #96
	str	r0, [fp, #-88]
	str	r1, [fp, #-92]
	str	r2, [fp, #-96]
	ldr	r3, .L46
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-80]
	b	.L36
.L37:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L36:
	ldr	r3, [fp, #-80]
	cmp	r3, #15
	bls	.L37
	mov	r3, #0
	str	r3, [fp, #-80]
	b	.L38
.L39:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r1, [fp, #-88]
	lsl	r2, r3, #1
	add	r2, r1, r2
	ldrh	r2, [r2]
	add	r2, r2, #1
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, [fp, #-88]
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L38:
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bcc	.L39
	ldr	r3, [fp, #-88]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-80]
	b	.L40
.L41:
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-76]
	str	r2, [r3, #-68]
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-76]
	add	r3, r3, r2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L40:
	ldr	r3, [fp, #-80]
	cmp	r3, #15
	bls	.L41
	mov	r3, #0
	str	r3, [fp, #-80]
	b	.L42
.L44:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L43
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	lsl	r3, r1, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-68]
	add	r0, r2, #1
	lsl	r3, r1, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r0, [r3, #-68]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #16
	lsr	r1, r3, #16
	ldr	r0, [fp, #-88]
	add	r3, r2, #16
	lsl	r3, r3, #1
	add	r3, r0, r3
	strh	r1, [r3]	@ movhi
.L43:
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L42:
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bcc	.L44
	nop
	ldr	r3, .L46
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L45
	bl	__stack_chk_fail
.L45:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L47:
	.align	2
.L46:
	.word	.LC4
	.size	hxa_inflate_build_tree, .-hxa_inflate_build_tree
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_inflate_decode_tree, %function
hxa_inflate_decode_tree:
	@ args = 0, pretend = 0, frame = 984
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #984
	str	r0, [fp, #-976]
	str	r1, [fp, #-980]
	str	r2, [fp, #-984]
	ldr	r3, .L67
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #5
	ldr	r0, [fp, #-976]
	bl	hxa_inflate_read_bits
	mov	r3, r0
	add	r3, r3, #256
	add	r3, r3, #1
	str	r3, [fp, #-960]
	mov	r1, #5
	ldr	r0, [fp, #-976]
	bl	hxa_inflate_read_bits
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-956]
	mov	r1, #4
	ldr	r0, [fp, #-976]
	bl	hxa_inflate_read_bits
	mov	r3, r0
	add	r3, r3, #4
	str	r3, [fp, #-952]
	mov	r3, #0
	str	r3, [fp, #-968]
	b	.L49
.L50:
	sub	r2, fp, #328
	ldr	r3, [fp, #-968]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	str	r3, [fp, #-968]
.L49:
	ldr	r3, [fp, #-968]
	cmp	r3, #18
	bls	.L50
	mov	r3, #0
	str	r3, [fp, #-968]
	b	.L51
.L52:
	mov	r1, #3
	ldr	r0, [fp, #-976]
	bl	hxa_inflate_read_bits
	mov	r2, r0
	ldr	r1, .L67+4
	ldr	r3, [fp, #-968]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r2, #255
	sub	r1, fp, #4
	add	r3, r1, r3
	strb	r2, [r3, #-324]
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	str	r3, [fp, #-968]
.L51:
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-952]
	cmp	r2, r3
	bcc	.L52
	sub	r1, fp, #328
	sub	r3, fp, #936
	mov	r2, #19
	mov	r0, r3
	bl	hxa_inflate_build_tree
	mov	r3, #0
	str	r3, [fp, #-964]
	b	.L53
.L65:
	sub	r3, fp, #936
	mov	r1, r3
	ldr	r0, [fp, #-976]
	bl	hxa_tree_lookup
	mov	r3, r0
	str	r3, [fp, #-948]
	ldr	r3, [fp, #-948]
	cmp	r3, #15
	bls	.L54
	ldr	r3, [fp, #-948]
	and	r3, r3, #3
	cmp	r3, #2
	beq	.L55
	cmp	r3, #2
	bhi	.L53
	cmp	r3, #0
	beq	.L57
	cmp	r3, #1
	beq	.L58
	b	.L53
.L57:
	ldr	r3, [fp, #-964]
	sub	r3, r3, #1
	sub	r2, fp, #4
	add	r3, r2, r3
	ldrb	r3, [r3, #-324]	@ zero_extendqisi2
	str	r3, [fp, #-940]
	mov	r1, #2
	ldr	r0, [fp, #-976]
	bl	hxa_inflate_read_bits
	mov	r3, r0
	add	r3, r3, #3
	str	r3, [fp, #-944]
	mov	r3, #0
	str	r3, [fp, #-968]
	b	.L59
.L60:
	ldr	r3, [fp, #-964]
	add	r2, r3, #1
	str	r2, [fp, #-964]
	ldr	r2, [fp, #-940]
	and	r2, r2, #255
	sub	r1, fp, #4
	add	r3, r1, r3
	strb	r2, [r3, #-324]
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	str	r3, [fp, #-968]
.L59:
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-944]
	cmp	r2, r3
	bcc	.L60
	b	.L53
.L58:
	mov	r1, #3
	ldr	r0, [fp, #-976]
	bl	hxa_inflate_read_bits
	mov	r3, r0
	add	r3, r3, #3
	str	r3, [fp, #-944]
	mov	r3, #0
	str	r3, [fp, #-968]
	b	.L61
.L62:
	ldr	r3, [fp, #-964]
	add	r2, r3, #1
	str	r2, [fp, #-964]
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3, #-324]
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	str	r3, [fp, #-968]
.L61:
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-944]
	cmp	r2, r3
	bcc	.L62
	b	.L53
.L55:
	mov	r1, #7
	ldr	r0, [fp, #-976]
	bl	hxa_inflate_read_bits
	mov	r3, r0
	add	r3, r3, #11
	str	r3, [fp, #-944]
	mov	r3, #0
	str	r3, [fp, #-968]
	b	.L63
.L64:
	ldr	r3, [fp, #-964]
	add	r2, r3, #1
	str	r2, [fp, #-964]
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3, #-324]
	ldr	r3, [fp, #-968]
	add	r3, r3, #1
	str	r3, [fp, #-968]
.L63:
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-944]
	cmp	r2, r3
	bcc	.L64
	nop
	b	.L53
.L54:
	ldr	r3, [fp, #-964]
	add	r2, r3, #1
	str	r2, [fp, #-964]
	ldr	r2, [fp, #-948]
	and	r2, r2, #255
	sub	r1, fp, #4
	add	r3, r1, r3
	strb	r2, [r3, #-324]
.L53:
	ldr	r2, [fp, #-960]
	ldr	r3, [fp, #-956]
	add	r3, r2, r3
	ldr	r2, [fp, #-964]
	cmp	r2, r3
	bcc	.L65
	sub	r3, fp, #328
	ldr	r2, [fp, #-960]
	mov	r1, r3
	ldr	r0, [fp, #-980]
	bl	hxa_inflate_build_tree
	sub	r2, fp, #328
	ldr	r3, [fp, #-960]
	add	r3, r2, r3
	ldr	r2, [fp, #-956]
	mov	r1, r3
	ldr	r0, [fp, #-984]
	bl	hxa_inflate_build_tree
	nop
	ldr	r3, .L67
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L66
	bl	__stack_chk_fail
.L66:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L68:
	.align	2
.L67:
	.word	.LC5
	.word	hxa_inflate_code_length
	.size	hxa_inflate_decode_tree, .-hxa_inflate_decode_tree
	.section	.rodata
	.align	2
.LC6:
	.ascii	"HxA Error: Deflate error. Compressed block has leng"
	.ascii	"th that is out of bounds.\000"
	.text
	.align	2
	.global	hxa_inflate_decode
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_inflate_decode, %function
hxa_inflate_decode:
	@ 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	r1, [fp, #-44]
	ldr	r0, [fp, #-32]
	bl	hxa_tree_lookup
	mov	r3, r0
	str	r3, [fp, #-20]
	b	.L70
.L79:
	ldr	r3, [fp, #-20]
	cmp	r3, #255
	bhi	.L71
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	add	r1, r3, #1
	ldr	r2, [fp, #-40]
	str	r1, [r2]
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L72
.L71:
	ldr	r3, [fp, #-20]
	cmp	r3, #288
	bls	.L73
	ldr	r0, .L80
	bl	puts
	mov	r3, #0
	b	.L74
.L73:
	ldr	r3, [fp, #-20]
	sub	r3, r3, #256
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r2, .L80+4
	ldr	r3, [fp, #-20]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	hxa_inflate_read_bits
	mov	r2, r0
	ldr	r1, .L80+8
	ldr	r3, [fp, #-20]
	ldr	r3, [r1, r3, lsl #2]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-32]
	bl	hxa_tree_lookup
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r2, .L80+12
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	hxa_inflate_read_bits
	mov	r2, r0
	ldr	r1, .L80+16
	ldr	r3, [fp, #-12]
	ldr	r3, [r1, r3, lsl #2]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L75
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	add	r0, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	mov	r1, r3
	bl	memcpy
	b	.L76
.L75:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L77
.L78:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	ldr	r2, [fp, #-36]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r1, [r3]
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	ldr	r1, [fp, #-36]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L77:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L78
.L76:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3]
.L72:
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-32]
	bl	hxa_tree_lookup
	mov	r3, r0
	str	r3, [fp, #-20]
.L70:
	ldr	r3, [fp, #-20]
	cmp	r3, #256
	bne	.L79
	mov	r3, #1
.L74:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L81:
	.align	2
.L80:
	.word	.LC6
	.word	hxa_inflate_length_bits
	.word	hxa_inflate_length_base
	.word	hxa_inflate_distance_bits
	.word	hxa_inflate_distance_base
	.size	hxa_inflate_decode, .-hxa_inflate_decode
	.section	.rodata
	.align	2
.LC7:
	.ascii	"HxA Error: Deflate error. Code 3.\000"
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	hxa_inflate
	.syntax unified
	.arm
	.fpu softvfp
	.type	hxa_inflate, %function
hxa_inflate:
	@ args = 0, pretend = 0, frame = 2472
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2480
	str	r0, [fp, #-2464]
	str	r1, [fp, #-2468]
	str	r2, [fp, #-2472]
	str	r3, [fp, #-2476]
	ldr	r3, .L97
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-2460]
	ldr	r3, [fp, #-2472]
	str	r3, [fp, #-2452]
	ldr	r2, [fp, #-2472]
	ldr	r3, [fp, #-2476]
	add	r3, r2, r3
	str	r3, [fp, #-2448]
	mov	r3, #0
	str	r3, [fp, #-2444]
	ldr	r3, [fp, #-2468]
	mov	r2, #0
	str	r2, [r3]
	sub	r2, fp, #1824
	sub	r2, r2, #4
	sub	r2, r2, #4
	sub	r3, fp, #2432
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r2
	mov	r0, r3
	bl	hxa_inflate_build_default_tree
	nop
	b	.L84
.L94:
	sub	r3, fp, #2448
	sub	r3, r3, #4
	mov	r1, #1
	mov	r0, r3
	bl	hxa_inflate_read_bits
	str	r0, [fp, #-2460]
	sub	r3, fp, #2448
	sub	r3, r3, #4
	mov	r1, #2
	mov	r0, r3
	bl	hxa_inflate_read_bits
	str	r0, [fp, #-2456]
	ldr	r3, [fp, #-2456]
	and	r3, r3, #3
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L84
.L86:
	.word	.L89
	.word	.L88
	.word	.L87
	.word	.L85
.L89:
	sub	r3, fp, #2448
	sub	r3, r3, #4
	ldr	r2, [fp, #-2468]
	ldr	r1, [fp, #-2464]
	mov	r0, r3
	bl	hxa_inflate_uncompressed
	mov	r3, r0
	cmp	r3, #0
	bne	.L84
	mov	r3, #0
	b	.L95
.L88:
	sub	r2, fp, #2432
	sub	r2, r2, #4
	sub	r2, r2, #4
	sub	r0, fp, #2448
	sub	r0, r0, #4
	sub	r3, fp, #1824
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-2468]
	ldr	r1, [fp, #-2464]
	bl	hxa_inflate_decode
	mov	r3, r0
	cmp	r3, #0
	bne	.L84
	mov	r3, #0
	b	.L95
.L87:
	sub	r2, fp, #616
	sub	r3, fp, #1216
	sub	r3, r3, #4
	sub	r3, r3, #4
	sub	r0, fp, #2448
	sub	r0, r0, #4
	mov	r1, r3
	bl	hxa_inflate_decode_tree
	sub	r3, fp, #1216
	sub	r3, r3, #4
	sub	r3, r3, #4
	sub	r0, fp, #2448
	sub	r0, r0, #4
	sub	r2, fp, #616
	str	r2, [sp]
	ldr	r2, [fp, #-2468]
	ldr	r1, [fp, #-2464]
	bl	hxa_inflate_decode
	mov	r3, r0
	cmp	r3, #0
	bne	.L84
	mov	r3, #0
	b	.L95
.L85:
	ldr	r0, .L97+4
	bl	puts
	mov	r3, #0
	b	.L95
.L84:
	ldr	r3, [fp, #-2460]
	cmp	r3, #0
	beq	.L94
	mov	r3, #1
.L95:
	ldr	r2, .L97
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L96
	bl	__stack_chk_fail
.L96:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L98:
	.align	2
.L97:
	.word	.LC8
	.word	.LC7
	.size	hxa_inflate, .-hxa_inflate
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
