	.file	"467147.c"
	.intel_syntax noprefix
	.text
	.globl	version
	.data
	.type	version, @object
	.size	version, 4
version:
	.string	"1.0"
	.text
	.globl	pqueue_init
	.type	pqueue_init, @function
pqueue_init:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, eax
	mov	edi, 8
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L2
	mov	eax, 0
	jmp	.L3
.L2:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 12[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 20[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	esi, 0
	mov	rdi, rax
	call	pthread_mutex_init@PLT
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 64
	mov	esi, 0
	mov	rdi, rax
	call	pthread_cond_init@PLT
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 112
	mov	esi, 0
	mov	rdi, rax
	call	pthread_cond_init@PLT
	mov	eax, 0
.L3:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	pqueue_init, .-pqueue_init
	.globl	pqueue_close
	.type	pqueue_close, @function
pqueue_close:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_lock@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 64
	mov	rdi, rax
	call	pthread_cond_broadcast@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	pqueue_close, .-pqueue_close
	.globl	pqueue_put
	.type	pqueue_put, @function
pqueue_put:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_lock@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L8
	mov	eax, 0
	jmp	.L7
.L9:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 112
	mov	rsi, rdx
	mov	rdi, rax
	call	pthread_cond_wait@PLT
.L8:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	edx, eax
	jge	.L9
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	DWORD PTR 16[rdx], ecx
	cdqe
	sal	rax, 3
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR 8[rdx]
	cdq
	idiv	ecx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 12[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 64
	mov	rdi, rax
	call	pthread_cond_signal@PLT
	mov	eax, 1
.L7:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	pqueue_put, .-pqueue_put
	.globl	pqueue_get
	.type	pqueue_get, @function
pqueue_get:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_lock@PLT
	jmp	.L11
.L13:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 64
	mov	rsi, rdx
	mov	rdi, rax
	call	pthread_cond_wait@PLT
.L11:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	test	eax, eax
	jg	.L12
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L13
.L12:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	test	eax, eax
	jle	.L14
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 20[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR 20[rdx], ecx
	cdqe
	sal	rax, 3
	add	rax, rsi
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR 8[rdx]
	cdq
	idiv	ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 112
	mov	rdi, rax
	call	pthread_cond_signal@PLT
	jmp	.L15
.L14:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_unlock@PLT
.L15:
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	pqueue_get, .-pqueue_get
	.globl	pqueue_destroy
	.type	pqueue_destroy, @function
pqueue_destroy:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	rdi, rax
	call	pthread_mutex_destroy@PLT
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 64
	mov	rdi, rax
	call	pthread_cond_destroy@PLT
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 112
	mov	rdi, rax
	call	pthread_cond_destroy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	pqueue_destroy, .-pqueue_destroy
	.globl	debug
	.bss
	.align 4
	.type	debug, @object
	.size	debug, 4
debug:
	.zero	4
	.text
	.type	preBmBc, @function
preBmBc:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -4[rbp], 0
	jmp	.L19
.L20:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -4[rbp], 1
.L19:
	cmp	DWORD PTR -4[rbp], 255
	jle	.L20
	mov	DWORD PTR -4[rbp], 0
	jmp	.L21
.L22:
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	sub	edx, 1
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -4[rbp], 1
.L21:
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	cmp	DWORD PTR -4[rbp], eax
	jl	.L22
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	preBmBc, .-preBmBc
	.type	suffixes, @function
suffixes:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -12[rbp], 0
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 2
	mov	DWORD PTR -4[rbp], eax
	jmp	.L24
.L31:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jle	.L25
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	sub	eax, 1
	sub	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, DWORD PTR -8[rbp]
	cmp	edx, eax
	jge	.L25
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	sub	eax, 1
	sub	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	jmp	.L26
.L25:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jge	.L27
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -8[rbp], eax
.L27:
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -12[rbp], eax
	jmp	.L28
.L30:
	sub	DWORD PTR -8[rbp], 1
.L28:
	cmp	DWORD PTR -8[rbp], 0
	js	.L29
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	ecx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	sub	eax, 1
	sub	eax, DWORD PTR -12[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L30
.L29:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR [rdx], eax
.L26:
	sub	DWORD PTR -4[rbp], 1
.L24:
	cmp	DWORD PTR -4[rbp], 0
	jns	.L31
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	suffixes, .-suffixes
	.type	preBmGs, @function
preBmGs:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, eax
	mov	edi, 4
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L33
	mov	eax, -1
	jmp	.L34
.L33:
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	suffixes
	mov	DWORD PTR -16[rbp], 0
	jmp	.L35
.L36:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -16[rbp], 1
.L35:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L36
	mov	DWORD PTR -12[rbp], 0
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	DWORD PTR -16[rbp], eax
	jmp	.L37
.L43:
	cmp	DWORD PTR -16[rbp], -1
	je	.L40
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -16[rbp]
	add	edx, 1
	cmp	eax, edx
	jne	.L39
	jmp	.L40
.L42:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -28[rbp], eax
	jne	.L41
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	sub	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
.L41:
	add	DWORD PTR -12[rbp], 1
.L40:
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	sub	eax, DWORD PTR -16[rbp]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L42
.L39:
	sub	DWORD PTR -16[rbp], 1
.L37:
	cmp	DWORD PTR -16[rbp], -1
	jge	.L43
	mov	DWORD PTR -16[rbp], 0
	jmp	.L44
.L45:
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	edx, DWORD PTR -28[rbp]
	lea	ecx, -1[rdx]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	lea	rsi, 0[0+rdx*4]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, rsi
	mov	esi, DWORD PTR [rdx]
	sub	ecx, esi
	mov	edx, ecx
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	sub	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -16[rbp], 1
.L44:
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	cmp	DWORD PTR -16[rbp], eax
	jl	.L45
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	eax, 0
.L34:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	preBmGs, .-preBmGs
	.globl	bm_init
	.type	bm_init, @function
bm_init:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	DWORD PTR -40[rbp], ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 8
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR 1044[rax], edx
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	mov	edi, 4
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L47
	mov	eax, -1
	jmp	.L48
.L47:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 1040[rax], edx
	mov	eax, DWORD PTR -36[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 1032[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1032[rax]
	test	rax, rax
	jne	.L49
	mov	eax, -2
	jmp	.L48
.L49:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L50
.L53:
	cmp	DWORD PTR -40[rbp], 0
	je	.L51
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	tolower@PLT
	jmp	.L52
.L51:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
.L52:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 1032[rdx]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	add	rdx, rcx
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -4[rbp], 1
.L50:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L53
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1032[rax]
	mov	ecx, DWORD PTR -36[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	preBmGs
	test	eax, eax
	jns	.L54
	mov	eax, -3
	jmp	.L48
.L54:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 1032[rax]
	mov	ecx, DWORD PTR -36[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	preBmBc
	mov	eax, 0
.L48:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	bm_init, .-bm_init
	.globl	bm_destroy
	.type	bm_destroy, @function
bm_destroy:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L56
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
.L56:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1032[rax]
	test	rax, rax
	je	.L58
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1032[rax]
	mov	rdi, rax
	call	free@PLT
.L58:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	bm_destroy, .-bm_destroy
	.globl	bm_search
	.type	bm_search, @function
bm_search:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	DWORD PTR -4[rbp], 0
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	bm_search, .-bm_search
	.globl	argv0
	.section	.rodata
.LC0:
	.string	"pfscan"
	.section	.data.rel.local,"aw"
	.align 8
	.type	argv0, @object
	.size	argv0, 8
argv0:
	.quad	.LC0
	.globl	max_depth
	.data
	.align 4
	.type	max_depth, @object
	.size	max_depth, 4
max_depth:
	.long	64
	.globl	rstr
	.bss
	.align 8
	.type	rstr, @object
	.size	rstr, 8
rstr:
	.zero	8
	.globl	rlen
	.align 4
	.type	rlen, @object
	.size	rlen, 4
rlen:
	.zero	4
	.globl	verbose
	.align 4
	.type	verbose, @object
	.size	verbose, 4
verbose:
	.zero	4
	.globl	nworkers
	.align 4
	.type	nworkers, @object
	.size	nworkers, 4
nworkers:
	.zero	4
	.globl	aworkers
	.align 4
	.type	aworkers, @object
	.size	aworkers, 4
aworkers:
	.zero	4
	.globl	aworker_lock
	.align 32
	.type	aworker_lock, @object
	.size	aworker_lock, 32
aworker_lock:
	.zero	32
	.globl	aworker_cv
	.align 32
	.type	aworker_cv, @object
	.size	aworker_cv, 48
aworker_cv:
	.zero	48
	.globl	line_f
	.align 4
	.type	line_f, @object
	.size	line_f, 4
line_f:
	.zero	4
	.globl	maxlen
	.data
	.align 4
	.type	maxlen, @object
	.size	maxlen, 4
maxlen:
	.long	64
	.globl	ignore_case
	.bss
	.align 4
	.type	ignore_case, @object
	.size	ignore_case, 4
ignore_case:
	.zero	4
	.globl	n_matches
	.align 4
	.type	n_matches, @object
	.size	n_matches, 4
n_matches:
	.zero	4
	.globl	n_files
	.align 4
	.type	n_files, @object
	.size	n_files, 4
n_files:
	.zero	4
	.globl	n_bytes
	.align 4
	.type	n_bytes, @object
	.size	n_bytes, 4
n_bytes:
	.zero	4
	.globl	matches_lock
	.align 32
	.type	matches_lock, @object
	.size	matches_lock, 32
matches_lock:
	.zero	32
	.globl	pqb
	.align 32
	.type	pqb, @object
	.size	pqb, 160
pqb:
	.zero	160
	.globl	print_lock
	.align 32
	.type	print_lock, @object
	.size	print_lock, 32
print_lock:
	.zero	32
	.globl	bmb
	.align 32
	.type	bmb, @object
	.size	bmb, 1048
bmb:
	.zero	1048
	.section	.rodata
.LC1:
	.string	"16:41:46"
.LC2:
	.string	"Dec  1 2010"
.LC3:
	.string	"[PFScan, version %s - %s %s]\n"
	.text
	.globl	print_version
	.type	print_version, @function
print_version:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	lea	r8, .LC1[rip]
	lea	rcx, .LC2[rip]
	lea	rdx, version[rip]
	lea	rsi, .LC3[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	print_version, .-print_version
	.globl	get_char_code
	.type	get_char_code, @function
get_char_code:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L63
.L70:
	mov	eax, DWORD PTR -24[rbp]
	imul	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 47
	jbe	.L64
	mov	eax, 10
	cmp	DWORD PTR -44[rbp], 10
	cmovle	eax, DWORD PTR -44[rbp]
	lea	edx, 47[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	edx, eax
	jl	.L64
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sub	eax, 48
	add	DWORD PTR -24[rbp], eax
	jmp	.L65
.L64:
	cmp	DWORD PTR -44[rbp], 9
	jle	.L65
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	toupper@PLT
	cmp	eax, 64
	jle	.L65
	mov	eax, DWORD PTR -44[rbp]
	lea	ebx, 54[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	toupper@PLT
	cmp	ebx, eax
	jl	.L65
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	toupper@PLT
	sub	eax, 55
	add	DWORD PTR -24[rbp], eax
.L65:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -20[rbp], 1
.L63:
	cmp	DWORD PTR -44[rbp], 16
	jne	.L66
	mov	eax, 2
	jmp	.L67
.L66:
	mov	eax, 3
.L67:
	cmp	eax, DWORD PTR -20[rbp]
	jle	.L68
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 47
	jbe	.L69
	mov	eax, 10
	cmp	DWORD PTR -44[rbp], 10
	cmovle	eax, DWORD PTR -44[rbp]
	lea	edx, 47[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	edx, eax
	jge	.L70
.L69:
	cmp	DWORD PTR -44[rbp], 9
	jle	.L68
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	toupper@PLT
	cmp	eax, 64
	jle	.L68
	mov	eax, DWORD PTR -44[rbp]
	lea	ebx, 54[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	toupper@PLT
	cmp	ebx, eax
	jge	.L70
.L68:
	mov	eax, DWORD PTR -24[rbp]
	movzx	eax, al
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	get_char_code, .-get_char_code
	.globl	dehex
	.type	dehex, @function
dehex:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L73
.L76:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	mov	QWORD PTR -24[rbp], rax
.L74:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L75
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L76
.L75:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L84
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 4096
	test	eax, eax
	jne	.L79
	mov	eax, -1
	jmp	.L82
.L79:
	lea	rax, -24[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_char_code
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	mov	edx, DWORD PTR -28[rbp]
	mov	BYTE PTR [rax], dl
.L73:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L74
	jmp	.L78
.L84:
	nop
.L78:
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, QWORD PTR -40[rbp]
.L82:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L83
	call	__stack_chk_fail@PLT
.L83:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	dehex, .-dehex
	.globl	deslash
	.type	deslash, @function
deslash:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, 0
	call	nondet_int@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	deslash, .-deslash
	.globl	is_text
	.type	is_text, @function
is_text:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	jmp	.L88
.L90:
	sub	DWORD PTR -12[rbp], 1
	add	QWORD PTR -8[rbp], 1
.L88:
	cmp	DWORD PTR -12[rbp], 0
	jle	.L89
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 16384
	test	eax, eax
	jne	.L90
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L90
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 9
	je	.L90
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	je	.L90
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 13
	je	.L90
.L89:
	cmp	DWORD PTR -12[rbp], 0
	sete	al
	movzx	eax, al
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	is_text, .-is_text
	.section	.rodata
.LC4:
	.string	"NULL"
.LC5:
	.string	"TXT : "
.LC6:
	.string	"\\0"
.LC7:
	.string	"\\n"
.LC8:
	.string	"\\r"
.LC9:
	.string	"\\t"
.LC10:
	.string	"\\x%02x"
.LC11:
	.string	"HEX :"
.LC12:
	.string	" %02x"
	.text
	.globl	print_output
	.type	print_output, @function
print_output:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -4[rbp], 0
	cmp	QWORD PTR -24[rbp], 0
	jne	.L93
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L94
.L93:
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	is_text
	test	eax, eax
	je	.L95
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L96
.L107:
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 16384
	test	eax, eax
	je	.L97
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
	jmp	.L98
.L97:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	eax, 13
	je	.L99
	cmp	eax, 13
	jg	.L100
	cmp	eax, 10
	je	.L101
	cmp	eax, 10
	jg	.L100
	test	eax, eax
	je	.L102
	cmp	eax, 9
	je	.L103
	jmp	.L100
.L102:
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L98
.L101:
	mov	eax, DWORD PTR line_f[rip]
	test	eax, eax
	je	.L104
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L94
.L104:
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L98
.L99:
	mov	eax, DWORD PTR line_f[rip]
	test	eax, eax
	je	.L105
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L94
.L105:
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L98
.L103:
	lea	rdi, .LC9[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L98
.L100:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
.L98:
	add	DWORD PTR -4[rbp], 1
	add	QWORD PTR -24[rbp], 1
.L96:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jnb	.L106
	mov	eax, DWORD PTR maxlen[rip]
	cmp	DWORD PTR -4[rbp], eax
	jb	.L107
	jmp	.L106
.L95:
	lea	rdi, .LC11[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L108
.L109:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -4[rbp], 1
	add	QWORD PTR -24[rbp], 1
.L108:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jnb	.L106
	mov	eax, DWORD PTR maxlen[rip]
	cmp	DWORD PTR -4[rbp], eax
	jb	.L109
.L106:
	mov	eax, DWORD PTR -4[rbp]
.L94:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	print_output, .-print_output
	.section	.rodata
.LC13:
	.string	"%s : %lu : "
	.text
	.globl	matchfun
	.type	matchfun, @function
matchfun:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	QWORD PTR -40[rbp], rcx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	lea	rdi, matches_lock[rip]
	call	pthread_mutex_lock@PLT
	mov	eax, DWORD PTR n_matches[rip]
	add	eax, 1
	mov	DWORD PTR n_matches[rip], eax
	lea	rdi, matches_lock[rip]
	call	pthread_mutex_unlock@PLT
	mov	eax, DWORD PTR line_f[rip]
	test	eax, eax
	je	.L111
	jmp	.L112
.L113:
	sub	DWORD PTR -32[rbp], 1
.L112:
	cmp	DWORD PTR -32[rbp], 0
	je	.L111
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	je	.L111
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 13
	jne	.L113
.L111:
	lea	rdi, print_lock[rip]
	call	pthread_mutex_lock@PLT
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	mov	esi, eax
	mov	rdi, rdx
	call	print_output
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, print_lock[rip]
	call	pthread_mutex_unlock@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	matchfun, .-matchfun
	.section	.rodata
.LC14:
	.string	"%s : ERR : open() failed: %s\n"
	.align 8
.LC15:
	.string	"%s : ERR : fstat() failed: %s\n"
	.align 8
.LC16:
	.string	"*** Scanning file %s (%u Mbytes)\n"
.LC17:
	.string	"%s : ERR : mmap() failed: %s\n"
.LC18:
	.string	"%s : 0 : "
	.text
	.globl	scan_file
	.type	scan_file, @function
scan_file:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -200[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -200[rbp]
	mov	esi, 0
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -180[rbp], eax
	cmp	DWORD PTR -180[rbp], 0
	jns	.L116
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L117
	lea	rdi, print_lock[rip]
	call	pthread_mutex_lock@PLT
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rcx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	lea	rdi, print_lock[rip]
	call	pthread_mutex_unlock@PLT
.L117:
	mov	eax, -1
	jmp	.L126
.L116:
	lea	rdx, -160[rbp]
	mov	eax, DWORD PTR -180[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	fstat@PLT
	test	eax, eax
	jns	.L119
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L120
	lea	rdi, print_lock[rip]
	call	pthread_mutex_lock@PLT
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rcx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	lea	rdi, print_lock[rip]
	call	pthread_mutex_unlock@PLT
.L120:
	mov	eax, DWORD PTR -180[rbp]
	mov	edi, eax
	call	close@PLT
	mov	eax, -1
	jmp	.L126
.L119:
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR -176[rbp], eax
	mov	eax, DWORD PTR debug[rip]
	cmp	eax, 1
	jle	.L121
	mov	eax, DWORD PTR -176[rbp]
	mov	eax, eax
	imul	rax, rax, 1125899907
	shr	rax, 32
	mov	ecx, eax
	shr	ecx, 18
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L121:
	mov	edx, DWORD PTR -180[rbp]
	mov	eax, DWORD PTR -176[rbp]
	mov	r9d, 0
	mov	r8d, edx
	mov	ecx, 3
	mov	edx, 1
	mov	esi, eax
	mov	edi, 0
	call	mmap@PLT
	mov	QWORD PTR -168[rbp], rax
	cmp	QWORD PTR -168[rbp], -1
	jne	.L122
	mov	eax, DWORD PTR verbose[rip]
	test	eax, eax
	je	.L123
	lea	rdi, print_lock[rip]
	call	pthread_mutex_lock@PLT
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rcx, rax
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -200[rbp]
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	lea	rdi, print_lock[rip]
	call	pthread_mutex_unlock@PLT
.L123:
	mov	eax, DWORD PTR -180[rbp]
	mov	edi, eax
	call	close@PLT
	mov	eax, -1
	jmp	.L126
.L122:
	mov	rax, QWORD PTR rstr[rip]
	test	rax, rax
	je	.L124
	mov	rcx, QWORD PTR -200[rbp]
	mov	edx, DWORD PTR -176[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	r8, rcx
	lea	rcx, matchfun[rip]
	mov	rsi, rax
	lea	rdi, bmb[rip]
	call	bm_search
	mov	DWORD PTR -172[rbp], eax
	jmp	.L125
.L124:
	lea	rdi, print_lock[rip]
	call	pthread_mutex_lock@PLT
	mov	rax, QWORD PTR -200[rbp]
	mov	rsi, rax
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edx, DWORD PTR -176[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	print_output
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, print_lock[rip]
	call	pthread_mutex_unlock@PLT
.L125:
	mov	edx, DWORD PTR -176[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	munmap@PLT
	mov	eax, DWORD PTR -180[rbp]
	mov	edi, eax
	call	close@PLT
	mov	eax, 1
.L126:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L127
	call	__stack_chk_fail@PLT
.L127:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	scan_file, .-scan_file
	.section	.rodata
	.align 8
.LC19:
	.string	"%s: %s: Can't read directory.\n"
.LC20:
	.string	"%s: %s: Can't stat object.\n"
	.align 8
.LC21:
	.string	"%s: %s: Internal error (invalid ftw code)\n"
	.text
	.globl	foreach_path
	.type	foreach_path, @function
foreach_path:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	eax, DWORD PTR n_files[rip]
	add	eax, 1
	mov	DWORD PTR n_files[rip], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	eax, DWORD PTR n_bytes[rip]
	add	eax, edx
	mov	DWORD PTR n_bytes[rip], eax
	cmp	DWORD PTR -20[rbp], 3
	je	.L129
	cmp	DWORD PTR -20[rbp], 3
	jg	.L130
	cmp	DWORD PTR -20[rbp], 2
	je	.L131
	cmp	DWORD PTR -20[rbp], 2
	jg	.L130
	cmp	DWORD PTR -20[rbp], 0
	je	.L132
	cmp	DWORD PTR -20[rbp], 1
	je	.L133
	jmp	.L130
.L132:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	strdup@PLT
	mov	rsi, rax
	lea	rdi, pqb[rip]
	call	pqueue_put
	mov	eax, 0
	jmp	.L134
.L133:
	mov	eax, 0
	jmp	.L134
.L131:
	mov	rdx, QWORD PTR argv0[rip]
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -8[rbp]
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 1
	jmp	.L134
.L129:
	mov	rdx, QWORD PTR argv0[rip]
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -8[rbp]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 1
	jmp	.L134
.L130:
	mov	rdx, QWORD PTR argv0[rip]
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, QWORD PTR -8[rbp]
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 1
.L134:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	foreach_path, .-foreach_path
	.section	.rodata
.LC22:
	.string	"%s: ftw: %s\n"
	.text
	.globl	do_ftw
	.type	do_ftw, @function
do_ftw:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edx, DWORD PTR max_depth[rip]
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, foreach_path[rip]
	mov	rdi, rax
	call	ftw@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jns	.L136
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rcx, rax
	mov	rdx, QWORD PTR argv0[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, 1
	jmp	.L137
.L136:
	mov	eax, DWORD PTR -4[rbp]
.L137:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	do_ftw, .-do_ftw
	.globl	worker
	.type	worker, @function
worker:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	jmp	.L139
.L140:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	scan_file
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
.L139:
	lea	rax, -16[rbp]
	mov	rsi, rax
	lea	rdi, pqb[rip]
	call	pqueue_get
	cmp	eax, 1
	je	.L140
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	lea	rdi, aworker_lock[rip]
	call	pthread_mutex_lock@PLT
	mov	eax, DWORD PTR aworkers[rip]
	sub	eax, 1
	mov	DWORD PTR aworkers[rip], eax
	lea	rdi, aworker_lock[rip]
	call	pthread_mutex_unlock@PLT
	lea	rdi, aworker_cv[rip]
	call	pthread_cond_signal@PLT
	mov	eax, 0
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L142
	call	__stack_chk_fail@PLT
.L142:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	worker, .-worker
	.section	.rodata
	.align 8
.LC23:
	.string	"Usage: %s [<options>] <search-string> <pathname> [... <pathname-N>]\n"
	.align 8
.LC24:
	.string	"\nThis program implements a multithreaded file scanner.\nMore information may be found at:\n\thttp://www.lysator.liu.se/~pen/pfscan\n\nCommand line options:\n"
	.align 8
.LC25:
	.string	"\t-h             Display this information.\n"
	.align 8
.LC26:
	.string	"\t-V             Print version.\n"
.LC27:
	.string	"\t-v             Be verbose.\n"
	.align 8
.LC28:
	.string	"\t-d             Print debugging info.\n"
	.align 8
.LC29:
	.string	"\t-i             Ignore case when scanning.\n"
	.align 8
.LC30:
	.string	"\t-l             Line oriented output.\n"
	.align 8
.LC31:
	.string	"\t-n<workers>    Concurrent worker threads limit.\n"
	.align 8
.LC32:
	.string	"\t-L<length>     Max length of bytes to print.\n"
	.text
	.globl	usage
	.type	usage, @function
usage:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rdx, QWORD PTR argv0[rip]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC23[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 151
	mov	esi, 1
	lea	rdi, .LC24[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 42
	mov	esi, 1
	lea	rdi, .LC25[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 31
	mov	esi, 1
	lea	rdi, .LC26[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 28
	mov	esi, 1
	lea	rdi, .LC27[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 38
	mov	esi, 1
	lea	rdi, .LC28[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 43
	mov	esi, 1
	lea	rdi, .LC29[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 38
	mov	esi, 1
	lea	rdi, .LC30[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 49
	mov	esi, 1
	lea	rdi, .LC31[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 46
	mov	esi, 1
	lea	rdi, .LC32[rip]
	call	fwrite@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	usage, .-usage
	.section	.rodata
.LC33:
	.string	""
.LC34:
	.string	"%u"
.LC35:
	.string	"<null>"
	.align 8
.LC36:
	.string	"%s: Invalid length specification: %s\n"
	.align 8
.LC37:
	.string	"%s: Invalid workers specification: %s\n"
	.align 8
.LC38:
	.string	"%s: unknown command line switch: -%c\n"
	.align 8
.LC39:
	.string	"%s: Failed search string setup: %s\n"
	.align 8
.LC40:
	.string	"max_depth = %d, nworkers = %d\n"
	.align 8
.LC41:
	.string	"%s: pthread_create: failed to create worker thread\n"
	.align 8
.LC42:
	.string	"Waiting for workers to finish...\n"
	.align 8
.LC43:
	.string	"n_files = %d, n_matches = %d, n_workers = %d, n_Mbytes = %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	DWORD PTR -100[rbp], edi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR argv0[rip], rax
	lea	rsi, .LC33[rip]
	mov	edi, 0
	call	setlocale@PLT
	lea	rax, -64[rbp]
	mov	rsi, rax
	mov	edi, 7
	call	getrlimit@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, -64[rbp]
	mov	rsi, rax
	mov	edi, 7
	call	setrlimit@PLT
	mov	esi, 1
	mov	edi, 13
	call	signal@PLT
	mov	DWORD PTR nworkers[rip], 2
	mov	esi, 0
	lea	rdi, print_lock[rip]
	call	pthread_mutex_init@PLT
	mov	esi, 0
	lea	rdi, aworker_lock[rip]
	call	pthread_mutex_init@PLT
	mov	esi, 0
	lea	rdi, matches_lock[rip]
	call	pthread_mutex_init@PLT
	mov	esi, 0
	lea	rdi, aworker_cv[rip]
	call	pthread_cond_init@PLT
	mov	DWORD PTR -92[rbp], 1
	jmp	.L145
.L174:
	mov	DWORD PTR -88[rbp], 1
	jmp	.L146
.L173:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 45
	je	.L147
	cmp	eax, 45
	jl	.L148
	cmp	eax, 118
	jg	.L148
	cmp	eax, 76
	jl	.L148
	sub	eax, 76
	cmp	eax, 42
	ja	.L148
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L150[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L150[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L150:
	.long	.L157-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L156-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L155-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L154-.L150
	.long	.L153-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L152-.L150
	.long	.L148-.L150
	.long	.L151-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L148-.L150
	.long	.L149-.L150
	.text
.L147:
	add	DWORD PTR -92[rbp], 1
	jmp	.L158
.L156:
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	print_version
	jmp	.L159
.L155:
	mov	eax, DWORD PTR debug[rip]
	add	eax, 1
	mov	DWORD PTR debug[rip], eax
	jmp	.L159
.L153:
	mov	DWORD PTR ignore_case[rip], 1
	jmp	.L159
.L149:
	mov	eax, DWORD PTR verbose[rip]
	add	eax, 1
	mov	DWORD PTR verbose[rip], eax
	jmp	.L159
.L154:
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	usage
	mov	edi, 0
	call	exit@PLT
.L152:
	mov	eax, DWORD PTR line_f[rip]
	add	eax, 1
	mov	DWORD PTR line_f[rip], eax
	jmp	.L159
.L157:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L160
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 2
	mov	QWORD PTR -72[rbp], rax
	jmp	.L161
.L160:
	add	DWORD PTR -92[rbp], 1
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -72[rbp], rax
.L161:
	cmp	QWORD PTR -72[rbp], 0
	je	.L162
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, maxlen[rip]
	lea	rsi, .LC34[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sscanf@PLT
	cmp	eax, 1
	je	.L163
.L162:
	cmp	QWORD PTR -72[rbp], 0
	je	.L164
	mov	rax, QWORD PTR -72[rbp]
	jmp	.L165
.L164:
	lea	rax, .LC35[rip]
.L165:
	mov	rdx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	rdi, QWORD PTR stderr[rip]
	mov	rcx, rax
	lea	rsi, .LC36[rip]
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L163:
	mov	DWORD PTR -88[rbp], -2
	jmp	.L159
.L151:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L166
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 2
	mov	QWORD PTR -72[rbp], rax
	jmp	.L167
.L166:
	add	DWORD PTR -92[rbp], 1
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -72[rbp], rax
.L167:
	cmp	QWORD PTR -72[rbp], 0
	je	.L168
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, nworkers[rip]
	lea	rsi, .LC34[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sscanf@PLT
	cmp	eax, 1
	je	.L169
.L168:
	cmp	QWORD PTR -72[rbp], 0
	je	.L170
	mov	rax, QWORD PTR -72[rbp]
	jmp	.L171
.L170:
	lea	rax, .LC35[rip]
.L171:
	mov	rdx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	rdi, QWORD PTR stderr[rip]
	mov	rcx, rax
	lea	rsi, .LC37[rip]
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L169:
	mov	DWORD PTR -88[rbp], -2
	jmp	.L159
.L148:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	ecx, al
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L159:
	add	DWORD PTR -88[rbp], 1
.L146:
	cmp	DWORD PTR -88[rbp], 0
	jle	.L172
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L173
.L172:
	add	DWORD PTR -92[rbp], 1
.L145:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jge	.L187
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	je	.L174
.L187:
	nop
.L158:
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	add	eax, 1
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR rstr[rip], rax
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR rstr[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	add	DWORD PTR -92[rbp], 1
	mov	rax, QWORD PTR rstr[rip]
	mov	rdi, rax
	call	deslash
	mov	DWORD PTR rlen[rip], eax
	mov	ecx, DWORD PTR ignore_case[rip]
	mov	edx, DWORD PTR rlen[rip]
	mov	rax, QWORD PTR rstr[rip]
	mov	rsi, rax
	lea	rdi, bmb[rip]
	call	bm_init
	test	eax, eax
	jns	.L175
	mov	rcx, QWORD PTR rstr[rip]
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC39[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L175:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR nworkers[rip]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	sub	eax, 16
	mov	DWORD PTR max_depth[rip], eax
	mov	eax, DWORD PTR debug[rip]
	test	eax, eax
	je	.L176
	mov	ecx, DWORD PTR nworkers[rip]
	mov	edx, DWORD PTR max_depth[rip]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L176:
	mov	eax, DWORD PTR nworkers[rip]
	add	eax, 8
	mov	esi, eax
	lea	rdi, pqb[rip]
	call	pqueue_init
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	pthread_attr_init@PLT
	lea	rax, -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	pthread_attr_setscope@PLT
	mov	eax, DWORD PTR nworkers[rip]
	mov	DWORD PTR aworkers[rip], eax
	mov	DWORD PTR -88[rbp], 0
	jmp	.L177
.L179:
	lea	rsi, -48[rbp]
	lea	rax, -80[rbp]
	mov	ecx, 0
	lea	rdx, worker[rip]
	mov	rdi, rax
	call	pthread_create@PLT
	test	eax, eax
	je	.L178
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC41[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 1
	call	exit@PLT
.L178:
	add	DWORD PTR -88[rbp], 1
.L177:
	mov	eax, DWORD PTR nworkers[rip]
	cmp	DWORD PTR -88[rbp], eax
	jl	.L179
.L181:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jge	.L180
	mov	eax, DWORD PTR -92[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -92[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	do_ftw
	test	eax, eax
	je	.L181
.L180:
	lea	rdi, pqb[rip]
	call	pqueue_close
	mov	eax, DWORD PTR debug[rip]
	test	eax, eax
	je	.L182
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 33
	mov	esi, 1
	lea	rdi, .LC42[rip]
	call	fwrite@PLT
.L182:
	lea	rdi, aworker_lock[rip]
	call	pthread_mutex_lock@PLT
	jmp	.L183
.L184:
	lea	rsi, aworker_lock[rip]
	lea	rdi, aworker_cv[rip]
	call	pthread_cond_wait@PLT
.L183:
	mov	eax, DWORD PTR aworkers[rip]
	test	eax, eax
	jg	.L184
	lea	rdi, aworker_lock[rip]
	call	pthread_mutex_unlock@PLT
	mov	eax, DWORD PTR debug[rip]
	test	eax, eax
	je	.L185
	mov	eax, DWORD PTR n_bytes[rip]
	mov	eax, eax
	imul	rax, rax, 1125899907
	shr	rax, 32
	shr	eax, 18
	mov	edi, eax
	mov	esi, DWORD PTR nworkers[rip]
	mov	ecx, DWORD PTR n_matches[rip]
	mov	edx, DWORD PTR n_files[rip]
	mov	rax, QWORD PTR stderr[rip]
	mov	r9d, edi
	mov	r8d, esi
	lea	rsi, .LC43[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L185:
	mov	edi, 0
	call	pthread_exit@PLT
	.cfi_endproc
.LFE23:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"467147.c"
	.text
	.global	version
	.data
	.align	2
	.type	version, %object
	.size	version, 4
version:
	.ascii	"1.0\000"
	.text
	.align	2
	.global	pqueue_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	pqueue_init, %function
pqueue_init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	mov	r1, r3
	mov	r0, #4
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2
	mov	r3, #0
	b	.L3
.L2:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	mov	r1, #0
	mov	r0, r3
	bl	pthread_mutex_init
	ldr	r3, [fp, #-8]
	add	r3, r3, #48
	mov	r1, #0
	mov	r0, r3
	bl	pthread_cond_init
	ldr	r3, [fp, #-8]
	add	r3, r3, #96
	mov	r1, #0
	mov	r0, r3
	bl	pthread_cond_init
	mov	r3, #0
.L3:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pqueue_init, .-pqueue_init
	.align	2
	.global	pqueue_close
	.syntax unified
	.arm
	.fpu softvfp
	.type	pqueue_close, %function
pqueue_close:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_lock
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_unlock
	ldr	r3, [fp, #-8]
	add	r3, r3, #48
	mov	r0, r3
	bl	pthread_cond_broadcast
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pqueue_close, .-pqueue_close
	.global	__aeabi_idivmod
	.align	2
	.global	pqueue_put
	.syntax unified
	.arm
	.fpu softvfp
	.type	pqueue_put, %function
pqueue_put:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_lock
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L8
	mov	r3, #0
	b	.L7
.L9:
	ldr	r3, [fp, #-8]
	add	r2, r3, #96
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	mov	r1, r3
	mov	r0, r2
	bl	pthread_cond_wait
.L8:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bge	.L9
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	add	r0, r3, #1
	ldr	r1, [fp, #-8]
	str	r0, [r1, #12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_unlock
	ldr	r3, [fp, #-8]
	add	r3, r3, #48
	mov	r0, r3
	bl	pthread_cond_signal
	mov	r3, #1
.L7:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pqueue_put, .-pqueue_put
	.align	2
	.global	pqueue_get
	.syntax unified
	.arm
	.fpu softvfp
	.type	pqueue_get, %function
pqueue_get:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_lock
	b	.L11
.L13:
	ldr	r3, [fp, #-16]
	add	r2, r3, #48
	ldr	r3, [fp, #-16]
	add	r3, r3, #24
	mov	r1, r3
	mov	r0, r2
	bl	pthread_cond_wait
.L11:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bgt	.L12
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L13
.L12:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	ble	.L14
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	add	r0, r3, #1
	ldr	r1, [fp, #-16]
	str	r0, [r1, #16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	mov	r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_unlock
	ldr	r3, [fp, #-16]
	add	r3, r3, #96
	mov	r0, r3
	bl	pthread_cond_signal
	b	.L15
.L14:
	ldr	r3, [fp, #-16]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_unlock
.L15:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pqueue_get, .-pqueue_get
	.align	2
	.global	pqueue_destroy
	.syntax unified
	.arm
	.fpu softvfp
	.type	pqueue_destroy, %function
pqueue_destroy:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #24
	mov	r0, r3
	bl	pthread_mutex_destroy
	ldr	r3, [fp, #-8]
	add	r3, r3, #48
	mov	r0, r3
	bl	pthread_cond_destroy
	ldr	r3, [fp, #-8]
	add	r3, r3, #96
	mov	r0, r3
	bl	pthread_cond_destroy
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pqueue_destroy, .-pqueue_destroy
	.global	debug
	.bss
	.align	2
	.type	debug, %object
	.size	debug, 4
debug:
	.space	4
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	preBmBc, %function
preBmBc:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L19
.L20:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L19:
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	ble	.L20
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L21
.L22:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	sub	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r1, [fp, #-16]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	sub	r2, r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L21:
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L22
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	preBmBc, .-preBmBc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	suffixes, %function
suffixes:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	str	r3, [fp, #-8]
	b	.L24
.L31:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	ble	.L25
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r1, [fp, #-8]
	ldr	r3, [fp, #-12]
	sub	r3, r1, r3
	cmp	r2, r3
	bge	.L25
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-32]
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
	b	.L26
.L25:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bge	.L27
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-12]
.L27:
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-16]
	b	.L28
.L30:
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
.L28:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L29
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r1, [fp, #-12]
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	sub	r1, r3, #1
	ldr	r3, [fp, #-16]
	sub	r3, r1, r3
	mov	r1, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L30
.L29:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r1, [fp, #-16]
	ldr	r2, [fp, #-12]
	sub	r2, r1, r2
	str	r2, [r3]
.L26:
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
.L24:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L31
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	suffixes, .-suffixes
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	preBmGs, %function
preBmGs:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	mov	r1, r3
	mov	r0, #4
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L33
	mvn	r3, #0
	b	.L34
.L33:
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	suffixes
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L35
.L36:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L35:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L36
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L37
.L43:
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	beq	.L40
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	cmp	r2, r3
	bne	.L39
	b	.L40
.L42:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L41
	ldr	r3, [fp, #-28]
	sub	r1, r3, #1
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	sub	r2, r1, r2
	str	r2, [r3]
.L41:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L40:
	ldr	r3, [fp, #-28]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L42
.L39:
	ldr	r3, [fp, #-16]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
.L37:
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bge	.L43
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L44
.L45:
	ldr	r3, [fp, #-28]
	sub	r1, r3, #1
	ldr	r3, [fp, #-28]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r0, [fp, #-8]
	add	r3, r0, r3
	ldr	r3, [r3]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	sub	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L44:
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L45
	ldr	r0, [fp, #-8]
	bl	free
	mov	r3, #0
.L34:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	preBmGs, .-preBmGs
	.align	2
	.global	bm_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	bm_init, %function
bm_init:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r2, #4
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	memset
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #1036]
	ldr	r3, [fp, #-24]
	mov	r1, r3
	mov	r0, #4
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L47
	mvn	r3, #0
	b	.L48
.L47:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #1032]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1028]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1028]
	cmp	r3, #0
	bne	.L49
	mvn	r3, #1
	b	.L48
.L49:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L50
.L53:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L51
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	tolower
	mov	r3, r0
	and	r3, r3, #255
	b	.L52
.L51:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
.L52:
	ldr	r2, [fp, #-16]
	ldr	r1, [r2, #1028]
	ldr	r2, [fp, #-8]
	add	r2, r1, r2
	strb	r3, [r2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L50:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L53
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #1028]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	bl	preBmGs
	mov	r3, r0
	cmp	r3, #0
	bge	.L54
	mvn	r3, #2
	b	.L48
.L54:
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #1028]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	mov	r2, r3
	ldr	r1, [fp, #-24]
	bl	preBmBc
	mov	r3, #0
.L48:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bm_init, .-bm_init
	.align	2
	.global	bm_destroy
	.syntax unified
	.arm
	.fpu softvfp
	.type	bm_destroy, %function
bm_destroy:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L56
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
.L56:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1028]
	cmp	r3, #0
	beq	.L58
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1028]
	mov	r0, r3
	bl	free
.L58:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	bm_destroy, .-bm_destroy
	.align	2
	.global	bm_search
	.syntax unified
	.arm
	.fpu softvfp
	.type	bm_search, %function
bm_search:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	bm_search, .-bm_search
	.global	argv0
	.section	.rodata
	.align	2
.LC0:
	.ascii	"pfscan\000"
	.data
	.align	2
	.type	argv0, %object
	.size	argv0, 4
argv0:
	.word	.LC0
	.global	max_depth
	.align	2
	.type	max_depth, %object
	.size	max_depth, 4
max_depth:
	.word	64
	.global	rstr
	.bss
	.align	2
	.type	rstr, %object
	.size	rstr, 4
rstr:
	.space	4
	.global	rlen
	.align	2
	.type	rlen, %object
	.size	rlen, 4
rlen:
	.space	4
	.global	verbose
	.align	2
	.type	verbose, %object
	.size	verbose, 4
verbose:
	.space	4
	.global	nworkers
	.align	2
	.type	nworkers, %object
	.size	nworkers, 4
nworkers:
	.space	4
	.global	aworkers
	.align	2
	.type	aworkers, %object
	.size	aworkers, 4
aworkers:
	.space	4
	.comm	aworker_lock,24,4
	.comm	aworker_cv,48,8
	.global	line_f
	.align	2
	.type	line_f, %object
	.size	line_f, 4
line_f:
	.space	4
	.global	maxlen
	.data
	.align	2
	.type	maxlen, %object
	.size	maxlen, 4
maxlen:
	.word	64
	.global	ignore_case
	.bss
	.align	2
	.type	ignore_case, %object
	.size	ignore_case, 4
ignore_case:
	.space	4
	.global	n_matches
	.align	2
	.type	n_matches, %object
	.size	n_matches, 4
n_matches:
	.space	4
	.global	n_files
	.align	2
	.type	n_files, %object
	.size	n_files, 4
n_files:
	.space	4
	.global	n_bytes
	.align	2
	.type	n_bytes, %object
	.size	n_bytes, 4
n_bytes:
	.space	4
	.comm	matches_lock,24,4
	.comm	pqb,144,8
	.comm	print_lock,24,4
	.comm	bmb,1040,4
	.section	.rodata
	.align	2
.LC1:
	.ascii	"Dec  1 2010\000"
	.align	2
.LC2:
	.ascii	"[PFScan, version %s - %s %s]\012\000"
	.align	2
.LC3:
	.ascii	"16:41:46\000"
	.text
	.align	2
	.global	print_version
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_version, %function
print_version:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	ldr	r3, .L62
	str	r3, [sp]
	ldr	r3, .L62+4
	ldr	r2, .L62+8
	ldr	r1, .L62+12
	ldr	r0, [fp, #-8]
	bl	fprintf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L63:
	.align	2
.L62:
	.word	.LC3
	.word	.LC1
	.word	version
	.word	.LC2
	.size	print_version, .-print_version
	.align	2
	.global	get_char_code
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_char_code, %function
get_char_code:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L65
.L72:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-28]
	mul	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L66
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	movlt	r3, r3
	movge	r3, #10
	add	r3, r3, #47
	ldr	r2, [fp, #-24]
	ldr	r2, [r2]
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r3, r2
	blt	.L66
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #48
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	b	.L67
.L66:
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	ble	.L67
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	mov	r3, r0
	cmp	r3, #64
	ble	.L67
	ldr	r3, [fp, #-28]
	add	r4, r3, #54
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	mov	r3, r0
	cmp	r4, r3
	blt	.L67
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	mov	r3, r0
	sub	r3, r3, #55
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
.L67:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L65:
	ldr	r3, [fp, #-28]
	cmp	r3, #16
	bne	.L68
	mov	r2, #2
	b	.L69
.L68:
	mov	r2, #3
.L69:
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	ble	.L70
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L71
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	movlt	r3, r3
	movge	r3, #10
	add	r3, r3, #47
	ldr	r2, [fp, #-24]
	ldr	r2, [r2]
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r3, r2
	bge	.L72
.L71:
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	ble	.L70
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	mov	r3, r0
	cmp	r3, #64
	ble	.L70
	ldr	r3, [fp, #-28]
	add	r4, r3, #54
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	mov	r3, r0
	cmp	r4, r3
	bge	.L72
.L70:
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	get_char_code, .-get_char_code
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	dehex
	.syntax unified
	.arm
	.fpu softvfp
	.type	dehex, %function
dehex:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L87
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-20]
	b	.L75
.L78:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L76:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L77
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L78
.L77:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L86
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #4096
	cmp	r3, #0
	bne	.L81
	mvn	r3, #0
	b	.L84
.L81:
	sub	r3, fp, #20
	mov	r1, #16
	mov	r0, r3
	bl	get_char_code
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	ldr	r2, [fp, #-12]
	and	r2, r2, #255
	strb	r2, [r3]
.L75:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L76
	b	.L80
.L86:
	nop
.L80:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
.L84:
	ldr	r2, .L87
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L85
	bl	__stack_chk_fail
.L85:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L88:
	.align	2
.L87:
	.word	.LC4
	.size	dehex, .-dehex
	.align	2
	.global	deslash
	.syntax unified
	.arm
	.fpu softvfp
	.type	deslash, %function
deslash:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	bl	nondet_int
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	deslash, .-deslash
	.align	2
	.global	is_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_text, %function
is_text:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	b	.L92
.L94:
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L92:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L93
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #16384
	cmp	r3, #0
	bne	.L94
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L94
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #9
	beq	.L94
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L94
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #13
	beq	.L94
.L93:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	is_text, .-is_text
	.section	.rodata
	.align	2
.LC5:
	.ascii	"NULL\000"
	.align	2
.LC6:
	.ascii	"TXT : \000"
	.align	2
.LC7:
	.ascii	"\\0\000"
	.align	2
.LC8:
	.ascii	"\\n\000"
	.align	2
.LC9:
	.ascii	"\\r\000"
	.align	2
.LC10:
	.ascii	"\\t\000"
	.align	2
.LC11:
	.ascii	"\\x%02x\000"
	.align	2
.LC12:
	.ascii	"HEX :\000"
	.align	2
.LC13:
	.ascii	" %02x\000"
	.text
	.align	2
	.global	print_output
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_output, %function
print_output:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L97
	ldr	r0, .L115
	bl	printf
	ldr	r3, [fp, #-8]
	b	.L98
.L97:
	ldr	r3, [fp, #-20]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	is_text
	mov	r3, r0
	cmp	r3, #0
	beq	.L99
	ldr	r0, .L115+4
	bl	printf
	b	.L100
.L112:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #16384
	cmp	r3, #0
	beq	.L101
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	b	.L102
.L101:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #13
	ldrls	pc, [pc, r3, asl #2]
	b	.L103
.L105:
	.word	.L108
	.word	.L103
	.word	.L103
	.word	.L103
	.word	.L103
	.word	.L103
	.word	.L103
	.word	.L103
	.word	.L103
	.word	.L107
	.word	.L106
	.word	.L103
	.word	.L103
	.word	.L104
.L108:
	ldr	r0, .L115+8
	bl	printf
	b	.L102
.L106:
	ldr	r3, .L115+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L109
	ldr	r3, [fp, #-8]
	b	.L98
.L109:
	ldr	r0, .L115+16
	bl	printf
	b	.L102
.L104:
	ldr	r3, .L115+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L110
	ldr	r3, [fp, #-8]
	b	.L98
.L110:
	ldr	r0, .L115+20
	bl	printf
	b	.L102
.L107:
	ldr	r0, .L115+24
	bl	printf
	b	.L102
.L103:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L115+28
	bl	printf
.L102:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L100:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcs	.L111
	ldr	r3, .L115+32
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bcc	.L112
	b	.L111
.L99:
	ldr	r0, .L115+36
	bl	printf
	b	.L113
.L114:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L115+40
	bl	printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L113:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcs	.L111
	ldr	r3, .L115+32
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bcc	.L114
.L111:
	ldr	r3, [fp, #-8]
.L98:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L116:
	.align	2
.L115:
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	line_f
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	maxlen
	.word	.LC12
	.word	.LC13
	.size	print_output, .-print_output
	.section	.rodata
	.align	2
.LC14:
	.ascii	"%s : %lu : \000"
	.text
	.align	2
	.global	matchfun
	.syntax unified
	.arm
	.fpu softvfp
	.type	matchfun, %function
matchfun:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-8]
	ldr	r0, .L122
	bl	pthread_mutex_lock
	ldr	r3, .L122+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L122+4
	str	r3, [r2]
	ldr	r0, .L122
	bl	pthread_mutex_unlock
	ldr	r3, .L122+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L118
	b	.L119
.L120:
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
.L119:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L118
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L118
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #13
	bne	.L120
.L118:
	ldr	r0, .L122+12
	bl	pthread_mutex_lock
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-8]
	ldr	r0, .L122+16
	bl	printf
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r0, r2, r3
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	mov	r1, r3
	bl	print_output
	mov	r0, #10
	bl	putchar
	ldr	r0, .L122+12
	bl	pthread_mutex_unlock
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L123:
	.align	2
.L122:
	.word	matches_lock
	.word	n_matches
	.word	line_f
	.word	print_lock
	.word	.LC14
	.size	matchfun, .-matchfun
	.section	.rodata
	.align	2
.LC15:
	.ascii	"%s : ERR : open() failed: %s\012\000"
	.align	2
.LC16:
	.ascii	"%s : ERR : fstat() failed: %s\012\000"
	.align	2
.LC17:
	.ascii	"*** Scanning file %s (%u Mbytes)\012\000"
	.align	2
.LC18:
	.ascii	"%s : ERR : mmap() failed: %s\012\000"
	.align	2
.LC19:
	.ascii	"%s : 0 : \000"
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	scan_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	scan_file, %function
scan_file:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #132
	str	r0, [fp, #-128]
	ldr	r3, .L137
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r1, #0
	ldr	r0, [fp, #-128]
	bl	open
	str	r0, [fp, #-124]
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bge	.L125
	ldr	r3, .L137+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L126
	ldr	r0, .L137+8
	bl	pthread_mutex_lock
	ldr	r3, .L137+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	ldr	r2, [fp, #-128]
	ldr	r1, .L137+16
	mov	r0, r4
	bl	fprintf
	ldr	r0, .L137+8
	bl	pthread_mutex_unlock
.L126:
	mvn	r3, #0
	b	.L135
.L125:
	sub	r3, fp, #108
	mov	r1, r3
	ldr	r0, [fp, #-124]
	bl	fstat
	mov	r3, r0
	cmp	r3, #0
	bge	.L128
	ldr	r3, .L137+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L129
	ldr	r0, .L137+8
	bl	pthread_mutex_lock
	ldr	r3, .L137+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	ldr	r2, [fp, #-128]
	ldr	r1, .L137+20
	mov	r0, r4
	bl	fprintf
	ldr	r0, .L137+8
	bl	pthread_mutex_unlock
.L129:
	ldr	r0, [fp, #-124]
	bl	close
	mvn	r3, #0
	b	.L135
.L128:
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-120]
	ldr	r3, .L137+24
	ldr	r3, [r3]
	cmp	r3, #1
	ble	.L130
	ldr	r3, .L137+12
	ldr	r0, [r3]
	ldr	r3, [fp, #-120]
	ldr	r2, .L137+28
	umull	r1, r3, r2, r3
	lsr	r3, r3, #18
	ldr	r2, [fp, #-128]
	ldr	r1, .L137+32
	bl	fprintf
.L130:
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-124]
	str	r3, [sp]
	mov	r3, #3
	mov	r2, #1
	ldr	r1, [fp, #-120]
	mov	r0, #0
	bl	mmap
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmn	r3, #1
	bne	.L131
	ldr	r3, .L137+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L132
	ldr	r0, .L137+8
	bl	pthread_mutex_lock
	ldr	r3, .L137+12
	ldr	r4, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	ldr	r2, [fp, #-128]
	ldr	r1, .L137+36
	mov	r0, r4
	bl	fprintf
	ldr	r0, .L137+8
	bl	pthread_mutex_unlock
.L132:
	ldr	r0, [fp, #-124]
	bl	close
	mvn	r3, #0
	b	.L135
.L131:
	ldr	r3, .L137+40
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L133
	ldr	r3, [fp, #-128]
	str	r3, [sp]
	ldr	r3, .L137+44
	ldr	r2, [fp, #-120]
	ldr	r1, [fp, #-116]
	ldr	r0, .L137+48
	bl	bm_search
	str	r0, [fp, #-112]
	b	.L134
.L133:
	ldr	r0, .L137+8
	bl	pthread_mutex_lock
	ldr	r1, [fp, #-128]
	ldr	r0, .L137+52
	bl	printf
	ldr	r1, [fp, #-120]
	ldr	r0, [fp, #-116]
	bl	print_output
	mov	r0, #10
	bl	putchar
	ldr	r0, .L137+8
	bl	pthread_mutex_unlock
.L134:
	ldr	r1, [fp, #-120]
	ldr	r0, [fp, #-116]
	bl	munmap
	ldr	r0, [fp, #-124]
	bl	close
	mov	r3, #1
.L135:
	ldr	r2, .L137
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L136
	bl	__stack_chk_fail
.L136:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L138:
	.align	2
.L137:
	.word	.LC20
	.word	verbose
	.word	print_lock
	.word	stderr
	.word	.LC15
	.word	.LC16
	.word	debug
	.word	1125899907
	.word	.LC17
	.word	.LC18
	.word	rstr
	.word	matchfun
	.word	bmb
	.word	.LC19
	.size	scan_file, .-scan_file
	.section	.rodata
	.align	2
.LC21:
	.ascii	"%s: %s: Can't read directory.\012\000"
	.align	2
.LC22:
	.ascii	"%s: %s: Can't stat object.\012\000"
	.align	2
.LC23:
	.ascii	"%s: %s: Internal error (invalid ftw code)\012\000"
	.text
	.align	2
	.global	foreach_path
	.syntax unified
	.arm
	.fpu softvfp
	.type	foreach_path, %function
foreach_path:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, .L147
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L147
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #44]
	mov	r2, r3
	ldr	r3, .L147+4
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L147+4
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L140
.L142:
	.word	.L145
	.word	.L144
	.word	.L143
	.word	.L141
.L145:
	ldr	r0, [fp, #-8]
	bl	strdup
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L147+8
	bl	pqueue_put
	mov	r3, #0
	b	.L146
.L144:
	mov	r3, #0
	b	.L146
.L143:
	ldr	r3, .L147+12
	ldr	r0, [r3]
	ldr	r3, .L147+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r1, .L147+20
	bl	fprintf
	mov	r3, #1
	b	.L146
.L141:
	ldr	r3, .L147+12
	ldr	r0, [r3]
	ldr	r3, .L147+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r1, .L147+24
	bl	fprintf
	mov	r3, #1
	b	.L146
.L140:
	ldr	r3, .L147+12
	ldr	r0, [r3]
	ldr	r3, .L147+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r1, .L147+28
	bl	fprintf
	mov	r3, #1
.L146:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L148:
	.align	2
.L147:
	.word	n_files
	.word	n_bytes
	.word	pqb
	.word	stderr
	.word	argv0
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.size	foreach_path, .-foreach_path
	.section	.rodata
	.align	2
.LC24:
	.ascii	"%s: ftw: %s\012\000"
	.text
	.align	2
	.global	do_ftw
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_ftw, %function
do_ftw:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-24]
	ldr	r3, .L152
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L152+4
	ldr	r0, [fp, #-24]
	bl	ftw
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L150
	ldr	r3, .L152+8
	ldr	r4, [r3]
	ldr	r3, .L152+12
	ldr	r5, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	ldr	r1, .L152+16
	mov	r0, r4
	bl	fprintf
	mov	r3, #1
	b	.L151
.L150:
	ldr	r3, [fp, #-16]
.L151:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L153:
	.align	2
.L152:
	.word	max_depth
	.word	foreach_path
	.word	stderr
	.word	argv0
	.word	.LC24
	.size	do_ftw, .-do_ftw
	.section	.rodata
	.align	2
.LC25:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	worker
	.syntax unified
	.arm
	.fpu softvfp
	.type	worker, %function
worker:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L159
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	b	.L155
.L156:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	bl	scan_file
	ldr	r3, [fp, #-12]
	mov	r0, r3
	bl	free
.L155:
	sub	r3, fp, #12
	mov	r1, r3
	ldr	r0, .L159+4
	bl	pqueue_get
	mov	r3, r0
	cmp	r3, #1
	beq	.L156
	ldr	r3, .L159+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	ldr	r0, .L159+12
	bl	pthread_mutex_lock
	ldr	r3, .L159+16
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L159+16
	str	r3, [r2]
	ldr	r0, .L159+12
	bl	pthread_mutex_unlock
	ldr	r0, .L159+20
	bl	pthread_cond_signal
	mov	r3, #0
	ldr	r2, .L159
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L158
	bl	__stack_chk_fail
.L158:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L160:
	.align	2
.L159:
	.word	.LC25
	.word	pqb
	.word	stdout
	.word	aworker_lock
	.word	aworkers
	.word	aworker_cv
	.size	worker, .-worker
	.section	.rodata
	.align	2
.LC26:
	.ascii	"Usage: %s [<options>] <search-string> <pathname> [."
	.ascii	".. <pathname-N>]\012\000"
	.align	2
.LC27:
	.ascii	"\012This program implements a multithreaded file sc"
	.ascii	"anner.\012More information may be found at:\012\011"
	.ascii	"http://www.lysator.liu.se/~pen/pfscan\012\012Comman"
	.ascii	"d line options:\012\000"
	.align	2
.LC28:
	.ascii	"\011-h             Display this information.\012\000"
	.align	2
.LC29:
	.ascii	"\011-V             Print version.\012\000"
	.align	2
.LC30:
	.ascii	"\011-v             Be verbose.\012\000"
	.align	2
.LC31:
	.ascii	"\011-d             Print debugging info.\012\000"
	.align	2
.LC32:
	.ascii	"\011-i             Ignore case when scanning.\012\000"
	.align	2
.LC33:
	.ascii	"\011-l             Line oriented output.\012\000"
	.align	2
.LC34:
	.ascii	"\011-n<workers>    Concurrent worker threads limit."
	.ascii	"\012\000"
	.align	2
.LC35:
	.ascii	"\011-L<length>     Max length of bytes to print.\012"
	.ascii	"\000"
	.text
	.align	2
	.global	usage
	.syntax unified
	.arm
	.fpu softvfp
	.type	usage, %function
usage:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L162
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L162+4
	ldr	r0, [fp, #-8]
	bl	fprintf
	ldr	r3, [fp, #-8]
	mov	r2, #151
	mov	r1, #1
	ldr	r0, .L162+8
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #42
	mov	r1, #1
	ldr	r0, .L162+12
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #31
	mov	r1, #1
	ldr	r0, .L162+16
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #28
	mov	r1, #1
	ldr	r0, .L162+20
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #38
	mov	r1, #1
	ldr	r0, .L162+24
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #43
	mov	r1, #1
	ldr	r0, .L162+28
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #38
	mov	r1, #1
	ldr	r0, .L162+32
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #49
	mov	r1, #1
	ldr	r0, .L162+36
	bl	fwrite
	ldr	r3, [fp, #-8]
	mov	r2, #46
	mov	r1, #1
	ldr	r0, .L162+40
	bl	fwrite
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L163:
	.align	2
.L162:
	.word	argv0
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.size	usage, .-usage
	.section	.rodata
	.align	2
.LC36:
	.ascii	"\000"
	.align	2
.LC37:
	.ascii	"%u\000"
	.align	2
.LC38:
	.ascii	"<null>\000"
	.align	2
.LC39:
	.ascii	"%s: Invalid length specification: %s\012\000"
	.align	2
.LC40:
	.ascii	"%s: Invalid workers specification: %s\012\000"
	.align	2
.LC41:
	.ascii	"%s: unknown command line switch: -%c\012\000"
	.align	2
.LC42:
	.ascii	"%s: Failed search string setup: %s\012\000"
	.align	2
.LC43:
	.ascii	"max_depth = %d, nworkers = %d\012\000"
	.align	2
.LC44:
	.ascii	"%s: pthread_create: failed to create worker thread\012"
	.ascii	"\000"
	.align	2
.LC45:
	.ascii	"Waiting for workers to finish...\012\000"
	.align	2
.LC46:
	.ascii	"n_files = %d, n_matches = %d, n_workers = %d, n_Mby"
	.ascii	"tes = %d\012\000"
	.align	2
.LC47:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #92
	str	r0, [fp, #-88]
	str	r1, [fp, #-92]
	ldr	r3, .L208
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	ldr	r2, .L208+4
	str	r3, [r2]
	ldr	r1, .L208+8
	mov	r0, #0
	bl	setlocale
	sub	r3, fp, #60
	mov	r1, r3
	mov	r0, #7
	bl	getrlimit
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-60]
	sub	r3, fp, #60
	mov	r1, r3
	mov	r0, #7
	bl	setrlimit
	mov	r1, #1
	mov	r0, #13
	bl	signal
	ldr	r3, .L208+12
	mov	r2, #2
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, .L208+16
	bl	pthread_mutex_init
	mov	r1, #0
	ldr	r0, .L208+20
	bl	pthread_mutex_init
	mov	r1, #0
	ldr	r0, .L208+24
	bl	pthread_mutex_init
	mov	r1, #0
	ldr	r0, .L208+28
	bl	pthread_cond_init
	mov	r3, #1
	str	r3, [fp, #-76]
	b	.L165
.L194:
	mov	r3, #1
	str	r3, [fp, #-72]
	b	.L166
.L193:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L167
	cmp	r3, #45
	blt	.L168
	cmp	r3, #118
	bgt	.L168
	cmp	r3, #76
	blt	.L168
	sub	r3, r3, #76
	cmp	r3, #42
	ldrls	pc, [pc, r3, asl #2]
	b	.L168
.L170:
	.word	.L177
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L176
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L175
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L174
	.word	.L173
	.word	.L168
	.word	.L168
	.word	.L172
	.word	.L168
	.word	.L171
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L168
	.word	.L169
.L167:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	b	.L178
.L176:
	ldr	r3, .L208+32
	ldr	r3, [r3]
	mov	r0, r3
	bl	print_version
	b	.L179
.L175:
	ldr	r3, .L208+36
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L208+36
	str	r3, [r2]
	b	.L179
.L173:
	ldr	r3, .L208+40
	mov	r2, #1
	str	r2, [r3]
	b	.L179
.L169:
	ldr	r3, .L208+44
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L208+44
	str	r3, [r2]
	b	.L179
.L174:
	ldr	r3, .L208+32
	ldr	r3, [r3]
	mov	r0, r3
	bl	usage
	mov	r0, #0
	bl	exit
.L172:
	ldr	r3, .L208+48
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L208+48
	str	r3, [r2]
	b	.L179
.L177:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L180
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #2
	str	r3, [fp, #-68]
	b	.L181
.L180:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-68]
.L181:
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L182
	ldr	r2, .L208+52
	ldr	r1, .L208+56
	ldr	r0, [fp, #-68]
	bl	sscanf
	mov	r3, r0
	cmp	r3, #1
	beq	.L183
.L182:
	ldr	r3, .L208+60
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L184
	ldr	r3, [fp, #-68]
	b	.L185
.L184:
	ldr	r3, .L208+64
.L185:
	ldr	r1, .L208+68
	bl	fprintf
	mov	r0, #1
	bl	exit
.L183:
	mvn	r3, #1
	str	r3, [fp, #-72]
	b	.L179
.L171:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L186
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #2
	str	r3, [fp, #-68]
	b	.L187
.L186:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-68]
.L187:
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L188
	ldr	r2, .L208+12
	ldr	r1, .L208+56
	ldr	r0, [fp, #-68]
	bl	sscanf
	mov	r3, r0
	cmp	r3, #1
	beq	.L189
.L188:
	ldr	r3, .L208+60
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L190
	ldr	r3, [fp, #-68]
	b	.L191
.L190:
	ldr	r3, .L208+64
.L191:
	ldr	r1, .L208+72
	bl	fprintf
	mov	r0, #1
	bl	exit
.L189:
	mvn	r3, #1
	str	r3, [fp, #-72]
	b	.L179
.L168:
	ldr	r3, .L208+60
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	ldr	r1, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r1
	ldr	r1, .L208+76
	bl	fprintf
	mov	r0, #1
	bl	exit
.L179:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L166:
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	ble	.L192
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L193
.L192:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L165:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	bge	.L207
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L194
.L207:
	nop
.L178:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L208+80
	str	r2, [r3]
	ldr	r3, .L208+80
	ldr	r0, [r3]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	bl	strcpy
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r3, .L208+80
	ldr	r3, [r3]
	mov	r0, r3
	bl	deslash
	mov	r3, r0
	ldr	r2, .L208+84
	str	r3, [r2]
	ldr	r3, .L208+80
	ldr	r1, [r3]
	ldr	r3, .L208+84
	ldr	r2, [r3]
	ldr	r3, .L208+40
	ldr	r3, [r3]
	ldr	r0, .L208+88
	bl	bm_init
	mov	r3, r0
	cmp	r3, #0
	bge	.L195
	ldr	r3, .L208+60
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3]
	ldr	r3, .L208+80
	ldr	r3, [r3]
	ldr	r1, .L208+92
	bl	fprintf
	mov	r0, #1
	bl	exit
.L195:
	ldr	r3, [fp, #-56]
	ldr	r2, .L208+12
	ldr	r2, [r2]
	sub	r3, r3, r2
	sub	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L208+96
	str	r2, [r3]
	ldr	r3, .L208+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L196
	ldr	r3, .L208+60
	ldr	r0, [r3]
	ldr	r3, .L208+96
	ldr	r2, [r3]
	ldr	r3, .L208+12
	ldr	r3, [r3]
	ldr	r1, .L208+100
	bl	fprintf
.L196:
	ldr	r3, .L208+12
	ldr	r3, [r3]
	add	r3, r3, #8
	mov	r1, r3
	ldr	r0, .L208+104
	bl	pqueue_init
	sub	r3, fp, #52
	mov	r0, r3
	bl	pthread_attr_init
	sub	r3, fp, #52
	mov	r1, #0
	mov	r0, r3
	bl	pthread_attr_setscope
	ldr	r3, .L208+12
	ldr	r3, [r3]
	ldr	r2, .L208+108
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L197
.L199:
	sub	r1, fp, #52
	sub	r0, fp, #80
	mov	r3, #0
	ldr	r2, .L208+112
	bl	pthread_create
	mov	r3, r0
	cmp	r3, #0
	beq	.L198
	ldr	r3, .L208+60
	ldr	r0, [r3]
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L208+116
	bl	fprintf
	mov	r0, #1
	bl	exit
.L198:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L197:
	ldr	r3, .L208+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-72]
	cmp	r2, r3
	blt	.L199
.L201:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	bge	.L200
	ldr	r3, [fp, #-76]
	add	r2, r3, #1
	str	r2, [fp, #-76]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-92]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	do_ftw
	mov	r3, r0
	cmp	r3, #0
	beq	.L201
.L200:
	ldr	r0, .L208+104
	bl	pqueue_close
	ldr	r3, .L208+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L202
	ldr	r3, .L208+60
	ldr	r3, [r3]
	mov	r2, #33
	mov	r1, #1
	ldr	r0, .L208+120
	bl	fwrite
.L202:
	ldr	r0, .L208+20
	bl	pthread_mutex_lock
	b	.L203
.L204:
	ldr	r1, .L208+20
	ldr	r0, .L208+28
	bl	pthread_cond_wait
.L203:
	ldr	r3, .L208+108
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L204
	ldr	r0, .L208+20
	bl	pthread_mutex_unlock
	ldr	r3, .L208+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L205
	ldr	r3, .L208+60
	ldr	r0, [r3]
	ldr	r3, .L208+124
	ldr	r1, [r3]
	ldr	r3, .L208+128
	ldr	ip, [r3]
	ldr	r3, .L208+12
	ldr	r3, [r3]
	ldr	r2, .L208+132
	ldr	r2, [r2]
	ldr	lr, .L208+136
	umull	r4, r2, lr, r2
	lsr	r2, r2, #18
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, ip
	mov	r2, r1
	ldr	r1, .L208+140
	bl	fprintf
.L205:
	mov	r0, #0
	bl	pthread_exit
.L209:
	.align	2
.L208:
	.word	.LC47
	.word	argv0
	.word	.LC36
	.word	nworkers
	.word	print_lock
	.word	aworker_lock
	.word	matches_lock
	.word	aworker_cv
	.word	stdout
	.word	debug
	.word	ignore_case
	.word	verbose
	.word	line_f
	.word	maxlen
	.word	.LC37
	.word	stderr
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	rstr
	.word	rlen
	.word	bmb
	.word	.LC42
	.word	max_depth
	.word	.LC43
	.word	pqb
	.word	aworkers
	.word	worker
	.word	.LC44
	.word	.LC45
	.word	n_files
	.word	n_matches
	.word	n_bytes
	.word	1125899907
	.word	.LC46
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
