	.file	"111830.c"
	.intel_syntax noprefix
	.text
	.data
	.align 32
	.type	rcs_ident, @object
	.size	rcs_ident, 56
rcs_ident:
	.string	"Based on compress.c,v 4.0 85/07/30 12:50:00 joe Release"
	.globl	magic_header
	.type	magic_header, @object
	.size	magic_header, 3
magic_header:
	.string	"\037\235"
	.globl	n_bits
	.bss
	.align 4
	.type	n_bits, @object
	.size	n_bits, 4
n_bits:
	.zero	4
	.globl	maxbits
	.data
	.align 4
	.type	maxbits, @object
	.size	maxbits, 4
maxbits:
	.long	16
	.globl	maxcode
	.bss
	.align 8
	.type	maxcode, @object
	.size	maxcode, 8
maxcode:
	.zero	8
	.globl	maxmaxcode
	.data
	.align 8
	.type	maxmaxcode, @object
	.size	maxmaxcode, 8
maxmaxcode:
	.quad	65536
	.globl	htab
	.bss
	.align 32
	.type	htab, @object
	.size	htab, 552008
htab:
	.zero	552008
	.globl	codetab
	.align 32
	.type	codetab, @object
	.size	codetab, 138002
codetab:
	.zero	138002
	.globl	hsize
	.data
	.align 8
	.type	hsize, @object
	.size	hsize, 8
hsize:
	.quad	69001
	.globl	fsize
	.bss
	.align 8
	.type	fsize, @object
	.size	fsize, 8
fsize:
	.zero	8
	.globl	free_ent
	.align 8
	.type	free_ent, @object
	.size	free_ent, 8
free_ent:
	.zero	8
	.globl	exit_stat
	.align 4
	.type	exit_stat, @object
	.size	exit_stat, 4
exit_stat:
	.zero	4
	.section	.rodata
	.align 8
.LC0:
	.string	"Usage: compress [-dfvcV] [-b maxbits] [file ...]\n"
	.text
	.globl	Usage
	.type	Usage, @function
Usage:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 49
	mov	esi, 1
	lea	rdi, .LC0[rip]
	call	fwrite@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	Usage, .-Usage
	.globl	nomagic
	.bss
	.align 4
	.type	nomagic, @object
	.size	nomagic, 4
nomagic:
	.zero	4
	.globl	zcat_flg
	.align 4
	.type	zcat_flg, @object
	.size	zcat_flg, 4
zcat_flg:
	.zero	4
	.globl	quiet
	.data
	.align 4
	.type	quiet, @object
	.size	quiet, 4
quiet:
	.long	1
	.globl	block_compress
	.align 4
	.type	block_compress, @object
	.size	block_compress, 4
block_compress:
	.long	128
	.globl	clear_flg
	.bss
	.align 4
	.type	clear_flg, @object
	.size	clear_flg, 4
clear_flg:
	.zero	4
	.globl	ratio
	.align 8
	.type	ratio, @object
	.size	ratio, 8
ratio:
	.zero	8
	.globl	checkpoint
	.data
	.align 8
	.type	checkpoint, @object
	.size	checkpoint, 8
checkpoint:
	.quad	10000
	.globl	force
	.bss
	.align 4
	.type	force, @object
	.size	force, 4
force:
	.zero	4
	.globl	ofname
	.align 32
	.type	ofname, @object
	.size	ofname, 100
ofname:
	.zero	100
	.globl	bgnd_flag
	.align 8
	.type	bgnd_flag, @object
	.size	bgnd_flag, 8
bgnd_flag:
	.zero	8
	.globl	do_decomp
	.align 4
	.type	do_decomp, @object
	.size	do_decomp, 4
do_decomp:
	.zero	4
	.section	.rodata
.LC1:
	.string	"uncompress"
.LC2:
	.string	"zcat"
.LC3:
	.string	"Missing maxbits\n"
.LC4:
	.string	"Unknown flag: '%c'; "
.LC5:
	.string	".Z"
.LC6:
	.string	"r"
.LC7:
	.string	"%s: not in compressed format\n"
	.align 8
.LC8:
	.string	"%s: compressed with %d bits, can only handle %d bits\n"
	.align 8
.LC9:
	.string	"%s: already has .Z suffix -- no change\n"
	.align 8
.LC10:
	.string	"%s: filename too long to tack on .Z\n"
.LC11:
	.string	"%s already exists;"
	.align 8
.LC12:
	.string	" do you wish to overwrite %s (y or n)? "
.LC13:
	.string	"stderr"
.LC14:
	.string	"\tnot overwritten\n"
.LC15:
	.string	"w"
.LC16:
	.string	"%s: "
	.align 8
.LC17:
	.string	"stdin: not in compressed format\n"
	.align 8
