	.file	"1190193.c"
	.intel_syntax noprefix
	.text
	.globl	Ceor
	.bss
	.align 8
	.type	Ceor, @object
	.size	Ceor, 8
Ceor:
	.zero	8
	.globl	Csum
	.align 8
	.type	Csum, @object
	.size	Csum, 8
Csum:
	.zero	8
	.globl	Crot
	.align 8
	.type	Crot, @object
	.size	Crot, 8
Crot:
	.zero	8
	.globl	new_version
	.type	new_version, @object
	.size	new_version, 1
new_version:
	.zero	1
	.globl	openoutput
	.type	openoutput, @object
	.size	openoutput, 1
openoutput:
	.zero	1
	.globl	buffer
	.align 32
	.type	buffer, @object
	.size	buffer, 100
buffer:
	.zero	100
	.globl	outfile
	.align 8
	.type	outfile, @object
	.size	outfile, 8
outfile:
	.zero	8
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.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	DWORD PTR -52[rbp], edi
	mov	QWORD PTR -64[rbp], rsi
	mov	r14d, 0
	mov	r15d, r14d
	mov	eax, r15d
	mov	BYTE PTR -54[rbp], al
	mov	BYTE PTR openoutput[rip], al
	movzx	eax, BYTE PTR openoutput[rip]
	mov	BYTE PTR -53[rbp], al
	mov	ebx, eax
	mov	BYTE PTR new_version[rip], 1
	mov	r13d, 0
	jmp	.L2
.L14:
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	add	rax, 1
	mov	rcx, rax
	jmp	.L3
