	.file	"320510.c"
	.intel_syntax noprefix
	.text
	.globl	FRGL_TimeMS
	.type	FRGL_TimeMS, @function
FRGL_TimeMS:
.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	gettimeofday@PLT
	mov	eax, DWORD PTR secbase.0[rip]
	test	eax, eax
	jne	.L2
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR secbase.0[rip], eax
.L2:
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR secbase.0[rip]
	movsx	rdx, edx
	sub	rax, rdx
	imul	esi, eax, 1000
	mov	rcx, QWORD PTR -24[rbp]
	movabs	rdx, 2361183241434822607
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 7
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	add	eax, esi
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L4
	call	__stack_chk_fail@PLT
.L4:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	FRGL_TimeMS, .-FRGL_TimeMS
	.globl	BGBDT_FeLz8_LookupMatchA
	.type	BGBDT_FeLz8_LookupMatchA, @function
BGBDT_FeLz8_LookupMatchA:
.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, 144
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	QWORD PTR -120[rbp], rdx
	mov	QWORD PTR -128[rbp], rcx
	mov	QWORD PTR -136[rbp], r8
	mov	QWORD PTR -144[rbp], r9
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR 4[rax]
	test	al, al
	je	.L6
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, eax, 65521
	shr	eax, 16
	and	eax, 4095
	mov	DWORD PTR -76[rbp], eax
	mov	rdx, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, BYTE PTR 262168[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -72[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	sub	eax, 1
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR -92[rbp], 0
	mov	DWORD PTR -88[rbp], 0
	mov	rax, QWORD PTR -112[rbp]
	sub	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR -56[rbp], eax
	mov	DWORD PTR -84[rbp], 0
	jmp	.L7
.L21:
	mov	edx, DWORD PTR -72[rbp]
	mov	eax, DWORD PTR -84[rbp]
	add	eax, edx
	and	eax, DWORD PTR -60[rbp]
	or	eax, DWORD PTR -68[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, edx
	add	rdx, 4
	mov	eax, DWORD PTR 8[rax+rdx*4]
	xor	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -56[rbp]
	jnb	.L27
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -48[rbp]
	shr	eax, 16
	test	eax, eax
	jne	.L27
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 258
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jnb	.L11
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -24[rbp], rax
.L11:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L12
.L19:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	je	.L13
	jmp	.L14
.L17:
	mov	rax, QWORD PTR -32[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L28
	add	QWORD PTR -32[rbp], 1
	add	QWORD PTR -16[rbp], 1
.L14:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L17
	jmp	.L18
.L28:
	nop
	jmp	.L18
.L13:
	add	QWORD PTR -32[rbp], 4
	add	QWORD PTR -16[rbp], 4
.L12:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L19
.L18:
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	sub	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -96[rbp], 258
	jle	.L20
	mov	DWORD PTR -96[rbp], 258
.L20:
	mov	eax, DWORD PTR -96[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jle	.L10
	cmp	DWORD PTR -36[rbp], 65535
	jg	.L10
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -88[rbp], eax
	jmp	.L10
.L27:
	nop
.L10:
	add	DWORD PTR -84[rbp], 1
.L7:
	mov	eax, DWORD PTR -84[rbp]
	cmp	eax, DWORD PTR -64[rbp]
	jl	.L21
	cmp	DWORD PTR -92[rbp], 3
	jle	.L22
	cmp	DWORD PTR -88[rbp], 65535
	jg	.L22
	mov	eax, 1
	jmp	.L23
.L22:
	mov	eax, 0
.L23:
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jne	.L24
	mov	eax, DWORD PTR -72[rbp]
	sub	eax, 1
	and	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	mov	ecx, eax
	mov	rdx, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR -76[rbp]
	mov	BYTE PTR 262168[rdx+rax], cl
	mov	eax, DWORD PTR -72[rbp]
	or	eax, DWORD PTR -68[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	xor	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	ecx, ecx
	add	rcx, 4
	mov	DWORD PTR 8[rax+rcx*4], edx
.L24:
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR -92[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -144[rbp]
	mov	edx, DWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -52[rbp]
	jmp	.L25
.L6:
	mov	r8, QWORD PTR -144[rbp]
	mov	rdi, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	rsi, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	BGBDT_FeLz8_LookupMatchB
.L25:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	BGBDT_FeLz8_LookupMatchA, .-BGBDT_FeLz8_LookupMatchA
	.globl	BGBDT_FeLz8_UpdateStringA
	.type	BGBDT_FeLz8_UpdateStringA, @function
BGBDT_FeLz8_UpdateStringA:
.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, 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	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 4[rax]
	test	al, al
	je	.L30
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR -24[rbp], eax
	jmp	.L31
.L32:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	imul	eax, eax, 65521
	shr	eax, 16
	and	eax, 4095
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movzx	eax, al
	mov	edx, DWORD PTR -12[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	movzx	eax, BYTE PTR 262168[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 1
	and	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	mov	BYTE PTR 262168[rdx+rax], cl
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -56[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, edx
	xor	ecx, eax
	mov	eax, DWORD PTR -8[rbp]
	or	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	movsx	rdx, edx
	add	rdx, 4
	mov	DWORD PTR 8[rax+rdx*4], ecx
	add	QWORD PTR -48[rbp], 1
.L31:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -24[rbp], edx
	test	eax, eax
	jne	.L32
	mov	eax, 0
	jmp	.L33
.L30:
	mov	edi, DWORD PTR -68[rbp]
	mov	rcx, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	BGBDT_FeLz8_UpdateStringB
.L33:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	BGBDT_FeLz8_UpdateStringA, .-BGBDT_FeLz8_UpdateStringA
	.globl	BGBDT_FeLz8_LookupMatchB
	.type	BGBDT_FeLz8_LookupMatchB, @function
BGBDT_FeLz8_LookupMatchB:
.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 -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -104[rbp], r8
	mov	QWORD PTR -112[rbp], r9
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	imul	eax, eax, 65521
	shr	eax, 16
	and	eax, 4095
	mov	DWORD PTR -60[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -60[rbp]
	add	rdx, 4
	mov	eax, DWORD PTR 8[rax+rdx*4]
	xor	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	sub	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	xor	eax, DWORD PTR -64[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, DWORD PTR -60[rbp]
	add	rcx, 4
	mov	DWORD PTR 8[rax+rcx*4], edx
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jnb	.L35
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -56[rbp]
	shr	eax, 16
	test	eax, eax
	je	.L36
.L35:
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, 0
	jmp	.L37
.L36:
	mov	edx, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 258
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jnb	.L38
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -24[rbp], rax
.L38:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L39
.L46:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	je	.L40
	jmp	.L41
.L44:
	mov	rax, QWORD PTR -32[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L51
	add	QWORD PTR -32[rbp], 1
	add	QWORD PTR -16[rbp], 1
.L41:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L44
	jmp	.L45
.L51:
	nop
	jmp	.L45
.L40:
	add	QWORD PTR -32[rbp], 4
	add	QWORD PTR -16[rbp], 4
.L39:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L46
.L45:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jbe	.L47
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -32[rbp], rax
.L47:
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	sub	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -40[rbp], 3
	jle	.L48
	cmp	DWORD PTR -36[rbp], 65535
	jg	.L48
	mov	eax, 1
	jmp	.L37
.L48:
	mov	eax, 0
.L37:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	BGBDT_FeLz8_LookupMatchB, .-BGBDT_FeLz8_LookupMatchB
	.globl	BGBDT_FeLz8_UpdateStringB
	.type	BGBDT_FeLz8_UpdateStringB, @function
BGBDT_FeLz8_UpdateStringB:
.LFB10:
	.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	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -12[rbp], eax
	jmp	.L53
.L54:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	imul	eax, eax, 65521
	shr	eax, 16
	and	eax, 4095
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, QWORD PTR -40[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	xor	eax, edx
	mov	ecx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	add	rdx, 4
	mov	DWORD PTR 8[rax+rdx*4], ecx
	add	QWORD PTR -32[rbp], 1
.L53:
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -12[rbp], edx
	test	eax, eax
	jne	.L54
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	BGBDT_FeLz8_UpdateStringB, .-BGBDT_FeLz8_UpdateStringB
	.globl	BGBDT_FeLz8_EncodeBufferCtx
	.type	BGBDT_FeLz8_EncodeBufferCtx, @function
BGBDT_FeLz8_EncodeBufferCtx:
.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, 144
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	DWORD PTR -116[rbp], edx
	mov	QWORD PTR -128[rbp], rcx
	mov	DWORD PTR -120[rbp], r8d
	mov	DWORD PTR -132[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, BGBDT_FeLz8_LookupMatchA[rip]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, BGBDT_FeLz8_UpdateStringA[rip]
	mov	QWORD PTR -56[rbp], rax
	cmp	DWORD PTR -132[rbp], 9
	ja	.L57
	mov	eax, DWORD PTR -132[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L59[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L59[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L59:
	.long	.L64-.L59
	.long	.L64-.L59
	.long	.L63-.L59
	.long	.L62-.L59
	.long	.L61-.L59
	.long	.L60-.L59
	.long	.L58-.L59
	.long	.L58-.L59
	.long	.L58-.L59
	.long	.L58-.L59
	.text
.L64:
	lea	rax, BGBDT_FeLz8_LookupMatchB[rip]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, BGBDT_FeLz8_UpdateStringB[rip]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR 4[rax], 0
	jmp	.L57
.L63:
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR 4[rax], 1
	jmp	.L57
.L62:
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR 4[rax], 2
	jmp	.L57
.L61:
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR 4[rax], 3
	jmp	.L57
.L60:
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR 4[rax], 4
	jmp	.L57
.L58:
	mov	rax, QWORD PTR -104[rbp]
	mov	BYTE PTR 4[rax], 4
	nop
.L57:
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movzx	eax, al
	mov	edx, 4096
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -92[rbp], eax
	mov	DWORD PTR -72[rbp], 0
	jmp	.L65
.L66:
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -72[rbp]
	movsx	rdx, edx
	add	rdx, 4
	mov	DWORD PTR 8[rax+rdx*4], 0
	add	DWORD PTR -72[rbp], 1
.L65:
	mov	eax, DWORD PTR -92[rbp]
	cmp	DWORD PTR -72[rbp], eax
	jl	.L66
	mov	DWORD PTR -72[rbp], 0
	jmp	.L67
.L68:
	mov	rdx, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	mov	BYTE PTR 262168[rdx+rax], 0
	add	DWORD PTR -72[rbp], 1
.L67:
	cmp	DWORD PTR -72[rbp], 4095
	jle	.L68
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, DWORD PTR -116[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -116[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -120[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	DWORD PTR -76[rbp], -1
	jmp	.L69
.L82:
	lea	r8, -88[rbp]
	lea	rdi, -92[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	r10, QWORD PTR -64[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	r10
	test	eax, eax
	je	.L70
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR -80[rbp], eax
	jmp	.L71
.L75:
	cmp	DWORD PTR -80[rbp], 16383
	jle	.L72
	mov	DWORD PTR -80[rbp], 16383
.L72:
	mov	eax, DWORD PTR -80[rbp]
	or	ax, -32768
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR [rax], dx
	add	QWORD PTR -32[rbp], 2
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -72[rbp], eax
	jmp	.L73
.L74:
	mov	rdx, QWORD PTR -40[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -32[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
.L73:
	mov	eax, DWORD PTR -72[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -72[rbp], edx
	test	eax, eax
	jne	.L74
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR -80[rbp], eax
.L71:
	cmp	DWORD PTR -80[rbp], 63
	jg	.L75
	mov	eax, DWORD PTR -88[rbp]
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	cmp	DWORD PTR -76[rbp], eax
	jne	.L76
	mov	DWORD PTR -84[rbp], 0
.L76:
	mov	eax, DWORD PTR -88[rbp]
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -80[rbp], 7
	jg	.L77
	cmp	DWORD PTR -84[rbp], 15
	jg	.L77
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, 34
	jg	.L77
	mov	eax, DWORD PTR -80[rbp]
	sal	eax, 9
	or	ah, -64
	mov	edx, eax
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 3
	sal	eax, 4
	or	eax, edx
	or	eax, DWORD PTR -84[rbp]
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR [rax], dx
	add	QWORD PTR -32[rbp], 2
	jmp	.L78
.L77:
	cmp	DWORD PTR -80[rbp], 0
	jne	.L79
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, 511
	jg	.L79
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, 34
	jg	.L79
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 3
	sal	eax, 9
	or	ah, 64
	mov	edx, eax
	mov	eax, DWORD PTR -88[rbp]
	or	eax, edx
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR [rax], dx
	add	QWORD PTR -32[rbp], 2
	jmp	.L78
.L79:
	mov	eax, DWORD PTR -88[rbp]
	sal	eax, 16
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	sal	eax, 8
	or	edx, eax
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, 3
	or	eax, edx
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -32[rbp], 4
.L78:
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -72[rbp], eax
	jmp	.L80
.L81:
	mov	rdx, QWORD PTR -40[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -32[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
.L80:
	mov	eax, DWORD PTR -72[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -72[rbp], edx
	test	eax, eax
	jne	.L81
	mov	edi, DWORD PTR -92[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	r9, QWORD PTR -56[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	r9
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	add	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L69
.L70:
	add	QWORD PTR -48[rbp], 1
.L69:
	mov	rax, QWORD PTR -48[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L82
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR -80[rbp], eax
	jmp	.L83
.L87:
	cmp	DWORD PTR -80[rbp], 16383
	jle	.L84
	mov	DWORD PTR -80[rbp], 16383
.L84:
	mov	eax, DWORD PTR -80[rbp]
	or	ax, -32768
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR [rax], dx
	add	QWORD PTR -32[rbp], 2
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -72[rbp], eax
	jmp	.L85
.L86:
	mov	rdx, QWORD PTR -40[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -32[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
.L85:
	mov	eax, DWORD PTR -72[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -72[rbp], edx
	test	eax, eax
	jne	.L86
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR -80[rbp], eax
.L83:
	cmp	DWORD PTR -80[rbp], 0
	jg	.L87
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR [rax], -32768
	add	QWORD PTR -32[rbp], 2
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, QWORD PTR -128[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L89
	call	__stack_chk_fail@PLT
.L89:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	BGBDT_FeLz8_EncodeBufferCtx, .-BGBDT_FeLz8_EncodeBufferCtx
	.globl	BGBDT_FeLz8_EncodeBuffer
	.type	BGBDT_FeLz8_EncodeBuffer, @function
BGBDT_FeLz8_EncodeBuffer:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	r11, -266240[rsp]
.LPSRL0:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL0
	sub	rsp, 64
	mov	QWORD PTR -266280[rbp], rdi
	mov	DWORD PTR -266284[rbp], esi
	mov	QWORD PTR -266296[rbp], rdx
	mov	DWORD PTR -266288[rbp], ecx
	mov	DWORD PTR -266300[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	r8d, DWORD PTR -266300[rbp]
	mov	edi, DWORD PTR -266288[rbp]
	mov	rcx, QWORD PTR -266296[rbp]
	mov	edx, DWORD PTR -266284[rbp]
	mov	rsi, QWORD PTR -266280[rbp]
	lea	rax, -266272[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	BGBDT_FeLz8_EncodeBufferCtx
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L92
	call	__stack_chk_fail@PLT
.L92:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	BGBDT_FeLz8_EncodeBuffer, .-BGBDT_FeLz8_EncodeBuffer
	.globl	BGBDT_FeLz8_DecodeBuffer
	.type	BGBDT_FeLz8_DecodeBuffer, @function
BGBDT_FeLz8_DecodeBuffer:
.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, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	DWORD PTR -92[rbp], esi
	mov	QWORD PTR -104[rbp], rdx
	mov	DWORD PTR -96[rbp], ecx
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -92[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -68[rbp], 1
	jmp	.L94
.L112:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -64[rbp], eax
	add	QWORD PTR -40[rbp], 4
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 14
	and	eax, 3
	mov	DWORD PTR -60[rbp], eax
	cmp	DWORD PTR -60[rbp], 0
	je	.L95
	cmp	DWORD PTR -60[rbp], 3
	jne	.L96
	sub	QWORD PTR -40[rbp], 2
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 15
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 4
	and	eax, 31
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 9
	and	eax, 7
	mov	DWORD PTR -72[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	jne	.L97
	mov	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR -76[rbp], eax
	jmp	.L97
.L96:
	cmp	DWORD PTR -60[rbp], 1
	jne	.L98
	sub	QWORD PTR -40[rbp], 2
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 9
	and	eax, 31
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 511
	mov	DWORD PTR -76[rbp], eax
	mov	DWORD PTR -72[rbp], 0
	jmp	.L97
.L98:
	cmp	DWORD PTR -60[rbp], 2
	jne	.L99
	sub	QWORD PTR -40[rbp], 2
	mov	DWORD PTR -80[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 16383
	mov	DWORD PTR -72[rbp], eax
	jmp	.L97
.L99:
	mov	eax, 0
	call	__debugbreak@PLT
	jmp	.L97
.L95:
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 255
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 8
	and	eax, 63
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	shr	eax, 16
	mov	DWORD PTR -76[rbp], eax
.L97:
	cmp	DWORD PTR -80[rbp], 0
	je	.L100
	cmp	DWORD PTR -72[rbp], 0
	je	.L101
	mov	edx, DWORD PTR -72[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	felz_memcpy8f@PLT
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
.L101:
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	add	DWORD PTR -80[rbp], 3
	cmp	DWORD PTR -76[rbp], 7
	jg	.L102
	cmp	DWORD PTR -76[rbp], 4
	je	.L103
	cmp	DWORD PTR -76[rbp], 4
	jg	.L104
	cmp	DWORD PTR -76[rbp], 3
	je	.L105
	cmp	DWORD PTR -76[rbp], 3
	jg	.L104
	cmp	DWORD PTR -76[rbp], 1
	je	.L106
	cmp	DWORD PTR -76[rbp], 2
	je	.L107
	jmp	.L104
.L106:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	sal	eax, 8
	or	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	sal	eax, 16
	or	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, 3
	lea	edx, 3[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	ecx, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	felz_memset_u32b@PLT
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	jmp	.L109
.L107:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	or	eax, edx
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	sal	eax, 16
	or	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, 3
	lea	edx, 3[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	ecx, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	felz_memset_u32b@PLT
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	jmp	.L109
.L105:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	or	eax, edx
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	sal	eax, 24
	or	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	shr	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sal	eax, 16
	or	eax, edx
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	shr	eax, 16
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	sal	eax, 8
	or	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, 3
	lea	edx, 3[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 2
	mov	edi, eax
	mov	ecx, DWORD PTR -44[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	esi, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	felz_memset3_u32b@PLT
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	jmp	.L109
.L103:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, 3
	lea	edx, 3[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	ecx, DWORD PTR -56[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	felz_memset_u32b@PLT
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	jmp	.L109
.L104:
	mov	edx, DWORD PTR -80[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	felz_memcpy8@PLT
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	jmp	.L109
.L102:
	mov	edx, DWORD PTR -80[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	felz_memcpy8f@PLT
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
.L109:
	jmp	.L94
.L100:
	cmp	DWORD PTR -72[rbp], 0
	je	.L114
	mov	edx, DWORD PTR -72[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	felz_memcpy8f@PLT
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	QWORD PTR -40[rbp], rax
	nop
.L94:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L112
	jmp	.L111
.L114:
	nop
.L111:
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, QWORD PTR -104[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	BGBDT_FeLz8_DecodeBuffer, .-BGBDT_FeLz8_DecodeBuffer
	.section	.rodata
.LC0:
	.string	"rb"
	.text
	.globl	loadfile
	.type	loadfile, @function
loadfile:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC0[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L116
	mov	eax, 0
	jmp	.L117
.L116:
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 2
	mov	esi, 0
	mov	rdi, rax
	call	fseek@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	ftell@PLT
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	fseek@PLT
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fread@PLT
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
.L117:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	loadfile, .-loadfile
	.section	.rodata
.LC1:
	.string	"wb"
.LC2:
	.string	"Fail Open Write %s\n"
	.text
	.globl	storefile
	.type	storefile, @function
storefile:
.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, 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]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L119
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, -1
	jmp	.L120
.L119:
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	eax, 0
.L120:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	storefile, .-storefile
	.globl	felz_memcpy32
	.type	felz_memcpy32, @function
felz_memcpy32:
.LFB21:
	.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	DWORD PTR -52[rbp], edx
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	add	eax, 3
	lea	edx, 3[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L122
.L123:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 12[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -16[rbp], 16
	add	QWORD PTR -24[rbp], 16
.L122:
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jb	.L123
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	felz_memcpy32, .-felz_memcpy32
	.section	.rodata
	.align 8
.LC3:
	.string	"usage: %s opts* infile outfile\n"
.LC4:
	.string	"\t-d Decode"
.LC5:
	.string	"\t-1 .. -9 Compression Level"
	.text
	.globl	help
	.type	help, @function
help:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rdi, .LC4[rip]
	call	puts@PLT
	lea	rdi, .LC5[rip]
	call	puts@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	help, .-help
	.section	.rodata
.LC6:
	.string	"-d"
.LC7:
	.string	"-t"
.LC8:
	.string	"-1"
.LC9:
	.string	"-2"
.LC10:
	.string	"-3"
.LC11:
	.string	"-4"
.LC12:
	.string	"-5"
.LC13:
	.string	"-6"
.LC14:
	.string	"-7"
.LC15:
	.string	"-8"
.LC16:
	.string	"-9"
.LC18:
	.string	"Enc %d -> %d (%.2f%%)\n"
.LC19:
	.string	"FeLZ08"
.LC20:
	.string	"FeLZ Magic Failed"
.LC21:
	.string	"Test %d -> %d (%.2f%%)\n"
.LC22:
	.string	"Size Mismatch %d -> %d\n"
.LC23:
	.string	"Data Mismatch"
.LC24:
	.string	"Encode:"
.LC27:
	.string	"%.2fs %.2fMB/s  \r"
.LC28:
	.string	"Decode:"
.LC29:
	.string	"Memcpy:"
	.text
	.globl	main
	.type	main, @function
main:
.LFB23:
	.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	DWORD PTR -116[rbp], edi
	mov	QWORD PTR -128[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -72[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	mov	BYTE PTR -102[rbp], 0
	mov	BYTE PTR -101[rbp], 1
	mov	DWORD PTR -88[rbp], 1
	jmp	.L128
.L143:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	jne	.L129
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L130
	mov	BYTE PTR -102[rbp], 1
	jmp	.L131
.L130:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L132
	mov	BYTE PTR -102[rbp], 2
	jmp	.L131
.L132:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L133
	mov	BYTE PTR -101[rbp], 1
	jmp	.L131
.L133:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L134
	mov	BYTE PTR -101[rbp], 2
	jmp	.L131
.L134:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC10[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L135
	mov	BYTE PTR -101[rbp], 3
	jmp	.L131
.L135:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L136
	mov	BYTE PTR -101[rbp], 4
	jmp	.L131
.L136:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L137
	mov	BYTE PTR -101[rbp], 5
	jmp	.L131
.L137:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC13[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L138
	mov	BYTE PTR -101[rbp], 6
	jmp	.L131
.L138:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L139
	mov	BYTE PTR -101[rbp], 7
	jmp	.L131
.L139:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L140
	mov	BYTE PTR -101[rbp], 8
	jmp	.L131
.L140:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L167
	mov	BYTE PTR -101[rbp], 9
	jmp	.L131
.L129:
	cmp	QWORD PTR -72[rbp], 0
	jne	.L142
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -72[rbp], rax
	jmp	.L131
.L142:
	cmp	QWORD PTR -64[rbp], 0
	jne	.L131
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -64[rbp], rax
	jmp	.L131
.L167:
	nop
.L131:
	add	DWORD PTR -88[rbp], 1
.L128:
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jl	.L143
	cmp	QWORD PTR -72[rbp], 0
	je	.L144
	cmp	QWORD PTR -64[rbp], 0
	jne	.L145
.L144:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	help
	mov	eax, -1
	jmp	.L165
.L145:
	cmp	BYTE PTR -102[rbp], 0
	jne	.L147
	lea	rdx, -100[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	loadfile
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -100[rbp]
	add	eax, eax
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -40[rbp], rax
	movzx	edi, BYTE PTR -101[rbp]
	mov	eax, DWORD PTR -100[rbp]
	lea	ecx, [rax+rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 16[rax]
	mov	esi, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	BGBDT_FeLz8_EncodeBuffer
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	add	eax, 16
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR [rax], 70
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], 101
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 2
	mov	BYTE PTR [rax], 76
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], 90
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	BYTE PTR [rax], 48
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 5
	mov	BYTE PTR [rax], 56
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 6
	mov	BYTE PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 7
	mov	BYTE PTR [rax], 0
	mov	edx, DWORD PTR -96[rbp]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 12
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -96[rbp]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC17[rip]
	mulsd	xmm0, xmm1
	mov	eax, DWORD PTR -100[rbp]
	add	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movq	rcx, xmm0
	mov	edx, DWORD PTR -96[rbp]
	mov	eax, DWORD PTR -100[rbp]
	movq	xmm0, rcx
	mov	esi, eax
	lea	rdi, .LC18[rip]
	mov	eax, 1
	call	printf@PLT
	cmp	QWORD PTR -64[rbp], 0
	je	.L148
	mov	edx, DWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	storefile
.L148:
	mov	eax, 0
	jmp	.L165
.L147:
	cmp	BYTE PTR -102[rbp], 1
	jne	.L149
	lea	rdx, -96[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	loadfile
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, 6
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	jne	.L150
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 6
	movzx	eax, BYTE PTR [rax]
	cmp	al, 1
	jne	.L150
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 7
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L151
.L150:
	lea	rdi, .LC20[rip]
	call	puts@PLT
	mov	eax, -1
	jmp	.L165
.L151:
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 4096
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -96[rbp]
	lea	esi, -16[rax]
	mov	rax, QWORD PTR -48[rbp]
	lea	rdi, 16[rax]
	mov	edx, DWORD PTR -84[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, edx
	mov	rdx, rax
	call	BGBDT_FeLz8_DecodeBuffer
	mov	edx, DWORD PTR -84[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	storefile
	mov	eax, 0
	jmp	.L165
.L149:
	cmp	BYTE PTR -102[rbp], 2
	jne	.L152
	lea	rdx, -100[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	loadfile
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -100[rbp]
	add	eax, eax
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -100[rbp]
	add	eax, eax
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -100[rbp]
	mov	DWORD PTR -84[rbp], eax
	movzx	edi, BYTE PTR -101[rbp]
	mov	eax, DWORD PTR -100[rbp]
	lea	ecx, [rax+rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 16[rax]
	mov	esi, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	BGBDT_FeLz8_EncodeBuffer
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	add	eax, 16
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR [rax], 70
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], 101
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 2
	mov	BYTE PTR [rax], 76
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], 90
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	BYTE PTR [rax], 48
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 5
	mov	BYTE PTR [rax], 56
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 6
	mov	BYTE PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 7
	mov	BYTE PTR [rax], 0
	mov	edx, DWORD PTR -96[rbp]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 12
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -96[rbp]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC17[rip]
	mulsd	xmm0, xmm1
	mov	eax, DWORD PTR -100[rbp]
	add	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movq	rcx, xmm0
	mov	edx, DWORD PTR -96[rbp]
	mov	eax, DWORD PTR -100[rbp]
	movq	xmm0, rcx
	mov	esi, eax
	lea	rdi, .LC21[rip]
	mov	eax, 1
	call	printf@PLT
	cmp	QWORD PTR -64[rbp], 0
	je	.L153
	mov	edx, DWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	storefile
.L153:
	mov	eax, DWORD PTR -96[rbp]
	lea	esi, -16[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdi, 16[rax]
	mov	edx, DWORD PTR -84[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	ecx, edx
	mov	rdx, rax
	call	BGBDT_FeLz8_DecodeBuffer
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	je	.L154
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, DWORD PTR -84[rbp]
	mov	esi, eax
	lea	rdi, .LC22[rip]
	mov	eax, 0
	call	printf@PLT
.L154:
	mov	eax, DWORD PTR -84[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	je	.L155
	lea	rdi, .LC23[rip]
	call	puts@PLT
	mov	eax, -1
	jmp	.L165
.L155:
	mov	eax, 0
	call	FRGL_TimeMS
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, 10000
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -92[rbp], eax
	lea	rdi, .LC24[rip]
	call	puts@PLT
	mov	QWORD PTR -56[rbp], 0
	jmp	.L156
.L158:
	movzx	edi, BYTE PTR -101[rbp]
	mov	eax, DWORD PTR -100[rbp]
	lea	ecx, [rax+rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 16[rax]
	mov	esi, DWORD PTR -100[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	BGBDT_FeLz8_EncodeBuffer
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	add	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, DWORD PTR -80[rbp]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movsd	xmm1, QWORD PTR .LC25[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, QWORD PTR -56[rbp]
	movsd	xmm2, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR .LC26[rip]
	mulsd	xmm1, xmm2
	divsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	lea	rdi, .LC27[rip]
	mov	eax, 2
	call	printf@PLT
	mov	eax, 0
	call	FRGL_TimeMS
	mov	DWORD PTR -92[rbp], eax
.L156:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L157
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jge	.L158
.L157:
	mov	edi, 10
	call	putchar@PLT
	mov	eax, 0
	call	FRGL_TimeMS
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, 10000
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -92[rbp], eax
	lea	rdi, .LC28[rip]
	call	puts@PLT
	mov	QWORD PTR -56[rbp], 0
	jmp	.L159
.L161:
	mov	eax, DWORD PTR -96[rbp]
	lea	esi, -16[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdi, 16[rax]
	mov	edx, DWORD PTR -84[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	ecx, edx
	mov	rdx, rax
	call	BGBDT_FeLz8_DecodeBuffer
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, DWORD PTR -80[rbp]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movsd	xmm1, QWORD PTR .LC25[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, QWORD PTR -56[rbp]
	movsd	xmm2, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR .LC26[rip]
	mulsd	xmm1, xmm2
	divsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	lea	rdi, .LC27[rip]
	mov	eax, 2
	call	printf@PLT
	mov	eax, 0
	call	FRGL_TimeMS
	mov	DWORD PTR -92[rbp], eax
.L159:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L160
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jge	.L161
.L160:
	mov	edi, 10
	call	putchar@PLT
	mov	eax, 0
	call	FRGL_TimeMS
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, 1000
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -92[rbp], eax
	lea	rdi, .LC29[rip]
	call	puts@PLT
	mov	QWORD PTR -56[rbp], 0
	jmp	.L162
.L164:
	mov	edx, DWORD PTR -84[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	felz_memcpy32
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	add	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -92[rbp]
	sub	eax, DWORD PTR -80[rbp]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	movsd	xmm1, QWORD PTR .LC25[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, QWORD PTR -56[rbp]
	movsd	xmm2, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR .LC26[rip]
	mulsd	xmm1, xmm2
	divsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	lea	rdi, .LC27[rip]
	mov	eax, 2
	call	printf@PLT
	mov	eax, 0
	call	FRGL_TimeMS
	mov	DWORD PTR -92[rbp], eax
.L162:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L163
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -80[rbp]
	jge	.L164
.L163:
	mov	edi, 10
	call	putchar@PLT
	mov	eax, 0
	jmp	.L165
.L152:
	mov	eax, 0
.L165:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L166
	call	__stack_chk_fail@PLT
.L166:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.local	secbase.0
	.comm	secbase.0,4,4
	.section	.rodata
	.align 8
.LC17:
	.long	0
	.long	1079574528
	.align 8
.LC25:
	.long	0
	.long	1083129856
	.align 8
.LC26:
	.long	0
	.long	1093567616
	.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	"320510.c"
	.text
	.align	2
	.global	bgbdt_felz_getu32
	.syntax unified
	.arm
	.fpu softvfp
	.type	bgbdt_felz_getu32, %function
bgbdt_felz_getu32:
	@ 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]
	ldr	r3, .L5
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L2
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	b	.L3
.L2:
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	orr	r3, r2, r3
	str	r3, [fp, #-8]
.L3:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L6:
	.align	2
.L5:
	.word	tv.6159
	.size	bgbdt_felz_getu32, .-bgbdt_felz_getu32
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	FRGL_TimeMS
	.syntax unified
	.arm
	.fpu softvfp
	.type	FRGL_TimeMS, %function
FRGL_TimeMS:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L11
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #16
	mov	r1, #0
	mov	r0, r3
	bl	gettimeofday
	ldr	r3, .L11+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L8
	ldr	r3, [fp, #-16]
	ldr	r2, .L11+4
	str	r3, [r2]
.L8:
	ldr	r2, [fp, #-16]
	ldr	r3, .L11+4
	ldr	r3, [r3]
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r3, [fp, #-12]
	ldr	r2, .L11+8
	smull	r0, r2, r3, r2
	asr	r2, r2, #6
	asr	r3, r3, #31
	sub	r3, r2, r3
	add	r3, r1, r3
	ldr	r2, .L11
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L10
	bl	__stack_chk_fail
.L10:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	.LC0
	.word	secbase.6171
	.word	274877907
	.size	FRGL_TimeMS, .-FRGL_TimeMS
	.align	2
	.global	BGBDT_FeLz8_LookupMatchA
	.syntax unified
	.arm
	.fpu softvfp
	.type	BGBDT_FeLz8_LookupMatchA, %function
BGBDT_FeLz8_LookupMatchA:
	@ args = 8, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	str	r0, [fp, #-88]
	str	r1, [fp, #-92]
	str	r2, [fp, #-96]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-88]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L14
	ldr	r0, [fp, #-92]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-56]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #12
	sub	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	lsr	r3, r3, #16
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #262144
	add	r3, r3, #16
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-88]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-52]
	lsl	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-88]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-96]
	sub	r3, r2, r3
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L15
.L29:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	and	r3, r3, r2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	orr	r2, r2, r3
	ldr	r3, [fp, #-88]
	add	r2, r2, #4
	ldr	r3, [r3, r2, lsl #2]
	ldr	r2, [fp, #-56]
	eor	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bcs	.L35
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	lsr	r3, r3, #16
	cmp	r3, #0
	bne	.L35
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #256
	add	r3, r3, #2
	str	r3, [fp, #-80]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	bcs	.L19
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-80]
.L19:
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-76]
	b	.L20
.L27:
	ldr	r0, [fp, #-84]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-76]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-12]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	beq	.L21
	b	.L22
.L25:
	ldr	r3, [fp, #-84]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-76]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L36
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L22:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	bcc	.L25
	b	.L26
.L36:
	nop
	b	.L26
.L21:
	ldr	r3, [fp, #-84]
	add	r3, r3, #4
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-76]
	add	r3, r3, #4
	str	r3, [fp, #-76]
.L20:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	bcc	.L27
.L26:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-92]
	sub	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-72]
	ldr	r2, .L37
	cmp	r3, r2
	ble	.L28
	ldr	r3, .L37
	str	r3, [fp, #-72]
.L28:
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	ble	.L18
	ldr	r3, [fp, #-8]
	cmp	r3, #65536
	bge	.L18
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-64]
	b	.L18
.L35:
	nop
.L18:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L15:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	blt	.L29
	ldr	r3, [fp, #-68]
	cmp	r3, #3
	ble	.L30
	ldr	r3, [fp, #-64]
	cmp	r3, #65536
	bge	.L30
	mov	r3, #1
	b	.L31
.L30:
	mov	r3, #0
.L31:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L32
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	ldr	r2, [fp, #-36]
	and	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	and	r1, r3, #255
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #262144
	add	r3, r3, #16
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-44]
	orr	r2, r2, r3
	ldr	r1, [fp, #-32]
	ldr	r3, [fp, #-56]
	eor	r1, r1, r3
	ldr	r3, [fp, #-88]
	add	r2, r2, #4
	str	r1, [r3, r2, lsl #2]
.L32:
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-68]
	str	r2, [r3]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-64]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	b	.L33
.L14:
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #-96]
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-88]
	bl	BGBDT_FeLz8_LookupMatchB
	mov	r3, r0
.L33:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L38:
	.align	2
.L37:
	.word	258
	.size	BGBDT_FeLz8_LookupMatchA, .-BGBDT_FeLz8_LookupMatchA
	.align	2
	.global	BGBDT_FeLz8_UpdateStringA
	.syntax unified
	.arm
	.fpu softvfp
	.type	BGBDT_FeLz8_UpdateStringA, %function
BGBDT_FeLz8_UpdateStringA:
	@ 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, [fp, #-32]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L40
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-28]
	b	.L41
.L42:
	ldr	r0, [fp, #-36]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-20]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #12
	sub	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	lsr	r3, r3, #16
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	lsl	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	add	r3, r3, #262144
	add	r3, r3, #16
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	and	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r1, r3, #255
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	add	r3, r3, #262144
	add	r3, r3, #16
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	mov	r1, r3
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	orr	r2, r2, r3
	ldr	r3, [fp, #-20]
	eor	r1, r1, r3
	ldr	r3, [fp, #-32]
	add	r2, r2, #4
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L41:
	ldr	r3, [fp, #-28]
	sub	r2, r3, #1
	str	r2, [fp, #-28]
	cmp	r3, #0
	bne	.L42
	mov	r3, #0
	b	.L43
.L40:
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	BGBDT_FeLz8_UpdateStringB
	mov	r3, r0
.L43:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	BGBDT_FeLz8_UpdateStringA, .-BGBDT_FeLz8_UpdateStringA
	.align	2
	.global	BGBDT_FeLz8_LookupMatchB
	.syntax unified
	.arm
	.fpu softvfp
	.type	BGBDT_FeLz8_LookupMatchB, %function
BGBDT_FeLz8_LookupMatchB:
	@ args = 8, 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, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r0, [fp, #-60]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-40]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #12
	sub	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	lsr	r3, r3, #16
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-36]
	add	r2, r2, #4
	ldr	r3, [r3, r2, lsl #2]
	ldr	r2, [fp, #-40]
	eor	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-64]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-40]
	eor	r1, r2, r3
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-36]
	add	r2, r2, #4
	str	r1, [r3, r2, lsl #2]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bcs	.L45
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	lsr	r3, r3, #16
	cmp	r3, #0
	beq	.L46
.L45:
	ldr	r3, [fp, #4]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #8]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	b	.L47
.L46:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	add	r3, r3, #256
	add	r3, r3, #2
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	bcs	.L48
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-48]
.L48:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-44]
	b	.L49
.L56:
	ldr	r0, [fp, #-52]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-44]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L50
	b	.L51
.L54:
	ldr	r3, [fp, #-52]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L61
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L51:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	bcc	.L54
	b	.L55
.L61:
	nop
	b	.L55
.L50:
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-44]
	add	r3, r3, #4
	str	r3, [fp, #-44]
.L49:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	bcc	.L56
.L55:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	bls	.L57
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-52]
.L57:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-60]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	ble	.L58
	ldr	r3, [fp, #-8]
	cmp	r3, #65536
	bge	.L58
	mov	r3, #1
	b	.L47
.L58:
	mov	r3, #0
.L47:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	BGBDT_FeLz8_LookupMatchB, .-BGBDT_FeLz8_LookupMatchB
	.align	2
	.global	BGBDT_FeLz8_UpdateStringB
	.syntax unified
	.arm
	.fpu softvfp
	.type	BGBDT_FeLz8_UpdateStringB, %function
BGBDT_FeLz8_UpdateStringB:
	@ args = 4, 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	r3, [fp, #4]
	str	r3, [fp, #-16]
	b	.L63
.L64:
	ldr	r0, [fp, #-28]
	bl	bgbdt_felz_getu32
	str	r0, [fp, #-12]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #12
	sub	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r3, r2
	lsr	r3, r3, #16
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-12]
	eor	r1, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	add	r2, r2, #4
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L63:
	ldr	r3, [fp, #-16]
	sub	r2, r3, #1
	str	r2, [fp, #-16]
	cmp	r3, #0
	bne	.L64
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	BGBDT_FeLz8_UpdateStringB, .-BGBDT_FeLz8_UpdateStringB
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	BGBDT_FeLz8_EncodeBufferCtx
	.syntax unified
	.arm
	.fpu softvfp
	.type	BGBDT_FeLz8_EncodeBufferCtx, %function
BGBDT_FeLz8_EncodeBufferCtx:
	@ args = 8, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #92
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	str	r3, [fp, #-92]
	ldr	r3, .L100
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L100+4
	str	r3, [fp, #-64]
	ldr	r3, .L100+8
	str	r3, [fp, #-60]
	ldr	r3, [fp, #8]
	cmp	r3, #9
	ldrls	pc, [pc, r3, asl #2]
	b	.L67
.L69:
	.word	.L74
	.word	.L74
	.word	.L73
	.word	.L72
	.word	.L71
	.word	.L70
	.word	.L68
	.word	.L68
	.word	.L68
	.word	.L68
.L74:
	ldr	r3, .L100+12
	str	r3, [fp, #-64]
	ldr	r3, .L100+16
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-80]
	mov	r2, #0
	strb	r2, [r3, #4]
	b	.L67
.L73:
	ldr	r3, [fp, #-80]
	mov	r2, #1
	strb	r2, [r3, #4]
	b	.L67
.L72:
	ldr	r3, [fp, #-80]
	mov	r2, #2
	strb	r2, [r3, #4]
	b	.L67
.L71:
	ldr	r3, [fp, #-80]
	mov	r2, #3
	strb	r2, [r3, #4]
	b	.L67
.L70:
	ldr	r3, [fp, #-80]
	mov	r2, #4
	strb	r2, [r3, #4]
	b	.L67
.L68:
	ldr	r3, [fp, #-80]
	mov	r2, #4
	strb	r2, [r3, #4]
	nop
.L67:
	ldr	r3, [fp, #-80]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #4096
	lsl	r3, r3, r2
	str	r3, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L75
.L76:
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-32]
	add	r2, r2, #4
	mov	r1, #0
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L75:
	ldr	r3, [fp, #-72]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L76
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L77
.L78:
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	add	r3, r3, #262144
	add	r3, r3, #16
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L77:
	ldr	r3, [fp, #-32]
	cmp	r3, #4096
	blt	.L78
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-84]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-84]
	add	r2, r2, r3
	ldr	r3, [fp, #-80]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	mvn	r3, #0
	str	r3, [fp, #-36]
	b	.L79
.L92:
	sub	r3, fp, #68
	str	r3, [sp, #4]
	sub	r3, fp, #72
	str	r3, [sp]
	ldr	r4, [fp, #-64]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-84]
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	blx	r4
	mov	r3, r0
	cmp	r3, #0
	beq	.L80
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	b	.L81
.L85:
	ldr	r3, [fp, #-40]
	cmp	r3, #16384
	blt	.L82
	ldr	r3, .L100+20
	str	r3, [fp, #-40]
.L82:
	ldr	r3, [fp, #-40]
	orr	r3, r3, #32768
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	felz_setu16le
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-32]
	b	.L83
.L84:
	ldr	r2, [fp, #-52]
	add	r3, r2, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r1, r3, #1
	str	r1, [fp, #-48]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L83:
	ldr	r3, [fp, #-32]
	sub	r2, r3, #1
	str	r2, [fp, #-32]
	cmp	r3, #0
	bne	.L84
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
.L81:
	ldr	r3, [fp, #-40]
	cmp	r3, #63
	bgt	.L85
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bne	.L86
	mov	r3, #0
	str	r3, [fp, #-44]
.L86:
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	cmp	r3, #7
	bgt	.L87
	ldr	r3, [fp, #-44]
	cmp	r3, #15
	bgt	.L87
	ldr	r3, [fp, #-72]
	cmp	r3, #34
	bgt	.L87
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #9
	orr	r2, r3, #49152
	ldr	r3, [fp, #-72]
	sub	r3, r3, #3
	lsl	r3, r3, #4
	orr	r2, r2, r3
	ldr	r3, [fp, #-44]
	orr	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	felz_setu16le
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	b	.L88
.L87:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L89
	ldr	r3, [fp, #-68]
	cmp	r3, #512
	bge	.L89
	ldr	r3, [fp, #-72]
	cmp	r3, #34
	bgt	.L89
	ldr	r3, [fp, #-72]
	sub	r3, r3, #3
	lsl	r3, r3, #9
	orr	r2, r3, #16384
	ldr	r3, [fp, #-68]
	orr	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	felz_setu16le
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	b	.L88
.L89:
	ldr	r3, [fp, #-68]
	lsl	r2, r3, #16
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #8
	orr	r2, r2, r3
	ldr	r3, [fp, #-72]
	sub	r3, r3, #3
	orr	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	bgbdt_felz_setu32le
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	str	r3, [fp, #-48]
.L88:
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-32]
	b	.L90
.L91:
	ldr	r2, [fp, #-52]
	add	r3, r2, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r1, r3, #1
	str	r1, [fp, #-48]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L90:
	ldr	r3, [fp, #-32]
	sub	r2, r3, #1
	str	r2, [fp, #-32]
	cmp	r3, #0
	bne	.L91
	ldr	r3, [fp, #-72]
	str	r3, [sp]
	ldr	r4, [fp, #-60]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-84]
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	blx	r4
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	b	.L79
.L80:
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L79:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bcc	.L92
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	b	.L93
.L97:
	ldr	r3, [fp, #-40]
	cmp	r3, #16384
	blt	.L94
	ldr	r3, .L100+20
	str	r3, [fp, #-40]
.L94:
	ldr	r3, [fp, #-40]
	orr	r3, r3, #32768
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	felz_setu16le
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-32]
	b	.L95
.L96:
	ldr	r2, [fp, #-52]
	add	r3, r2, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r1, r3, #1
	str	r1, [fp, #-48]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L95:
	ldr	r3, [fp, #-32]
	sub	r2, r3, #1
	str	r2, [fp, #-32]
	cmp	r3, #0
	bne	.L96
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
.L93:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bgt	.L97
	mov	r1, #32768
	ldr	r0, [fp, #-48]
	bl	felz_setu16le
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-92]
	sub	r3, r2, r3
	ldr	r2, .L100
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L99
	bl	__stack_chk_fail
.L99:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L101:
	.align	2
.L100:
	.word	.LC1
	.word	BGBDT_FeLz8_LookupMatchA
	.word	BGBDT_FeLz8_UpdateStringA
	.word	BGBDT_FeLz8_LookupMatchB
	.word	BGBDT_FeLz8_UpdateStringB
	.word	16383
	.size	BGBDT_FeLz8_EncodeBufferCtx, .-BGBDT_FeLz8_EncodeBufferCtx
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	BGBDT_FeLz8_EncodeBuffer
	.syntax unified
	.arm
	.fpu softvfp
	.type	BGBDT_FeLz8_EncodeBuffer, %function
BGBDT_FeLz8_EncodeBuffer:
	@ args = 4, pretend = 0, frame = 266280
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #266240
	sub	sp, sp, #48
	sub	ip, fp, #266240
	sub	ip, ip, #4
	str	r0, [ip, #-28]
	sub	r0, fp, #266240
	sub	r0, r0, #4
	str	r1, [r0, #-32]
	sub	r1, fp, #266240
	sub	r1, r1, #4
	str	r2, [r1, #-36]
	sub	r2, fp, #266240
	sub	r2, r2, #4
	str	r3, [r2, #-40]
	ldr	r3, .L105
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #266240
	sub	r3, r3, #4
	mov	ip, r3
	sub	r3, fp, #266240
	sub	r3, r3, #4
	mov	r2, r3
	sub	r3, fp, #266240
	sub	r3, r3, #4
	mov	r1, r3
	sub	r0, fp, #266240
	sub	r0, r0, #4
	sub	r0, r0, #20
	ldr	r3, [fp, #4]
	str	r3, [sp, #4]
	sub	r3, fp, #266240
	sub	r3, r3, #4
	ldr	r3, [r3, #-40]
	str	r3, [sp]
	ldr	r3, [ip, #-36]
	ldr	r2, [r2, #-32]
	ldr	r1, [r1, #-28]
	bl	BGBDT_FeLz8_EncodeBufferCtx
	mov	r3, r0
	ldr	r2, .L105
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L104
	bl	__stack_chk_fail
.L104:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L106:
	.align	2
.L105:
	.word	.LC2
	.size	BGBDT_FeLz8_EncodeBuffer, .-BGBDT_FeLz8_EncodeBuffer
	.align	2
	.global	BGBDT_FeLz8_DecodeBuffer
	.syntax unified
	.arm
	.fpu softvfp
	.type	BGBDT_FeLz8_DecodeBuffer, %function
BGBDT_FeLz8_DecodeBuffer:
	@ 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, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	mov	r3, #1
	str	r3, [fp, #-28]
	b	.L108
.L120:
	ldr	r0, [fp, #-48]
	bl	bgbdt_felz_getu32le
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #14
	and	r3, r3, #3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L109
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	bne	.L110
	ldr	r3, [fp, #-48]
	sub	r3, r3, #2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #4
	and	r3, r3, #31
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #9
	and	r3, r3, #7
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L111
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-36]
	b	.L111
.L110:
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bne	.L112
	ldr	r3, [fp, #-48]
	sub	r3, r3, #2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #9
	and	r3, r3, #31
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L111
.L112:
	ldr	r3, [fp, #-12]
	cmp	r3, #2
	bne	.L113
	ldr	r3, [fp, #-48]
	sub	r3, r3, #2
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #18
	lsr	r3, r3, #18
	str	r3, [fp, #-32]
	b	.L111
.L113:
	bl	__debugbreak
	b	.L111
.L109:
	ldr	r3, [fp, #-16]
	and	r3, r3, #255
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #8
	and	r3, r3, #63
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #16
	str	r3, [fp, #-36]
.L111:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L114
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L115
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-44]
	bl	felz_memcpy8f
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-48]
.L115:
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-40]
	add	r3, r3, #3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	cmp	r3, #7
	bgt	.L116
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-44]
	bl	felz_memcpy8
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	b	.L108
.L116:
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-44]
	bl	felz_memcpy8f
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	b	.L108
.L114:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L122
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-44]
	bl	felz_memcpy8f
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	nop
.L108:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L120
	b	.L119
.L122:
	nop
.L119:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-64]
	sub	r3, r2, r3
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	BGBDT_FeLz8_DecodeBuffer, .-BGBDT_FeLz8_DecodeBuffer
	.section	.rodata
	.align	2
.LC3:
	.ascii	"rb\000"
	.text
	.align	2
	.global	loadfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	loadfile, %function
loadfile:
	@ 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	r1, .L126
	ldr	r0, [fp, #-24]
	bl	fopen
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L124
	mov	r3, #0
	b	.L125
.L124:
	mov	r2, #2
	mov	r1, #0
	ldr	r0, [fp, #-20]
	bl	fseek
	ldr	r0, [fp, #-20]
	bl	ftell
	str	r0, [fp, #-16]
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-20]
	bl	fseek
	ldr	r3, [fp, #-16]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	mov	r1, #1
	ldr	r0, [fp, #-12]
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-20]
	bl	fclose
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
.L125:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L127:
	.align	2
.L126:
	.word	.LC3
	.size	loadfile, .-loadfile
	.section	.rodata
	.align	2
.LC4:
	.ascii	"wb\000"
	.align	2
.LC5:
	.ascii	"Fail Open Write %s\012\000"
	.text
	.align	2
	.global	storefile
	.syntax unified
	.arm
	.fpu softvfp
	.type	storefile, %function
storefile:
	@ 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	r1, .L131
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L129
	ldr	r1, [fp, #-16]
	ldr	r0, .L131+4
	bl	printf
	mvn	r3, #0
	b	.L130
.L129:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-8]
	mov	r1, #1
	ldr	r0, [fp, #-20]
	bl	fwrite
	ldr	r0, [fp, #-8]
	bl	fclose
	mov	r3, #0
.L130:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L132:
	.align	2
.L131:
	.word	.LC4
	.word	.LC5
	.size	storefile, .-storefile
	.align	2
	.global	felz_memcpy32
	.syntax unified
	.arm
	.fpu softvfp
	.type	felz_memcpy32, %function
felz_memcpy32:
	@ 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	r3, [fp, #-28]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	add	r3, r3, #3
	add	r2, r3, #3
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	b	.L134
.L135:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #4]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #8]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #12
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #12]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #16
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16
	str	r3, [fp, #-16]
.L134:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L135
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	felz_memcpy32, .-felz_memcpy32
	.section	.rodata
	.align	2
.LC6:
	.ascii	"usage: %s opts* infile outfile\012\000"
	.align	2
.LC7:
	.ascii	"\011-d Decode\000"
	.align	2
.LC8:
	.ascii	"\011-1 .. -9 Compression Level\000"
	.text
	.align	2
	.global	help
	.syntax unified
	.arm
	.fpu softvfp
	.type	help, %function
help:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, .L139
	bl	printf
	ldr	r0, .L139+4
	bl	puts
	ldr	r0, .L139+8
	bl	puts
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L140:
	.align	2
.L139:
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.size	help, .-help
	.section	.rodata
	.align	2
.LC9:
	.ascii	"-d\000"
	.align	2
.LC10:
	.ascii	"-t\000"
	.align	2
.LC11:
	.ascii	"-1\000"
	.align	2
.LC12:
	.ascii	"-2\000"
	.align	2
.LC13:
	.ascii	"-3\000"
	.align	2
.LC14:
	.ascii	"-4\000"
	.align	2
.LC15:
	.ascii	"-5\000"
	.align	2
.LC16:
	.ascii	"-6\000"
	.align	2
.LC17:
	.ascii	"-7\000"
	.align	2
.LC18:
	.ascii	"-8\000"
	.align	2
.LC19:
	.ascii	"-9\000"
	.global	__aeabi_i2d
	.global	__aeabi_dmul
	.global	__aeabi_ddiv
	.align	2
.LC20:
	.ascii	"Enc %d -> %d (%.2f%%)\012\000"
	.align	2
.LC21:
	.ascii	"FeLZ08\000"
	.align	2
.LC22:
	.ascii	"FeLZ Magic Failed\000"
	.align	2
.LC23:
	.ascii	"Test %d -> %d (%.2f%%)\012\000"
	.align	2
.LC24:
	.ascii	"Size Mismatch %d -> %d\012\000"
	.align	2
.LC25:
	.ascii	"Data Mismatch\000"
	.align	2
.LC26:
	.ascii	"Encode:\000"
	.global	__aeabi_l2d
	.align	2
.LC27:
	.ascii	"%.2fs %.2fMB/s  \015\000"
	.align	2
.LC28:
	.ascii	"Decode:\000"
	.align	2
.LC29:
	.ascii	"Memcpy:\000"
	.align	2
.LC30:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #124
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	ldr	r3, .L182
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-108]
	mov	r3, #0
	str	r3, [fp, #-104]
	mov	r3, #0
	strb	r3, [fp, #-118]
	mov	r3, #1
	strb	r3, [fp, #-117]
	mov	r3, #1
	str	r3, [fp, #-96]
	b	.L142
.L157:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L143
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+4
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L144
	mov	r3, #1
	strb	r3, [fp, #-118]
	b	.L145
.L144:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+8
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L146
	mov	r3, #2
	strb	r3, [fp, #-118]
	b	.L145
.L146:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+12
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L147
	mov	r3, #1
	strb	r3, [fp, #-117]
	b	.L145
.L147:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+16
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L148
	mov	r3, #2
	strb	r3, [fp, #-117]
	b	.L145
.L148:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+20
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L149
	mov	r3, #3
	strb	r3, [fp, #-117]
	b	.L145
.L149:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+24
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L150
	mov	r3, #4
	strb	r3, [fp, #-117]
	b	.L145
.L150:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+28
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L151
	mov	r3, #5
	strb	r3, [fp, #-117]
	b	.L145
.L151:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+32
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L152
	mov	r3, #6
	strb	r3, [fp, #-117]
	b	.L145
.L152:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+36
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L153
	mov	r3, #7
	strb	r3, [fp, #-117]
	b	.L145
.L153:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+40
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L154
	mov	r3, #8
	strb	r3, [fp, #-117]
	b	.L145
.L154:
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, .L182+44
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L181
	mov	r3, #9
	strb	r3, [fp, #-117]
	b	.L145
.L143:
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bne	.L156
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	b	.L145
.L156:
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L145
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-132]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-104]
	b	.L145
.L181:
	nop
.L145:
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	str	r3, [fp, #-96]
.L142:
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	blt	.L157
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	beq	.L158
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L159
.L158:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	mov	r0, r3
	bl	help
	mvn	r3, #0
	b	.L179
.L159:
	ldrb	r3, [fp, #-118]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L161
	sub	r3, fp, #116
	mov	r1, r3
	ldr	r0, [fp, #-108]
	bl	loadfile
	str	r0, [fp, #-92]
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-88]
	ldr	r1, [fp, #-116]
	ldr	r3, [fp, #-88]
	add	r2, r3, #16
	ldr	r3, [fp, #-116]
	lsl	r0, r3, #1
	ldrb	r3, [fp, #-117]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-92]
	bl	BGBDT_FeLz8_EncodeBuffer
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	add	r3, r3, #16
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-88]
	mov	r2, #70
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	mov	r2, #101
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #2
	mov	r2, #76
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #3
	mov	r2, #90
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	mov	r2, #48
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #5
	mov	r2, #56
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #6
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #7
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r2, [fp, #-112]
	mov	r1, r2
	mov	r0, r3
	bl	bgbdt_felz_setu32le
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r2, [fp, #-116]
	mov	r1, r2
	mov	r0, r3
	bl	bgbdt_felz_setu32le
	ldr	r4, [fp, #-116]
	ldr	r5, [fp, #-112]
	ldr	r3, [fp, #-112]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L182+48
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	mov	r2, r5
	mov	r1, r4
	ldr	r0, .L182+52
	bl	printf
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	beq	.L162
	ldr	r3, [fp, #-112]
	mov	r2, r3
	ldr	r1, [fp, #-88]
	ldr	r0, [fp, #-104]
	bl	storefile
.L162:
	mov	r3, #0
	b	.L179
.L161:
	ldrb	r3, [fp, #-118]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L163
	sub	r3, fp, #112
	mov	r1, r3
	ldr	r0, [fp, #-108]
	bl	loadfile
	str	r0, [fp, #-92]
	mov	r2, #6
	ldr	r1, .L182+56
	ldr	r0, [fp, #-92]
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L164
	ldr	r3, [fp, #-92]
	add	r3, r3, #6
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L164
	ldr	r3, [fp, #-92]
	add	r3, r3, #7
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L165
.L164:
	ldr	r0, .L182+60
	bl	puts
	mvn	r3, #0
	b	.L179
.L165:
	ldr	r3, [fp, #-92]
	add	r3, r3, #8
	mov	r0, r3
	bl	bgbdt_felz_getu32le
	mov	r3, r0
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-92]
	add	r3, r3, #12
	mov	r0, r3
	bl	bgbdt_felz_getu32le
	mov	r3, r0
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	add	r3, r3, #4096
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-92]
	add	r0, r3, #16
	ldr	r3, [fp, #-112]
	sub	r1, r3, #16
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-88]
	bl	BGBDT_FeLz8_DecodeBuffer
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-88]
	ldr	r0, [fp, #-104]
	bl	storefile
	mov	r3, #0
	b	.L179
.L163:
	ldrb	r3, [fp, #-118]	@ zero_extendqisi2
	cmp	r3, #2
	bne	.L166
	sub	r3, fp, #116
	mov	r1, r3
	ldr	r0, [fp, #-108]
	bl	loadfile
	str	r0, [fp, #-92]
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-80]
	ldr	r1, [fp, #-116]
	ldr	r3, [fp, #-88]
	add	r2, r3, #16
	ldr	r3, [fp, #-116]
	lsl	r0, r3, #1
	ldrb	r3, [fp, #-117]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-92]
	bl	BGBDT_FeLz8_EncodeBuffer
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	add	r3, r3, #16
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-88]
	mov	r2, #70
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	mov	r2, #101
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #2
	mov	r2, #76
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #3
	mov	r2, #90
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	mov	r2, #48
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #5
	mov	r2, #56
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #6
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #7
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r2, [fp, #-112]
	mov	r1, r2
	mov	r0, r3
	bl	bgbdt_felz_setu32le
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r2, [fp, #-116]
	mov	r1, r2
	mov	r0, r3
	bl	bgbdt_felz_setu32le
	ldr	r10, [fp, #-116]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-112]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L182+48
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-144]
	mov	r1, r10
	ldr	r0, .L182+64
	bl	printf
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	beq	.L167
	ldr	r3, [fp, #-112]
	mov	r2, r3
	ldr	r1, [fp, #-88]
	ldr	r0, [fp, #-104]
	bl	storefile
.L167:
	ldr	r3, [fp, #-88]
	add	r0, r3, #16
	ldr	r3, [fp, #-112]
	sub	r1, r3, #16
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-84]
	bl	BGBDT_FeLz8_DecodeBuffer
	str	r0, [fp, #-96]
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	beq	.L168
	ldr	r2, [fp, #-96]
	ldr	r1, [fp, #-80]
	ldr	r0, .L182+68
	bl	printf
.L168:
	ldr	r3, [fp, #-80]
	mov	r2, r3
	ldr	r1, [fp, #-84]
	ldr	r0, [fp, #-92]
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L169
	ldr	r0, .L182+72
	bl	puts
	mvn	r3, #0
	b	.L179
.L169:
	bl	FRGL_TimeMS
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #9984
	add	r3, r3, #16
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-100]
	ldr	r0, .L182+76
	bl	puts
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	b	.L170
.L172:
	ldr	r1, [fp, #-116]
	ldr	r3, [fp, #-88]
	add	r2, r3, #16
	ldr	r3, [fp, #-116]
	lsl	r0, r3, #1
	ldrb	r3, [fp, #-117]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-92]
	bl	BGBDT_FeLz8_EncodeBuffer
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-116]
	mov	r2, r3
	asr	r3, r2, #31
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-140]
	adc	r3, r1, r3
	str	r3, [fp, #-136]
	sub	r4, fp, #140
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-68]
	str	r4, [fp, #-64]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-76]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L182+80
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_l2d
	mov	r4, r0
	mov	r5, r1
	mov	r2, #0
	ldr	r3, .L182+84
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r0, .L182+88
	bl	printf
	bl	FRGL_TimeMS
	str	r0, [fp, #-100]
.L170:
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	bge	.L171
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	bge	.L172
.L171:
	mov	r0, #10
	bl	putchar
	bl	FRGL_TimeMS
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #9984
	add	r3, r3, #16
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-100]
	ldr	r0, .L182+92
	bl	puts
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	b	.L173
.L175:
	ldr	r3, [fp, #-88]
	add	r0, r3, #16
	ldr	r3, [fp, #-112]
	sub	r1, r3, #16
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-84]
	bl	BGBDT_FeLz8_DecodeBuffer
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	mov	r2, r3
	asr	r3, r2, #31
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	adds	r8, r0, r2
	adc	r9, r1, r3
	str	r8, [fp, #-68]
	str	r9, [fp, #-64]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-76]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L182+80
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_l2d
	mov	r4, r0
	mov	r5, r1
	mov	r2, #0
	ldr	r3, .L182+84
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r0, .L182+88
	bl	printf
	bl	FRGL_TimeMS
	str	r0, [fp, #-100]
.L173:
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	bge	.L174
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	bge	.L175
.L174:
	mov	r0, #10
	bl	putchar
	bl	FRGL_TimeMS
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1000
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-100]
	ldr	r0, .L182+96
	bl	puts
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	b	.L176
.L178:
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-84]
	bl	felz_memcpy32
	ldr	r3, [fp, #-80]
	mov	r2, r3
	asr	r3, r2, #31
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	adds	r6, r0, r2
	adc	r7, r1, r3
	str	r6, [fp, #-68]
	str	r7, [fp, #-64]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-76]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L182+80
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_l2d
	mov	r4, r0
	mov	r5, r1
	mov	r2, #0
	ldr	r3, .L182+84
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	stm	sp, {r2-r3}
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	ldr	r0, .L182+88
	bl	printf
	bl	FRGL_TimeMS
	str	r0, [fp, #-100]
.L176:
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	bge	.L177
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	bge	.L178
.L177:
	mov	r0, #10
	bl	putchar
	mov	r3, #0
	b	.L179
.L166:
	mov	r3, #0
.L179:
	ldr	r2, .L182
	ldr	r1, [r2]
	ldr	r2, [fp, #-40]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L180
	bl	__stack_chk_fail
.L180:
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L183:
	.align	2
.L182:
	.word	.LC30
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	1079574528
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	1083129856
	.word	1093567616
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.size	main, .-main
	.data
	.align	2
	.type	tv.6159, %object
	.size	tv.6159, 4
tv.6159:
	.word	1
	.local	secbase.6171
	.comm	secbase.6171,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