.LC18:
	.string	"stdin: compressed with %d bits, can only handle %d bits\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB7:
	.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, 328
	.cfi_offset 3, -24
	mov	ebx, edi
	mov	QWORD PTR -328[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -316[rbp], 0
	mov	esi, 1
	mov	edi, 2
	call	signal@PLT
	mov	QWORD PTR bgnd_flag[rip], rax
	mov	rax, QWORD PTR bgnd_flag[rip]
	cmp	rax, 1
	je	.L3
	lea	rsi, onintr[rip]
	mov	edi, 2
	call	signal@PLT
	lea	rsi, oops[rip]
	mov	edi, 11
	call	signal@PLT
.L3:
	movsx	rax, ebx
	sal	rax, 3
	mov	rdi, rax
	mov	eax, 0
	call	malloc@PLT
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 47
	mov	rdi, rax
	call	rindex
	mov	QWORD PTR -304[rbp], rax
	cmp	QWORD PTR -304[rbp], 0
	je	.L4
	add	QWORD PTR -304[rbp], 1
	jmp	.L5
.L4:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -304[rbp], rax
.L5:
	mov	rax, QWORD PTR -304[rbp]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L6
	mov	DWORD PTR do_decomp[rip], 1
	jmp	.L7
.L6:
	mov	rax, QWORD PTR -304[rbp]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L7
	mov	DWORD PTR do_decomp[rip], 1
	mov	DWORD PTR zcat_flg[rip], 1
.L7:
	sub	ebx, 1
	add	QWORD PTR -328[rbp], 8
	jmp	.L8
.L26:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	jne	.L9
	jmp	.L10
.L25:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	sub	eax, 67
	cmp	eax, 51
	ja	.L11
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L13[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L13[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L13:
	.long	.L21-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L16-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L20-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L19-.L13
	.long	.L18-.L13
	.long	.L17-.L13
	.long	.L11-.L13
	.long	.L16-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L15-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L14-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L11-.L13
	.long	.L12-.L13
	.text
.L20:
	mov	eax, 0
	call	version
	jmp	.L10
.L12:
	mov	DWORD PTR quiet[rip], 0
	jmp	.L10
.L17:
	mov	DWORD PTR do_decomp[rip], 1
	jmp	.L10
.L16:
	mov	DWORD PTR -316[rbp], 1
	mov	DWORD PTR force[rip], 1
	jmp	.L10
.L15:
	mov	DWORD PTR nomagic[rip], 1
	jmp	.L10
.L21:
	mov	DWORD PTR block_compress[rip], 0
	jmp	.L10
.L19:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L22
	sub	ebx, 1
	test	ebx, ebx
	je	.L23
	add	QWORD PTR -328[rbp], 8
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L22
.L23:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 16
	mov	esi, 1
	lea	rdi, .LC3[rip]
	call	fwrite@PLT
	mov	eax, 0
	call	Usage
	mov	edi, 1
	call	exit@PLT
.L22:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	eax, 0
	call	atoi@PLT
	mov	DWORD PTR maxbits[rip], eax
	jmp	.L24
.L18:
	mov	DWORD PTR zcat_flg[rip], 1
	jmp	.L10
.L14:
	mov	DWORD PTR quiet[rip], 1
	jmp	.L10
.L11:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movsx	edx, al
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC4[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 0
	call	Usage
	mov	edi, 1
	call	exit@PLT
.L10:
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L25
	jmp	.L24
.L9:
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, 8[rax]
	mov	QWORD PTR -312[rbp], rdx
	mov	rdx, QWORD PTR -328[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -312[rbp]
	mov	QWORD PTR [rax], 0
.L24:
	sub	ebx, 1
	add	QWORD PTR -328[rbp], 8
.L8:
	test	ebx, ebx
	jg	.L26
	mov	eax, DWORD PTR maxbits[rip]
	cmp	eax, 8
	jg	.L27
	mov	DWORD PTR maxbits[rip], 9
.L27:
	mov	eax, DWORD PTR maxbits[rip]
	cmp	eax, 16
	jle	.L28
	mov	DWORD PTR maxbits[rip], 16
.L28:
	mov	eax, DWORD PTR maxbits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	mov	QWORD PTR maxmaxcode[rip], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L29
	mov	rax, QWORD PTR -296[rbp]
	mov	QWORD PTR -312[rbp], rax
	jmp	.L30
.L59:
	mov	DWORD PTR exit_stat[rip], 0
	mov	eax, DWORD PTR do_decomp[rip]
	test	eax, eax
	je	.L31
	mov	rax, QWORD PTR -312[rbp]
	mov	rbx, QWORD PTR [rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	sub	rax, 2
	add	rax, rbx
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L32
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR [rax]
	lea	rax, -128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -128[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 23086
	mov	BYTE PTR 2[rax], 0
	mov	rax, QWORD PTR -312[rbp]
	lea	rdx, -128[rbp]
	mov	QWORD PTR [rax], rdx
.L32:
	mov	rdx, QWORD PTR stdin[rip]
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	call	freopen@PLT
	test	rax, rax
	jne	.L33
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	perror@PLT
	jmp	.L34
.L33:
	mov	eax, DWORD PTR nomagic[rip]
	test	eax, eax
	jne	.L35
	call	getchar@PLT
	movzx	edx, BYTE PTR magic_header[rip]
	movzx	edx, dl
	cmp	eax, edx
	jne	.L36
	call	getchar@PLT
	movzx	edx, BYTE PTR magic_header[rip+1]
	movzx	edx, dl
	cmp	eax, edx
	je	.L37
.L36:
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L34
.L37:
	call	getchar@PLT
	mov	DWORD PTR maxbits[rip], eax
	mov	eax, DWORD PTR maxbits[rip]
	and	eax, 128
	mov	DWORD PTR block_compress[rip], eax
	mov	eax, DWORD PTR maxbits[rip]
	and	eax, 31
	mov	DWORD PTR maxbits[rip], eax
	mov	eax, DWORD PTR maxbits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	mov	QWORD PTR maxmaxcode[rip], rax
	mov	eax, DWORD PTR maxbits[rip]
	cmp	eax, 16
	jle	.L35
	mov	ecx, DWORD PTR maxbits[rip]
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	r8d, 16
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L34
.L35:
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, ofname[rip]
	call	strcpy@PLT
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, -2[rax]
	lea	rax, ofname[rip]
	mov	BYTE PTR [rdx+rax], 0
	jmp	.L38
.L31:
	mov	rax, QWORD PTR -312[rbp]
	mov	rbx, QWORD PTR [rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	sub	rax, 2
	add	rax, rbx
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L39
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L34
.L39:
	mov	rdx, QWORD PTR stdin[rip]
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC6[rip]
	mov	rdi, rax
	call	freopen@PLT
	test	rax, rax
	jne	.L40
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	perror@PLT
	jmp	.L34
.L40:
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -288[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	stat@PLT
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR fsize[rip], rax
	mov	QWORD PTR hsize[rip], 69001
	mov	rax, QWORD PTR fsize[rip]
	cmp	rax, 4095
	jg	.L41
	mov	QWORD PTR hsize[rip], 5003
	jmp	.L42
.L41:
	mov	rax, QWORD PTR fsize[rip]
	cmp	rax, 8191
	jg	.L43
	mov	QWORD PTR hsize[rip], 9001
	jmp	.L42
.L43:
	mov	rax, QWORD PTR fsize[rip]
	cmp	rax, 16383
	jg	.L44
	mov	QWORD PTR hsize[rip], 18013
	jmp	.L42
.L44:
	mov	rax, QWORD PTR fsize[rip]
	cmp	rax, 32767
	jg	.L45
	mov	QWORD PTR hsize[rip], 35023
	jmp	.L42
.L45:
	mov	rax, QWORD PTR fsize[rip]
	cmp	rax, 46999
	jg	.L42
	mov	QWORD PTR hsize[rip], 50021
.L42:
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, ofname[rip]
	call	strcpy@PLT
	mov	esi, 47
	lea	rdi, ofname[rip]
	call	rindex
	mov	QWORD PTR -304[rbp], rax
	cmp	QWORD PTR -304[rbp], 0
	je	.L46
	add	QWORD PTR -304[rbp], 1
	jmp	.L47
.L46:
	lea	rax, ofname[rip]
	mov	QWORD PTR -304[rbp], rax
.L47:
	mov	rax, QWORD PTR -304[rbp]
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 12
	jbe	.L48
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -304[rbp]
	lea	rsi, .LC10[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L34
.L48:
	lea	rdi, ofname[rip]
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, ofname[rip]
	add	rax, rdx
	mov	WORD PTR [rax], 23086
	mov	BYTE PTR 2[rax], 0
.L38:
	cmp	DWORD PTR -316[rbp], 0
	jne	.L49
	mov	eax, DWORD PTR zcat_flg[rip]
	test	eax, eax
	jne	.L49
	lea	rax, -288[rbp]
	mov	rsi, rax
	lea	rdi, ofname[rip]
	call	stat@PLT
	test	eax, eax
	jne	.L49
	mov	BYTE PTR -130[rbp], 110
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, ofname[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 0
	call	foreground
	test	eax, eax
	je	.L50
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, ofname[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rdi, rax
	call	fflush@PLT
	lea	rax, -130[rbp]
	mov	edx, 2
	mov	rsi, rax
	mov	edi, 2
	mov	eax, 0
	call	read@PLT
	jmp	.L51
.L52:
	lea	rax, -130[rbp]
	add	rax, 1
	mov	edx, 1
	mov	rsi, rax
	mov	edi, 2
	mov	eax, 0
	call	read@PLT
	test	eax, eax
	jns	.L51
	lea	rdi, .LC13[rip]
	call	perror@PLT
	jmp	.L50
.L51:
	movzx	eax, BYTE PTR -129[rbp]
	cmp	al, 10
	jne	.L52
.L50:
	movzx	eax, BYTE PTR -130[rbp]
	cmp	al, 121
	je	.L49
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 17
	mov	esi, 1
	lea	rdi, .LC14[rip]
	call	fwrite@PLT
	jmp	.L34
.L49:
	mov	eax, DWORD PTR zcat_flg[rip]
	test	eax, eax
	jne	.L54
	mov	rax, QWORD PTR stdout[rip]
	mov	rdx, rax
	lea	rsi, .LC15[rip]
	lea	rdi, ofname[rip]
	call	freopen@PLT
	test	rax, rax
	jne	.L55
	lea	rdi, ofname[rip]
	call	perror@PLT
	jmp	.L34
.L55:
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	jne	.L54
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L54:
	mov	eax, DWORD PTR do_decomp[rip]
	test	eax, eax
	jne	.L56
	mov	eax, 0
	call	compress
	jmp	.L57
.L56:
	mov	eax, 0
	call	decompress
.L57:
	mov	eax, DWORD PTR zcat_flg[rip]
	test	eax, eax
	jne	.L34
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rsi, ofname[rip]
	mov	rdi, rax
	mov	eax, 0
	call	copystat
	mov	eax, DWORD PTR exit_stat[rip]
	cmp	eax, 1
	je	.L58
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	jne	.L34
.L58:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	putc@PLT
.L34:
	add	QWORD PTR -312[rbp], 8
.L30:
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L59
	jmp	.L60
.L29:
	mov	eax, DWORD PTR do_decomp[rip]
	test	eax, eax
	jne	.L61
	mov	eax, 0
	call	compress
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	jne	.L60
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	putc@PLT
	jmp	.L60
.L61:
	mov	eax, DWORD PTR nomagic[rip]
	test	eax, eax
	jne	.L62
	call	getchar@PLT
	movzx	edx, BYTE PTR magic_header[rip]
	movzx	edx, dl
	cmp	eax, edx
	jne	.L63
	call	getchar@PLT
	movzx	edx, BYTE PTR magic_header[rip+1]
	movzx	edx, dl
	cmp	eax, edx
	je	.L64
.L63:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 32
	mov	esi, 1
	lea	rdi, .LC17[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L64:
	call	getchar@PLT
	mov	DWORD PTR maxbits[rip], eax
	mov	eax, DWORD PTR maxbits[rip]
	and	eax, 128
	mov	DWORD PTR block_compress[rip], eax
	mov	eax, DWORD PTR maxbits[rip]
	and	eax, 31
	mov	DWORD PTR maxbits[rip], eax
	mov	eax, DWORD PTR maxbits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	mov	QWORD PTR maxmaxcode[rip], rax
	mov	QWORD PTR fsize[rip], 100000
	mov	eax, DWORD PTR maxbits[rip]
	cmp	eax, 16
	jle	.L62
	mov	edx, DWORD PTR maxbits[rip]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, 16
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L62:
	mov	eax, 0
	call	decompress
.L60:
	mov	eax, DWORD PTR exit_stat[rip]
	mov	edi, eax
	call	exit@PLT
	.cfi_endproc
.LFE7:
	.size	main, .-main
	.local	offset
	.comm	offset,4,4
	.globl	in_count
	.data
	.align 8
	.type	in_count, @object
	.size	in_count, 8
in_count:
	.quad	1
	.globl	bytes_out
	.bss
	.align 8
	.type	bytes_out, @object
	.size	bytes_out, 8
bytes_out:
	.zero	8
	.globl	out_count
	.align 8
	.type	out_count, @object
	.size	out_count, 8
out_count:
	.zero	8
	.section	.rodata
.LC19:
	.string	"Compression: "
	.text
	.globl	compress
	.type	compress, @function
compress:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 24
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	eax, DWORD PTR nomagic[rip]
	test	eax, eax
	jne	.L67
	movzx	eax, BYTE PTR magic_header[rip]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
	movzx	eax, BYTE PTR magic_header[rip+1]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
	mov	eax, DWORD PTR maxbits[rip]
	mov	edx, eax
	mov	eax, DWORD PTR block_compress[rip]
	or	eax, edx
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	je	.L67
	mov	eax, 0
	call	writeerr
.L67:
	mov	DWORD PTR offset[rip], 0
	mov	QWORD PTR bytes_out[rip], 3
	mov	QWORD PTR out_count[rip], 0
	mov	DWORD PTR clear_flg[rip], 0
	mov	QWORD PTR ratio[rip], 0
	mov	QWORD PTR in_count[rip], 1
	mov	QWORD PTR checkpoint[rip], 10000
	mov	DWORD PTR n_bits[rip], 9
	mov	eax, DWORD PTR n_bits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	sub	rax, 1
	mov	QWORD PTR maxcode[rip], rax
	mov	eax, DWORD PTR block_compress[rip]
	test	eax, eax
	je	.L68
	mov	eax, 257
	jmp	.L69
.L68:
	mov	eax, 256
.L69:
	mov	QWORD PTR free_ent[rip], rax
	call	getchar@PLT
	movsx	r13, eax
	mov	r15d, 0
	mov	r12, QWORD PTR hsize[rip]
	jmp	.L70
.L71:
	add	r15d, 1
	add	r12, r12
.L70:
	cmp	r12, 65535
	jle	.L71
	mov	eax, 8
	sub	eax, r15d
	mov	r15d, eax
	mov	rax, QWORD PTR hsize[rip]
	mov	QWORD PTR -56[rbp], rax
	mov	rdi, rax
	mov	eax, 0
	call	cl_hash
	jmp	.L72
.L81:
	mov	rax, QWORD PTR in_count[rip]
	add	rax, 1
	mov	QWORD PTR in_count[rip], rax
	movsx	rdx, r14d
	mov	eax, DWORD PTR maxbits[rip]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	lea	r12, 0[r13+rax]
	movsx	rax, r14d
	mov	ecx, r15d
	sal	rax, cl
	xor	rax, r13
	mov	rbx, rax
	lea	rax, 0[0+rbx*8]
	lea	rdx, htab[rip]
	mov	rax, QWORD PTR [rax+rdx]
	cmp	r12, rax
	jne	.L73
	lea	rdx, [rbx+rbx]
	lea	rax, codetab[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	r13d, ax
	jmp	.L72
.L73:
	lea	rax, 0[0+rbx*8]
	lea	rdx, htab[rip]
	mov	rax, QWORD PTR [rax+rdx]
	test	rax, rax
	js	.L85
	mov	eax, DWORD PTR -56[rbp]
	mov	edx, ebx
	sub	eax, edx
	mov	esi, eax
	test	rbx, rbx
	jne	.L86
	mov	esi, 1
	jmp	.L79
.L86:
	nop
.L76:
.L79:
	mov	eax, esi
	cdqe
	sub	rbx, rax
	test	rbx, rbx
	jns	.L77
	add	rbx, QWORD PTR -56[rbp]
.L77:
	lea	rax, 0[0+rbx*8]
	lea	rdx, htab[rip]
	mov	rax, QWORD PTR [rax+rdx]
	cmp	r12, rax
	jne	.L78
	lea	rdx, [rbx+rbx]
	lea	rax, codetab[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	r13d, ax
	jmp	.L72
.L78:
	lea	rax, 0[0+rbx*8]
	lea	rdx, htab[rip]
	mov	rax, QWORD PTR [rax+rdx]
	test	rax, rax
	jle	.L87
	jmp	.L79
.L85:
	nop
	jmp	.L75
.L87:
	nop
.L75:
	mov	rdi, r13
	mov	eax, 0
	call	output
	mov	rax, QWORD PTR out_count[rip]
	add	rax, 1
	mov	QWORD PTR out_count[rip], rax
	movsx	r13, r14d
	mov	rdx, QWORD PTR free_ent[rip]
	mov	rax, QWORD PTR maxmaxcode[rip]
	cmp	rdx, rax
	jge	.L80
	mov	rax, QWORD PTR free_ent[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR free_ent[rip], rdx
	mov	ecx, eax
	lea	rax, [rbx+rbx]
	lea	rdx, codetab[rip]
	mov	WORD PTR [rax+rdx], cx
	lea	rdx, 0[0+rbx*8]
	lea	rax, htab[rip]
	mov	QWORD PTR [rdx+rax], r12
	jmp	.L72
.L80:
	mov	rdx, QWORD PTR in_count[rip]
	mov	rax, QWORD PTR checkpoint[rip]
	cmp	rdx, rax
	jl	.L72
	mov	eax, DWORD PTR block_compress[rip]
	test	eax, eax
	je	.L72
	mov	eax, 0
	call	cl_block
.L72:
	call	getchar@PLT
	mov	r14d, eax
	cmp	r14d, -1
	jne	.L81
	mov	rdi, r13
	mov	eax, 0
	call	output
	mov	rax, QWORD PTR out_count[rip]
	add	rax, 1
	mov	QWORD PTR out_count[rip], rax
	mov	rdi, -1
	mov	eax, 0
	call	output
	mov	eax, DWORD PTR zcat_flg[rip]
	test	eax, eax
	jne	.L82
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	jne	.L82
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 13
	mov	esi, 1
	lea	rdi, .LC19[rip]
	call	fwrite@PLT
	mov	rdx, QWORD PTR in_count[rip]
	mov	rax, QWORD PTR in_count[rip]
	mov	rsi, QWORD PTR bytes_out[rip]
	sub	rax, rsi
	mov	rcx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rcx
	mov	rdi, rax
	mov	eax, 0
	call	prratio
.L82:
	mov	rdx, QWORD PTR bytes_out[rip]
	mov	rax, QWORD PTR in_count[rip]
	cmp	rdx, rax
	jle	.L88
	mov	DWORD PTR exit_stat[rip], 2
.L88:
	nop
	nop
	add	rsp, 24
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	compress, .-compress
	.local	buf
	.comm	buf,16,16
	.globl	lmask
	.data
	.align 8
	.type	lmask, @object
	.size	lmask, 9
lmask:
	.string	"\377\376\374\370\360\340\300\200"
	.globl	rmask
	.align 8
	.type	rmask, @object
	.size	rmask, 9
rmask:
	.string	""
	.ascii	"\001\003\007\017\037?\177\377"
	.text
	.globl	output
	.type	output, @function
output:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	sub	rsp, 24
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	QWORD PTR -40[rbp], rdi
	mov	r13d, DWORD PTR offset[rip]
	mov	r12d, DWORD PTR n_bits[rip]
	lea	rbx, buf[rip]
	cmp	QWORD PTR -40[rbp], 0
	js	.L90
	mov	eax, r13d
	sar	eax, 3
	cdqe
	add	rbx, rax
	and	r13d, 7
	movzx	ecx, BYTE PTR [rbx]
	movsx	rax, r13d
	lea	rdx, rmask[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	esi, ecx
	and	esi, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, r13d
	sal	rax, cl
	mov	ecx, eax
	movsx	rax, r13d
	lea	rdx, lmask[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	and	eax, ecx
	or	eax, esi
	mov	BYTE PTR [rbx], al
	add	rbx, 1
	mov	eax, 8
	sub	eax, r13d
	sub	r12d, eax
	mov	eax, 8
	sub	eax, r13d
	mov	ecx, eax
	sar	QWORD PTR -40[rbp], cl
	cmp	r12d, 7
	jle	.L91
	mov	rax, rbx
	lea	rbx, 1[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	BYTE PTR [rax], dl
	sar	QWORD PTR -40[rbp], 8
	sub	r12d, 8
.L91:
	test	r12d, r12d
	je	.L92
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR [rbx], al
.L92:
	mov	edx, DWORD PTR offset[rip]
	mov	eax, DWORD PTR n_bits[rip]
	add	eax, edx
	mov	DWORD PTR offset[rip], eax
	mov	eax, DWORD PTR n_bits[rip]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR offset[rip]
	cmp	edx, eax
	jne	.L93
	lea	rbx, buf[rip]
	mov	r12d, DWORD PTR n_bits[rip]
	movsx	rdx, r12d
	mov	rax, QWORD PTR bytes_out[rip]
	add	rax, rdx
	mov	QWORD PTR bytes_out[rip], rax
.L94:
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	sub	r12d, 1
	test	r12d, r12d
	jne	.L94
	mov	DWORD PTR offset[rip], 0
.L93:
	mov	rdx, QWORD PTR free_ent[rip]
	mov	rax, QWORD PTR maxcode[rip]
	cmp	rdx, rax
	jg	.L95
	mov	eax, DWORD PTR clear_flg[rip]
	test	eax, eax
	jle	.L96
.L95:
	mov	eax, DWORD PTR offset[rip]
	test	eax, eax
	jle	.L97
	mov	rdx, QWORD PTR stdout[rip]
	mov	eax, DWORD PTR n_bits[rip]
	cdqe
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, buf[rip]
	call	fwrite@PLT
	mov	edx, DWORD PTR n_bits[rip]
	movsx	rdx, edx
	cmp	rax, rdx
	je	.L98
	mov	eax, 0
	call	writeerr
.L98:
	mov	eax, DWORD PTR n_bits[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR bytes_out[rip]
	add	rax, rdx
	mov	QWORD PTR bytes_out[rip], rax
.L97:
	mov	DWORD PTR offset[rip], 0
	mov	eax, DWORD PTR clear_flg[rip]
	test	eax, eax
	je	.L99
	mov	DWORD PTR n_bits[rip], 9
	mov	eax, DWORD PTR n_bits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	sub	rax, 1
	mov	QWORD PTR maxcode[rip], rax
	mov	DWORD PTR clear_flg[rip], 0
	jmp	.L96
.L99:
	mov	eax, DWORD PTR n_bits[rip]
	add	eax, 1
	mov	DWORD PTR n_bits[rip], eax
	mov	edx, DWORD PTR n_bits[rip]
	mov	eax, DWORD PTR maxbits[rip]
	cmp	edx, eax
	jne	.L100
	mov	rax, QWORD PTR maxmaxcode[rip]
	mov	QWORD PTR maxcode[rip], rax
	jmp	.L96
.L100:
	mov	eax, DWORD PTR n_bits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	sub	rax, 1
	mov	QWORD PTR maxcode[rip], rax
	jmp	.L96
.L90:
	mov	eax, DWORD PTR offset[rip]
	test	eax, eax
	jle	.L101
	mov	rdx, QWORD PTR stdout[rip]
	mov	eax, DWORD PTR offset[rip]
	add	eax, 7
	lea	ecx, 7[rax]
	test	eax, eax
	cmovs	eax, ecx
	sar	eax, 3
	cdqe
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, buf[rip]
	call	fwrite@PLT
.L101:
	mov	eax, DWORD PTR offset[rip]
	add	eax, 7
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	movsx	rdx, eax
	mov	rax, QWORD PTR bytes_out[rip]
	add	rax, rdx
	mov	QWORD PTR bytes_out[rip], rax
	mov	DWORD PTR offset[rip], 0
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	je	.L96
	mov	eax, 0
	call	writeerr
.L96:
	nop
	add	rsp, 24
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	output, .-output
	.globl	decompress
	.type	decompress, @function
decompress:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 8
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR n_bits[rip], 9
	mov	eax, DWORD PTR n_bits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	sub	rax, 1
	mov	QWORD PTR maxcode[rip], rax
	mov	ebx, 255
	jmp	.L103
.L104:
	lea	rax, [rbx+rbx]
	lea	rdx, codetab[rip]
	mov	WORD PTR [rax+rdx], 0
	mov	rdx, rbx
	lea	rax, htab[rip]
	add	rax, rdx
	mov	edx, ebx
	mov	BYTE PTR [rax], dl
	sub	rbx, 1
.L103:
	test	rbx, rbx
	jns	.L104
	mov	eax, DWORD PTR block_compress[rip]
	test	eax, eax
	je	.L105
	mov	eax, 257
	jmp	.L106
.L105:
	mov	eax, 256
.L106:
	mov	QWORD PTR free_ent[rip], rax
	mov	eax, 0
	call	getcode
	mov	r13, rax
	mov	r14d, r13d
	cmp	r13, -1
	je	.L121
	mov	eax, r14d
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	je	.L109
	mov	eax, 0
	call	writeerr
.L109:
	lea	r12, htab[rip+65536]
	jmp	.L110
.L120:
	cmp	rbx, 256
	jne	.L111
	mov	eax, DWORD PTR block_compress[rip]
	test	eax, eax
	je	.L111
	mov	ebx, 255
	jmp	.L112
.L113:
	lea	rax, [rbx+rbx]
	lea	rdx, codetab[rip]
	mov	WORD PTR [rax+rdx], 0
	sub	rbx, 1
.L112:
	test	rbx, rbx
	jns	.L113
	mov	DWORD PTR clear_flg[rip], 1
	mov	QWORD PTR free_ent[rip], 256
	mov	eax, 0
	call	getcode
	mov	rbx, rax
	cmp	rbx, -1
	je	.L122
.L111:
	mov	r15, rbx
	mov	rax, QWORD PTR free_ent[rip]
	cmp	rbx, rax
	jl	.L116
	mov	rax, r12
	lea	r12, 1[rax]
	mov	edx, r14d
	mov	BYTE PTR [rax], dl
	mov	rbx, r13
	jmp	.L116
.L117:
	mov	rdx, rbx
	lea	rax, htab[rip]
	add	rdx, rax
	mov	rax, r12
	lea	r12, 1[rax]
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	lea	rdx, [rbx+rbx]
	lea	rax, codetab[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	ebx, ax
.L116:
	cmp	rbx, 255
	jg	.L117
	mov	rdx, rbx
	lea	rax, htab[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	r14d, al
	mov	rax, r12
	lea	r12, 1[rax]
	mov	edx, r14d
	mov	BYTE PTR [rax], dl
.L118:
	sub	r12, 1
	movzx	eax, BYTE PTR [r12]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
	lea	rax, htab[rip+65536]
	cmp	r12, rax
	ja	.L118
	mov	rbx, QWORD PTR free_ent[rip]
	mov	rax, QWORD PTR maxmaxcode[rip]
	cmp	rbx, rax
	jge	.L119
	mov	ecx, r13d
	lea	rax, [rbx+rbx]
	lea	rdx, codetab[rip]
	mov	WORD PTR [rax+rdx], cx
	mov	rdx, rbx
	lea	rax, htab[rip]
	add	rax, rdx
	mov	edx, r14d
	mov	BYTE PTR [rax], dl
	lea	rax, 1[rbx]
	mov	QWORD PTR free_ent[rip], rax
.L119:
	mov	r13, r15
.L110:
	mov	eax, 0
	call	getcode
	mov	rbx, rax
	test	rbx, rbx
	jns	.L120
	jmp	.L114
.L122:
	nop
.L114:
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	je	.L108
	mov	eax, 0
	call	writeerr
	jmp	.L108
.L121:
	nop
.L108:
	add	rsp, 8
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	decompress, .-decompress
	.globl	getcode
	.type	getcode, @function
getcode:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	lea	r12, buf.2[rip]
	mov	eax, DWORD PTR clear_flg[rip]
	test	eax, eax
	jg	.L124
	mov	edx, DWORD PTR offset.1[rip]
	mov	eax, DWORD PTR size.0[rip]
	cmp	edx, eax
	jge	.L124
	mov	rdx, QWORD PTR free_ent[rip]
	mov	rax, QWORD PTR maxcode[rip]
	cmp	rdx, rax
	jle	.L125
.L124:
	mov	rdx, QWORD PTR free_ent[rip]
	mov	rax, QWORD PTR maxcode[rip]
	cmp	rdx, rax
	jle	.L126
	mov	eax, DWORD PTR n_bits[rip]
	add	eax, 1
	mov	DWORD PTR n_bits[rip], eax
	mov	edx, DWORD PTR n_bits[rip]
	mov	eax, DWORD PTR maxbits[rip]
	cmp	edx, eax
	jne	.L127
	mov	rax, QWORD PTR maxmaxcode[rip]
	mov	QWORD PTR maxcode[rip], rax
	jmp	.L126
.L127:
	mov	eax, DWORD PTR n_bits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	sub	rax, 1
	mov	QWORD PTR maxcode[rip], rax
.L126:
	mov	eax, DWORD PTR clear_flg[rip]
	test	eax, eax
	jle	.L128
	mov	DWORD PTR n_bits[rip], 9
	mov	eax, DWORD PTR n_bits[rip]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	sub	rax, 1
	mov	QWORD PTR maxcode[rip], rax
	mov	DWORD PTR clear_flg[rip], 0
.L128:
	mov	rdx, QWORD PTR stdin[rip]
	mov	eax, DWORD PTR n_bits[rip]
	cdqe
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, buf.2[rip]
	call	fread@PLT
	mov	DWORD PTR size.0[rip], eax
	mov	eax, DWORD PTR size.0[rip]
	test	eax, eax
	jg	.L129
	mov	rax, -1
	jmp	.L130
.L129:
	mov	DWORD PTR offset.1[rip], 0
	mov	eax, DWORD PTR size.0[rip]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR n_bits[rip]
	lea	ecx, -1[rax]
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR size.0[rip], eax
.L125:
	mov	ebx, DWORD PTR offset.1[rip]
	mov	r13d, DWORD PTR n_bits[rip]
	mov	eax, ebx
	sar	eax, 3
	cdqe
	add	r12, rax
	and	ebx, 7
	mov	rax, r12
	lea	r12, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sar	eax, cl
	movsx	r14, eax
	mov	eax, 8
	sub	eax, ebx
	sub	r13d, eax
	mov	eax, 8
	sub	eax, ebx
	mov	ebx, eax
	cmp	r13d, 7
	jle	.L131
	mov	rax, r12
	lea	r12, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	cdqe
	or	r14, rax
	add	ebx, 8
	sub	r13d, 8
.L131:
	movzx	ecx, BYTE PTR [r12]
	movsx	rax, r13d
	lea	rdx, rmask[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	and	eax, ecx
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	cdqe
	or	r14, rax
	mov	edx, DWORD PTR offset.1[rip]
	mov	eax, DWORD PTR n_bits[rip]
	add	eax, edx
	mov	DWORD PTR offset.1[rip], eax
	mov	rax, r14
.L130:
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	getcode, .-getcode
	.globl	rindex
	.type	rindex, @function
rindex:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, rdi
	mov	edx, esi
	mov	ecx, edx
	mov	QWORD PTR -8[rbp], 0
	jmp	.L133
.L135:
	movzx	edx, BYTE PTR [rax]
	cmp	cl, dl
	jne	.L134
	mov	QWORD PTR -8[rbp], rax
.L134:
	add	rax, 1
.L133:
	movzx	edx, BYTE PTR [rax]
	test	dl, dl
	jne	.L135
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	rindex, .-rindex
	.globl	writeerr
	.type	writeerr, @function
writeerr:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, ofname[rip]
	call	perror@PLT
	lea	rdi, ofname[rip]
	mov	eax, 0
	call	unlink@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE13:
	.size	writeerr, .-writeerr
	.section	.rodata
	.align 8
.LC20:
	.string	" -- not a regular file: unchanged"
	.align 8
.LC21:
	.string	" -- has %d other links: unchanged"
.LC22:
	.string	" -- file unchanged"
.LC23:
	.string	" -- replaced with %s"
	.text
	.globl	copystat
	.type	copystat, @function
copystat:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -200[rbp], rdi
	mov	QWORD PTR -208[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fclose@PLT
	lea	rdx, -160[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	stat@PLT
	test	eax, eax
	je	.L139
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	perror@PLT
	jmp	.L152
.L139:
	mov	eax, DWORD PTR -136[rbp]
	and	eax, 61440
	cmp	eax, 32768
	je	.L141
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	je	.L142
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L142:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 33
	mov	esi, 1
	lea	rdi, .LC20[rip]
	call	fwrite@PLT
	mov	DWORD PTR exit_stat[rip], 1
	jmp	.L143
.L141:
	mov	rax, QWORD PTR -144[rbp]
	cmp	rax, 1
	jbe	.L144
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	je	.L145
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L145:
	mov	rax, QWORD PTR -144[rbp]
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	DWORD PTR exit_stat[rip], 1
	jmp	.L143
.L144:
	mov	eax, DWORD PTR exit_stat[rip]
	cmp	eax, 2
	jne	.L146
	mov	eax, DWORD PTR force[rip]
	test	eax, eax
	jne	.L146
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	jne	.L143
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 18
	mov	esi, 1
	lea	rdi, .LC22[rip]
	call	fwrite@PLT
	jmp	.L143
.L146:
	mov	DWORD PTR exit_stat[rip], 0
	mov	eax, DWORD PTR -136[rbp]
	and	eax, 4095
	mov	DWORD PTR -180[rbp], eax
	mov	edx, DWORD PTR -180[rbp]
	mov	rax, QWORD PTR -208[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	chmod@PLT
	test	eax, eax
	je	.L148
	mov	rax, QWORD PTR -208[rbp]
	mov	rdi, rax
	call	perror@PLT
.L148:
	mov	edx, DWORD PTR -128[rbp]
	mov	ecx, DWORD PTR -132[rbp]
	mov	rax, QWORD PTR -208[rbp]
	mov	esi, ecx
	mov	rdi, rax
	mov	eax, 0
	call	chown@PLT
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -168[rbp], rax
	lea	rdx, -176[rbp]
	mov	rax, QWORD PTR -208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	mov	eax, 0
	call	utime@PLT
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	unlink@PLT
	test	eax, eax
	je	.L149
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	perror@PLT
.L149:
	mov	eax, DWORD PTR quiet[rip]
	test	eax, eax
	jne	.L154
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -208[rbp]
	lea	rsi, .LC23[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L154
.L143:
	mov	rax, QWORD PTR -208[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	unlink@PLT
	test	eax, eax
	je	.L152
	mov	rax, QWORD PTR -208[rbp]
	mov	rdi, rax
	call	perror@PLT
	jmp	.L152
.L154:
	nop
.L152:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L153
	call	__stack_chk_fail@PLT
.L153:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	copystat, .-copystat
	.globl	foreground
	.type	foreground, @function
foreground:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR bgnd_flag[rip]
	test	rax, rax
	je	.L156
	mov	eax, 0
	jmp	.L157
.L156:
	mov	edi, 2
	mov	eax, 0
	call	isatty@PLT
	test	eax, eax
	je	.L158
	mov	eax, 1
	jmp	.L157
.L158:
	mov	eax, 0
.L157:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	foreground, .-foreground
	.globl	onintr
	.type	onintr, @function
onintr:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, ofname[rip]
	mov	eax, 0
	call	unlink@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE16:
	.size	onintr, .-onintr
	.section	.rodata
.LC24:
	.string	"uncompress: corrupt input\n"
	.text
	.globl	oops
	.type	oops, @function
oops:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR do_decomp[rip]
	cmp	eax, 1
	jne	.L161
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 26
	mov	esi, 1
	lea	rdi, .LC24[rip]
	call	fwrite@PLT
.L161:
	lea	rdi, ofname[rip]
	mov	eax, 0
	call	unlink@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE17:
	.size	oops, .-oops
	.globl	cl_block
	.type	cl_block, @function
cl_block:
.LFB18:
	.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, 8
	.cfi_offset 3, -24
	mov	rax, QWORD PTR in_count[rip]
	add	rax, 10000
	mov	QWORD PTR checkpoint[rip], rax
	mov	rax, QWORD PTR in_count[rip]
	cmp	rax, 8388607
	jle	.L163
	mov	rax, QWORD PTR bytes_out[rip]
	sar	rax, 8
	mov	rbx, rax
	test	rbx, rbx
	jne	.L164
	mov	ebx, 2147483647
	jmp	.L165
.L164:
	mov	rax, QWORD PTR in_count[rip]
	cqo
	idiv	rbx
	mov	rbx, rax
	jmp	.L165
.L163:
	mov	rax, QWORD PTR in_count[rip]
	sal	rax, 8
	mov	rcx, QWORD PTR bytes_out[rip]
	cqo
	idiv	rcx
	mov	rbx, rax
.L165:
	mov	rax, QWORD PTR ratio[rip]
	cmp	rbx, rax
	jle	.L166
	mov	QWORD PTR ratio[rip], rbx
	jmp	.L167
.L166:
	mov	QWORD PTR ratio[rip], 0
	mov	rax, QWORD PTR hsize[rip]
	mov	rdi, rax
	mov	eax, 0
	call	cl_hash
	mov	QWORD PTR free_ent[rip], 257
	mov	DWORD PTR clear_flg[rip], 1
	mov	edi, 256
	mov	eax, 0
	call	output
.L167:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	cl_block, .-cl_block
	.globl	cl_hash
	.type	cl_hash, @function
cl_hash:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	rax, rdi
	mov	rdx, rax
	lea	rcx, 0[0+rdx*8]
	lea	rdx, htab[rip]
	lea	rbx, [rcx+rdx]
	mov	r12, -1
	lea	r13, -16[rax]
.L169:
	lea	rax, -128[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -120[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -112[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -104[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -96[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -88[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -80[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -72[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -64[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -56[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -48[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -40[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -32[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -24[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -16[rbx]
	mov	QWORD PTR [rax], r12
	lea	rax, -8[rbx]
	mov	QWORD PTR [rax], r12
	add	rbx, -128
	sub	r13, 16
	test	r13, r13
	jns	.L169
	add	r13, 16
	jmp	.L170
.L171:
	sub	rbx, 8
	mov	QWORD PTR [rbx], r12
	sub	r13, 1
.L170:
	test	r13, r13
	jg	.L171
	nop
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	cl_hash, .-cl_hash
	.section	.rodata
.LC25:
	.string	"%d.%02d%%"
	.text
	.globl	prratio
	.type	prratio, @function
prratio:
.LFB20:
	.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	cmp	QWORD PTR -32[rbp], 214748
	jle	.L173
	mov	rcx, QWORD PTR -40[rbp]
	movabs	rdx, 3777893186295716171
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 11
	sar	rcx, 63
	sub	rax, rcx
	mov	rsi, rax
	mov	rax, QWORD PTR -32[rbp]
	cqo
	idiv	rsi
	mov	ebx, eax
	jmp	.L174
.L173:
	mov	rax, QWORD PTR -32[rbp]
	imul	rax, rax, 10000
	cqo
	idiv	QWORD PTR -40[rbp]
	mov	ebx, eax
.L174:
	test	ebx, ebx
	jns	.L175
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	edi, 45
	call	putc@PLT
	neg	ebx
.L175:
	movsx	rax, ebx
	imul	rax, rax, 1374389535
	shr	rax, 32
	sar	eax, 5
	mov	edx, ebx
	sar	edx, 31
	sub	eax, edx
	imul	edx, eax, 100
	mov	eax, ebx
	sub	eax, edx
	movsx	rdx, ebx
	imul	rdx, rdx, 1374389535
	shr	rdx, 32
	sar	edx, 5
	mov	ecx, ebx
	sar	ecx, 31
	sub	edx, ecx
	mov	rdi, QWORD PTR -24[rbp]
	mov	ecx, eax
	lea	rsi, .LC25[rip]
	mov	eax, 0
	call	fprintf@PLT
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	prratio, .-prratio
	.section	.rodata
.LC26:
	.string	"%s\n"
.LC27:
	.string	"Options: "
.LC28:
	.string	"BITS = %d\n"
	.text
	.globl	version
	.type	version, @function
version:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, rcs_ident[rip]
	lea	rsi, .LC26[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 9
	mov	esi, 1
	lea	rdi, .LC27[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, 16
	lea	rsi, .LC28[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	version, .-version
	.local	buf.2
	.comm	buf.2,16,16
	.local	offset.1
	.comm	offset.1,4,4
	.local	size.0
	.comm	size.0,4,4
	.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	"111830.c"
	.text
	.data
	.align	2
	.type	rcs_ident, %object
	.size	rcs_ident, 56
rcs_ident:
	.ascii	"Based on compress.c,v 4.0 85/07/30 12:50:00 joe Rel"
	.ascii	"ease\000"
	.global	magic_header
	.align	2
	.type	magic_header, %object
	.size	magic_header, 3
magic_header:
	.ascii	"\037\235\000"
	.comm	n_bits,4,4
	.global	maxbits
	.align	2
	.type	maxbits, %object
	.size	maxbits, 4
maxbits:
	.word	16
	.comm	maxcode,4,4
	.global	maxmaxcode
	.align	2
	.type	maxmaxcode, %object
	.size	maxmaxcode, 4
maxmaxcode:
	.word	65536
	.comm	htab,276004,4
	.comm	codetab,138002,4
	.global	hsize
	.align	2
	.type	hsize, %object
	.size	hsize, 4
hsize:
	.word	69001
	.comm	fsize,4,4
	.global	free_ent
	.bss
	.align	2
	.type	free_ent, %object
	.size	free_ent, 4
free_ent:
	.space	4
	.global	exit_stat
	.align	2
	.type	exit_stat, %object
	.size	exit_stat, 4
exit_stat:
	.space	4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"Usage: compress [-dfvcV] [-b maxbits] [file ...]\012"
	.ascii	"\000"
	.text
	.align	2
	.global	Usage
	.syntax unified
	.arm
	.fpu softvfp
	.type	Usage, %function
Usage:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L2
	ldr	r3, [r3]
	mov	r2, #49
	mov	r1, #1
	ldr	r0, .L2+4
	bl	fwrite
	nop
	mov	r0, r3
	pop	{fp, pc}
.L3:
	.align	2
.L2:
	.word	stderr
	.word	.LC0
	.size	Usage, .-Usage
	.global	nomagic
	.bss
	.align	2
	.type	nomagic, %object
	.size	nomagic, 4
nomagic:
	.space	4
	.global	zcat_flg
	.align	2
	.type	zcat_flg, %object
	.size	zcat_flg, 4
zcat_flg:
	.space	4
	.global	quiet
	.data
	.align	2
	.type	quiet, %object
	.size	quiet, 4
quiet:
	.word	1
	.global	block_compress
	.align	2
	.type	block_compress, %object
	.size	block_compress, 4
block_compress:
	.word	128
	.global	clear_flg
	.bss
	.align	2
	.type	clear_flg, %object
	.size	clear_flg, 4
clear_flg:
	.space	4
	.global	ratio
	.align	2
	.type	ratio, %object
	.size	ratio, 4
ratio:
	.space	4
	.global	checkpoint
	.data
	.align	2
	.type	checkpoint, %object
	.size	checkpoint, 4
checkpoint:
	.word	10000
	.global	force
	.bss
	.align	2
	.type	force, %object
	.size	force, 4
force:
	.space	4
	.comm	ofname,100,4
	.comm	bgnd_flag,4,4
	.global	do_decomp
	.align	2
	.type	do_decomp, %object
	.size	do_decomp, 4
do_decomp:
	.space	4
	.section	.rodata
	.align	2
.LC1:
	.ascii	"uncompress\000"
	.align	2
.LC2:
	.ascii	"zcat\000"
	.align	2
.LC3:
	.ascii	"Missing maxbits\012\000"
	.align	2
.LC4:
	.ascii	"Unknown flag: '%c'; \000"
	.align	2
.LC5:
	.ascii	".Z\000"
	.align	2
.LC6:
	.ascii	"r\000"
	.align	2
.LC7:
	.ascii	"%s: not in compressed format\012\000"
	.align	2
.LC8:
	.ascii	"%s: compressed with %d bits, can only handle %d bit"
	.ascii	"s\012\000"
	.align	2
.LC9:
	.ascii	"%s: already has .Z suffix -- no change\012\000"
	.align	2
.LC10:
	.ascii	"%s: filename too long to tack on .Z\012\000"
	.align	2
.LC11:
	.ascii	"%s already exists;\000"
	.align	2
.LC12:
	.ascii	" do you wish to overwrite %s (y or n)? \000"
	.align	2
.LC13:
	.ascii	"stderr\000"
	.align	2
.LC14:
	.ascii	"\011not overwritten\012\000"
	.align	2
.LC15:
	.ascii	"w\000"
	.align	2
.LC16:
	.ascii	"%s: \000"
	.align	2
.LC17:
	.ascii	"stdin: not in compressed format\012\000"
	.align	2
.LC18:
	.ascii	"stdin: compressed with %d bits, can only handle %d "
	.ascii	"bits\012\000"
	.align	2
.LC19:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 224
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #236
	mov	r4, r0
	str	r1, [fp, #-232]
	ldr	r3, .L68
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-228]
	mov	r1, #1
	mov	r0, #2
	bl	signal
	mov	r3, r0
	ldr	r2, .L68+4
	str	r3, [r2]
	ldr	r3, .L68+4
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L5
	ldr	r1, .L68+8
	mov	r0, #2
	bl	signal
	ldr	r1, .L68+12
	mov	r0, #11
	bl	signal
.L5:
	mov	r3, r4
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	str	r0, [fp, #-224]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	mov	r1, #47
	mov	r0, r3
	bl	rindex
	str	r0, [fp, #-220]
	ldr	r3, [fp, #-220]
	cmp	r3, #0
	beq	.L6
	ldr	r3, [fp, #-220]
	add	r3, r3, #1
	str	r3, [fp, #-220]
	b	.L7
.L6:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	str	r3, [fp, #-220]
.L7:
	ldr	r1, .L68+16
	ldr	r0, [fp, #-220]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L8
	ldr	r3, .L68+20
	mov	r2, #1
	str	r2, [r3]
	b	.L9
.L8:
	ldr	r1, .L68+24
	ldr	r0, [fp, #-220]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L9
	ldr	r3, .L68+20
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L68+28
	mov	r2, #1
	str	r2, [r3]
.L9:
	sub	r4, r4, #1
	ldr	r3, [fp, #-232]
	add	r3, r3, #4
	str	r3, [fp, #-232]
	b	.L10
.L28:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L11
	b	.L12
.L27:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #67
	cmp	r3, #51
	ldrls	pc, [pc, r3, asl #2]
	b	.L13
.L15:
	.word	.L23
	.word	.L13
	.word	.L13
	.word	.L18
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L22
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L21
	.word	.L20
	.word	.L19
	.word	.L13
	.word	.L18
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L17
	.word	.L13
	.word	.L13
	.word	.L16
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L13
	.word	.L14
.L22:
	bl	version
	b	.L12
.L14:
	ldr	r3, .L68+32
	mov	r2, #0
	str	r2, [r3]
	b	.L12
.L19:
	ldr	r3, .L68+20
	mov	r2, #1
	str	r2, [r3]
	b	.L12
.L18:
	mov	r3, #1
	str	r3, [fp, #-228]
	ldr	r3, .L68+36
	mov	r2, #1
	str	r2, [r3]
	b	.L12
.L17:
	ldr	r3, .L68+40
	mov	r2, #1
	str	r2, [r3]
	b	.L12
.L23:
	ldr	r3, .L68+44
	mov	r2, #0
	str	r2, [r3]
	b	.L12
.L21:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-232]
	str	r2, [r3]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L24
	sub	r4, r4, #1
	cmp	r4, #0
	beq	.L25
	ldr	r3, [fp, #-232]
	add	r3, r3, #4
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L24
.L25:
	ldr	r3, .L68+48
	ldr	r3, [r3]
	mov	r2, #16
	mov	r1, #1
	ldr	r0, .L68+52
	bl	fwrite
	bl	Usage
	mov	r0, #1
	bl	exit
.L24:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	mov	r0, r3
	bl	atoi
	mov	r3, r0
	ldr	r2, .L68+56
	str	r3, [r2]
	b	.L26
.L20:
	ldr	r3, .L68+28
	mov	r2, #1
	str	r2, [r3]
	b	.L12
.L16:
	ldr	r3, .L68+32
	mov	r2, #1
	str	r2, [r3]
	b	.L12
.L13:
	ldr	r3, .L68+48
	ldr	r0, [r3]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, .L68+60
	bl	fprintf
	bl	Usage
	mov	r0, #1
	bl	exit
.L12:
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-232]
	str	r2, [r3]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L27
	b	.L26
.L11:
	ldr	r3, [fp, #-224]
	add	r2, r3, #4
	str	r2, [fp, #-224]
	ldr	r2, [fp, #-232]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-224]
	mov	r2, #0
	str	r2, [r3]
.L26:
	sub	r4, r4, #1
	ldr	r3, [fp, #-232]
	add	r3, r3, #4
	str	r3, [fp, #-232]
.L10:
	cmp	r4, #0
	bgt	.L28
	ldr	r3, .L68+56
	ldr	r3, [r3]
	cmp	r3, #8
	bgt	.L29
	ldr	r3, .L68+56
	mov	r2, #9
	str	r2, [r3]
.L29:
	ldr	r3, .L68+56
	ldr	r3, [r3]
	cmp	r3, #16
	ble	.L30
	ldr	r3, .L68+56
	mov	r2, #16
	str	r2, [r3]
.L30:
	ldr	r3, .L68+56
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	ldr	r2, .L68+64
	str	r3, [r2]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L31
	ldr	r3, [fp, #-216]
	str	r3, [fp, #-224]
	b	.L32
.L61:
	ldr	r3, .L68+68
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L68+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L33
	ldr	r3, [fp, #-224]
	ldr	r4, [r3]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	sub	r3, r3, #2
	add	r3, r4, r3
	ldr	r1, .L68+72
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L34
	ldr	r3, [fp, #-224]
	ldr	r2, [r3]
	sub	r3, fp, #116
	mov	r1, r2
	mov	r0, r3
	bl	strcpy
	sub	r3, fp, #116
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #116
	add	r3, r3, r2
	ldr	r2, .L68+72
	mov	r0, r3
	mov	r1, r2
	mov	r3, #3
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-224]
	sub	r2, fp, #116
	str	r2, [r3]
.L34:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	ldr	r2, .L68+76
	ldr	r2, [r2]
	ldr	r1, .L68+80
	mov	r0, r3
	bl	freopen
	mov	r3, r0
	cmp	r3, #0
	bne	.L35
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r0, r3
	bl	perror
	b	.L36
.L35:
	ldr	r3, .L68+40
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L37
	bl	getchar
	mov	r3, r0
	ldr	r2, .L68+84
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r3, r2
	bne	.L38
	bl	getchar
	mov	r3, r0
	ldr	r2, .L68+84
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	cmp	r3, r2
	beq	.L39
.L38:
	ldr	r3, .L68+48
	ldr	r0, [r3]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L68+88
	bl	fprintf
	b	.L36
.L39:
	bl	getchar
	mov	r3, r0
	ldr	r2, .L68+56
	str	r3, [r2]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	and	r3, r3, #128
	ldr	r2, .L68+44
	str	r3, [r2]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	and	r3, r3, #31
	ldr	r2, .L68+56
	str	r3, [r2]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	ldr	r2, .L68+64
	str	r3, [r2]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	cmp	r3, #16
	ble	.L37
	ldr	r3, .L68+48
	ldr	r0, [r3]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	mov	r1, #16
	str	r1, [sp]
	ldr	r1, .L68+92
	bl	fprintf
	b	.L36
.L37:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L68+96
	bl	strcpy
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	sub	r3, r3, #2
	ldr	r2, .L68+96
	mov	r1, #0
	strb	r1, [r2, r3]
	b	.L40
.L33:
	ldr	r3, [fp, #-224]
	ldr	r4, [r3]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	sub	r3, r3, #2
	add	r3, r4, r3
	ldr	r1, .L68+72
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L41
	ldr	r3, .L68+48
	ldr	r0, [r3]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L68+100
	bl	fprintf
	b	.L36
.L41:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	ldr	r2, .L68+76
	ldr	r2, [r2]
	ldr	r1, .L68+80
	mov	r0, r3
	bl	freopen
	mov	r3, r0
	cmp	r3, #0
	bne	.L42
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r0, r3
	bl	perror
	b	.L36
.L42:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	sub	r2, fp, #212
	mov	r1, r2
	mov	r0, r3
	bl	stat
	ldr	r3, [fp, #-168]
	ldr	r2, .L68+104
	str	r3, [r2]
	ldr	r3, .L68+108
	ldr	r2, .L68+112
	str	r2, [r3]
	ldr	r3, .L68+104
	ldr	r3, [r3]
	cmp	r3, #4096
	bge	.L43
	ldr	r3, .L68+108
	ldr	r2, .L68+116
	str	r2, [r3]
	b	.L44
.L43:
	ldr	r3, .L68+104
	ldr	r3, [r3]
	cmp	r3, #8192
	bge	.L45
	ldr	r3, .L68+108
	ldr	r2, .L68+120
	str	r2, [r3]
	b	.L44
.L45:
	ldr	r3, .L68+104
	ldr	r3, [r3]
	cmp	r3, #16384
	bge	.L46
	ldr	r3, .L68+108
	ldr	r2, .L68+124
	str	r2, [r3]
	b	.L44
.L46:
	ldr	r3, .L68+104
	ldr	r3, [r3]
	cmp	r3, #32768
	bge	.L47
	ldr	r3, .L68+108
	ldr	r2, .L68+128
	str	r2, [r3]
	b	.L44
.L47:
	ldr	r3, .L68+104
	ldr	r3, [r3]
	ldr	r2, .L68+132
	cmp	r3, r2
	bgt	.L44
	ldr	r3, .L68+108
	ldr	r2, .L68+136
	str	r2, [r3]
.L44:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L68+96
	bl	strcpy
	mov	r1, #47
	ldr	r0, .L68+96
	bl	rindex
	str	r0, [fp, #-220]
	ldr	r3, [fp, #-220]
	cmp	r3, #0
	beq	.L48
	ldr	r3, [fp, #-220]
	add	r3, r3, #1
	str	r3, [fp, #-220]
	b	.L49
.L48:
	ldr	r3, .L68+96
	str	r3, [fp, #-220]
.L49:
	ldr	r0, [fp, #-220]
	bl	strlen
	mov	r3, r0
	cmp	r3, #12
	bls	.L50
	ldr	r3, .L68+48
	ldr	r3, [r3]
	ldr	r2, [fp, #-220]
	ldr	r1, .L68+140
	mov	r0, r3
	bl	fprintf
	b	.L36
.L50:
	ldr	r0, .L68+96
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L68+96
	add	r3, r2, r3
	ldr	r2, .L68+72
	mov	r0, r3
	mov	r1, r2
	mov	r3, #3
	mov	r2, r3
	bl	memcpy
.L40:
	ldr	r3, [fp, #-228]
	cmp	r3, #0
	bne	.L51
	ldr	r3, .L68+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L51
	sub	r3, fp, #212
	mov	r1, r3
	ldr	r0, .L68+96
	bl	stat
	mov	r3, r0
	cmp	r3, #0
	bne	.L51
	mov	r3, #110
	strb	r3, [fp, #-120]
	ldr	r3, .L68+48
	ldr	r3, [r3]
	ldr	r2, .L68+96
	ldr	r1, .L68+144
	mov	r0, r3
	bl	fprintf
	bl	foreground
	mov	r3, r0
	cmp	r3, #0
	beq	.L52
	ldr	r3, .L68+48
	ldr	r3, [r3]
	ldr	r2, .L68+96
	ldr	r1, .L68+148
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L68+48
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	sub	r3, fp, #120
	mov	r2, #2
	mov	r1, r3
	mov	r0, #2
	bl	read
	b	.L53
.L54:
	sub	r3, fp, #120
	add	r3, r3, #1
	mov	r2, #1
	mov	r1, r3
	mov	r0, #2
	bl	read
	mov	r3, r0
	cmp	r3, #0
	bge	.L53
	ldr	r0, .L68+152
	bl	perror
	b	.L52
.L53:
	ldrb	r3, [fp, #-119]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L54
.L52:
	ldrb	r3, [fp, #-120]	@ zero_extendqisi2
	cmp	r3, #121
	beq	.L51
	ldr	r3, .L68+48
	ldr	r3, [r3]
	mov	r2, #17
	mov	r1, #1
	ldr	r0, .L68+156
	bl	fwrite
	b	.L36
.L51:
	ldr	r3, .L68+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L56
	ldr	r3, .L68+160
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L68+164
	ldr	r0, .L68+96
	bl	freopen
	mov	r3, r0
	cmp	r3, #0
	bne	.L57
	ldr	r0, .L68+96
	bl	perror
	b	.L36
.L57:
	ldr	r3, .L68+32
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L56
	ldr	r3, .L68+48
	ldr	r0, [r3]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L68+168
	bl	fprintf
.L56:
	ldr	r3, .L68+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L58
	bl	compress
	b	.L59
.L58:
	bl	decompress
.L59:
	ldr	r3, .L68+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L36
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	ldr	r1, .L68+96
	mov	r0, r3
	bl	copystat
	ldr	r3, .L68+68
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L60
	ldr	r3, .L68+32
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L36
.L60:
	ldr	r3, .L68+48
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	putc
.L36:
	ldr	r3, [fp, #-224]
	add	r3, r3, #4
	str	r3, [fp, #-224]
.L32:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L61
	b	.L62
.L31:
	ldr	r3, .L68+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L63
	bl	compress
	ldr	r3, .L68+32
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L62
	ldr	r3, .L68+48
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	putc
	b	.L62
.L63:
	ldr	r3, .L68+40
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L64
	bl	getchar
	mov	r3, r0
	ldr	r2, .L68+84
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r3, r2
	bne	.L65
	bl	getchar
	mov	r3, r0
	ldr	r2, .L68+84
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	cmp	r3, r2
	beq	.L66
.L65:
	ldr	r3, .L68+48
	ldr	r3, [r3]
	mov	r2, #32
	mov	r1, #1
	ldr	r0, .L68+172
	bl	fwrite
	mov	r0, #1
	bl	exit
.L66:
	bl	getchar
	mov	r3, r0
	ldr	r2, .L68+56
	str	r3, [r2]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	and	r3, r3, #128
	ldr	r2, .L68+44
	str	r3, [r2]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	and	r3, r3, #31
	ldr	r2, .L68+56
	str	r3, [r2]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	ldr	r2, .L68+64
	str	r3, [r2]
	ldr	r3, .L68+104
	ldr	r2, .L68+176
	str	r2, [r3]
	ldr	r3, .L68+56
	ldr	r3, [r3]
	cmp	r3, #16
	ble	.L64
	ldr	r3, .L68+48
	ldr	r0, [r3]
	ldr	r3, .L68+56
	ldr	r2, [r3]
	mov	r3, #16
	ldr	r1, .L68+180
	bl	fprintf
	mov	r0, #1
	bl	exit
.L64:
	bl	decompress
.L62:
	ldr	r3, .L68+68
	ldr	r3, [r3]
	mov	r0, r3
	bl	exit
.L69:
	.align	2
.L68:
	.word	.LC19
	.word	bgnd_flag
	.word	onintr
	.word	oops
	.word	.LC1
	.word	do_decomp
	.word	.LC2
	.word	zcat_flg
	.word	quiet
	.word	force
	.word	nomagic
	.word	block_compress
	.word	stderr
	.word	.LC3
	.word	maxbits
	.word	.LC4
	.word	maxmaxcode
	.word	exit_stat
	.word	.LC5
	.word	stdin
	.word	.LC6
	.word	magic_header
	.word	.LC7
	.word	.LC8
	.word	ofname
	.word	.LC9
	.word	fsize
	.word	hsize
	.word	69001
	.word	5003
	.word	9001
	.word	18013
	.word	35023
	.word	46999
	.word	50021
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	stdout
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	100000
	.word	.LC18
	.size	main, .-main
	.local	offset
	.comm	offset,4,4
	.global	in_count
	.data
	.align	2
	.type	in_count, %object
	.size	in_count, 4
in_count:
	.word	1
	.comm	bytes_out,4,4
	.global	out_count
	.bss
	.align	2
	.type	out_count, %object
	.size	out_count, 4
out_count:
	.space	4
	.section	.rodata
	.align	2
.LC20:
	.ascii	"Compression: \000"
	.text
	.align	2
	.global	compress
	.syntax unified
	.arm
	.fpu softvfp
	.type	compress, %function
compress:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #36
	mov	r4, #0
	ldr	r3, .L93
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L71
	ldr	r3, .L93+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, .L93+4
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, .L93+8
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, .L93+12
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	mov	r0, r3
	bl	putchar
	ldr	r3, .L93+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	beq	.L71
	bl	writeerr
.L71:
	ldr	r3, .L93+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L93+24
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, .L93+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L93+32
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L93+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L93+40
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L93+44
	ldr	r2, .L93+48
	str	r2, [r3]
	ldr	r3, .L93+52
	mov	r2, #9
	str	r2, [r3]
	ldr	r3, .L93+52
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, .L93+56
	str	r3, [r2]
	ldr	r3, .L93+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L72
	ldr	r3, .L93+60
	b	.L73
.L72:
	mov	r3, #256
.L73:
	ldr	r2, .L93+64
	str	r3, [r2]
	bl	getchar
	mov	r6, r0
	mov	r7, #0
	ldr	r3, .L93+68
	ldr	r5, [r3]
	b	.L74
.L75:
	add	r7, r7, #1
	lsl	r5, r5, #1
.L74:
	cmp	r5, #65536
	blt	.L75
	rsb	r7, r7, #8
	ldr	r3, .L93+68
	ldr	r9, [r3]
	mov	r0, r9
	bl	cl_hash
	b	.L76
.L85:
	ldr	r3, .L93+40
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L93+40
	str	r3, [r2]
	ldr	r3, .L93+8
	ldr	r3, [r3]
	lsl	r3, r8, r3
	add	r5, r6, r3
	lsl	r3, r8, r7
	eor	r4, r6, r3
	ldr	r3, .L93+72
	ldr	r3, [r3, r4, lsl #2]
	cmp	r5, r3
	bne	.L77
	ldr	r2, .L93+76
	lsl	r3, r4, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r6, r3
	b	.L76
.L77:
	ldr	r3, .L93+72
	ldr	r3, [r3, r4, lsl #2]
	cmp	r3, #0
	blt	.L89
	sub	r10, r9, r4
	cmp	r4, #0
	bne	.L90
	mov	r10, #1
	b	.L83
.L90:
	nop
.L80:
.L83:
	sub	r4, r4, r10
	cmp	r4, #0
	bge	.L81
	add	r4, r4, r9
.L81:
	ldr	r3, .L93+72
	ldr	r3, [r3, r4, lsl #2]
	cmp	r5, r3
	bne	.L82
	ldr	r2, .L93+76
	lsl	r3, r4, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r6, r3
	b	.L76
.L82:
	ldr	r3, .L93+72
	ldr	r3, [r3, r4, lsl #2]
	cmp	r3, #0
	ble	.L91
	b	.L83
.L89:
	nop
	b	.L79
.L91:
	nop
.L79:
	mov	r0, r6
	bl	output
	ldr	r3, .L93+28
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L93+28
	str	r3, [r2]
	mov	r6, r8
	ldr	r3, .L93+64
	ldr	r2, [r3]
	ldr	r3, .L93+80
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L84
	ldr	r3, .L93+64
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L93+64
	str	r2, [r1]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, .L93+76
	lsl	r3, r4, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, .L93+72
	str	r5, [r3, r4, lsl #2]
	b	.L76
.L84:
	ldr	r3, .L93+40
	ldr	r2, [r3]
	ldr	r3, .L93+44
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L76
	ldr	r3, .L93+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L76
	bl	cl_block
.L76:
	bl	getchar
	mov	r8, r0
	cmn	r8, #1
	bne	.L85
	mov	r0, r6
	bl	output
	ldr	r3, .L93+28
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L93+28
	str	r3, [r2]
	mvn	r0, #0
	bl	output
	ldr	r3, .L93+84
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L86
	ldr	r3, .L93+88
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L86
	ldr	r3, .L93+92
	ldr	r3, [r3]
	mov	r2, #13
	mov	r1, #1
	ldr	r0, .L93+96
	bl	fwrite
	ldr	r3, .L93+92
	ldr	r0, [r3]
	ldr	r3, .L93+40
	ldr	r2, [r3]
	ldr	r3, .L93+24
	ldr	r3, [r3]
	sub	r3, r2, r3
	ldr	r2, .L93+40
	ldr	r2, [r2]
	mov	r1, r3
	bl	prratio
.L86:
	ldr	r3, .L93+24
	ldr	r2, [r3]
	ldr	r3, .L93+40
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L92
	ldr	r3, .L93+100
	mov	r2, #2
	str	r2, [r3]
.L92:
	nop
	nop
	mov	r0, r3
	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L94:
	.align	2
.L93:
	.word	nomagic
	.word	magic_header
	.word	maxbits
	.word	block_compress
	.word	stdout
	.word	offset
	.word	bytes_out
	.word	out_count
	.word	clear_flg
	.word	ratio
	.word	in_count
	.word	checkpoint
	.word	10000
	.word	n_bits
	.word	maxcode
	.word	257
	.word	free_ent
	.word	hsize
	.word	htab
	.word	codetab
	.word	maxmaxcode
	.word	zcat_flg
	.word	quiet
	.word	stderr
	.word	.LC20
	.word	exit_stat
	.size	compress, .-compress
	.local	buf
	.comm	buf,16,4
	.global	lmask
	.data
	.align	2
	.type	lmask, %object
	.size	lmask, 9
lmask:
	.ascii	"\377\376\374\370\360\340\300\200\000"
	.global	rmask
	.align	2
	.type	rmask, %object
	.size	rmask, 9
rmask:
	.ascii	"\000\001\003\007\017\037?\177\377"
	.text
	.align	2
	.global	output
	.syntax unified
	.arm
	.fpu softvfp
	.type	output, %function
output:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #12
	str	r0, [fp, #-24]
	ldr	r3, .L108
	ldr	r6, [r3]
	ldr	r3, .L108+4
	ldr	r4, [r3]
	ldr	r5, .L108+8
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	blt	.L96
	asr	r3, r6, #3
	add	r5, r5, r3
	and	r6, r6, #7
	ldrb	r2, [r5]	@ zero_extendqisi2
	ldr	r3, .L108+12
	ldrb	r3, [r3, r6]	@ zero_extendqisi2
	and	r3, r3, r2
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-24]
	lsl	r3, r3, r6
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L108+16
	ldrb	r3, [r3, r6]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, r1
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [r5]
	add	r5, r5, #1
	rsb	r3, r6, #8
	sub	r4, r4, r3
	rsb	r3, r6, #8
	ldr	r2, [fp, #-24]
	asr	r3, r2, r3
	str	r3, [fp, #-24]
	cmp	r4, #7
	ble	.L97
	mov	r3, r5
	add	r5, r3, #1
	ldr	r2, [fp, #-24]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	asr	r3, r3, #8
	str	r3, [fp, #-24]
	sub	r4, r4, #8
.L97:
	cmp	r4, #0
	beq	.L98
	ldr	r3, [fp, #-24]
	and	r3, r3, #255
	strb	r3, [r5]
.L98:
	ldr	r3, .L108
	ldr	r2, [r3]
	ldr	r3, .L108+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L108
	str	r3, [r2]
	ldr	r3, .L108+4
	ldr	r3, [r3]
	lsl	r2, r3, #3
	ldr	r3, .L108
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L99
	ldr	r5, .L108+8
	ldr	r3, .L108+4
	ldr	r4, [r3]
	ldr	r3, .L108+20
	ldr	r3, [r3]
	add	r3, r4, r3
	ldr	r2, .L108+20
	str	r3, [r2]
.L100:
	mov	r3, r5
	add	r5, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	sub	r4, r4, #1
	cmp	r4, #0
	bne	.L100
	ldr	r3, .L108
	mov	r2, #0
	str	r2, [r3]
.L99:
	ldr	r3, .L108+24
	ldr	r2, [r3]
	ldr	r3, .L108+28
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L101
	ldr	r3, .L108+32
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L102
.L101:
	ldr	r3, .L108
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L103
	ldr	r3, .L108+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L108+36
	ldr	r3, [r3]
	mov	r1, #1
	ldr	r0, .L108+8
	bl	fwrite
	mov	r3, r0
	ldr	r2, .L108+4
	ldr	r2, [r2]
	cmp	r3, r2
	beq	.L104
	bl	writeerr
.L104:
	ldr	r3, .L108+20
	ldr	r2, [r3]
	ldr	r3, .L108+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L108+20
	str	r3, [r2]
.L103:
	ldr	r3, .L108
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L108+32
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L105
	ldr	r3, .L108+4
	mov	r2, #9
	str	r2, [r3]
	ldr	r3, .L108+4
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, .L108+28
	str	r3, [r2]
	ldr	r3, .L108+32
	mov	r2, #0
	str	r2, [r3]
	b	.L102
.L105:
	ldr	r3, .L108+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L108+4
	str	r3, [r2]
	ldr	r3, .L108+4
	ldr	r2, [r3]
	ldr	r3, .L108+40
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L106
	ldr	r3, .L108+44
	ldr	r3, [r3]
	ldr	r2, .L108+28
	str	r3, [r2]
	b	.L102
.L106:
	ldr	r3, .L108+4
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, .L108+28
	str	r3, [r2]
	b	.L102
.L96:
	ldr	r3, .L108
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L107
	ldr	r3, .L108
	ldr	r3, [r3]
	add	r3, r3, #7
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r3, .L108+36
	ldr	r3, [r3]
	mov	r1, #1
	ldr	r0, .L108+8
	bl	fwrite
.L107:
	ldr	r3, .L108
	ldr	r3, [r3]
	add	r3, r3, #7
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	mov	r2, r3
	ldr	r3, .L108+20
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L108+20
	str	r3, [r2]
	ldr	r3, .L108
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L108+36
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	ldr	r3, .L108+36
	ldr	r3, [r3]
	mov	r0, r3
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	beq	.L102
	bl	writeerr
.L102:
	nop
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L109:
	.align	2
.L108:
	.word	offset
	.word	n_bits
	.word	buf
	.word	rmask
	.word	lmask
	.word	bytes_out
	.word	free_ent
	.word	maxcode
	.word	clear_flg
	.word	stdout
	.word	maxbits
	.word	maxmaxcode
	.size	output, .-output
	.align	2
	.global	decompress
	.syntax unified
	.arm
	.fpu softvfp
	.type	decompress, %function
decompress:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	ldr	r3, .L131
	mov	r2, #9
	str	r2, [r3]
	ldr	r3, .L131
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, .L131+4
	str	r3, [r2]
	mov	r4, #255
	b	.L111
.L112:
	ldr	r2, .L131+8
	lsl	r3, r4, #1
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r2, r4
	ldr	r3, .L131+12
	add	r3, r2, r3
	and	r2, r4, #255
	strb	r2, [r3]
	sub	r4, r4, #1
.L111:
	cmp	r4, #0
	bge	.L112
	ldr	r3, .L131+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L113
	ldr	r3, .L131+20
	b	.L114
.L113:
	mov	r3, #256
.L114:
	ldr	r2, .L131+24
	str	r3, [r2]
	bl	getcode
	mov	r7, r0
	mov	r6, r7
	cmn	r7, #1
	beq	.L129
	and	r3, r6, #255
	mov	r0, r3
	bl	putchar
	ldr	r3, .L131+28
	ldr	r3, [r3]
	mov	r0, r3
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	beq	.L117
	bl	writeerr
.L117:
	ldr	r5, .L131+32
	b	.L118
.L128:
	cmp	r4, #256
	bne	.L119
	ldr	r3, .L131+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L119
	mov	r4, #255
	b	.L120
.L121:
	ldr	r2, .L131+8
	lsl	r3, r4, #1
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	sub	r4, r4, #1
.L120:
	cmp	r4, #0
	bge	.L121
	ldr	r3, .L131+36
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L131+24
	mov	r2, #256
	str	r2, [r3]
	bl	getcode
	mov	r4, r0
	cmn	r4, #1
	beq	.L130
.L119:
	mov	r8, r4
	ldr	r3, .L131+24
	ldr	r3, [r3]
	cmp	r4, r3
	blt	.L124
	mov	r3, r5
	add	r5, r3, #1
	and	r2, r6, #255
	strb	r2, [r3]
	mov	r4, r7
	b	.L124
.L125:
	mov	r2, r4
	ldr	r3, .L131+12
	add	r2, r2, r3
	mov	r3, r5
	add	r5, r3, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r2, .L131+8
	lsl	r3, r4, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r4, r3
.L124:
	cmp	r4, #255
	bgt	.L125
	mov	r2, r4
	ldr	r3, .L131+12
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r6, r3
	mov	r3, r5
	add	r5, r3, #1
	and	r2, r6, #255
	strb	r2, [r3]
.L126:
	sub	r5, r5, #1
	ldrb	r3, [r5]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, .L131+32
	cmp	r5, r3
	bhi	.L126
	ldr	r3, .L131+24
	ldr	r4, [r3]
	ldr	r3, .L131+40
	ldr	r3, [r3]
	cmp	r4, r3
	bge	.L127
	lsl	r3, r7, #16
	lsr	r2, r3, #16
	ldr	r1, .L131+8
	lsl	r3, r4, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	mov	r2, r4
	ldr	r3, .L131+12
	add	r3, r2, r3
	and	r2, r6, #255
	strb	r2, [r3]
	add	r3, r4, #1
	ldr	r2, .L131+24
	str	r3, [r2]
.L127:
	mov	r7, r8
.L118:
	bl	getcode
	mov	r4, r0
	cmp	r4, #0
	bge	.L128
	b	.L122
.L130:
	nop
.L122:
	ldr	r3, .L131+28
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	ldr	r3, .L131+28
	ldr	r3, [r3]
	mov	r0, r3
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	beq	.L116
	bl	writeerr
	b	.L116
.L129:
	nop
.L116:
	mov	r0, r3
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L132:
	.align	2
.L131:
	.word	n_bits
	.word	maxcode
	.word	codetab
	.word	htab
	.word	block_compress
	.word	257
	.word	free_ent
	.word	stdout
	.word	htab+65536
	.word	clear_flg
	.word	maxmaxcode
	.size	decompress, .-decompress
	.align	2
	.global	getcode
	.syntax unified
	.arm
	.fpu softvfp
	.type	getcode, %function
getcode:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	ldr	r5, .L142
	ldr	r3, .L142+4
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L134
	ldr	r3, .L142+8
	ldr	r2, [r3]
	ldr	r3, .L142+12
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L134
	ldr	r3, .L142+16
	ldr	r2, [r3]
	ldr	r3, .L142+20
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L135
.L134:
	ldr	r3, .L142+16
	ldr	r2, [r3]
	ldr	r3, .L142+20
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L136
	ldr	r3, .L142+24
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L142+24
	str	r3, [r2]
	ldr	r3, .L142+24
	ldr	r2, [r3]
	ldr	r3, .L142+28
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L137
	ldr	r3, .L142+32
	ldr	r3, [r3]
	ldr	r2, .L142+20
	str	r3, [r2]
	b	.L136
.L137:
	ldr	r3, .L142+24
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, .L142+20
	str	r3, [r2]
.L136:
	ldr	r3, .L142+4
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L138
	ldr	r3, .L142+24
	mov	r2, #9
	str	r2, [r3]
	ldr	r3, .L142+24
	ldr	r3, [r3]
	mov	r2, #1
	lsl	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, .L142+20
	str	r3, [r2]
	ldr	r3, .L142+4
	mov	r2, #0
	str	r2, [r3]
.L138:
	ldr	r3, .L142+24
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L142+36
	ldr	r3, [r3]
	mov	r1, #1
	ldr	r0, .L142
	bl	fread
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L142+12
	str	r2, [r3]
	ldr	r3, .L142+12
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L139
	mvn	r3, #0
	b	.L140
.L139:
	ldr	r3, .L142+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L142+12
	ldr	r3, [r3]
	lsl	r2, r3, #3
	ldr	r3, .L142+24
	ldr	r3, [r3]
	sub	r3, r3, #1
	sub	r3, r2, r3
	ldr	r2, .L142+12
	str	r3, [r2]
.L135:
	ldr	r3, .L142+8
	ldr	r4, [r3]
	ldr	r3, .L142+24
	ldr	r6, [r3]
	asr	r3, r4, #3
	add	r5, r5, r3
	and	r4, r4, #7
	mov	r3, r5
	add	r5, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	asr	r7, r3, r4
	rsb	r3, r4, #8
	sub	r6, r6, r3
	rsb	r4, r4, #8
	cmp	r6, #7
	ble	.L141
	mov	r3, r5
	add	r5, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r4
	orr	r7, r7, r3
	add	r4, r4, #8
	sub	r6, r6, #8
.L141:
	ldrb	r2, [r5]	@ zero_extendqisi2
	ldr	r3, .L142+40
	ldrb	r3, [r3, r6]	@ zero_extendqisi2
	and	r3, r3, r2
	and	r3, r3, #255
	lsl	r3, r3, r4
	orr	r7, r7, r3
	ldr	r3, .L142+8
	ldr	r2, [r3]
	ldr	r3, .L142+24
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L142+8
	str	r3, [r2]
	mov	r3, r7
.L140:
	mov	r0, r3
	pop	{r4, r5, r6, r7, fp, pc}
.L143:
	.align	2
.L142:
	.word	buf.5520
	.word	clear_flg
	.word	offset.5518
	.word	size.5519
	.word	free_ent
	.word	maxcode
	.word	n_bits
	.word	maxbits
	.word	maxmaxcode
	.word	stdin
	.word	rmask
	.size	getcode, .-getcode
	.align	2
	.global	rindex
	.syntax unified
	.arm
	.fpu softvfp
	.type	rindex, %function
rindex:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	mov	r3, r0
	mov	r2, r1
	and	r1, r2, #255
	mov	r2, #0
	str	r2, [fp, #-8]
	b	.L145
.L147:
	ldrb	r2, [r3]	@ zero_extendqisi2
	cmp	r1, r2
	bne	.L146
	str	r3, [fp, #-8]
.L146:
	add	r3, r3, #1
.L145:
	ldrb	r2, [r3]	@ zero_extendqisi2
	cmp	r2, #0
	bne	.L147
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	rindex, .-rindex
	.align	2
	.global	writeerr
	.syntax unified
	.arm
	.fpu softvfp
	.type	writeerr, %function
writeerr:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L150
	bl	perror
	ldr	r0, .L150
	bl	unlink
	mov	r0, #1
	bl	exit
.L151:
	.align	2
.L150:
	.word	ofname
	.size	writeerr, .-writeerr
	.section	.rodata
	.align	2
.LC21:
	.ascii	" -- not a regular file: unchanged\000"
	.align	2
.LC22:
	.ascii	" -- has %d other links: unchanged\000"
	.align	2
.LC23:
	.ascii	" -- file unchanged\000"
	.align	2
.LC24:
	.ascii	" -- replaced with %s\000"
	.align	2
.LC25:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	copystat
	.syntax unified
	.arm
	.fpu softvfp
	.type	copystat, %function
copystat:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	ldr	r3, .L169
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L169+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	sub	r3, fp, #108
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	stat
	mov	r3, r0
	cmp	r3, #0
	beq	.L153
	ldr	r0, [fp, #-120]
	bl	perror
	b	.L166
.L153:
	ldr	r3, [fp, #-92]
	and	r3, r3, #61440
	cmp	r3, #32768
	beq	.L155
	ldr	r3, .L169+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L156
	ldr	r3, .L169+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-120]
	ldr	r1, .L169+16
	mov	r0, r3
	bl	fprintf
.L156:
	ldr	r3, .L169+12
	ldr	r3, [r3]
	mov	r2, #33
	mov	r1, #1
	ldr	r0, .L169+20
	bl	fwrite
	ldr	r3, .L169+24
	mov	r2, #1
	str	r2, [r3]
	b	.L157
.L155:
	ldr	r3, [fp, #-88]
	cmp	r3, #1
	bls	.L158
	ldr	r3, .L169+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L159
	ldr	r3, .L169+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-120]
	ldr	r1, .L169+16
	mov	r0, r3
	bl	fprintf
.L159:
	ldr	r3, .L169+12
	ldr	r0, [r3]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r1, .L169+28
	bl	fprintf
	ldr	r3, .L169+24
	mov	r2, #1
	str	r2, [r3]
	b	.L157
.L158:
	ldr	r3, .L169+24
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L160
	ldr	r3, .L169+32
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L160
	ldr	r3, .L169+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L157
	ldr	r3, .L169+12
	ldr	r3, [r3]
	mov	r2, #18
	mov	r1, #1
	ldr	r0, .L169+36
	bl	fwrite
	b	.L157
.L160:
	ldr	r3, .L169+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	mov	r1, r3
	ldr	r0, [fp, #-124]
	bl	chmod
	mov	r3, r0
	cmp	r3, #0
	beq	.L162
	ldr	r0, [fp, #-124]
	bl	perror
.L162:
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-80]
	mov	r1, r3
	ldr	r0, [fp, #-124]
	bl	chown
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-12]
	sub	r3, fp, #16
	mov	r1, r3
	ldr	r0, [fp, #-124]
	bl	utime
	ldr	r0, [fp, #-120]
	bl	unlink
	mov	r3, r0
	cmp	r3, #0
	beq	.L163
	ldr	r0, [fp, #-120]
	bl	perror
.L163:
	ldr	r3, .L169+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L168
	ldr	r3, .L169+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-124]
	ldr	r1, .L169+40
	mov	r0, r3
	bl	fprintf
	b	.L168
.L157:
	ldr	r0, [fp, #-124]
	bl	unlink
	mov	r3, r0
	cmp	r3, #0
	beq	.L166
	ldr	r0, [fp, #-124]
	bl	perror
	b	.L166
.L168:
	nop
.L166:
	ldr	r2, .L169
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L167
	bl	__stack_chk_fail
.L167:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L170:
	.align	2
.L169:
	.word	.LC25
	.word	stdout
	.word	quiet
	.word	stderr
	.word	.LC16
	.word	.LC21
	.word	exit_stat
	.word	.LC22
	.word	force
	.word	.LC23
	.word	.LC24
	.size	copystat, .-copystat
	.align	2
	.global	foreground
	.syntax unified
	.arm
	.fpu softvfp
	.type	foreground, %function
foreground:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L175
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L172
	mov	r3, #0
	b	.L173
.L172:
	mov	r0, #2
	bl	isatty
	mov	r3, r0
	cmp	r3, #0
	beq	.L174
	mov	r3, #1
	b	.L173
.L174:
	mov	r3, #0
.L173:
	mov	r0, r3
	pop	{fp, pc}
.L176:
	.align	2
.L175:
	.word	bgnd_flag
	.size	foreground, .-foreground
	.align	2
	.global	onintr
	.syntax unified
	.arm
	.fpu softvfp
	.type	onintr, %function
onintr:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L178
	bl	unlink
	mov	r0, #1
	bl	exit
.L179:
	.align	2
.L178:
	.word	ofname
	.size	onintr, .-onintr
	.section	.rodata
	.align	2
.LC26:
	.ascii	"uncompress: corrupt input\012\000"
	.text
	.align	2
	.global	oops
	.syntax unified
	.arm
	.fpu softvfp
	.type	oops, %function
oops:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L182
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L181
	ldr	r3, .L182+4
	ldr	r3, [r3]
	mov	r2, #26
	mov	r1, #1
	ldr	r0, .L182+8
	bl	fwrite
.L181:
	ldr	r0, .L182+12
	bl	unlink
	mov	r0, #1
	bl	exit
.L183:
	.align	2
.L182:
	.word	do_decomp
	.word	stderr
	.word	.LC26
	.word	ofname
	.size	oops, .-oops
	.global	__aeabi_idiv
	.align	2
	.global	cl_block
	.syntax unified
	.arm
	.fpu softvfp
	.type	cl_block, %function
cl_block:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	ldr	r3, .L190
	ldr	r3, [r3]
	add	r3, r3, #9984
	add	r3, r3, #16
	ldr	r2, .L190+4
	str	r3, [r2]
	ldr	r3, .L190
	ldr	r3, [r3]
	cmp	r3, #8388608
	blt	.L185
	ldr	r3, .L190+8
	ldr	r3, [r3]
	asr	r4, r3, #8
	cmp	r4, #0
	bne	.L186
	mvn	r4, #-2147483648
	b	.L187
.L186:
	ldr	r3, .L190
	ldr	r3, [r3]
	mov	r1, r4
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r4, r3
	b	.L187
.L185:
	ldr	r3, .L190
	ldr	r3, [r3]
	lsl	r3, r3, #8
	ldr	r2, .L190+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r4, r3
.L187:
	ldr	r3, .L190+12
	ldr	r3, [r3]
	cmp	r4, r3
	ble	.L188
	ldr	r3, .L190+12
	str	r4, [r3]
	b	.L189
.L188:
	ldr	r3, .L190+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L190+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	cl_hash
	ldr	r3, .L190+20
	ldr	r2, .L190+24
	str	r2, [r3]
	ldr	r3, .L190+28
	mov	r2, #1
	str	r2, [r3]
	mov	r0, #256
	bl	output
.L189:
	nop
	mov	r0, r3
	pop	{r4, r5, fp, pc}
.L191:
	.align	2
.L190:
	.word	in_count
	.word	checkpoint
	.word	bytes_out
	.word	ratio
	.word	hsize
	.word	free_ent
	.word	257
	.word	clear_flg
	.size	cl_block, .-cl_block
	.align	2
	.global	cl_hash
	.syntax unified
	.arm
	.fpu softvfp
	.type	cl_hash, %function
cl_hash:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, fp}
	add	fp, sp, #12
	mov	r2, r0
	mov	r3, r2
	lsl	r3, r3, #2
	ldr	r1, .L196
	add	r4, r3, r1
	mvn	r5, #0
	sub	r6, r2, #16
.L193:
	sub	r3, r4, #64
	str	r5, [r3]
	sub	r3, r4, #60
	str	r5, [r3]
	sub	r3, r4, #56
	str	r5, [r3]
	sub	r3, r4, #52
	str	r5, [r3]
	sub	r3, r4, #48
	str	r5, [r3]
	sub	r3, r4, #44
	str	r5, [r3]
	sub	r3, r4, #40
	str	r5, [r3]
	sub	r3, r4, #36
	str	r5, [r3]
	sub	r3, r4, #32
	str	r5, [r3]
	sub	r3, r4, #28
	str	r5, [r3]
	sub	r3, r4, #24
	str	r5, [r3]
	sub	r3, r4, #20
	str	r5, [r3]
	sub	r3, r4, #16
	str	r5, [r3]
	sub	r3, r4, #12
	str	r5, [r3]
	sub	r3, r4, #8
	str	r5, [r3]
	sub	r3, r4, #4
	str	r5, [r3]
	sub	r4, r4, #64
	sub	r6, r6, #16
	cmp	r6, #0
	bge	.L193
	add	r6, r6, #16
	b	.L194
.L195:
	sub	r4, r4, #4
	str	r5, [r4]
	sub	r6, r6, #1
.L194:
	cmp	r6, #0
	bgt	.L195
	nop
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, r6, fp}
	bx	lr
.L197:
	.align	2
.L196:
	.word	htab
	.size	cl_hash, .-cl_hash
	.section	.rodata
	.align	2
.LC27:
	.ascii	"%d.%02d%%\000"
	.text
	.align	2
	.global	prratio
	.syntax unified
	.arm
	.fpu softvfp
	.type	prratio, %function
prratio:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	ldr	r2, .L202
	cmp	r3, r2
	ble	.L199
	ldr	r3, [fp, #-24]
	ldr	r2, .L202+4
	smull	r1, r2, r3, r2
	asr	r2, r2, #12
	asr	r3, r3, #31
	sub	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r4, r3
	b	.L200
.L199:
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r4, r3
.L200:
	cmp	r4, #0
	bge	.L201
	ldr	r1, [fp, #-16]
	mov	r0, #45
	bl	putc
	rsb	r4, r4, #0
.L201:
	ldr	r3, .L202+8
	smull	r2, r3, r4, r3
	asr	r2, r3, #5
	asr	r3, r4, #31
	sub	r1, r2, r3
	ldr	r3, .L202+8
	smull	r2, r3, r4, r3
	asr	r2, r3, #5
	asr	r3, r4, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, r4, r3
	mov	r3, r2
	mov	r2, r1
	ldr	r1, .L202+12
	ldr	r0, [fp, #-16]
	bl	fprintf
	nop
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L203:
	.align	2
.L202:
	.word	214748
	.word	1759218605
	.word	1374389535
	.word	.LC27
	.size	prratio, .-prratio
	.section	.rodata
	.align	2
.LC28:
	.ascii	"%s\012\000"
	.align	2
.LC29:
	.ascii	"Options: \000"
	.align	2
.LC30:
	.ascii	"BITS = %d\012\000"
	.text
	.align	2
	.global	version
	.syntax unified
	.arm
	.fpu softvfp
	.type	version, %function
version:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L205
	ldr	r3, [r3]
	ldr	r2, .L205+4
	ldr	r1, .L205+8
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L205
	ldr	r3, [r3]
	mov	r2, #9
	mov	r1, #1
	ldr	r0, .L205+12
	bl	fwrite
	ldr	r3, .L205
	ldr	r3, [r3]
	mov	r2, #16
	ldr	r1, .L205+16
	mov	r0, r3
	bl	fprintf
	nop
	mov	r0, r3
	pop	{fp, pc}
.L206:
	.align	2
.L205:
	.word	stderr
	.word	rcs_ident
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.size	version, .-version
	.local	buf.5520
	.comm	buf.5520,16,4
	.local	offset.5518
	.comm	offset.5518,4,4
	.local	size.5519
	.comm	size.5519,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