.L12:
	movsx	eax, al
	sub	eax, 97
	cmp	eax, 17
	ja	.L4
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L6[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L6[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L6:
	.long	.L10-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L9-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L8-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L7-.L6
	.long	.L4-.L6
	.long	.L4-.L6
	.long	.L5-.L6
	.text
.L10:
	mov	BYTE PTR -54[rbp], 1
	jmp	.L3
.L9:
	mov	r15d, 1
	jmp	.L3
.L8:
	mov	ebx, 1
	jmp	.L3
.L7:
	mov	BYTE PTR new_version[rip], 0
	jmp	.L3
.L5:
	mov	r14d, 1
	jmp	.L3
.L4:
	mov	ebx, 1
.L3:
	test	bl, bl
	jne	.L11
	mov	rax, rcx
	lea	rcx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L12
.L11:
	add	QWORD PTR -64[rbp], 8
	sub	DWORD PTR -52[rbp], 1
.L2:
	test	bl, bl
	jne	.L13
	cmp	DWORD PTR -52[rbp], 1
	jle	.L13
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	je	.L14
.L13:
	cmp	DWORD PTR -52[rbp], 3
	jle	.L15
	mov	ebx, 1
.L15:
	test	bl, bl
	je	.L16
	mov	eax, 0
	call	printhelp
	jmp	.L17
.L16:
	cmp	DWORD PTR -52[rbp], 1
	jle	.L18
	mov	rax, QWORD PTR -64[rbp]
	mov	r13, QWORD PTR 8[rax]
	mov	rdi, r13
	mov	eax, 0
	call	fopen_read
	mov	r12, rax
	test	r12, r12
	jne	.L19
	mov	ebx, 1
	jmp	.L17
.L19:
	mov	BYTE PTR -53[rbp], 1
	jmp	.L17
.L18:
	mov	r12, QWORD PTR stdin[rip]
.L17:
	test	bl, bl
	jne	.L20
	cmp	DWORD PTR -52[rbp], 2
	jle	.L21
	test	r15b, r15b
	jne	.L21
	test	r14b, r14b
	jne	.L21
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	eax, 0
	call	fopen_write
	mov	QWORD PTR outfile[rip], rax
	mov	rax, QWORD PTR outfile[rip]
	test	rax, rax
	jne	.L22
	mov	ebx, 1
	jmp	.L20
.L22:
	mov	BYTE PTR openoutput[rip], 1
	jmp	.L20
.L21:
	mov	rax, QWORD PTR stdout[rip]
	mov	QWORD PTR outfile[rip], rax
.L20:
	test	bl, bl
	jne	.L24
	test	r15b, r15b
	je	.L25
	mov	rdi, r12
	mov	eax, 0
	call	pro_repair
	mov	ebx, eax
	jmp	.L24
.L25:
	test	r14b, r14b
	je	.L26
	mov	rdi, r12
	mov	eax, 0
	call	performrepair
	mov	ebx, eax
	jmp	.L24
.L26:
	cmp	BYTE PTR -54[rbp], 0
	je	.L27
	mov	rdi, r12
	mov	eax, 0
	call	atob
	mov	ebx, eax
	jmp	.L24
.L27:
	mov	rsi, r13
	mov	rdi, r12
	mov	eax, 0
	call	btoa
	mov	ebx, eax
.L24:
	cmp	BYTE PTR -53[rbp], 0
	je	.L28
	mov	rdi, r12
	call	fclose@PLT
.L28:
	movzx	eax, BYTE PTR openoutput[rip]
	test	al, al
	je	.L29
	mov	rax, QWORD PTR outfile[rip]
	mov	rdi, rax
	call	fclose@PLT
.L29:
	test	bl, bl
	je	.L31
	mov	edi, 1
	call	exit@PLT
.L31:
	nop
	add	rsp, 24
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.section	.rodata
.LC0:
	.string	"-"
.LC1:
	.string	"xbtoa5 %d %s Begin\n"
.LC2:
	.string	"xbtoa Begin\n"
	.align 8
.LC3:
	.string	"xbtoa End N %ld %lx E %lx S %lx R %lx\n"
	.text
	.globl	btoa
	.type	btoa, @function
btoa:
.LFB7:
	.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	QWORD PTR -64[rbp], rdi
	mov	QWORD PTR Crot[rip], 0
	mov	rax, QWORD PTR Crot[rip]
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Csum[rip]
	mov	QWORD PTR Ceor[rip], rax
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L33
	test	rsi, rsi
	je	.L34
	mov	rdi, rsi
	mov	eax, 0
	call	truncname
	jmp	.L35
.L34:
	lea	rax, .LC0[rip]
.L35:
	mov	rdi, QWORD PTR outfile[rip]
	mov	rcx, rax
	mov	edx, 78
	lea	rsi, .LC1[rip]
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L36
.L33:
	mov	rax, QWORD PTR outfile[rip]
	mov	rcx, rax
	mov	edx, 12
	mov	esi, 1
	lea	rdi, .LC2[rip]
	call	fwrite@PLT
.L36:
	mov	QWORD PTR -56[rbp], 0
.L55:
	mov	rcx, QWORD PTR -64[rbp]
	mov	edx, 4
	mov	esi, 1
	lea	rdi, buffer[rip]
	call	fread@PLT
	mov	ebx, eax
	cmp	ebx, 3
	jg	.L37
	test	ebx, ebx
	jle	.L38
	movzx	eax, BYTE PTR buffer[rip]
	movsx	eax, al
	movzx	eax, al
	jmp	.L39
.L38:
	mov	eax, 0
.L39:
	mov	r14d, eax
	cmp	ebx, 1
	jle	.L40
	movzx	eax, BYTE PTR buffer[rip+1]
	movsx	eax, al
	movzx	eax, al
	jmp	.L41
.L40:
	mov	eax, 0
.L41:
	mov	r15d, eax
	cmp	ebx, 2
	jle	.L42
	movzx	eax, BYTE PTR buffer[rip+2]
	movsx	eax, al
	movzx	eax, al
	jmp	.L43
.L42:
	mov	eax, 0
.L43:
	mov	r13d, eax
	mov	r12d, 0
	jmp	.L44
.L37:
	movzx	eax, BYTE PTR buffer[rip]
	movsx	eax, al
	movzx	r14d, al
	movzx	eax, BYTE PTR buffer[rip+1]
	movsx	eax, al
	movzx	r15d, al
	movzx	eax, BYTE PTR buffer[rip+2]
	movsx	eax, al
	movzx	r13d, al
	movzx	eax, BYTE PTR buffer[rip+3]
	movsx	eax, al
	movzx	r12d, al
.L44:
	test	ebx, ebx
	jle	.L45
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	jne	.L46
	movsx	rdx, r14d
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	lea	eax, 1[r14]
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L47
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L48
.L47:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L48:
	movsx	rdx, r14d
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	movsx	rdx, r15d
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	lea	eax, 1[r15]
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L49
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L50
.L49:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L50:
	movsx	rdx, r15d
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	movsx	rdx, r13d
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	lea	eax, 1[r13]
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L51
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L52
.L51:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L52:
	movsx	rdx, r13d
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	movsx	rdx, r12d
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	lea	eax, 1[r12]
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L53
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L54
.L53:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L54:
	movsx	rdx, r12d
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
.L46:
	mov	eax, r14d
	sal	eax, 8
	or	eax, r15d
	movsx	r14, eax
	mov	rdx, r14
	sal	rdx, 8
	movsx	rax, r13d
	or	rax, rdx
	sal	rax, 8
	mov	rdx, rax
	movsx	rax, r12d
	or	rdx, rax
	mov	r14, rdx
	mov	rdi, r14
	mov	eax, 0
	call	wordout
	movsx	rax, ebx
	add	QWORD PTR -56[rbp], rax
.L45:
	cmp	ebx, 4
	je	.L55
	mov	edi, -1
	mov	eax, 0
	call	asciiout
	mov	rdx, QWORD PTR Crot[rip]
	mov	rsi, QWORD PTR Csum[rip]
	mov	rcx, QWORD PTR Ceor[rip]
	mov	rax, QWORD PTR outfile[rip]
	sub	rsp, 8
	push	rdx
	mov	r9, rsi
	mov	r8, rcx
	mov	rcx, QWORD PTR -56[rbp]
	mov	rdx, rcx
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	add	rsp, 16
	mov	eax, 0
	lea	rsp, -40[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	btoa, .-btoa
	.section	.rodata
.LC4:
	.string	"5.2"
	.align 8
.LC5:
	.string	"              Btoa version %s\n"
	.align 8
.LC6:
	.string	"Written by Paul Rutter, Joe Orost & Stefan Parmark.\n"
	.align 8
.LC7:
	.string	"\nUsage: btoa [-{adhor}] [input file] [output file]\n"
.LC8:
	.string	"\nOptions:\n"
.LC9:
	.string	"-h  Shows this help list.\n"
	.align 8
.LC10:
	.string	"-a  Use atob rather than btoa.\n"
.LC11:
	.string	"-o  Use old version of btoa.\n"
	.align 8
.LC12:
	.string	"-d  Extract repair file from diag file.\n"
	.align 8
.LC13:
	.string	"-r  Repair archive from repair file.\n"
.LC14:
	.string	"\nExamples:\n"
.LC15:
	.string	"  btoa -h\n"
	.align 8
.LC16:
	.string	"  btoa [input binary file] [output archive file]\n"
	.align 8
.LC17:
	.string	"  btoa -o [input binary file] [output archive file]\n"
	.align 8
.LC18:
	.string	"  btoa -a [input archive file] [output binary file]\n"
	.align 8
.LC19:
	.string	"  btoa -d [undamaged archive file]\n"
	.align 8
.LC20:
	.string	"  btoa -r [damaged archive file]\n"
	.text
	.globl	printhelp
	.type	printhelp, @function
printhelp:
.LFB8:
	.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, .LC4[rip]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 52
	mov	esi, 1
	lea	rdi, .LC6[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 51
	mov	esi, 1
	lea	rdi, .LC7[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 10
	mov	esi, 1
	lea	rdi, .LC8[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 26
	mov	esi, 1
	lea	rdi, .LC9[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 31
	mov	esi, 1
	lea	rdi, .LC10[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 29
	mov	esi, 1
	lea	rdi, .LC11[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 40
	mov	esi, 1
	lea	rdi, .LC12[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 37
	mov	esi, 1
	lea	rdi, .LC13[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 11
	mov	esi, 1
	lea	rdi, .LC14[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 10
	mov	esi, 1
	lea	rdi, .LC15[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 49
	mov	esi, 1
	lea	rdi, .LC16[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 52
	mov	esi, 1
	lea	rdi, .LC17[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 52
	mov	esi, 1
	lea	rdi, .LC18[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 35
	mov	esi, 1
	lea	rdi, .LC19[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 33
	mov	esi, 1
	lea	rdi, .LC20[rip]
	call	fwrite@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	printhelp, .-printhelp
	.globl	wordout
	.type	wordout, @function
wordout:
.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, 8
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	rbx, rdi
	test	rbx, rbx
	jne	.L59
	mov	edi, 122
	mov	eax, 0
	call	asciiout
	jmp	.L64
.L59:
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L61
	cmp	rbx, 538976288
	jne	.L61
	mov	edi, 121
	mov	eax, 0
	call	asciiout
	jmp	.L64
.L61:
	mov	r13d, 0
	test	rbx, rbx
	jns	.L62
	mov	r13d, 32
	sub	rbx, 1670420000
.L62:
	test	rbx, rbx
	jns	.L63
	mov	r13d, 64
	sub	rbx, 1670420000
.L63:
	movabs	rdx, 5928760619654363693
	mov	rax, rbx
	imul	rdx
	mov	rax, rdx
	sar	rax, 24
	mov	rdx, rbx
	sar	rdx, 63
	sub	rax, rdx
	mov	r12d, eax
	movsx	rax, r12d
	imul	rax, rax, -52200625
	add	rbx, rax
	lea	eax, [r12+r13]
	add	eax, 33
	mov	edi, eax
	mov	eax, 0
	call	asciiout
	movabs	rdx, -2698473677752648057
	mov	rax, rbx
	imul	rdx
	lea	rax, [rdx+rbx]
	sar	rax, 19
	mov	rdx, rbx
	sar	rdx, 63
	sub	rax, rdx
	mov	r12d, eax
	movsx	rax, r12d
	imul	rax, rax, -614125
	add	rbx, rax
	lea	eax, 33[r12]
	mov	edi, eax
	mov	eax, 0
	call	asciiout
	movabs	rdx, 5228917904907565635
	mov	rax, rbx
	imul	rdx
	mov	rax, rdx
	sar	rax, 11
	mov	rdx, rbx
	sar	rdx, 63
	sub	rax, rdx
	mov	r12d, eax
	movsx	rax, r12d
	imul	rax, rax, -7225
	add	rbx, rax
	lea	eax, 33[r12]
	mov	edi, eax
	mov	eax, 0
	call	asciiout
	mov	eax, ebx
	movsx	rdx, eax
	imul	rdx, rdx, 1616928865
	shr	rdx, 32
	sar	edx, 5
	sar	eax, 31
	sub	edx, eax
	mov	r12d, edx
	imul	eax, r12d, 85
	cdqe
	sub	rbx, rax
	lea	eax, 33[r12]
	mov	edi, eax
	mov	eax, 0
	call	asciiout
	mov	eax, ebx
	add	eax, 33
	mov	edi, eax
	mov	eax, 0
	call	asciiout
.L64:
	nop
	add	rsp, 8
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	wordout, .-wordout
	.globl	asciiout
	.type	asciiout, @function
asciiout:
.LFB10:
	.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	ebx, edi
	cmp	ebx, -1
	jne	.L66
	movzx	eax, WORD PTR linepos.10[rip]
	test	ax, ax
	je	.L72
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L68
	mov	rsi, QWORD PTR outfile[rip]
	mov	rcx, QWORD PTR Csum[rip]
	movabs	rdx, 6944656592455360609
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 5
	mov	rdi, rcx
	sar	rdi, 63
	sub	rax, rdi
	mov	rdx, rax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	mov	rdx, rax
	sal	rdx, 4
	add	rax, rdx
	sub	rcx, rax
	mov	rdx, rcx
	mov	eax, edx
	add	eax, 33
	mov	edi, eax
	call	fputc@PLT
.L68:
	mov	rax, QWORD PTR outfile[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	jmp	.L72
.L66:
	mov	rax, QWORD PTR outfile[rip]
	mov	rsi, rax
	mov	edi, ebx
	call	fputc@PLT
	movzx	eax, WORD PTR linepos.10[rip]
	add	eax, 1
	mov	WORD PTR linepos.10[rip], ax
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L69
	movsx	rdx, ebx
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	lea	eax, 1[rbx]
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L70
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L71
.L70:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L71:
	movsx	rdx, ebx
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	movzx	eax, WORD PTR linepos.10[rip]
	cmp	ax, 76
	jle	.L72
	mov	rsi, QWORD PTR outfile[rip]
	mov	rcx, QWORD PTR Csum[rip]
	movabs	rdx, 6944656592455360609
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 5
	mov	rdi, rcx
	sar	rdi, 63
	sub	rax, rdi
	mov	rdx, rax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	mov	rdx, rax
	sal	rdx, 4
	add	rax, rdx
	sub	rcx, rax
	mov	rdx, rcx
	mov	eax, edx
	add	eax, 33
	mov	edi, eax
	call	fputc@PLT
	mov	rax, QWORD PTR outfile[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	WORD PTR linepos.10[rip], 0
	jmp	.L72
.L69:
	movzx	eax, WORD PTR linepos.10[rip]
	cmp	ax, 77
	jle	.L72
	mov	rax, QWORD PTR outfile[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	WORD PTR linepos.10[rip], 0
.L72:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	asciiout, .-asciiout
	.globl	truncname
	.type	truncname, @function
truncname:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	rax, rdi
	mov	r12, rax
	jmp	.L74
.L76:
	cmp	bl, 47
	je	.L75
	cmp	bl, 58
	jne	.L74
.L75:
	mov	r12, rax
.L74:
	mov	rdx, rax
	lea	rax, 1[rdx]
	movzx	ebx, BYTE PTR [rdx]
	test	bl, bl
	jne	.L76
	mov	rax, r12
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	truncname, .-truncname
	.section	.rodata
.LC21:
	.string	"archive"
.LC22:
	.string	"xbtoa"
.LC23:
	.string	"btoa: Old btoa format.\n"
	.align 8
.LC24:
	.string	"btoa: Illegal archive header.\n"
	.align 8
.LC25:
	.string	"btoa: Bad format on line %ld. Can't repair file.\n"
	.align 8
.LC26:
	.string	"btoa: Bad file checksum. Can't repair file.\n"
	.text
	.globl	atob
	.type	atob, @function
atob:
.LFB12:
	.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, 72
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	r12, rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	ebx, 0
.L81:
	mov	rdi, r12
	call	ftell@PLT
	mov	r13, rax
	mov	rdx, r12
	lea	rsi, .LC21[rip]
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L79
	mov	ebx, 1
.L79:
	test	bl, bl
	jne	.L80
	mov	edx, 5
	lea	rsi, .LC22[rip]
	lea	rdi, buffer[rip]
	call	strncmp@PLT
	test	eax, eax
	jne	.L81
.L80:
	test	bl, bl
	jne	.L82
	lea	rsi, .LC2[rip]
	lea	rdi, buffer[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L83
	mov	BYTE PTR new_version[rip], 0
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 23
	mov	esi, 1
	lea	rdi, .LC23[rip]
	call	fwrite@PLT
	jmp	.L82
.L83:
	lea	rax, -92[rbp]
	lea	rcx, outfilename.9[rip]
	mov	rdx, rax
	lea	rsi, .LC1[rip]
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	cmp	eax, 2
	jne	.L84
	mov	BYTE PTR new_version[rip], 1
	movzx	eax, BYTE PTR openoutput[rip]
	test	al, al
	jne	.L82
	lea	rsi, .LC0[rip]
	lea	rdi, outfilename.9[rip]
	call	strcmp@PLT
	test	eax, eax
	je	.L82
	lea	rdi, outfilename.9[rip]
	mov	eax, 0
	call	fopen_write
	mov	QWORD PTR outfile[rip], rax
	mov	rax, QWORD PTR outfile[rip]
	test	rax, rax
	jne	.L85
	mov	ebx, 1
	jmp	.L82
.L85:
	mov	BYTE PTR openoutput[rip], 1
	jmp	.L82
.L84:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 30
	mov	esi, 1
	lea	rdi, .LC24[rip]
	call	fwrite@PLT
	mov	ebx, 1
.L82:
	test	bl, bl
	jne	.L86
	mov	QWORD PTR Crot[rip], 0
	mov	rax, QWORD PTR Crot[rip]
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Csum[rip]
	mov	QWORD PTR Ceor[rip], rax
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L87
	mov	edx, DWORD PTR -92[rbp]
	lea	rax, -48[rbp]
	mov	ecx, edx
	mov	rdx, r13
	mov	rsi, rax
	mov	rdi, r12
	mov	eax, 0
	call	new_decodefile
	mov	ebx, eax
	jmp	.L86
.L87:
	lea	rax, -48[rbp]
	mov	rsi, rax
	mov	rdi, r12
	mov	eax, 0
	call	old_decodefile
	mov	ebx, eax
.L86:
	test	bl, bl
	jne	.L88
	lea	rdi, -64[rbp]
	lea	rsi, -72[rbp]
	lea	rdx, -80[rbp]
	lea	rax, -88[rbp]
	sub	rsp, 8
	lea	rcx, -56[rbp]
	push	rcx
	mov	r9, rdi
	mov	r8, rsi
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC3[rip]
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	__isoc99_sscanf@PLT
	add	rsp, 16
	cmp	eax, 5
	je	.L89
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	ebx, 1
	jmp	.L88
.L89:
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -80[rbp]
	cmp	rdx, rax
	jne	.L90
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR Ceor[rip]
	cmp	rdx, rax
	jne	.L90
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR Csum[rip]
	cmp	rdx, rax
	jne	.L90
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR Crot[rip]
	cmp	rdx, rax
	je	.L91
.L90:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 44
	mov	esi, 1
	lea	rdi, .LC26[rip]
	call	fwrite@PLT
	mov	ebx, 1
	jmp	.L88
.L91:
	mov	rax, QWORD PTR -88[rbp]
	sub	eax, 1
	and	eax, 3
	mov	esi, eax
	mov	edi, 0
	mov	eax, 0
	call	decode_line
.L88:
	mov	eax, ebx
	mov	rcx, QWORD PTR -40[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L93
	call	__stack_chk_fail@PLT
.L93:
	lea	rsp, -24[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	atob, .-atob
	.globl	nextbyte
	.type	nextbyte, @function
nextbyte:
.LFB13:
	.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, 8
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	rbx, rdi
	mov	rdi, rbx
	call	ftell@PLT
	mov	r13, rax
	mov	rdi, rbx
	call	fgetc@PLT
	mov	r12d, eax
	mov	edx, 0
	mov	rsi, r13
	mov	rdi, rbx
	call	fseek@PLT
	mov	eax, r12d
	add	rsp, 8
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	nextbyte, .-nextbyte
	.section	.rodata
	.align 8
.LC27:
	.string	"btoa: Bad line length on line %ld.\n"
	.align 8
.LC28:
	.string	"btoa: Bad character on line %ld.\n"
	.align 8
.LC29:
	.string	"btoa: Bad checksum on line %ld.\n"
.LC30:
	.string	"btoa: Starting diag.\n"
	.text
	.globl	new_decodefile
	.type	new_decodefile, @function
new_decodefile:
.LFB14:
	.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, 120
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -144[rbp], rdi
	mov	QWORD PTR -120[rbp], rsi
	mov	QWORD PTR -128[rbp], rdx
	mov	DWORD PTR -132[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	r15d, 0
	mov	r13d, 1
	mov	r14d, 0
	mov	BYTE PTR -133[rbp], r14b
	mov	QWORD PTR -152[rbp], 0
	jmp	.L97
.L112:
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rdi, QWORD PTR -144[rbp]
	call	ftell@PLT
	mov	QWORD PTR -128[rbp], rax
	mov	r12d, 0
	add	r13, 1
	mov	rdx, QWORD PTR -144[rbp]
	lea	rsi, .LC21[rip]
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L98
	mov	r12d, 1
	mov	BYTE PTR -133[rbp], r12b
	jmp	.L99
.L98:
	movzx	eax, BYTE PTR buffer[rip]
	cmp	al, 120
	jne	.L100
	mov	BYTE PTR -133[rbp], 1
	jmp	.L99
.L100:
	lea	rdi, buffer[rip]
	call	strlen@PLT
	sub	eax, 1
	mov	ebx, eax
	cmp	ebx, DWORD PTR -132[rbp]
	jne	.L101
	movsx	rax, ebx
	lea	rdx, buffer[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	je	.L99
.L101:
	movsx	rax, ebx
	lea	rdx, buffer[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	je	.L102
	mov	r12d, 1
	nop
.L104:
	mov	rdi, QWORD PTR -144[rbp]
	call	fgetc@PLT
	mov	DWORD PTR -100[rbp], eax
	cmp	DWORD PTR -100[rbp], -1
	je	.L103
	mov	eax, DWORD PTR -100[rbp]
	cmp	al, 10
	jne	.L104
.L103:
	cmp	DWORD PTR -100[rbp], -1
	jne	.L105
	mov	BYTE PTR -133[rbp], 1
	jmp	.L105
.L102:
	cmp	ebx, DWORD PTR -132[rbp]
	jg	.L106
	mov	rdi, QWORD PTR -144[rbp]
	mov	eax, 0
	call	nextbyte
	cmp	eax, 120
	je	.L105
.L106:
	mov	r12d, 1
	lea	eax, -1[rbx]
	cdqe
	lea	rdx, buffer[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	sub	eax, 33
	cdqe
	mov	QWORD PTR Csum[rip], rax
.L105:
	test	r12b, r12b
	je	.L99
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, r13
	lea	rsi, .LC27[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L99:
	test	r12b, r12b
	jne	.L107
	cmp	BYTE PTR -133[rbp], 0
	jne	.L107
	lea	eax, -1[rbx]
	mov	esi, eax
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	decode_line
	test	al, al
	je	.L108
	test	r15b, r15b
	jne	.L109
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, r13
	lea	rsi, .LC28[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L109:
	mov	r12d, 1
.L108:
	lea	eax, -1[rbx]
	cdqe
	lea	rdx, buffer[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	DWORD PTR -100[rbp], eax
	mov	rcx, QWORD PTR Csum[rip]
	movabs	rdx, 6944656592455360609
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 5
	mov	rsi, rcx
	sar	rsi, 63
	sub	rax, rsi
	mov	rdx, rax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	mov	rdx, rax
	sal	rdx, 4
	add	rax, rdx
	sub	rcx, rax
	mov	rdx, rcx
	mov	eax, edx
	add	eax, 33
	cmp	DWORD PTR -100[rbp], eax
	jne	.L110
	test	r14b, r14b
	je	.L107
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -96[rbp]
	mov	rsi, QWORD PTR -152[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	intodiaglist
	mov	r14d, 0
	jmp	.L107
.L110:
	mov	r12d, 1
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, r13
	lea	rsi, .LC29[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, DWORD PTR -100[rbp]
	sub	eax, 33
	cdqe
	mov	QWORD PTR Csum[rip], rax
.L107:
	test	r12b, r12b
	je	.L97
	test	r15b, r15b
	jne	.L111
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 21
	mov	esi, 1
	lea	rdi, .LC30[rip]
	call	fwrite@PLT
	mov	QWORD PTR -72[rbp], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -80[rbp], rax
.L111:
	mov	r15d, 1
	test	r14b, r14b
	jne	.L97
	mov	r14d, 1
	mov	rax, QWORD PTR -160[rbp]
	mov	QWORD PTR -152[rbp], rax
.L97:
	cmp	BYTE PTR -133[rbp], 0
	je	.L112
	test	r15b, r15b
	je	.L113
	test	r14b, r14b
	je	.L114
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -96[rbp]
	mov	rsi, QWORD PTR -152[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	intodiaglist
.L114:
	lea	rax, -96[rbp]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	producediag
.L113:
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR [rax], r13
	mov	eax, r15d
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L116
	call	__stack_chk_fail@PLT
.L116:
	add	rsp, 120
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	new_decodefile, .-new_decodefile
	.globl	old_decodefile
	.type	old_decodefile, @function
old_decodefile:
.LFB15:
	.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	r13, rdi
	mov	QWORD PTR -56[rbp], rsi
	mov	r15d, 0
	mov	r12d, 1
	mov	ebx, 0
	jmp	.L118
.L122:
	add	r12, 1
	mov	rdx, r13
	lea	rsi, .LC21[rip]
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L119
	mov	ebx, 1
	mov	r15d, ebx
	jmp	.L120
.L119:
	movzx	eax, BYTE PTR buffer[rip]
	cmp	al, 120
	jne	.L121
	mov	ebx, 1
	jmp	.L120
.L121:
	lea	rdi, buffer[rip]
	call	strlen@PLT
	sub	eax, 1
	mov	r14d, eax
	movsx	rax, r14d
	lea	rdx, buffer[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	je	.L120
	mov	ebx, 1
	mov	r15d, ebx
.L120:
	test	bl, bl
	jne	.L118
	mov	esi, r14d
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	decode_line
	test	al, al
	je	.L118
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, r12
	lea	rsi, .LC28[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	ebx, 1
	mov	r15d, ebx
.L118:
	test	bl, bl
	je	.L122
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], r12
	mov	eax, r15d
	add	rsp, 24
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	old_decodefile, .-old_decodefile
	.globl	decode_line
	.type	decode_line, @function
decode_line:
.LFB16:
	.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
	mov	r13, rdi
	mov	r12d, esi
	mov	r14d, 0
	test	r13, r13
	jne	.L129
	movzx	eax, BYTE PTR bytecount.8[rip]
	test	al, al
	jle	.L126
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch1.7[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
	test	r12d, r12d
	jle	.L127
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch2.6[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
.L127:
	cmp	r12d, 1
	jle	.L128
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch3.5[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
.L128:
	cmp	r12d, 2
	jle	.L126
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch4.4[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
	jmp	.L126
.L169:
	sub	r12d, 1
	mov	rax, r13
	lea	r13, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	ebx, al
	movzx	eax, BYTE PTR bytecount.8[rip]
	cmp	al, 5
	jne	.L130
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch1.7[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch2.6[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch3.5[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
	mov	rdx, QWORD PTR outfile[rip]
	mov	eax, DWORD PTR ch4.4[rip]
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
	mov	BYTE PTR bytecount.8[rip], 0
.L130:
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L131
	movsx	rdx, ebx
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	lea	eax, 1[rbx]
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L132
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L133
.L132:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L133:
	movsx	rdx, ebx
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
.L131:
	mov	eax, ebx
	cmp	al, 32
	jle	.L134
	mov	eax, ebx
	cmp	al, 117
	jg	.L134
	movzx	eax, BYTE PTR bytecount.8[rip]
	movsx	edx, al
	mov	eax, 4
	sub	eax, edx
	cmp	r12d, eax
	jl	.L135
	movzx	eax, BYTE PTR bytecount.8[rip]
	movsx	eax, al
	mov	edx, 4
	sub	edx, eax
	sub	r12d, edx
	movzx	eax, BYTE PTR bytecount.8[rip]
	test	al, al
	jne	.L136
	lea	eax, -33[rbx]
	cdqe
	mov	QWORD PTR codeword.3[rip], rax
	jmp	.L137
.L136:
	mov	rdx, QWORD PTR codeword.3[rip]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	mov	rdx, rax
	sal	rdx, 4
	add	rdx, rax
	lea	eax, -33[rbx]
	cdqe
	add	rax, rdx
	mov	QWORD PTR codeword.3[rip], rax
.L137:
	movzx	eax, BYTE PTR bytecount.8[rip]
	add	eax, 1
	mov	BYTE PTR bytecount.8[rip], al
	jmp	.L138
.L142:
	mov	rax, r13
	lea	r13, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	ebx, al
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L139
	movsx	rdx, ebx
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	lea	eax, 1[rbx]
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L140
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L141
.L140:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L141:
	movsx	rdx, ebx
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
.L139:
	mov	rdx, QWORD PTR codeword.3[rip]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	mov	rdx, rax
	sal	rdx, 4
	add	rdx, rax
	lea	eax, -33[rbx]
	cdqe
	add	rax, rdx
	mov	QWORD PTR codeword.3[rip], rax
	movzx	eax, BYTE PTR bytecount.8[rip]
	add	eax, 1
	mov	BYTE PTR bytecount.8[rip], al
.L138:
	movzx	eax, BYTE PTR bytecount.8[rip]
	cmp	al, 4
	jle	.L142
	jmp	.L143
.L135:
	movzx	eax, BYTE PTR bytecount.8[rip]
	test	al, al
	jne	.L144
	lea	eax, -33[rbx]
	cdqe
	mov	QWORD PTR codeword.3[rip], rax
	mov	BYTE PTR bytecount.8[rip], 1
	jmp	.L143
.L144:
	mov	rdx, QWORD PTR codeword.3[rip]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	mov	rdx, rax
	sal	rdx, 4
	add	rdx, rax
	lea	eax, -33[rbx]
	cdqe
	add	rax, rdx
	mov	QWORD PTR codeword.3[rip], rax
	movzx	eax, BYTE PTR bytecount.8[rip]
	add	eax, 1
	mov	BYTE PTR bytecount.8[rip], al
.L143:
	movzx	eax, BYTE PTR bytecount.8[rip]
	cmp	al, 5
	jne	.L129
	mov	rbx, QWORD PTR codeword.3[rip]
	mov	eax, ebx
	movzx	eax, al
	mov	DWORD PTR ch4.4[rip], eax
	sar	rbx, 8
	mov	eax, ebx
	movzx	eax, al
	mov	DWORD PTR ch3.5[rip], eax
	sar	rbx, 8
	mov	eax, ebx
	movzx	eax, al
	mov	DWORD PTR ch2.6[rip], eax
	mov	rax, rbx
	sar	rax, 8
	movzx	eax, al
	mov	DWORD PTR ch1.7[rip], eax
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	jne	.L129
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L146
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L147
.L146:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L147:
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	mov	eax, DWORD PTR ch2.6[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch2.6[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L148
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L149
.L148:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L149:
	mov	eax, DWORD PTR ch2.6[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	mov	eax, DWORD PTR ch3.5[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch3.5[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L150
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L151
.L150:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L151:
	mov	eax, DWORD PTR ch3.5[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	mov	eax, DWORD PTR ch4.4[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch4.4[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L152
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L153
.L152:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L153:
	mov	eax, DWORD PTR ch4.4[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	jmp	.L129
.L134:
	mov	eax, ebx
	cmp	al, 122
	je	.L154
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	je	.L155
	mov	eax, ebx
	cmp	al, 121
	jne	.L155
.L154:
	movzx	eax, BYTE PTR bytecount.8[rip]
	test	al, al
	je	.L156
	mov	r14d, 1
	jmp	.L129
.L156:
	cmp	ebx, 122
	jne	.L158
	mov	eax, 0
	jmp	.L159
.L158:
	mov	eax, 32
.L159:
	mov	DWORD PTR ch4.4[rip], eax
	mov	eax, DWORD PTR ch4.4[rip]
	mov	DWORD PTR ch3.5[rip], eax
	mov	eax, DWORD PTR ch3.5[rip]
	mov	DWORD PTR ch2.6[rip], eax
	mov	eax, DWORD PTR ch2.6[rip]
	mov	DWORD PTR ch1.7[rip], eax
	movzx	eax, BYTE PTR new_version[rip]
	test	al, al
	jne	.L160
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L161
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L162
.L161:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L162:
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L163
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L164
.L163:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L164:
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L165
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L166
.L165:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L166:
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Ceor[rip]
	xor	rax, rdx
	mov	QWORD PTR Ceor[rip], rax
	mov	eax, DWORD PTR ch1.7[rip]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR Csum[rip]
	add	rax, rdx
	mov	QWORD PTR Csum[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	and	eax, 2147483648
	test	rax, rax
	je	.L167
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, 1
	mov	QWORD PTR Crot[rip], rax
	jmp	.L168
.L167:
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rax
	mov	QWORD PTR Crot[rip], rax
.L168:
	mov	eax, DWORD PTR ch1.7[rip]
	movsx	rdx, eax
	mov	rax, QWORD PTR Crot[rip]
	add	rax, rdx
	mov	QWORD PTR Crot[rip], rax
.L160:
	mov	BYTE PTR bytecount.8[rip], 5
	jmp	.L129
.L155:
	mov	r14d, 1
.L129:
	test	r12d, r12d
	jg	.L169
.L126:
	mov	eax, r14d
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	decode_line, .-decode_line
	.globl	diagname
	.section	.rodata
.LC31:
	.string	"btoa.dia"
	.section	.data.rel.local,"aw"
	.align 8
	.type	diagname, @object
	.size	diagname, 8
diagname:
	.quad	.LC31
	.globl	repairname
	.section	.rodata
.LC32:
	.string	"btoa.rep"
	.section	.data.rel.local
	.align 8
	.type	repairname, @object
	.size	repairname, 8
repairname:
	.quad	.LC32
	.globl	repairedname
	.section	.rodata
.LC33:
	.string	"btoa.rdy"
	.section	.data.rel.local
	.align 8
	.type	repairedname, @object
	.size	repairedname, 8
repairedname:
	.quad	.LC33
	.globl	diagheader
	.section	.rodata
.LC34:
	.string	"xdiag\n"
	.section	.data.rel.local
	.align 8
	.type	diagheader, @object
	.size	diagheader, 8
diagheader:
	.quad	.LC34
	.globl	repairheader
	.section	.rodata
.LC35:
	.string	"xrepair\n"
	.section	.data.rel.local
	.align 8
	.type	repairheader, @object
	.size	repairheader, 8
repairheader:
	.quad	.LC35
	.section	.rodata
	.align 8
.LC36:
	.string	"btoa: Diagnosis output to '%s'.\n"
	.text
	.globl	producediag
	.type	producediag, @function
producediag:
.LFB17:
	.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, 56
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	r13, rdi
	mov	QWORD PTR -72[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	rdi, rsi
	call	ftell@PLT
	mov	r12, rax
	mov	rax, QWORD PTR diagname[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fopen_write
	mov	rbx, rax
	test	rbx, rbx
	je	.L172
	mov	rdx, QWORD PTR diagname[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC36[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR diagheader[rip]
	mov	rsi, rbx
	mov	rdi, rax
	call	fputs@PLT
.L174:
	lea	rdx, -48[rbp]
	lea	rax, -56[rbp]
	mov	rsi, rax
	mov	rdi, r13
	mov	eax, 0
	call	outdiaglist
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, -1
	je	.L173
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 0
	mov	rsi, rax
	mov	rdi, QWORD PTR -72[rbp]
	call	fseek@PLT
	mov	rdx, QWORD PTR -72[rbp]
	mov	esi, 100
	lea	rdi, buffer[rip]
	call	fgets@PLT
	mov	rsi, rbx
	lea	rdi, buffer[rip]
	call	fputs@PLT
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, 0
	mov	rsi, rax
	mov	rdi, QWORD PTR -72[rbp]
	call	fseek@PLT
	mov	rdx, QWORD PTR -72[rbp]
	mov	esi, 100
	lea	rdi, buffer[rip]
	call	fgets@PLT
	mov	rsi, rbx
	lea	rdi, buffer[rip]
	call	fputs@PLT
.L173:
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, -1
	jne	.L174
	mov	rax, QWORD PTR diagheader[rip]
	mov	rsi, rbx
	mov	rdi, rax
	call	fputs@PLT
	mov	rdi, rbx
	call	fclose@PLT
.L172:
	mov	edx, 0
	mov	rsi, r12
	mov	rdi, QWORD PTR -72[rbp]
	call	fseek@PLT
	nop
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L175
	call	__stack_chk_fail@PLT
.L175:
	add	rsp, 56
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	producediag, .-producediag
	.globl	intodiaglist
	.type	intodiaglist, @function
intodiaglist:
.LFB18:
	.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	r12, rdi
	mov	r15, rsi
	mov	r14, rdx
	mov	edi, 32
	mov	eax, 0
	call	malloc@PLT
	mov	rbx, rax
	mov	QWORD PTR [rbx], r15
	mov	QWORD PTR 8[rbx], r14
	mov	QWORD PTR 16[rbx], 0
	mov	r13, QWORD PTR 24[r12]
	test	r13, r13
	jne	.L177
	mov	QWORD PTR 24[r12], rbx
	mov	rax, QWORD PTR 24[r12]
	mov	QWORD PTR 16[r12], rax
	jmp	.L180
.L177:
	mov	rax, QWORD PTR 8[r13]
	cmp	r15, rax
	jg	.L179
	mov	QWORD PTR 8[r13], r14
	mov	rdi, rbx
	call	free@PLT
	jmp	.L180
.L179:
	mov	QWORD PTR 16[r13], rbx
	mov	QWORD PTR 24[r12], rbx
.L180:
	nop
	add	rsp, 8
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	intodiaglist, .-intodiaglist
	.globl	outdiaglist
	.type	outdiaglist, @function
outdiaglist:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 16
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	r12, rdi
	mov	QWORD PTR -24[rbp], rsi
	mov	QWORD PTR -32[rbp], rdx
	mov	rbx, QWORD PTR 16[r12]
	test	rbx, rbx
	jne	.L182
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], -1
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L184
.L182:
	mov	rdx, QWORD PTR [rbx]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rdx, QWORD PTR 8[rbx]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR 16[rbx]
	mov	QWORD PTR 16[r12], rax
	mov	rdi, rbx
	call	free@PLT
	mov	rax, QWORD PTR 16[r12]
	test	rax, rax
	jne	.L184
	mov	QWORD PTR 24[r12], 0
.L184:
	nop
	add	rsp, 16
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	outdiaglist, .-outdiaglist
	.globl	copyfile
	.type	copyfile, @function
copyfile:
.LFB20:
	.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	r13, rdi
	mov	rbx, rsi
	mov	r14, rdx
	mov	r12d, 0
	mov	r15d, r12d
	jmp	.L186
.L190:
	mov	rdx, r13
	lea	rsi, .LC21[rip]
	lea	rdi, copybuffer.2[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L187
	mov	r12d, 1
	jmp	.L186
.L187:
	test	rbx, rbx
	je	.L188
	mov	rsi, rbx
	lea	rdi, copybuffer.2[rip]
	call	fputs@PLT
.L188:
	mov	rsi, r14
	lea	rdi, copybuffer.2[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L186
	mov	r15d, 1
.L186:
	test	r15b, r15b
	jne	.L189
	test	r12b, r12b
	je	.L190
.L189:
	mov	eax, r12d
	add	rsp, 8
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	copyfile, .-copyfile
	.section	.rodata
	.align 8
.LC37:
	.string	"btoa: Unexpected end of %s file.\n"
	.text
	.globl	readbuffer
	.type	readbuffer, @function
readbuffer:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	rax, rdi
	mov	rbx, rsi
	mov	r12d, 0
	mov	esi, 100
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L193
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, rbx
	lea	rsi, .LC37[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	r12d, 1
.L193:
	mov	eax, r12d
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	readbuffer, .-readbuffer
	.section	.rodata
.LC38:
	.string	"r"
	.align 8
.LC39:
	.string	"btoa: Can't open '%s' for input.\n"
	.text
	.globl	fopen_read
	.type	fopen_read, @function
fopen_read:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	r12, rdi
	lea	rsi, .LC38[rip]
	mov	rdi, r12
	call	fopen@PLT
	mov	rbx, rax
	test	rbx, rbx
	jne	.L196
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, r12
	lea	rsi, .LC39[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L196:
	mov	rax, rbx
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	fopen_read, .-fopen_read
	.section	.rodata
.LC40:
	.string	"w"
	.align 8
.LC41:
	.string	"btoa: Can't open '%s' for output.\n"
	.text
	.globl	fopen_write
	.type	fopen_write, @function
fopen_write:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	r12, rdi
	lea	rsi, .LC40[rip]
	mov	rdi, r12
	call	fopen@PLT
	mov	rbx, rax
	test	rbx, rbx
	jne	.L199
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, r12
	lea	rsi, .LC41[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L199:
	mov	rax, rbx
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	fopen_write, .-fopen_write
	.section	.rodata
.LC42:
	.string	"btoa: Repair output to '%s'.\n"
	.text
	.globl	pro_repair
	.type	pro_repair, @function
pro_repair:
.LFB24:
	.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	r14, rdi
	mov	r12d, 0
	mov	ebx, 0
	mov	rdx, QWORD PTR repairname[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC42[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR diagname[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fopen_read
	mov	r13, rax
	test	r13, r13
	jne	.L202
	mov	r12d, 1
	jmp	.L203
.L202:
	mov	rax, QWORD PTR repairname[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fopen_write
	mov	rbx, rax
	test	rbx, rbx
	jne	.L204
	mov	rdi, r13
	call	fclose@PLT
	mov	r13d, 0
	mov	r12d, 1
	jmp	.L203
.L204:
	mov	rax, QWORD PTR errormsg.1[rip]
	mov	rdx, r13
	mov	rsi, rax
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L205
	mov	r12d, 1
.L205:
	test	r12b, r12b
	jne	.L206
	mov	rax, QWORD PTR diagheader[rip]
	mov	rsi, rax
	lea	rdi, buffer[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L204
.L206:
	mov	rax, QWORD PTR repairheader[rip]
	mov	rsi, rbx
	mov	rdi, rax
	call	fputs@PLT
.L203:
	mov	r15d, 0
	jmp	.L207
.L212:
	mov	rax, QWORD PTR errormsg.1[rip]
	mov	rdx, r13
	mov	rsi, rax
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L208
	mov	r12d, 1
	jmp	.L207
.L208:
	mov	rax, QWORD PTR diagheader[rip]
	mov	rsi, rax
	lea	rdi, buffer[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L209
	mov	r15d, 1
	jmp	.L207
.L209:
	lea	rdx, buffer[rip]
	mov	esi, 0
	mov	rdi, r14
	mov	eax, 0
	call	copyfile
	mov	r12d, eax
	test	r12b, r12b
	jne	.L207
	mov	rsi, rbx
	lea	rdi, buffer[rip]
	call	fputs@PLT
	mov	rax, QWORD PTR errormsg.1[rip]
	mov	rdx, r13
	mov	rsi, rax
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L210
	mov	r12d, 1
	jmp	.L207
.L210:
	mov	rsi, rbx
	lea	rdi, buffer[rip]
	call	fputs@PLT
	lea	rdx, buffer[rip]
	mov	rsi, rbx
	mov	rdi, r14
	mov	eax, 0
	call	copyfile
	mov	r12d, eax
.L207:
	test	r12b, r12b
	jne	.L211
	test	r15b, r15b
	je	.L212
.L211:
	test	r12b, r12b
	jne	.L213
	mov	rax, QWORD PTR repairheader[rip]
	mov	rsi, rbx
	mov	rdi, rax
	call	fputs@PLT
.L213:
	test	rbx, rbx
	je	.L214
	mov	rdi, rbx
	call	fclose@PLT
.L214:
	test	r13, r13
	je	.L215
	mov	rdi, r13
	call	fclose@PLT
.L215:
	mov	eax, r12d
	add	rsp, 8
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	pro_repair, .-pro_repair
	.section	.rodata
	.align 8
.LC43:
	.string	"btoa: Repaired archive written to '%s'.\n"
	.text
	.globl	performrepair
	.type	performrepair, @function
performrepair:
.LFB25:
	.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	r14, rdi
	mov	r12d, 0
	mov	r13d, 0
	mov	rax, QWORD PTR repairname[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fopen_read
	mov	rbx, rax
	test	rbx, rbx
	jne	.L218
	mov	r12d, 1
	jmp	.L219
.L218:
	mov	rax, QWORD PTR repairedname[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fopen_write
	mov	r13, rax
	test	r13, r13
	jne	.L220
	mov	rdi, rbx
	call	fclose@PLT
	mov	ebx, 0
	mov	r12d, 1
	jmp	.L219
.L220:
	mov	rdx, QWORD PTR repairedname[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC43[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L222:
	mov	rax, QWORD PTR errormsg.0[rip]
	mov	rdx, rbx
	mov	rsi, rax
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L221
	mov	r12d, 1
.L221:
	test	r12b, r12b
	jne	.L219
	mov	rax, QWORD PTR repairheader[rip]
	mov	rsi, rax
	lea	rdi, buffer[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L222
.L219:
	mov	r15d, 0
	jmp	.L223
.L228:
	mov	rax, QWORD PTR errormsg.0[rip]
	mov	rdx, rbx
	mov	rsi, rax
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L224
	mov	r12d, 1
	jmp	.L223
.L224:
	mov	rax, QWORD PTR repairheader[rip]
	mov	rsi, rax
	lea	rdi, buffer[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L225
	mov	r15d, 1
	jmp	.L223
.L225:
	lea	rdx, buffer[rip]
	mov	rsi, r13
	mov	rdi, r14
	mov	eax, 0
	call	copyfile
	mov	r12d, eax
	test	r12b, r12b
	jne	.L223
	mov	rax, QWORD PTR errormsg.0[rip]
	mov	rdx, rbx
	mov	rsi, rax
	lea	rdi, buffer[rip]
	mov	eax, 0
	call	readbuffer
	test	al, al
	je	.L226
	mov	r12d, 1
	jmp	.L223
.L226:
	lea	rdx, buffer[rip]
	mov	rsi, r13
	mov	rdi, rbx
	mov	eax, 0
	call	copyfile
	mov	r12d, eax
	lea	rdx, buffer[rip]
	mov	esi, 0
	mov	rdi, r14
	mov	eax, 0
	call	copyfile
.L223:
	test	r12b, r12b
	jne	.L227
	test	r15b, r15b
	je	.L228
.L227:
	test	r12b, r12b
	jne	.L229
	jmp	.L230
.L231:
	mov	rsi, r13
	lea	rdi, buffer[rip]
	call	fputs@PLT
.L230:
	mov	rdx, r14
	mov	esi, 100
	lea	rdi, buffer[rip]
	call	fgets@PLT
	test	rax, rax
	jne	.L231
.L229:
	test	r13, r13
	je	.L232
	mov	rdi, r13
	call	fclose@PLT
.L232:
	test	rbx, rbx
	je	.L233
	mov	rdi, rbx
	call	fclose@PLT
.L233:
	mov	eax, r12d
	add	rsp, 8
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	performrepair, .-performrepair
	.local	linepos.10
	.comm	linepos.10,2,2
	.local	outfilename.9
	.comm	outfilename.9,100,32
	.local	bytecount.8
	.comm	bytecount.8,1,1
	.local	ch1.7
	.comm	ch1.7,4,4
	.local	ch2.6
	.comm	ch2.6,4,4
	.local	ch3.5
	.comm	ch3.5,4,4
	.local	ch4.4
	.comm	ch4.4,4,4
	.local	codeword.3
	.comm	codeword.3,8,8
	.local	copybuffer.2
	.comm	copybuffer.2,100,32
	.section	.rodata
.LC44:
	.string	"diag"
	.section	.data.rel.local
	.align 8
	.type	errormsg.1, @object
	.size	errormsg.1, 8
errormsg.1:
	.quad	.LC44
	.section	.rodata
.LC45:
	.string	"repair"
	.section	.data.rel.local
	.align 8
	.type	errormsg.0, @object
	.size	errormsg.0, 8
errormsg.0:
	.quad	.LC45
	.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	"1190193.c"
	.text
	.comm	Ceor,4,4
	.comm	Csum,4,4
	.comm	Crot,4,4
	.comm	new_version,1,1
	.comm	openoutput,1,1
	.comm	buffer,100,4
	.comm	outfile,4,4
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #12
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r7, #0
	mov	r8, r7
	mov	r10, r8
	ldr	r3, .L32
	mov	r2, r10
	strb	r2, [r3]
	ldr	r3, .L32
	ldrb	r9, [r3]	@ zero_extendqisi2
	mov	r4, r9
	ldr	r3, .L32+4
	mov	r2, #1
	strb	r2, [r3]
	mov	r6, #0
	b	.L2
.L14:
	ldr	r3, [fp, #-44]
	add	r3, r3, #4
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r1, r3
	b	.L3
.L12:
	sub	r3, r3, #97
	cmp	r3, #17
	ldrls	pc, [pc, r3, asl #2]
	b	.L4
.L6:
	.word	.L10
	.word	.L4
	.word	.L4
	.word	.L9
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L8
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L7
	.word	.L4
	.word	.L4
	.word	.L5
.L10:
	mov	r10, #1
	b	.L3
.L9:
	mov	r8, #1
	b	.L3
.L8:
	mov	r4, #1
	b	.L3
.L7:
	ldr	r3, .L32+4
	mov	r2, #0
	strb	r2, [r3]
	b	.L3
.L5:
	mov	r7, #1
	b	.L3
.L4:
	mov	r4, #1
.L3:
	cmp	r4, #0
	bne	.L11
	mov	r3, r1
	add	r2, r3, #1
	mov	r1, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L12
.L11:
	ldr	r3, [fp, #-44]
	add	r3, r3, #4
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-40]
.L2:
	cmp	r4, #0
	bne	.L13
	ldr	r3, [fp, #-40]
	cmp	r3, #1
	ble	.L13
	ldr	r3, [fp, #-44]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L14
.L13:
	ldr	r3, [fp, #-40]
	cmp	r3, #3
	ble	.L15
	mov	r4, #1
.L15:
	cmp	r4, #0
	beq	.L16
	bl	printhelp
	b	.L17
.L16:
	ldr	r3, [fp, #-40]
	cmp	r3, #1
	ble	.L18
	ldr	r3, [fp, #-44]
	ldr	r6, [r3, #4]
	mov	r0, r6
	bl	fopen_read
	mov	r5, r0
	cmp	r5, #0
	bne	.L19
	mov	r4, #1
	b	.L17
.L19:
	mov	r9, #1
	b	.L17
.L18:
	ldr	r3, .L32+8
	ldr	r5, [r3]
.L17:
	cmp	r4, #0
	bne	.L20
	ldr	r3, [fp, #-40]
	cmp	r3, #2
	ble	.L21
	cmp	r8, #0
	bne	.L21
	cmp	r7, #0
	bne	.L21
	ldr	r3, [fp, #-44]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	fopen_write
	mov	r3, r0
	ldr	r2, .L32+12
	str	r3, [r2]
	ldr	r3, .L32+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L22
	mov	r4, #1
	b	.L20
.L22:
	ldr	r3, .L32
	mov	r2, #1
	strb	r2, [r3]
	b	.L20
.L21:
	ldr	r3, .L32+16
	ldr	r3, [r3]
	ldr	r2, .L32+12
	str	r3, [r2]
.L20:
	cmp	r4, #0
	bne	.L24
	cmp	r8, #0
	beq	.L25
	mov	r0, r5
	bl	pro_repair
	mov	r3, r0
	mov	r4, r3
	b	.L24
.L25:
	cmp	r7, #0
	beq	.L26
	mov	r0, r5
	bl	performrepair
	mov	r3, r0
	mov	r4, r3
	b	.L24
.L26:
	cmp	r10, #0
	beq	.L27
	mov	r0, r5
	bl	atob
	mov	r3, r0
	mov	r4, r3
	b	.L24
.L27:
	mov	r1, r6
	mov	r0, r5
	bl	btoa
	mov	r3, r0
	mov	r4, r3
.L24:
	cmp	r9, #0
	beq	.L28
	mov	r0, r5
	bl	fclose
.L28:
	ldr	r3, .L32
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L29
	ldr	r3, .L32+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	fclose
.L29:
	cmp	r4, #0
	beq	.L31
	mov	r0, #1
	bl	exit
.L31:
	nop
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L33:
	.align	2
.L32:
	.word	openoutput
	.word	new_version
	.word	stdin
	.word	outfile
	.word	stdout
	.size	main, .-main
	.section	.rodata
	.align	2
.LC0:
	.ascii	"-\000"
	.align	2
.LC1:
	.ascii	"xbtoa5 %d %s Begin\012\000"
	.align	2
.LC2:
	.ascii	"xbtoa Begin\012\000"
	.align	2
.LC3:
	.ascii	"xbtoa End N %ld %lx E %lx S %lx R %lx\012\000"
	.text
	.align	2
	.global	btoa
	.syntax unified
	.arm
	.fpu softvfp
	.type	btoa, %function
btoa:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #20
	mov	r10, r0
	mov	r3, r1
	ldr	r2, .L59
	mov	r1, #0
	str	r1, [r2]
	ldr	r2, .L59
	ldr	r2, [r2]
	ldr	r1, .L59+4
	str	r2, [r1]
	ldr	r2, .L59+4
	ldr	r2, [r2]
	ldr	r1, .L59+8
	str	r2, [r1]
	ldr	r2, .L59+12
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r2, #0
	beq	.L35
	ldr	r2, .L59+16
	ldr	r4, [r2]
	cmp	r3, #0
	beq	.L36
	mov	r0, r3
	bl	truncname
	mov	r3, r0
	b	.L37
.L36:
	ldr	r3, .L59+20
.L37:
	mov	r2, #78
	ldr	r1, .L59+24
	mov	r0, r4
	bl	fprintf
	b	.L38
.L35:
	ldr	r3, .L59+16
	ldr	r3, [r3]
	mov	r2, #12
	mov	r1, #1
	ldr	r0, .L59+28
	bl	fwrite
.L38:
	mov	r9, #0
.L57:
	mov	r3, r10
	mov	r2, #4
	mov	r1, #1
	ldr	r0, .L59+32
	bl	fread
	mov	r3, r0
	mov	r4, r3
	cmp	r4, #3
	bgt	.L39
	cmp	r4, #0
	ble	.L40
	ldr	r3, .L59+32
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L41
.L40:
	mov	r3, #0
.L41:
	mov	r8, r3
	cmp	r4, #1
	ble	.L42
	ldr	r3, .L59+32
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	b	.L43
.L42:
	mov	r3, #0
.L43:
	mov	r7, r3
	cmp	r4, #2
	ble	.L44
	ldr	r3, .L59+32
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	b	.L45
.L44:
	mov	r3, #0
.L45:
	mov	r6, r3
	mov	r5, #0
	b	.L46
.L39:
	ldr	r3, .L59+32
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r8, r3
	ldr	r3, .L59+32
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r7, r3
	ldr	r3, .L59+32
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r6, r3
	ldr	r3, .L59+32
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	mov	r5, r3
.L46:
	cmp	r4, #0
	ble	.L47
	ldr	r3, .L59+12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L48
	ldr	r3, .L59+8
	ldr	r3, [r3]
	eor	r3, r3, r8
	ldr	r2, .L59+8
	str	r3, [r2]
	add	r2, r8, #1
	ldr	r3, .L59+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L59+4
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L49
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	b	.L50
.L49:
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
.L50:
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r8, r3
	ldr	r2, .L59
	str	r3, [r2]
	ldr	r3, .L59+8
	ldr	r3, [r3]
	eor	r3, r3, r7
	ldr	r2, .L59+8
	str	r3, [r2]
	add	r2, r7, #1
	ldr	r3, .L59+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L59+4
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L51
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	b	.L52
.L51:
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
.L52:
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r7, r3
	ldr	r2, .L59
	str	r3, [r2]
	ldr	r3, .L59+8
	ldr	r3, [r3]
	eor	r3, r3, r6
	ldr	r2, .L59+8
	str	r3, [r2]
	add	r2, r6, #1
	ldr	r3, .L59+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L59+4
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L53
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	b	.L54
.L53:
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
.L54:
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r6, r3
	ldr	r2, .L59
	str	r3, [r2]
	ldr	r3, .L59+8
	ldr	r3, [r3]
	eor	r3, r3, r5
	ldr	r2, .L59+8
	str	r3, [r2]
	add	r2, r5, #1
	ldr	r3, .L59+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L59+4
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L55
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
	b	.L56
.L55:
	ldr	r3, .L59
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L59
	str	r3, [r2]
.L56:
	ldr	r3, .L59
	ldr	r3, [r3]
	add	r3, r5, r3
	ldr	r2, .L59
	str	r3, [r2]
.L48:
	lsl	r3, r8, #8
	orr	r7, r7, r3
	lsl	r3, r7, #8
	orr	r3, r6, r3
	lsl	r3, r3, #8
	orr	r7, r5, r3
	mov	r0, r7
	bl	wordout
	add	r9, r9, r4
.L47:
	cmp	r4, #4
	beq	.L57
	mvn	r0, #0
	bl	asciiout
	ldr	r3, .L59+16
	ldr	r0, [r3]
	ldr	r3, .L59+8
	ldr	r3, [r3]
	ldr	r2, .L59+4
	ldr	r2, [r2]
	ldr	r1, .L59
	ldr	r1, [r1]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r9
	mov	r2, r9
	ldr	r1, .L59+36
	bl	fprintf
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L60:
	.align	2
.L59:
	.word	Crot
	.word	Csum
	.word	Ceor
	.word	new_version
	.word	outfile
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	buffer
	.word	.LC3
	.size	btoa, .-btoa
	.section	.rodata
	.align	2
.LC4:
	.ascii	"5.2\000"
	.align	2
.LC5:
	.ascii	"              Btoa version %s\012\000"
	.align	2
.LC6:
	.ascii	"Written by Paul Rutter, Joe Orost & Stefan Parmark."
	.ascii	"\012\000"
	.align	2
.LC7:
	.ascii	"\012Usage: btoa [-{adhor}] [input file] [output fil"
	.ascii	"e]\012\000"
	.align	2
.LC8:
	.ascii	"\012Options:\012\000"
	.align	2
.LC9:
	.ascii	"-h  Shows this help list.\012\000"
	.align	2
.LC10:
	.ascii	"-a  Use atob rather than btoa.\012\000"
	.align	2
.LC11:
	.ascii	"-o  Use old version of btoa.\012\000"
	.align	2
.LC12:
	.ascii	"-d  Extract repair file from diag file.\012\000"
	.align	2
.LC13:
	.ascii	"-r  Repair archive from repair file.\012\000"
	.align	2
.LC14:
	.ascii	"\012Examples:\012\000"
	.align	2
.LC15:
	.ascii	"  btoa -h\012\000"
	.align	2
.LC16:
	.ascii	"  btoa [input binary file] [output archive file]\012"
	.ascii	"\000"
	.align	2
.LC17:
	.ascii	"  btoa -o [input binary file] [output archive file]"
	.ascii	"\012\000"
	.align	2
.LC18:
	.ascii	"  btoa -a [input archive file] [output binary file]"
	.ascii	"\012\000"
	.align	2
.LC19:
	.ascii	"  btoa -d [undamaged archive file]\012\000"
	.align	2
.LC20:
	.ascii	"  btoa -r [damaged archive file]\012\000"
	.text
	.align	2
	.global	printhelp
	.syntax unified
	.arm
	.fpu softvfp
	.type	printhelp, %function
printhelp:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L62
	ldr	r3, [r3]
	ldr	r2, .L62+4
	ldr	r1, .L62+8
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #52
	mov	r1, #1
	ldr	r0, .L62+12
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #51
	mov	r1, #1
	ldr	r0, .L62+16
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #1
	ldr	r0, .L62+20
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #26
	mov	r1, #1
	ldr	r0, .L62+24
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #31
	mov	r1, #1
	ldr	r0, .L62+28
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #29
	mov	r1, #1
	ldr	r0, .L62+32
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #40
	mov	r1, #1
	ldr	r0, .L62+36
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #37
	mov	r1, #1
	ldr	r0, .L62+40
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #11
	mov	r1, #1
	ldr	r0, .L62+44
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #1
	ldr	r0, .L62+48
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #49
	mov	r1, #1
	ldr	r0, .L62+52
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #52
	mov	r1, #1
	ldr	r0, .L62+56
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #52
	mov	r1, #1
	ldr	r0, .L62+60
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #35
	mov	r1, #1
	ldr	r0, .L62+64
	bl	fwrite
	ldr	r3, .L62
	ldr	r3, [r3]
	mov	r2, #33
	mov	r1, #1
	ldr	r0, .L62+68
	bl	fwrite
	nop
	pop	{fp, pc}
.L63:
	.align	2
.L62:
	.word	stderr
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.size	printhelp, .-printhelp
	.align	2
	.global	wordout
	.syntax unified
	.arm
	.fpu softvfp
	.type	wordout, %function
wordout:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	mov	r4, r0
	cmp	r4, #0
	bne	.L65
	mov	r0, #122
	bl	asciiout
	b	.L70
.L65:
	ldr	r3, .L71
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L67
	ldr	r3, .L71+4
	cmp	r4, r3
	bne	.L67
	mov	r0, #121
	bl	asciiout
	b	.L70
.L67:
	mov	r6, #0
	cmp	r4, #0
	bge	.L68
	mov	r6, #32
	ldr	r3, .L71+8
	add	r3, r4, r3
	mov	r4, r3
.L68:
	cmp	r4, #0
	bge	.L69
	mov	r6, #64
	ldr	r3, .L71+8
	add	r3, r4, r3
	mov	r4, r3
.L69:
	ldr	r3, .L71+12
	smull	r2, r3, r4, r3
	add	r3, r3, r4
	asr	r2, r3, #25
	asr	r3, r4, #31
	sub	r5, r2, r3
	ldr	r3, .L71+16
	mul	r3, r5, r3
	add	r4, r4, r3
	add	r3, r5, r6
	add	r3, r3, #33
	mov	r0, r3
	bl	asciiout
	ldr	r3, .L71+20
	smull	r2, r3, r4, r3
	asr	r2, r3, #18
	asr	r3, r4, #31
	sub	r5, r2, r3
	ldr	r3, .L71+24
	mul	r3, r5, r3
	add	r4, r4, r3
	add	r3, r5, #33
	mov	r0, r3
	bl	asciiout
	ldr	r3, .L71+28
	smull	r2, r3, r4, r3
	add	r3, r3, r4
	asr	r2, r3, #12
	asr	r3, r4, #31
	sub	r5, r2, r3
	mov	r3, r5
	lsl	r3, r3, #3
	sub	r3, r3, r5
	lsl	r2, r3, #7
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r5
	rsb	r3, r3, #0
	add	r4, r4, r3
	add	r3, r5, #33
	mov	r0, r3
	bl	asciiout
	ldr	r3, .L71+32
	smull	r2, r3, r4, r3
	asr	r2, r3, #5
	asr	r3, r4, #31
	sub	r5, r2, r3
	mov	r3, r5
	lsl	r3, r3, #2
	add	r3, r3, r5
	lsl	r2, r3, #4
	add	r3, r3, r2
	rsb	r3, r3, #0
	add	r4, r4, r3
	add	r3, r5, #33
	mov	r0, r3
	bl	asciiout
	add	r3, r4, #33
	mov	r0, r3
	bl	asciiout
.L70:
	nop
	pop	{r4, r5, r6, r7, fp, pc}
.L72:
	.align	2
.L71:
	.word	new_version
	.word	538976288
	.word	-1670420000
	.word	-1534172993
	.word	-52200625
	.word	1833339967
	.word	-614125
	.word	-1860062653
	.word	1616928865
	.size	wordout, .-wordout
	.align	2
	.global	asciiout
	.syntax unified
	.arm
	.fpu softvfp
	.type	asciiout, %function
asciiout:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	mov	r4, r0
	cmn	r4, #1
	bne	.L74
	ldr	r3, .L81
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L80
	ldr	r3, .L81+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L76
	ldr	r3, .L81+8
	ldr	r1, [r3]
	ldr	r3, .L81+12
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r3, r3, r2
	sub	r2, r1, r3
	add	r3, r2, #33
	ldr	r2, .L81+16
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
.L76:
	ldr	r3, .L81+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	b	.L80
.L74:
	ldr	r3, .L81+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r4
	bl	fputc
	ldr	r3, .L81
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L81
	strh	r3, [r2]	@ movhi
	ldr	r3, .L81+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L77
	ldr	r3, .L81+20
	ldr	r3, [r3]
	eor	r3, r3, r4
	ldr	r2, .L81+20
	str	r3, [r2]
	add	r2, r4, #1
	ldr	r3, .L81+8
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L81+8
	str	r3, [r2]
	ldr	r3, .L81+24
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L78
	ldr	r3, .L81+24
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L81+24
	str	r3, [r2]
	ldr	r3, .L81+24
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L81+24
	str	r3, [r2]
	b	.L79
.L78:
	ldr	r3, .L81+24
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L81+24
	str	r3, [r2]
.L79:
	ldr	r3, .L81+24
	ldr	r3, [r3]
	add	r3, r4, r3
	ldr	r2, .L81+24
	str	r3, [r2]
	ldr	r3, .L81
	ldrsh	r3, [r3]
	cmp	r3, #76
	ble	.L80
	ldr	r3, .L81+8
	ldr	r1, [r3]
	ldr	r3, .L81+12
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r3, r3, r2
	sub	r2, r1, r3
	add	r3, r2, #33
	ldr	r2, .L81+16
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	ldr	r3, .L81+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	ldr	r3, .L81
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L80
.L77:
	ldr	r3, .L81
	ldrsh	r3, [r3]
	cmp	r3, #77
	ble	.L80
	ldr	r3, .L81+16
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	ldr	r3, .L81
	mov	r2, #0
	strh	r2, [r3]	@ movhi
.L80:
	nop
	pop	{r4, r5, fp, pc}
.L82:
	.align	2
.L81:
	.word	linepos.5186
	.word	new_version
	.word	Csum
	.word	1616928865
	.word	outfile
	.word	Ceor
	.word	Crot
	.size	asciiout, .-asciiout
	.align	2
	.global	truncname
	.syntax unified
	.arm
	.fpu softvfp
	.type	truncname, %function
truncname:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	mov	r3, r0
	mov	r5, r3
	b	.L84
.L86:
	cmp	r4, #47
	beq	.L85
	cmp	r4, #58
	bne	.L84
.L85:
	mov	r5, r3
.L84:
	mov	r2, r3
	add	r3, r2, #1
	ldrb	r4, [r2]	@ zero_extendqisi2
	cmp	r4, #0
	bne	.L86
	mov	r3, r5
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
	.size	truncname, .-truncname
	.section	.rodata
	.align	2
.LC21:
	.ascii	"archive\000"
	.align	2
.LC22:
	.ascii	"xbtoa\000"
	.align	2
.LC23:
	.ascii	"btoa: Old btoa format.\012\000"
	.align	2
.LC24:
	.ascii	"btoa: Illegal archive header.\012\000"
	.align	2
.LC25:
	.ascii	"btoa: Bad format on line %ld. Can't repair file.\012"
	.ascii	"\000"
	.align	2
.LC26:
	.ascii	"btoa: Bad file checksum. Can't repair file.\012\000"
	.align	2
.LC27:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	atob
	.syntax unified
	.arm
	.fpu softvfp
	.type	atob, %function
atob:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #52
	mov	r5, r0
	ldr	r3, .L104
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r4, #0
.L91:
	mov	r0, r5
	bl	ftell
	mov	r6, r0
	mov	r2, r5
	ldr	r1, .L104+4
	ldr	r0, .L104+8
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L89
	mov	r4, #1
.L89:
	cmp	r4, #0
	bne	.L90
	mov	r2, #5
	ldr	r1, .L104+12
	ldr	r0, .L104+8
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L91
.L90:
	cmp	r4, #0
	bne	.L92
	ldr	r1, .L104+16
	ldr	r0, .L104+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L93
	ldr	r3, .L104+20
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L104+24
	ldr	r3, [r3]
	mov	r2, #23
	mov	r1, #1
	ldr	r0, .L104+28
	bl	fwrite
	b	.L92
.L93:
	sub	r2, fp, #52
	ldr	r3, .L104+32
	ldr	r1, .L104+36
	ldr	r0, .L104+8
	bl	__isoc99_sscanf
	mov	r3, r0
	cmp	r3, #2
	bne	.L94
	ldr	r3, .L104+20
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, .L104+40
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L92
	ldr	r1, .L104+44
	ldr	r0, .L104+32
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L92
	ldr	r0, .L104+32
	bl	fopen_write
	mov	r3, r0
	ldr	r2, .L104+48
	str	r3, [r2]
	ldr	r3, .L104+48
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L95
	mov	r4, #1
	b	.L92
.L95:
	ldr	r3, .L104+40
	mov	r2, #1
	strb	r2, [r3]
	b	.L92
.L94:
	ldr	r3, .L104+24
	ldr	r3, [r3]
	mov	r2, #30
	mov	r1, #1
	ldr	r0, .L104+52
	bl	fwrite
	mov	r4, #1
.L92:
	cmp	r4, #0
	bne	.L96
	ldr	r3, .L104+56
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L104+56
	ldr	r3, [r3]
	ldr	r2, .L104+60
	str	r3, [r2]
	ldr	r3, .L104+60
	ldr	r3, [r3]
	ldr	r2, .L104+64
	str	r3, [r2]
	ldr	r3, .L104+20
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L97
	ldr	r3, [fp, #-52]
	sub	r1, fp, #28
	mov	r2, r6
	mov	r0, r5
	bl	new_decodefile
	mov	r3, r0
	mov	r4, r3
	b	.L96
.L97:
	sub	r3, fp, #28
	mov	r1, r3
	mov	r0, r5
	bl	old_decodefile
	mov	r3, r0
	mov	r4, r3
.L96:
	cmp	r4, #0
	bne	.L98
	sub	r1, fp, #44
	sub	r2, fp, #48
	sub	r3, fp, #32
	str	r3, [sp, #8]
	sub	r3, fp, #36
	str	r3, [sp, #4]
	sub	r3, fp, #40
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, .L104+68
	ldr	r0, .L104+8
	bl	__isoc99_sscanf
	mov	r3, r0
	cmp	r3, #5
	beq	.L99
	ldr	r3, .L104+24
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	ldr	r1, .L104+72
	mov	r0, r3
	bl	fprintf
	mov	r4, #1
	b	.L98
.L99:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bne	.L100
	ldr	r2, [fp, #-40]
	ldr	r3, .L104+64
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L100
	ldr	r2, [fp, #-36]
	ldr	r3, .L104+60
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L100
	ldr	r2, [fp, #-32]
	ldr	r3, .L104+56
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L101
.L100:
	ldr	r3, .L104+24
	ldr	r3, [r3]
	mov	r2, #44
	mov	r1, #1
	ldr	r0, .L104+76
	bl	fwrite
	mov	r4, #1
	b	.L98
.L101:
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	and	r3, r3, #3
	mov	r1, r3
	mov	r0, #0
	bl	decode_line
.L98:
	mov	r3, r4
	ldr	r2, .L104
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L103
	bl	__stack_chk_fail
.L103:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L105:
	.align	2
.L104:
	.word	.LC27
	.word	.LC21
	.word	buffer
	.word	.LC22
	.word	.LC2
	.word	new_version
	.word	stderr
	.word	.LC23
	.word	outfilename.5219
	.word	.LC1
	.word	openoutput
	.word	.LC0
	.word	outfile
	.word	.LC24
	.word	Crot
	.word	Csum
	.word	Ceor
	.word	.LC3
	.word	.LC25
	.word	.LC26
	.size	atob, .-atob
	.align	2
	.global	nextbyte
	.syntax unified
	.arm
	.fpu softvfp
	.type	nextbyte, %function
nextbyte:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	mov	r4, r0
	mov	r0, r4
	bl	ftell
	mov	r5, r0
	mov	r0, r4
	bl	fgetc
	mov	r6, r0
	mov	r2, #0
	mov	r1, r5
	mov	r0, r4
	bl	fseek
	mov	r3, r6
	mov	r0, r3
	pop	{r4, r5, r6, r7, fp, pc}
	.size	nextbyte, .-nextbyte
	.section	.rodata
	.align	2
.LC28:
	.ascii	"btoa: Bad line length on line %ld.\012\000"
	.align	2
.LC29:
	.ascii	"btoa: Bad character on line %ld.\012\000"
	.align	2
.LC30:
	.ascii	"btoa: Bad checksum on line %ld.\012\000"
	.align	2
.LC31:
	.ascii	"btoa: Starting diag.\012\000"
	.align	2
.LC32:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	new_decodefile
	.syntax unified
	.arm
	.fpu softvfp
	.type	new_decodefile, %function
new_decodefile:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #52
	mov	r7, r0
	str	r1, [fp, #-64]
	str	r2, [fp, #-68]
	str	r3, [fp, #-72]
	ldr	r3, .L129
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	mov	r9, #0
	mov	r6, #1
	mov	r8, #0
	mov	r10, r8
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L109
.L124:
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-80]
	mov	r0, r7
	bl	ftell
	str	r0, [fp, #-68]
	mov	r5, #0
	add	r6, r6, #1
	mov	r2, r7
	ldr	r1, .L129+4
	ldr	r0, .L129+8
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L110
	mov	r10, #1
	mov	r5, r10
	b	.L111
.L110:
	ldr	r3, .L129+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #120
	bne	.L112
	mov	r10, #1
	b	.L111
.L112:
	ldr	r0, .L129+8
	bl	strlen
	mov	r3, r0
	sub	r3, r3, #1
	mov	r4, r3
	ldr	r3, [fp, #-72]
	cmp	r4, r3
	bne	.L113
	ldr	r3, .L129+8
	ldrb	r3, [r3, r4]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L111
.L113:
	ldr	r3, .L129+8
	ldrb	r3, [r3, r4]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L114
	mov	r5, #1
	nop
.L116:
	mov	r0, r7
	bl	fgetc
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmn	r3, #1
	beq	.L115
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	cmp	r3, #10
	bne	.L116
.L115:
	ldr	r3, [fp, #-60]
	cmn	r3, #1
	bne	.L117
	mov	r10, #1
	b	.L117
.L114:
	ldr	r3, [fp, #-72]
	cmp	r4, r3
	bgt	.L118
	mov	r0, r7
	bl	nextbyte
	mov	r3, r0
	cmp	r3, #120
	beq	.L117
.L118:
	mov	r5, #1
	sub	r3, r4, #1
	ldr	r2, .L129+8
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r3, r3, #33
	ldr	r2, .L129+12
	str	r3, [r2]
.L117:
	cmp	r5, #0
	beq	.L111
	ldr	r3, .L129+16
	ldr	r3, [r3]
	mov	r2, r6
	ldr	r1, .L129+20
	mov	r0, r3
	bl	fprintf
.L111:
	cmp	r5, #0
	bne	.L119
	cmp	r10, #0
	bne	.L119
	sub	r3, r4, #1
	mov	r1, r3
	ldr	r0, .L129+8
	bl	decode_line
	mov	r3, r0
	cmp	r3, #0
	beq	.L120
	cmp	r9, #0
	bne	.L121
	ldr	r3, .L129+16
	ldr	r3, [r3]
	mov	r2, r6
	ldr	r1, .L129+24
	mov	r0, r3
	bl	fprintf
.L121:
	mov	r5, #1
.L120:
	sub	r3, r4, #1
	ldr	r2, .L129+8
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	str	r3, [fp, #-60]
	ldr	r3, .L129+12
	ldr	r1, [r3]
	ldr	r3, .L129+28
	smull	r2, r3, r1, r3
	asr	r2, r3, #5
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r3, r3, r2
	sub	r2, r1, r3
	add	r3, r2, #33
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	bne	.L122
	cmp	r8, #0
	beq	.L119
	sub	r3, fp, #56
	ldr	r2, [fp, #-68]
	ldr	r1, [fp, #-76]
	mov	r0, r3
	bl	intodiaglist
	mov	r8, #0
	b	.L119
.L122:
	mov	r5, #1
	ldr	r3, .L129+16
	ldr	r3, [r3]
	mov	r2, r6
	ldr	r1, .L129+32
	mov	r0, r3
	bl	fprintf
	ldr	r3, [fp, #-60]
	sub	r3, r3, #33
	ldr	r2, .L129+12
	str	r3, [r2]
.L119:
	cmp	r5, #0
	beq	.L109
	cmp	r9, #0
	bne	.L123
	ldr	r3, .L129+16
	ldr	r3, [r3]
	mov	r2, #21
	mov	r1, #1
	ldr	r0, .L129+36
	bl	fwrite
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-48]
.L123:
	mov	r9, #1
	cmp	r8, #0
	bne	.L109
	mov	r8, #1
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-76]
.L109:
	cmp	r10, #0
	beq	.L124
	cmp	r9, #0
	beq	.L125
	cmp	r8, #0
	beq	.L126
	sub	r3, fp, #56
	ldr	r2, [fp, #-68]
	ldr	r1, [fp, #-76]
	mov	r0, r3
	bl	intodiaglist
.L126:
	sub	r3, fp, #56
	mov	r1, r7
	mov	r0, r3
	bl	producediag
.L125:
	ldr	r3, [fp, #-64]
	str	r6, [r3]
	mov	r3, r9
	ldr	r2, .L129
	ldr	r1, [r2]
	ldr	r2, [fp, #-40]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L128
	bl	__stack_chk_fail
.L128:
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L130:
	.align	2
.L129:
	.word	.LC32
	.word	.LC21
	.word	buffer
	.word	Csum
	.word	stderr
	.word	.LC28
	.word	.LC29
	.word	1616928865
	.word	.LC30
	.word	.LC31
	.size	new_decodefile, .-new_decodefile
	.align	2
	.global	old_decodefile
	.syntax unified
	.arm
	.fpu softvfp
	.type	old_decodefile, %function
old_decodefile:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #12
	mov	r7, r0
	str	r1, [fp, #-32]
	mov	r8, #0
	mov	r5, #1
	mov	r4, #0
	b	.L132
.L136:
	add	r5, r5, #1
	mov	r2, r7
	ldr	r1, .L138
	ldr	r0, .L138+4
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L133
	mov	r4, #1
	mov	r8, r4
	b	.L134
.L133:
	ldr	r3, .L138+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #120
	bne	.L135
	mov	r4, #1
	b	.L134
.L135:
	ldr	r0, .L138+4
	bl	strlen
	mov	r3, r0
	sub	r3, r3, #1
	mov	r6, r3
	ldr	r3, .L138+4
	ldrb	r3, [r3, r6]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L134
	mov	r4, #1
	mov	r8, r4
.L134:
	cmp	r4, #0
	bne	.L132
	mov	r1, r6
	ldr	r0, .L138+4
	bl	decode_line
	mov	r3, r0
	cmp	r3, #0
	beq	.L132
	ldr	r3, .L138+8
	ldr	r3, [r3]
	mov	r2, r5
	ldr	r1, .L138+12
	mov	r0, r3
	bl	fprintf
	mov	r4, #1
	mov	r8, r4
.L132:
	cmp	r4, #0
	beq	.L136
	ldr	r3, [fp, #-32]
	str	r5, [r3]
	mov	r3, r8
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L139:
	.align	2
.L138:
	.word	.LC21
	.word	buffer
	.word	stderr
	.word	.LC29
	.size	old_decodefile, .-old_decodefile
	.align	2
	.global	decode_line
	.syntax unified
	.arm
	.fpu softvfp
	.type	decode_line, %function
decode_line:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	mov	r6, r0
	mov	r5, r1
	mov	r7, #0
	cmp	r6, #0
	bne	.L145
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L142
	ldr	r3, .L187+4
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	cmp	r5, #0
	ble	.L143
	ldr	r3, .L187+12
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
.L143:
	cmp	r5, #1
	ble	.L144
	ldr	r3, .L187+16
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
.L144:
	cmp	r5, #2
	ble	.L142
	ldr	r3, .L187+20
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	b	.L142
.L185:
	sub	r5, r5, #1
	mov	r3, r6
	add	r6, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r4, r3
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #5
	bne	.L146
	ldr	r3, .L187+4
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	ldr	r3, .L187+12
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	ldr	r3, .L187+16
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	ldr	r3, .L187+20
	ldr	r3, [r3]
	ldr	r2, .L187+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	ldr	r3, .L187
	mov	r2, #0
	strb	r2, [r3]
.L146:
	ldr	r3, .L187+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L147
	ldr	r3, .L187+28
	ldr	r3, [r3]
	eor	r3, r3, r4
	ldr	r2, .L187+28
	str	r3, [r2]
	add	r2, r4, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L148
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L149
.L148:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L149:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r4, r3
	ldr	r2, .L187+36
	str	r3, [r2]
.L147:
	and	r3, r4, #255
	cmp	r3, #32
	bls	.L150
	and	r3, r4, #255
	cmp	r3, #117
	bhi	.L150
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #4
	cmp	r5, r3
	blt	.L151
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #4
	sub	r5, r5, r3
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L152
	sub	r3, r4, #33
	ldr	r2, .L187+40
	str	r3, [r2]
	b	.L153
.L152:
	ldr	r3, .L187+40
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r2, r3, r2
	sub	r3, r4, #33
	add	r3, r2, r3
	ldr	r2, .L187+40
	str	r3, [r2]
.L153:
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L187
	strb	r2, [r3]
	b	.L154
.L158:
	mov	r3, r6
	add	r6, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r4, r3
	ldr	r3, .L187+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L155
	ldr	r3, .L187+28
	ldr	r3, [r3]
	eor	r3, r3, r4
	ldr	r2, .L187+28
	str	r3, [r2]
	add	r2, r4, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L156
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L157
.L156:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L157:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r4, r3
	ldr	r2, .L187+36
	str	r3, [r2]
.L155:
	ldr	r3, .L187+40
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r2, r3, r2
	sub	r3, r4, #33
	add	r3, r2, r3
	ldr	r2, .L187+40
	str	r3, [r2]
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L187
	strb	r2, [r3]
.L154:
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #4
	bls	.L158
	b	.L159
.L151:
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L160
	sub	r3, r4, #33
	ldr	r2, .L187+40
	str	r3, [r2]
	ldr	r3, .L187
	mov	r2, #1
	strb	r2, [r3]
	b	.L159
.L160:
	ldr	r3, .L187+40
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r2, r3, r2
	sub	r3, r4, #33
	add	r3, r2, r3
	ldr	r2, .L187+40
	str	r3, [r2]
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L187
	strb	r2, [r3]
.L159:
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #5
	bne	.L145
	ldr	r3, .L187+40
	ldr	r4, [r3]
	and	r3, r4, #255
	ldr	r2, .L187+20
	str	r3, [r2]
	asr	r4, r4, #8
	and	r3, r4, #255
	ldr	r2, .L187+16
	str	r3, [r2]
	asr	r4, r4, #8
	and	r3, r4, #255
	ldr	r2, .L187+12
	str	r3, [r2]
	asr	r3, r4, #8
	and	r3, r3, #255
	ldr	r2, .L187+4
	str	r3, [r2]
	ldr	r3, .L187+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L145
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L162
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L163
.L162:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L163:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+12
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L164
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L165
.L164:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L165:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+12
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+16
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+16
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L166
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L167
.L166:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L167:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+16
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+20
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+20
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L168
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L169
.L168:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L169:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+20
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L145
.L150:
	and	r3, r4, #255
	cmp	r3, #122
	beq	.L170
	ldr	r3, .L187+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L171
	and	r3, r4, #255
	cmp	r3, #121
	bne	.L171
.L170:
	ldr	r3, .L187
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L172
	mov	r7, #1
	b	.L145
.L172:
	cmp	r4, #122
	bne	.L174
	mov	r3, #0
	b	.L175
.L174:
	mov	r3, #32
.L175:
	ldr	r2, .L187+20
	str	r3, [r2]
	ldr	r3, .L187+20
	ldr	r3, [r3]
	ldr	r2, .L187+16
	str	r3, [r2]
	ldr	r3, .L187+16
	ldr	r3, [r3]
	ldr	r2, .L187+12
	str	r3, [r2]
	ldr	r3, .L187+12
	ldr	r3, [r3]
	ldr	r2, .L187+4
	str	r3, [r2]
	ldr	r3, .L187+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L176
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L177
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L178
.L177:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L178:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L179
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L180
.L179:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L180:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L181
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L182
.L181:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L182:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+28
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L187+28
	str	r3, [r2]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, .L187+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+32
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L183
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	ldr	r3, .L187+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
	b	.L184
.L183:
	ldr	r3, .L187+36
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L187+36
	str	r3, [r2]
.L184:
	ldr	r3, .L187+36
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L187+36
	str	r3, [r2]
.L176:
	ldr	r3, .L187
	mov	r2, #5
	strb	r2, [r3]
	b	.L145
.L171:
	mov	r7, #1
.L145:
	cmp	r5, #0
	bgt	.L185
.L142:
	mov	r3, r7
	mov	r0, r3
	pop	{r4, r5, r6, r7, fp, pc}
.L188:
	.align	2
.L187:
	.word	bytecount.5294
	.word	ch1.5290
	.word	outfile
	.word	ch2.5291
	.word	ch3.5292
	.word	ch4.5293
	.word	new_version
	.word	Ceor
	.word	Csum
	.word	Crot
	.word	codeword.5289
	.size	decode_line, .-decode_line
	.global	diagname
	.section	.rodata
	.align	2
.LC33:
	.ascii	"btoa.dia\000"
	.data
	.align	2
	.type	diagname, %object
	.size	diagname, 4
diagname:
	.word	.LC33
	.global	repairname
	.section	.rodata
	.align	2
.LC34:
	.ascii	"btoa.rep\000"
	.data
	.align	2
	.type	repairname, %object
	.size	repairname, 4
repairname:
	.word	.LC34
	.global	repairedname
	.section	.rodata
	.align	2
.LC35:
	.ascii	"btoa.rdy\000"
	.data
	.align	2
	.type	repairedname, %object
	.size	repairedname, 4
repairedname:
	.word	.LC35
	.global	diagheader
	.section	.rodata
	.align	2
.LC36:
	.ascii	"xdiag\012\000"
	.data
	.align	2
	.type	diagheader, %object
	.size	diagheader, 4
diagheader:
	.word	.LC36
	.global	repairheader
	.section	.rodata
	.align	2
.LC37:
	.ascii	"xrepair\012\000"
	.data
	.align	2
	.type	repairheader, %object
	.size	repairheader, 4
repairheader:
	.word	.LC37
	.section	.rodata
	.align	2
.LC38:
	.ascii	"btoa: Diagnosis output to '%s'.\012\000"
	.align	2
.LC39:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	producediag
	.syntax unified
	.arm
	.fpu softvfp
	.type	producediag, %function
producediag:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #16
	mov	r7, r0
	mov	r5, r1
	ldr	r3, .L194
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r0, r5
	bl	ftell
	mov	r6, r0
	ldr	r3, .L194+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	fopen_write
	mov	r4, r0
	cmp	r4, #0
	beq	.L190
	ldr	r3, .L194+8
	ldr	r3, [r3]
	ldr	r2, .L194+4
	ldr	r2, [r2]
	ldr	r1, .L194+12
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L194+16
	ldr	r3, [r3]
	mov	r1, r4
	mov	r0, r3
	bl	fputs
.L192:
	sub	r2, fp, #28
	sub	r3, fp, #32
	mov	r1, r3
	mov	r0, r7
	bl	outdiaglist
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	beq	.L191
	ldr	r3, [fp, #-32]
	mov	r2, #0
	mov	r1, r3
	mov	r0, r5
	bl	fseek
	mov	r2, r5
	mov	r1, #100
	ldr	r0, .L194+20
	bl	fgets
	mov	r1, r4
	ldr	r0, .L194+20
	bl	fputs
	ldr	r3, [fp, #-28]
	mov	r2, #0
	mov	r1, r3
	mov	r0, r5
	bl	fseek
	mov	r2, r5
	mov	r1, #100
	ldr	r0, .L194+20
	bl	fgets
	mov	r1, r4
	ldr	r0, .L194+20
	bl	fputs
.L191:
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	bne	.L192
	ldr	r3, .L194+16
	ldr	r3, [r3]
	mov	r1, r4
	mov	r0, r3
	bl	fputs
	mov	r0, r4
	bl	fclose
.L190:
	mov	r2, #0
	mov	r1, r6
	mov	r0, r5
	bl	fseek
	nop
	ldr	r3, .L194
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L193
	bl	__stack_chk_fail
.L193:
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L195:
	.align	2
.L194:
	.word	.LC39
	.word	diagname
	.word	stderr
	.word	.LC38
	.word	diagheader
	.word	buffer
	.size	producediag, .-producediag
	.align	2
	.global	intodiaglist
	.syntax unified
	.arm
	.fpu softvfp
	.type	intodiaglist, %function
intodiaglist:
	@ 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
	mov	r5, r0
	mov	r8, r1
	mov	r7, r2
	mov	r0, #16
	bl	malloc
	mov	r4, r0
	str	r8, [r4]
	str	r7, [r4, #4]
	mov	r3, #0
	str	r3, [r4, #8]
	ldr	r6, [r5, #12]
	cmp	r6, #0
	bne	.L197
	str	r4, [r5, #12]
	ldr	r3, [r5, #12]
	str	r3, [r5, #8]
	b	.L200
.L197:
	ldr	r3, [r6, #4]
	cmp	r8, r3
	bgt	.L199
	str	r7, [r6, #4]
	mov	r0, r4
	bl	free
	b	.L200
.L199:
	str	r4, [r6, #8]
	str	r4, [r5, #12]
.L200:
	nop
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	intodiaglist, .-intodiaglist
	.align	2
	.global	outdiaglist
	.syntax unified
	.arm
	.fpu softvfp
	.type	outdiaglist, %function
outdiaglist:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #8
	mov	r5, r0
	str	r1, [fp, #-16]
	str	r2, [fp, #-20]
	ldr	r4, [r5, #8]
	cmp	r4, #0
	bne	.L202
	ldr	r3, [fp, #-20]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	b	.L204
.L202:
	ldr	r2, [r4]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r2, [r4, #4]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [r4, #8]
	str	r3, [r5, #8]
	mov	r0, r4
	bl	free
	ldr	r3, [r5, #8]
	cmp	r3, #0
	bne	.L204
	mov	r3, #0
	str	r3, [r5, #12]
.L204:
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	outdiaglist, .-outdiaglist
	.align	2
	.global	copyfile
	.syntax unified
	.arm
	.fpu softvfp
	.type	copyfile, %function
copyfile:
	@ 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
	mov	r7, r0
	mov	r5, r1
	mov	r8, r2
	mov	r4, #0
	mov	r6, r4
	b	.L206
.L210:
	mov	r2, r7
	ldr	r1, .L212
	ldr	r0, .L212+4
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L207
	mov	r4, #1
	b	.L206
.L207:
	cmp	r5, #0
	beq	.L208
	mov	r1, r5
	ldr	r0, .L212+4
	bl	fputs
.L208:
	mov	r1, r8
	ldr	r0, .L212+4
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L206
	mov	r6, #1
.L206:
	cmp	r6, #0
	bne	.L209
	cmp	r4, #0
	beq	.L210
.L209:
	mov	r3, r4
	mov	r0, r3
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L213:
	.align	2
.L212:
	.word	.LC21
	.word	copybuffer.5406
	.size	copyfile, .-copyfile
	.section	.rodata
	.align	2
.LC40:
	.ascii	"btoa: Unexpected end of %s file.\012\000"
	.text
	.align	2
	.global	readbuffer
	.syntax unified
	.arm
	.fpu softvfp
	.type	readbuffer, %function
readbuffer:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	mov	r3, r0
	mov	r4, r1
	mov	r5, #0
	mov	r1, #100
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L215
	ldr	r3, .L217
	ldr	r3, [r3]
	mov	r2, r4
	ldr	r1, .L217+4
	mov	r0, r3
	bl	fprintf
	mov	r5, #1
.L215:
	mov	r3, r5
	mov	r0, r3
	pop	{r4, r5, fp, pc}
.L218:
	.align	2
.L217:
	.word	stderr
	.word	.LC40
	.size	readbuffer, .-readbuffer
	.section	.rodata
	.align	2
.LC41:
	.ascii	"r\000"
	.align	2
.LC42:
	.ascii	"btoa: Can't open '%s' for input.\012\000"
	.text
	.align	2
	.global	fopen_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	fopen_read, %function
fopen_read:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	mov	r4, r0
	ldr	r1, .L222
	mov	r0, r4
	bl	fopen
	mov	r5, r0
	cmp	r5, #0
	bne	.L220
	ldr	r3, .L222+4
	ldr	r3, [r3]
	mov	r2, r4
	ldr	r1, .L222+8
	mov	r0, r3
	bl	fprintf
.L220:
	mov	r3, r5
	mov	r0, r3
	pop	{r4, r5, fp, pc}
.L223:
	.align	2
.L222:
	.word	.LC41
	.word	stderr
	.word	.LC42
	.size	fopen_read, .-fopen_read
	.section	.rodata
	.align	2
.LC43:
	.ascii	"w\000"
	.align	2
.LC44:
	.ascii	"btoa: Can't open '%s' for output.\012\000"
	.text
	.align	2
	.global	fopen_write
	.syntax unified
	.arm
	.fpu softvfp
	.type	fopen_write, %function
fopen_write:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	mov	r4, r0
	ldr	r1, .L227
	mov	r0, r4
	bl	fopen
	mov	r5, r0
	cmp	r5, #0
	bne	.L225
	ldr	r3, .L227+4
	ldr	r3, [r3]
	mov	r2, r4
	ldr	r1, .L227+8
	mov	r0, r3
	bl	fprintf
.L225:
	mov	r3, r5
	mov	r0, r3
	pop	{r4, r5, fp, pc}
.L228:
	.align	2
.L227:
	.word	.LC43
	.word	stderr
	.word	.LC44
	.size	fopen_write, .-fopen_write
	.section	.rodata
	.align	2
.LC45:
	.ascii	"btoa: Repair output to '%s'.\012\000"
	.text
	.align	2
	.global	pro_repair
	.syntax unified
	.arm
	.fpu softvfp
	.type	pro_repair, %function
pro_repair:
	@ 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
	mov	r7, r0
	mov	r6, #0
	mov	r4, #0
	mov	r5, r4
	ldr	r3, .L245
	ldr	r3, [r3]
	ldr	r2, .L245+4
	ldr	r2, [r2]
	ldr	r1, .L245+8
	mov	r0, r3
	bl	fprintf
	ldr	r3, .L245+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	fopen_read
	mov	r5, r0
	cmp	r5, #0
	bne	.L230
	mov	r6, #1
	b	.L231
.L230:
	ldr	r3, .L245+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	fopen_write
	mov	r4, r0
	cmp	r4, #0
	bne	.L232
	mov	r0, r5
	bl	fclose
	mov	r5, #0
	mov	r6, #1
	b	.L231
.L232:
	ldr	r3, .L245+16
	ldr	r3, [r3]
	mov	r2, r5
	mov	r1, r3
	ldr	r0, .L245+20
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L233
	mov	r6, #1
.L233:
	cmp	r6, #0
	bne	.L234
	ldr	r3, .L245+24
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L245+20
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L232
.L234:
	ldr	r3, .L245+28
	ldr	r3, [r3]
	mov	r1, r4
	mov	r0, r3
	bl	fputs
.L231:
	mov	r8, #0
	b	.L235
.L240:
	ldr	r3, .L245+16
	ldr	r3, [r3]
	mov	r2, r5
	mov	r1, r3
	ldr	r0, .L245+20
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L236
	mov	r6, #1
	b	.L235
.L236:
	ldr	r3, .L245+24
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L245+20
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L237
	mov	r8, #1
	b	.L235
.L237:
	ldr	r2, .L245+20
	mov	r1, #0
	mov	r0, r7
	bl	copyfile
	mov	r3, r0
	mov	r6, r3
	cmp	r6, #0
	bne	.L235
	mov	r1, r4
	ldr	r0, .L245+20
	bl	fputs
	ldr	r3, .L245+16
	ldr	r3, [r3]
	mov	r2, r5
	mov	r1, r3
	ldr	r0, .L245+20
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L238
	mov	r6, #1
	b	.L235
.L238:
	mov	r1, r4
	ldr	r0, .L245+20
	bl	fputs
	ldr	r2, .L245+20
	mov	r1, r4
	mov	r0, r7
	bl	copyfile
	mov	r3, r0
	mov	r6, r3
.L235:
	cmp	r6, #0
	bne	.L239
	cmp	r8, #0
	beq	.L240
.L239:
	cmp	r6, #0
	bne	.L241
	ldr	r3, .L245+28
	ldr	r3, [r3]
	mov	r1, r4
	mov	r0, r3
	bl	fputs
.L241:
	cmp	r4, #0
	beq	.L242
	mov	r0, r4
	bl	fclose
.L242:
	cmp	r5, #0
	beq	.L243
	mov	r0, r5
	bl	fclose
.L243:
	mov	r3, r6
	mov	r0, r3
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L246:
	.align	2
.L245:
	.word	stderr
	.word	repairname
	.word	.LC45
	.word	diagname
	.word	errormsg.5431
	.word	buffer
	.word	diagheader
	.word	repairheader
	.size	pro_repair, .-pro_repair
	.section	.rodata
	.align	2
.LC46:
	.ascii	"btoa: Repaired archive written to '%s'.\012\000"
	.text
	.align	2
	.global	performrepair
	.syntax unified
	.arm
	.fpu softvfp
	.type	performrepair, %function
performrepair:
	@ 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
	mov	r7, r0
	mov	r5, #0
	mov	r6, #0
	mov	r4, r6
	ldr	r3, .L265
	ldr	r3, [r3]
	mov	r0, r3
	bl	fopen_read
	mov	r4, r0
	cmp	r4, #0
	bne	.L248
	mov	r5, #1
	b	.L249
.L248:
	ldr	r3, .L265+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	fopen_write
	mov	r6, r0
	cmp	r6, #0
	bne	.L250
	mov	r0, r4
	bl	fclose
	mov	r4, #0
	mov	r5, #1
	b	.L249
.L250:
	ldr	r3, .L265+8
	ldr	r3, [r3]
	ldr	r2, .L265+4
	ldr	r2, [r2]
	ldr	r1, .L265+12
	mov	r0, r3
	bl	fprintf
.L252:
	ldr	r3, .L265+16
	ldr	r3, [r3]
	mov	r2, r4
	mov	r1, r3
	ldr	r0, .L265+20
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L251
	mov	r5, #1
.L251:
	cmp	r5, #0
	bne	.L249
	ldr	r3, .L265+24
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L265+20
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L252
.L249:
	mov	r8, #0
	b	.L253
.L258:
	ldr	r3, .L265+16
	ldr	r3, [r3]
	mov	r2, r4
	mov	r1, r3
	ldr	r0, .L265+20
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L254
	mov	r5, #1
	b	.L253
.L254:
	ldr	r3, .L265+24
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L265+20
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L255
	mov	r8, #1
	b	.L253
.L255:
	ldr	r2, .L265+20
	mov	r1, r6
	mov	r0, r7
	bl	copyfile
	mov	r3, r0
	mov	r5, r3
	cmp	r5, #0
	bne	.L253
	ldr	r3, .L265+16
	ldr	r3, [r3]
	mov	r2, r4
	mov	r1, r3
	ldr	r0, .L265+20
	bl	readbuffer
	mov	r3, r0
	cmp	r3, #0
	beq	.L256
	mov	r5, #1
	b	.L253
.L256:
	ldr	r2, .L265+20
	mov	r1, r6
	mov	r0, r4
	bl	copyfile
	mov	r3, r0
	mov	r5, r3
	ldr	r2, .L265+20
	mov	r1, #0
	mov	r0, r7
	bl	copyfile
.L253:
	cmp	r5, #0
	bne	.L257
	cmp	r8, #0
	beq	.L258
.L257:
	cmp	r5, #0
	bne	.L259
	b	.L260
.L261:
	mov	r1, r6
	ldr	r0, .L265+20
	bl	fputs
.L260:
	mov	r2, r7
	mov	r1, #100
	ldr	r0, .L265+20
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L261
.L259:
	cmp	r6, #0
	beq	.L262
	mov	r0, r6
	bl	fclose
.L262:
	cmp	r4, #0
	beq	.L263
	mov	r0, r4
	bl	fclose
.L263:
	mov	r3, r5
	mov	r0, r3
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L266:
	.align	2
.L265:
	.word	repairname
	.word	repairedname
	.word	stderr
	.word	.LC46
	.word	errormsg.5454
	.word	buffer
	.word	repairheader
	.size	performrepair, .-performrepair
	.local	linepos.5186
	.comm	linepos.5186,2,2
	.local	outfilename.5219
	.comm	outfilename.5219,100,4
	.local	bytecount.5294
	.comm	bytecount.5294,1,1
	.local	ch1.5290
	.comm	ch1.5290,4,4
	.local	ch2.5291
	.comm	ch2.5291,4,4
	.local	ch3.5292
	.comm	ch3.5292,4,4
	.local	ch4.5293
	.comm	ch4.5293,4,4
	.local	codeword.5289
	.comm	codeword.5289,4,4
	.local	copybuffer.5406
	.comm	copybuffer.5406,100,4
	.section	.rodata
	.align	2
.LC47:
	.ascii	"diag\000"
	.data
	.align	2
	.type	errormsg.5431, %object
	.size	errormsg.5431, 4
errormsg.5431:
	.word	.LC47
	.section	.rodata
	.align	2
.LC48:
	.ascii	"repair\000"
	.data
	.align	2
	.type	errormsg.5454, %object
	.size	errormsg.5454, 4
errormsg.5454:
	.word	.LC48
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
