	.file	"511362.c"
	.intel_syntax noprefix
	.text
	.globl	inFileName
	.bss
	.align 32
	.type	inFileName, @object
	.size	inFileName, 2000
inFileName:
	.zero	2000
	.globl	outFileName
	.align 32
	.type	outFileName, @object
	.size	outFileName, 2000
outFileName:
	.zero	2000
	.globl	progName
	.align 32
	.type	progName, @object
	.size	progName, 2000
progName:
	.zero	2000
	.globl	bytesOut
	.align 8
	.type	bytesOut, @object
	.size	bytesOut, 8
bytesOut:
	.zero	8
	.globl	bytesIn
	.align 8
	.type	bytesIn, @object
	.size	bytesIn, 8
bytesIn:
	.zero	8
	.section	.rodata
	.align 8
.LC0:
	.string	"%s: I/O error reading `%s', possible reason follows.\n"
	.align 8
.LC1:
	.string	"%s: warning: output file(s) may be incomplete.\n"
	.text
	.type	readError, @function
readError:
.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]
	lea	rcx, inFileName[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC0[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	lea	rdi, progName[rip]
	call	perror@PLT
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE6:
	.size	readError, .-readError
	.type	writeError, @function
writeError:
.LFB7:
	.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	rcx, inFileName[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC0[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	lea	rdi, progName[rip]
	call	perror@PLT
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE7:
	.size	writeError, .-writeError
	.section	.rodata
	.align 8
.LC2:
	.string	"%s: malloc failed on request for %d bytes.\n"
	.text
	.type	mallocFail, @function
mallocFail:
.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, 16
	mov	DWORD PTR -4[rbp], edi
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, edx
	lea	rdx, progName[rip]
	lea	rsi, .LC2[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE8:
	.size	mallocFail, .-mallocFail
	.section	.rodata
	.align 8
.LC3:
	.string	"%s: `%s' appears to contain more than %d blocks\n"
	.align 8
.LC4:
	.string	"%s: and cannot be handled.  To fix, increase\n"
	.align 8
.LC5:
	.string	"%s: BZ_MAX_HANDLED_BLOCKS in bzip2recover.c, and recompile.\n"
	.text
	.type	tooManyBlocks, @function
tooManyBlocks:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -4[rbp]
	mov	r8d, edx
	lea	rcx, inFileName[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC4[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE9:
	.size	tooManyBlocks, .-tooManyBlocks
	.type	bsOpenReadStream, @function
bsOpenReadStream:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edi, 24
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L6
	mov	edi, 24
	call	mallocFail
.L6:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 12[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 16[rax], 114
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	bsOpenReadStream, .-bsOpenReadStream
	.type	bsOpenWriteStream, @function
bsOpenWriteStream:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edi, 24
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L9
	mov	edi, 24
	call	mallocFail
.L9:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 12[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 16[rax], 119
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	bsOpenWriteStream, .-bsOpenWriteStream
	.type	bsPutBit, @function
bsPutBit:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	eax, 8
	jne	.L12
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	putc@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L13
	call	writeError
.L13:
	mov	rax, QWORD PTR bytesOut[rip]
	add	rax, 1
	mov	QWORD PTR bytesOut[rip], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 12[rax], 1
	mov	eax, DWORD PTR -28[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
	jmp	.L15
.L12:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -28[rbp]
	and	eax, 1
	or	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 12[rax], edx
.L15:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	bsPutBit, .-bsPutBit
	.type	bsGetBit, @function
bsGetBit:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	test	eax, eax
	jle	.L17
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	and	eax, 1
	jmp	.L18
.L17:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L19
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L20
	call	readError
.L20:
	mov	eax, 2
	jmp	.L18
.L19:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 12[rax], 7
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	sar	eax, 7
	and	eax, 1
.L18:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	bsGetBit, .-bsGetBit
	.type	bsClose, @function
bsClose:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 119
	jne	.L22
	jmp	.L23
.L24:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	lea	edx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
.L23:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	eax, 7
	jle	.L24
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	putc@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L25
	call	writeError
.L25:
	mov	rax, QWORD PTR bytesOut[rip]
	add	rax, 1
	mov	QWORD PTR bytesOut[rip], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	fflush@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L22
	call	writeError
.L22:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	fclose@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L26
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 119
	jne	.L27
	call	writeError
	jmp	.L26
.L27:
	call	readError
.L26:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	bsClose, .-bsClose
	.type	bsPutUChar, @function
bsPutUChar:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -28[rbp], al
	mov	DWORD PTR -4[rbp], 7
	jmp	.L29
.L30:
	movzx	edx, BYTE PTR -28[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	bsPutBit
	sub	DWORD PTR -4[rbp], 1
.L29:
	cmp	DWORD PTR -4[rbp], 0
	jns	.L30
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	bsPutUChar, .-bsPutUChar
	.type	bsPutUInt32, @function
bsPutUInt32:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -4[rbp], 31
	jmp	.L32
.L33:
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	bsPutBit
	sub	DWORD PTR -4[rbp], 1
.L32:
	cmp	DWORD PTR -4[rbp], 0
	jns	.L33
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	bsPutUInt32, .-bsPutUInt32
	.type	endsInBz2, @function
endsInBz2:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 4
	jg	.L35
	mov	eax, 0
	jmp	.L36
.L35:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 46
	jne	.L37
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, -3[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 98
	jne	.L37
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 122
	jne	.L37
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 50
	jne	.L37
	mov	eax, 1
	jmp	.L36
.L37:
	mov	eax, 0
.L36:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	endsInBz2, .-endsInBz2
	.globl	bStart
	.bss
	.align 32
	.type	bStart, @object
	.size	bStart, 400000
bStart:
	.zero	400000
	.globl	bEnd
	.align 32
	.type	bEnd, @object
	.size	bEnd, 400000
bEnd:
	.zero	400000
	.globl	rbStart
	.align 32
	.type	rbStart, @object
	.size	rbStart, 400000
rbStart:
	.zero	400000
	.globl	rbEnd
	.align 32
	.type	rbEnd, @object
	.size	rbEnd, 400000
rbEnd:
	.zero	400000
	.section	.rodata
	.align 8
.LC6:
	.string	"bzip2recover 1.0.6: extracts blocks from damaged .bz2 files.\n"
	.align 8
.LC7:
	.string	"%s: usage is `%s damaged_file_name'.\n"
	.align 8
.LC8:
	.string	"\trestrictions on size of recovered file: None\n"
	.align 8
.LC9:
	.string	"%s: supplied filename is suspiciously (>= %d chars) long.  Bye!\n"
.LC10:
	.string	"rb"
.LC11:
	.string	"%s: can't read `%s'\n"
	.align 8
.LC12:
	.string	"%s: searching for block boundaries ...\n"
	.align 8
.LC13:
	.string	"   block %d runs from %Lu to %Lu (incomplete)\n"
	.align 8
.LC14:
	.string	"   block %d runs from %Lu to %Lu\n"
	.align 8
.LC15:
	.string	"%s: sorry, I couldn't find any block boundaries.\n"
.LC16:
	.string	"%s: splitting into blocks\n"
.LC17:
	.string	"%s: can't open `%s'\n"
.LC18:
	.string	"rec%5d"
	.align 8
.LC19:
	.string	"   writing block %d to `%s' ...\n"
.LC20:
	.string	"wb"
.LC21:
	.string	"%s: can't write `%s'\n"
.LC22:
	.string	"%s: finished\n"
	.text
	.globl	main
	.type	main, @function
main:
.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	DWORD PTR -100[rbp], edi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, 1999
	mov	rsi, rax
	lea	rdi, progName[rip]
	call	strncpy@PLT
	mov	BYTE PTR progName[rip+1999], 0
	mov	BYTE PTR outFileName[rip], 0
	movzx	eax, BYTE PTR outFileName[rip]
	mov	BYTE PTR inFileName[rip], al
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 61
	mov	esi, 1
	lea	rdi, .LC6[rip]
	call	fwrite@PLT
	cmp	DWORD PTR -100[rbp], 2
	je	.L40
	mov	rax, QWORD PTR stderr[rip]
	lea	rcx, progName[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 46
	mov	esi, 1
	lea	rdi, .LC8[rip]
	call	fwrite@PLT
	nop
	mov	edi, 1
	call	exit@PLT
.L40:
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1979
	jbe	.L41
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, edx
	lea	rdx, progName[rip]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L41:
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, inFileName[rip]
	call	strcpy@PLT
	lea	rsi, .LC10[rip]
	lea	rdi, inFileName[rip]
	call	fopen@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L42
	mov	rax, QWORD PTR stderr[rip]
	lea	rcx, inFileName[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L42:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	bsOpenReadStream
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	QWORD PTR -40[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -80[rbp], eax
	mov	DWORD PTR -88[rbp], 0
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bStart[rip]
	mov	QWORD PTR [rdx+rax], 0
	mov	DWORD PTR -84[rbp], 0
.L55:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	bsGetBit
	mov	DWORD PTR -64[rbp], eax
	add	QWORD PTR -40[rbp], 1
	cmp	DWORD PTR -64[rbp], 2
	jne	.L43
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bStart[rip]
	mov	rax, QWORD PTR [rdx+rax]
	cmp	QWORD PTR -40[rbp], rax
	jb	.L44
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bStart[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, rdx
	cmp	rax, 39
	jbe	.L44
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, -1[rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bEnd[rip]
	mov	QWORD PTR [rdx+rax], rcx
	cmp	DWORD PTR -88[rbp], 0
	jle	.L46
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bEnd[rip]
	mov	rsi, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bStart[rip]
	mov	rcx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	edx, DWORD PTR -88[rbp]
	mov	r8, rsi
	lea	rsi, .LC13[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L46
.L44:
	sub	DWORD PTR -88[rbp], 1
	jmp	.L47
.L46:
	jmp	.L47
.L43:
	mov	eax, DWORD PTR -80[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 31
	or	eax, edx
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 1
	or	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	movzx	eax, ax
	cmp	eax, 12609
	jne	.L48
	cmp	DWORD PTR -76[rbp], 1495683929
	je	.L49
.L48:
	mov	eax, DWORD PTR -80[rbp]
	movzx	eax, ax
	cmp	eax, 6002
	jne	.L55
	cmp	DWORD PTR -76[rbp], 1161318544
	jne	.L55
.L49:
	cmp	QWORD PTR -40[rbp], 49
	jbe	.L51
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, -49[rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bEnd[rip]
	mov	QWORD PTR [rdx+rax], rcx
	jmp	.L52
.L51:
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bEnd[rip]
	mov	QWORD PTR [rdx+rax], 0
.L52:
	cmp	DWORD PTR -88[rbp], 0
	jle	.L53
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bEnd[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -88[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, bStart[rip]
	mov	rdx, QWORD PTR [rcx+rdx]
	sub	rax, rdx
	cmp	rax, 129
	jbe	.L53
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bEnd[rip]
	mov	rcx, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bStart[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -84[rbp]
	lea	esi, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, esi
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bStart[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -84[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, rbStart[rip]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, bEnd[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -84[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, rbEnd[rip]
	mov	QWORD PTR [rcx+rdx], rax
	add	DWORD PTR -84[rbp], 1
.L53:
	cmp	DWORD PTR -88[rbp], 49999
	jle	.L54
	mov	edi, 50000
	call	tooManyBlocks
.L54:
	add	DWORD PTR -88[rbp], 1
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	lea	rdx, bStart[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	jmp	.L55
.L47:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	bsClose
	cmp	DWORD PTR -84[rbp], 0
	jg	.L56
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L56:
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	lea	rsi, .LC10[rip]
	lea	rdi, inFileName[rip]
	call	fopen@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L57
	mov	rax, QWORD PTR stderr[rip]
	lea	rcx, inFileName[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L57:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	bsOpenReadStream
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -72[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	DWORD PTR -92[rbp], 0
.L75:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	bsGetBit
	mov	DWORD PTR -64[rbp], eax
	cmp	DWORD PTR -64[rbp], 2
	je	.L77
	mov	eax, DWORD PTR -80[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 31
	or	eax, edx
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 1
	or	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, rbStart[rip]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 47
	cmp	QWORD PTR -40[rbp], rax
	jne	.L60
	mov	eax, DWORD PTR -80[rbp]
	sal	eax, 16
	mov	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 16
	or	eax, edx
	mov	DWORD PTR -72[rbp], eax
.L60:
	cmp	QWORD PTR -56[rbp], 0
	je	.L61
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, rbStart[rip]
	mov	rax, QWORD PTR [rdx+rax]
	cmp	QWORD PTR -40[rbp], rax
	jb	.L61
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, rbEnd[rip]
	mov	rax, QWORD PTR [rdx+rax]
	cmp	QWORD PTR -40[rbp], rax
	ja	.L61
	mov	edx, DWORD PTR -64[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	bsPutBit
.L61:
	add	QWORD PTR -40[rbp], 1
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, rbEnd[rip]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jne	.L62
	cmp	QWORD PTR -56[rbp], 0
	je	.L63
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 23
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 114
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 69
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 56
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 80
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 144
	mov	rdi, rax
	call	bsPutUChar
	mov	edx, DWORD PTR -72[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	bsPutUInt32
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	bsClose
.L63:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jge	.L78
	add	DWORD PTR -92[rbp], 1
	jmp	.L75
.L62:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, rbStart[rip]
	mov	rax, QWORD PTR [rdx+rax]
	cmp	QWORD PTR -40[rbp], rax
	jne	.L75
	mov	DWORD PTR -68[rbp], 0
	jmp	.L66
.L67:
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, outFileName[rip]
	mov	BYTE PTR [rax+rdx], 0
	add	DWORD PTR -68[rbp], 1
.L66:
	cmp	DWORD PTR -68[rbp], 1999
	jle	.L67
	lea	rsi, inFileName[rip]
	lea	rdi, outFileName[rip]
	call	strcpy@PLT
	mov	esi, 47
	lea	rdi, outFileName[rip]
	call	strrchr@PLT
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L68
	lea	rax, outFileName[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L69
.L68:
	add	QWORD PTR -24[rbp], 1
.L69:
	lea	rdx, outFileName[rip]
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, rdx
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L70
.L72:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 32
	jne	.L71
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR [rax], 48
.L71:
	add	QWORD PTR -32[rbp], 1
.L70:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L72
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, inFileName[rip]
	add	rax, rdx
	mov	rsi, rax
	lea	rdi, outFileName[rip]
	call	strcat@PLT
	lea	rdi, outFileName[rip]
	call	endsInBz2
	test	al, al
	jne	.L73
	lea	rdi, outFileName[rip]
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, outFileName[rip]
	add	rax, rdx
	mov	DWORD PTR [rax], 846881326
	mov	BYTE PTR 4[rax], 0
.L73:
	mov	eax, DWORD PTR -92[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rcx, outFileName[rip]
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	lea	rsi, .LC20[rip]
	lea	rdi, outFileName[rip]
	call	fopen@PLT
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jne	.L74
	mov	rax, QWORD PTR stderr[rip]
	lea	rcx, outFileName[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L74:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	bsOpenWriteStream
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 66
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 90
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 104
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 57
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 49
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 65
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 89
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 38
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 83
	mov	rdi, rax
	call	bsPutUChar
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 89
	mov	rdi, rax
	call	bsPutUChar
	jmp	.L75
.L77:
	nop
	jmp	.L59
.L78:
	nop
.L59:
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, progName[rip]
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"511362.c"
	.text
	.comm	inFileName,2000,4
	.comm	outFileName,2000,4
	.comm	progName,2000,4
	.global	bytesOut
	.bss
	.align	3
	.type	bytesOut, %object
	.size	bytesOut, 8
bytesOut:
	.space	8
	.global	bytesIn
	.align	3
	.type	bytesIn, %object
	.size	bytesIn, 8
bytesIn:
	.space	8
	.section	.rodata
	.align	2
.LC0:
	.ascii	"%s: I/O error reading `%s', possible reason follows"
	.ascii	".\012\000"
	.align	2
.LC1:
	.ascii	"%s: warning: output file(s) may be incomplete.\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	readError, %function
readError:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L2
	ldr	r0, [r3]
	ldr	r3, .L2+4
	ldr	r2, .L2+8
	ldr	r1, .L2+12
	bl	fprintf
	ldr	r0, .L2+8
	bl	perror
	ldr	r3, .L2
	ldr	r3, [r3]
	ldr	r2, .L2+8
	ldr	r1, .L2+16
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L3:
	.align	2
.L2:
	.word	stderr
	.word	inFileName
	.word	progName
	.word	.LC0
	.word	.LC1
	.size	readError, .-readError
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	writeError, %function
writeError:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L5
	ldr	r0, [r3]
	ldr	r3, .L5+4
	ldr	r2, .L5+8
	ldr	r1, .L5+12
	bl	fprintf
	ldr	r0, .L5+8
	bl	perror
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+8
	ldr	r1, .L5+16
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L6:
	.align	2
.L5:
	.word	stderr
	.word	inFileName
	.word	progName
	.word	.LC0
	.word	.LC1
	.size	writeError, .-writeError
	.section	.rodata
	.align	2
.LC2:
	.ascii	"%s: malloc failed on request for %d bytes.\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	mallocFail, %function
mallocFail:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L8
	ldr	r0, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, .L8+4
	ldr	r1, .L8+8
	bl	fprintf
	ldr	r3, .L8
	ldr	r3, [r3]
	ldr	r2, .L8+4
	ldr	r1, .L8+12
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L9:
	.align	2
.L8:
	.word	stderr
	.word	progName
	.word	.LC2
	.word	.LC1
	.size	mallocFail, .-mallocFail
	.section	.rodata
	.align	2
.LC3:
	.ascii	"%s: `%s' appears to contain more than %d blocks\012"
	.ascii	"\000"
	.align	2
.LC4:
	.ascii	"%s: and cannot be handled.  To fix, increase\012\000"
	.align	2
.LC5:
	.ascii	"%s: BZ_MAX_HANDLED_BLOCKS in bzip2recover.c, and re"
	.ascii	"compile.\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tooManyBlocks, %function
tooManyBlocks:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	ldr	r3, .L11
	ldr	r0, [r3]
	ldr	r3, [fp, #-8]
	str	r3, [sp]
	ldr	r3, .L11+4
	ldr	r2, .L11+8
	ldr	r1, .L11+12
	bl	fprintf
	ldr	r3, .L11
	ldr	r3, [r3]
	ldr	r2, .L11+8
	ldr	r1, .L11+16
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L11
	ldr	r3, [r3]
	ldr	r2, .L11+8
	ldr	r1, .L11+20
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L12:
	.align	2
.L11:
	.word	stderr
	.word	inFileName
	.word	progName
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.size	tooManyBlocks, .-tooManyBlocks
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsOpenReadStream, %function
bsOpenReadStream:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r0, #16
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L14
	mov	r0, #16
	bl	mallocFail
.L14:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #114
	strb	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bsOpenReadStream, .-bsOpenReadStream
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsOpenWriteStream, %function
bsOpenWriteStream:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r0, #16
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L17
	mov	r0, #16
	bl	mallocFail
.L17:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #119
	strb	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bsOpenWriteStream, .-bsOpenWriteStream
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsPutBit, %function
bsPutBit:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	cmp	r3, #8
	bne	.L20
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	putc
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L21
	bl	writeError
.L21:
	ldr	r3, .L24
	ldmia	r3, {r2-r3}
	adds	r4, r2, #1
	adc	r5, r3, #0
	ldr	r3, .L24
	stm	r3, {r4-r5}
	ldr	r3, [fp, #-24]
	mov	r2, #1
	str	r2, [r3, #8]
	ldr	r3, [fp, #-28]
	and	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3, #4]
	b	.L23
.L20:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-28]
	and	r3, r3, #1
	orr	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
.L23:
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L25:
	.align	2
.L24:
	.word	bytesOut
	.size	bsPutBit, .-bsPutBit
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsGetBit, %function
bsGetBit:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	ble	.L27
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	asr	r3, r2, r3
	and	r3, r3, #1
	b	.L28
.L27:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	getc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L29
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L30
	bl	readError
.L30:
	mov	r3, #2
	b	.L28
.L29:
	ldr	r3, [fp, #-16]
	mov	r2, #7
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	asr	r3, r3, #7
	and	r3, r3, #1
.L28:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bsGetBit, .-bsGetBit
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsClose, %function
bsClose:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	cmp	r3, #119
	bne	.L32
	b	.L33
.L34:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3, #4]
.L33:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	cmp	r3, #7
	ble	.L34
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	putc
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L35
	bl	writeError
.L35:
	ldr	r3, .L38
	ldmia	r3, {r2-r3}
	adds	r4, r2, #1
	adc	r5, r3, #0
	ldr	r3, .L38
	stm	r3, {r4-r5}
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L32
	bl	writeError
.L32:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L36
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	cmp	r3, #119
	bne	.L37
	bl	writeError
	b	.L36
.L37:
	bl	readError
.L36:
	ldr	r0, [fp, #-24]
	bl	free
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L39:
	.align	2
.L38:
	.word	bytesOut
	.size	bsClose, .-bsClose
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsPutUChar, %function
bsPutUChar:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, r1
	strb	r3, [fp, #-17]
	mov	r3, #7
	str	r3, [fp, #-8]
	b	.L41
.L42:
	ldrb	r2, [fp, #-17]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	lsr	r3, r2, r3
	and	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	bsPutBit
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
.L41:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L42
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bsPutUChar, .-bsPutUChar
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsPutUInt32, %function
bsPutUInt32:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #31
	str	r3, [fp, #-8]
	b	.L44
.L45:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	lsr	r3, r2, r3
	and	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	bsPutBit
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
.L44:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L45
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bsPutUInt32, .-bsPutUInt32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	endsInBz2, %function
endsInBz2:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #4
	bgt	.L47
	mov	r3, #0
	b	.L48
.L47:
	ldr	r3, [fp, #-8]
	sub	r3, r3, #4
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #46
	bne	.L49
	ldr	r3, [fp, #-8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #98
	bne	.L49
	ldr	r3, [fp, #-8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #122
	bne	.L49
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #50
	bne	.L49
	mov	r3, #1
	b	.L50
.L49:
	mov	r3, #0
.L50:
	and	r3, r3, #255
.L48:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	endsInBz2, .-endsInBz2
	.comm	bStart,400000,8
	.comm	bEnd,400000,8
	.comm	rbStart,400000,8
	.comm	rbEnd,400000,8
	.section	.rodata
	.align	2
.LC6:
	.ascii	"bzip2recover 1.0.6: extracts blocks from damaged .b"
	.ascii	"z2 files.\012\000"
	.align	2
.LC7:
	.ascii	"%s: usage is `%s damaged_file_name'.\012\000"
	.align	2
.LC8:
	.ascii	"\011restrictions on size of recovered file: None\012"
	.ascii	"\000"
	.align	2
.LC9:
	.ascii	"%s: supplied filename is suspiciously (>= %d chars)"
	.ascii	" long.  Bye!\012\000"
	.align	2
.LC10:
	.ascii	"rb\000"
	.align	2
.LC11:
	.ascii	"%s: can't read `%s'\012\000"
	.align	2
.LC12:
	.ascii	"%s: searching for block boundaries ...\012\000"
	.align	2
.LC13:
	.ascii	"   block %d runs from %Lu to %Lu (incomplete)\012\000"
	.align	2
.LC14:
	.ascii	"   block %d runs from %Lu to %Lu\012\000"
	.align	2
.LC15:
	.ascii	"%s: sorry, I couldn't find any block boundaries.\012"
	.ascii	"\000"
	.align	2
.LC16:
	.ascii	"%s: splitting into blocks\012\000"
	.align	2
.LC17:
	.ascii	"%s: can't open `%s'\012\000"
	.align	2
.LC18:
	.ascii	"rec%5d\000"
	.align	2
.LC19:
	.ascii	".bz2\000"
	.align	2
.LC20:
	.ascii	"   writing block %d to `%s' ...\012\000"
	.align	2
.LC21:
	.ascii	"wb\000"
	.align	2
.LC22:
	.ascii	"%s: can't write `%s'\012\000"
	.align	2
.LC23:
	.ascii	"%s: finished\012\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #136
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	ldr	r2, .L91
	mov	r1, r3
	ldr	r0, .L91+4
	bl	strncpy
	ldr	r2, .L91+4
	mov	r3, #0
	strb	r3, [r2, #1999]
	ldr	r2, .L91+8
	mov	r3, #0
	strb	r3, [r2]
	ldr	r3, .L91+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, .L91+12
	strb	r3, [r2]
	ldr	r3, .L91+16
	ldr	r3, [r3]
	mov	r2, #61
	mov	r1, #1
	ldr	r0, .L91+20
	bl	fwrite
	ldr	r3, [fp, #-104]
	cmp	r3, #2
	beq	.L52
	ldr	r3, .L91+16
	ldr	r0, [r3]
	ldr	r3, .L91+4
	ldr	r2, .L91+4
	ldr	r1, .L91+24
	bl	fprintf
	ldr	r3, .L91+16
	ldr	r3, [r3]
	mov	r2, #46
	mov	r1, #1
	ldr	r0, .L91+28
	bl	fwrite
	nop
	mov	r0, #1
	bl	exit
.L52:
	ldr	r3, [fp, #-108]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	ldr	r3, .L91+32
	cmp	r2, r3
	bls	.L53
	ldr	r3, .L91+16
	ldr	r4, [r3]
	ldr	r3, [fp, #-108]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	ldr	r2, .L91+4
	ldr	r1, .L91+36
	mov	r0, r4
	bl	fprintf
	mov	r0, #1
	bl	exit
.L53:
	ldr	r3, [fp, #-108]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L91+12
	bl	strcpy
	ldr	r1, .L91+40
	ldr	r0, .L91+12
	bl	fopen
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L54
	ldr	r3, .L91+16
	ldr	r0, [r3]
	ldr	r3, .L91+12
	ldr	r2, .L91+4
	ldr	r1, .L91+44
	bl	fprintf
	mov	r0, #1
	bl	exit
.L54:
	ldr	r0, [fp, #-52]
	bl	bsOpenReadStream
	str	r0, [fp, #-48]
	ldr	r3, .L91+16
	ldr	r3, [r3]
	ldr	r2, .L91+4
	ldr	r1, .L91+48
	mov	r0, r3
	bl	fprintf
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-84]
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-80]
.L67:
	ldr	r0, [fp, #-48]
	bl	bsGetBit
	str	r0, [fp, #-44]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	adds	r1, r2, #1
	str	r1, [fp, #-148]
	adc	r3, r3, #0
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-44]
	cmp	r3, #2
	bne	.L55
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bcc	.L56
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	subs	ip, r0, r2
	str	ip, [fp, #-116]
	sbc	r3, r1, r3
	str	r3, [fp, #-112]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #39
	bls	.L56
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	subs	r1, r2, #1
	str	r1, [fp, #-124]
	sbc	r3, r3, #0
	str	r3, [fp, #-120]
	ldr	r2, .L91+56
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r2, fp, #124
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	ble	.L58
	ldr	r3, .L91+16
	ldr	ip, [r3]
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r0, .L91+56
	ldr	r1, [fp, #-84]
	lsl	r1, r1, #3
	add	r1, r0, r1
	ldmia	r1, {r0-r1}
	str	r0, [sp, #8]
	str	r1, [sp, #12]
	stm	sp, {r2-r3}
	ldr	r2, [fp, #-84]
	ldr	r1, .L91+60
	mov	r0, ip
	bl	fprintf
	b	.L58
.L56:
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	str	r3, [fp, #-84]
	b	.L59
.L58:
	b	.L59
.L55:
	ldr	r3, [fp, #-76]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #31
	orr	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-72]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-44]
	and	r3, r3, #1
	orr	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	lsl	r2, r3, #16
	lsr	r2, r2, #16
	ldr	r3, .L91+64
	cmp	r2, r3
	bne	.L60
	ldr	r2, [fp, #-72]
	ldr	r3, .L91+68
	cmp	r2, r3
	beq	.L61
.L60:
	ldr	r3, [fp, #-76]
	lsl	r2, r3, #16
	lsr	r2, r2, #16
	ldr	r3, .L91+72
	cmp	r2, r3
	bne	.L67
	ldr	r2, [fp, #-72]
	ldr	r3, .L91+76
	cmp	r2, r3
	bne	.L67
.L61:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #49
	bls	.L63
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	subs	r1, r2, #49
	str	r1, [fp, #-132]
	sbc	r3, r3, #0
	str	r3, [fp, #-128]
	ldr	r2, .L91+56
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r2, fp, #132
	ldmia	r2, {r1-r2}
	stm	r3, {r1-r2}
	b	.L64
.L63:
	ldr	r2, .L91+56
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
.L64:
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	ble	.L65
	ldr	r2, .L91+56
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	str	ip, [fp, #-140]
	sbc	r3, r1, r3
	str	r3, [fp, #-136]
	sub	r3, fp, #140
	ldmia	r3, {r2-r3}
	cmp	r3, #0
	cmpeq	r2, #129
	bls	.L65
	ldr	r3, .L91+16
	ldr	lr, [r3]
	ldr	r3, [fp, #-80]
	add	ip, r3, #1
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, .L91+56
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r0-r1}
	mov	r2, ip
	ldr	r1, .L91+80
	mov	r0, lr
	bl	fprintf
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, .L91+84
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #3
	add	r3, r2, r3
	stm	r3, {r0-r1}
	ldr	r2, .L91+56
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, .L91+88
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #3
	add	r3, r2, r3
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L65:
	ldr	r2, [fp, #-84]
	ldr	r3, .L91+92
	cmp	r2, r3
	ble	.L66
	ldr	r0, .L91+96
	bl	tooManyBlocks
.L66:
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	ldr	r2, .L91+52
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r1, r2, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	b	.L67
.L59:
	ldr	r0, [fp, #-48]
	bl	bsClose
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bgt	.L68
	ldr	r3, .L91+16
	ldr	r3, [r3]
	ldr	r2, .L91+4
	ldr	r1, .L91+100
	mov	r0, r3
	bl	fprintf
	mov	r0, #1
	bl	exit
.L68:
	ldr	r3, .L91+16
	ldr	r3, [r3]
	ldr	r2, .L91+4
	ldr	r1, .L91+104
	mov	r0, r3
	bl	fprintf
	ldr	r1, .L91+40
	ldr	r0, .L91+12
	bl	fopen
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L69
	ldr	r3, .L91+16
	ldr	r0, [r3]
	ldr	r3, .L91+12
	ldr	r2, .L91+4
	ldr	r1, .L91+108
	bl	fprintf
	mov	r0, #1
	bl	exit
.L69:
	ldr	r0, [fp, #-52]
	bl	bsOpenReadStream
	str	r0, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-92]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-88]
.L87:
	ldr	r0, [fp, #-48]
	bl	bsGetBit
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #2
	beq	.L89
	ldr	r3, [fp, #-76]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #31
	orr	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-72]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-44]
	and	r3, r3, #1
	orr	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r2, .L91+84
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	adds	r4, r2, #47
	adc	r5, r3, #0
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r3, r5
	cmpeq	r2, r4
	bne	.L72
	ldr	r3, [fp, #-76]
	lsl	r2, r3, #16
	ldr	r3, [fp, #-72]
	lsr	r3, r3, #16
	orr	r3, r2, r3
	str	r3, [fp, #-68]
.L72:
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L73
	ldr	r2, .L91+84
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bcc	.L73
	ldr	r2, .L91+88
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bhi	.L73
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-92]
	bl	bsPutBit
.L73:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	adds	r8, r2, #1
	adc	r9, r3, #0
	str	r8, [fp, #-36]
	str	r9, [fp, #-32]
	ldr	r2, .L91+88
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	adds	r6, r2, #1
	adc	r7, r3, #0
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	cmp	r3, r7
	cmpeq	r2, r6
	bne	.L74
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L75
	mov	r1, #23
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #114
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #69
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #56
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #80
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #144
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-92]
	bl	bsPutUInt32
	ldr	r0, [fp, #-92]
	bl	bsClose
.L75:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	bge	.L90
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
	b	.L87
.L74:
	ldr	r2, .L91+84
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	bne	.L87
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L78
.L79:
	ldr	r2, .L91+8
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L78:
	ldr	r3, [fp, #-56]
	cmp	r3, #2000
	blt	.L79
	ldr	r1, .L91+12
	ldr	r0, .L91+8
	bl	strcpy
	mov	r1, #47
	ldr	r0, .L91+8
	bl	strrchr
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L80
	ldr	r3, .L91+8
	str	r3, [fp, #-60]
	b	.L81
.L80:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L81:
	ldr	r3, [fp, #-60]
	ldr	r2, .L91+8
	sub	r3, r3, r2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	mov	r2, r3
	ldr	r1, .L91+112
	ldr	r0, [fp, #-60]
	bl	sprintf
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-64]
	b	.L82
.L84:
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L83
	ldr	r3, [fp, #-64]
	mov	r2, #48
	strb	r2, [r3]
.L83:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L82:
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L84
	ldr	r3, [fp, #-40]
	ldr	r2, .L91+12
	add	r3, r3, r2
	mov	r1, r3
	ldr	r0, .L91+8
	bl	strcat
	ldr	r0, .L91+8
	bl	endsInBz2
	mov	r3, r0
	cmp	r3, #0
	bne	.L85
	ldr	r0, .L91+8
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L91+8
	add	r3, r2, r3
	ldr	r2, .L91+116
	mov	r0, r3
	mov	r1, r2
	mov	r3, #5
	mov	r2, r3
	bl	memcpy
.L85:
	ldr	r3, .L91+16
	ldr	r0, [r3]
	ldr	r3, [fp, #-88]
	add	r2, r3, #1
	ldr	r3, .L91+8
	ldr	r1, .L91+120
	bl	fprintf
	ldr	r1, .L91+124
	ldr	r0, .L91+8
	bl	fopen
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L86
	ldr	r3, .L91+16
	ldr	r0, [r3]
	ldr	r3, .L91+8
	ldr	r2, .L91+4
	ldr	r1, .L91+128
	bl	fprintf
	mov	r0, #1
	bl	exit
.L86:
	ldr	r0, [fp, #-96]
	bl	bsOpenWriteStream
	str	r0, [fp, #-92]
	mov	r1, #66
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #90
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #104
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #57
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #49
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #65
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #89
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #38
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #83
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	mov	r1, #89
	ldr	r0, [fp, #-92]
	bl	bsPutUChar
	b	.L87
.L89:
	nop
	b	.L71
.L90:
	nop
.L71:
	ldr	r3, .L91+16
	ldr	r3, [r3]
	ldr	r2, .L91+4
	ldr	r1, .L91+132
	mov	r0, r3
	bl	fprintf
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L92:
	.align	2
.L91:
	.word	1999
	.word	progName
	.word	outFileName
	.word	inFileName
	.word	stderr
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	1979
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	bStart
	.word	bEnd
	.word	.LC13
	.word	12609
	.word	1495683929
	.word	6002
	.word	1161318544
	.word	.LC14
	.word	rbStart
	.word	rbEnd
	.word	49999
	.word	50000
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
