	.file	"495312.c"
	.intel_syntax noprefix
	.text
	.globl	BSize
	.bss
	.type	BSize, @object
	.size	BSize, 1
BSize:
	.zero	1
	.globl	char_map
	.align 32
	.type	char_map, @object
	.size	char_map, 256
char_map:
	.zero	256
	.globl	shift_1
	.align 4
	.type	shift_1, @object
	.size	shift_1, 4
shift_1:
	.zero	4
	.globl	SHIFT
	.align 32
	.type	SHIFT, @object
	.size	SHIFT, 256
SHIFT:
	.zero	256
	.globl	MEMBER
	.align 32
	.type	MEMBER, @object
	.size	MEMBER, 8192
MEMBER:
	.zero	8192
	.globl	pat
	.align 32
	.type	pat, @object
	.size	pat, 256
pat:
	.zero	256
	.globl	Hashmask
	.align 4
	.type	Hashmask, @object
	.size	Hashmask, 4
Hashmask:
	.zero	4
	.globl	MEMBER_1
	.align 32
	.type	MEMBER_1, @object
	.size	MEMBER_1, 65536
MEMBER_1:
	.zero	65536
	.globl	TR
	.align 32
	.type	TR, @object
	.size	TR, 256
TR:
	.zero	256
	.text
	.globl	char_tr
	.type	char_tr, @function
char_tr:
.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, 304
	mov	QWORD PTR -296[rbp], rdi
	mov	QWORD PTR -304[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -276[rbp], 0
	jmp	.L2
.L3:
	mov	eax, DWORD PTR -276[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -276[rbp]
	cdqe
	lea	rdx, TR[rip]
	mov	BYTE PTR [rax+rdx], cl
	add	DWORD PTR -276[rbp], 1
.L2:
	cmp	DWORD PTR -276[rbp], 255
	jle	.L3
	mov	eax, DWORD PTR NOUPPER[rip]
	test	eax, eax
	je	.L4
	mov	DWORD PTR -276[rbp], 65
	jmp	.L5
.L6:
	mov	eax, DWORD PTR -276[rbp]
	lea	ecx, 32[rax]
	mov	eax, DWORD PTR -276[rbp]
	cdqe
	lea	rdx, TR[rip]
	mov	BYTE PTR [rax+rdx], cl
	add	DWORD PTR -276[rbp], 1
.L5:
	cmp	DWORD PTR -276[rbp], 90
	jle	.L6
.L4:
	mov	eax, DWORD PTR WORDBOUND[rip]
	test	eax, eax
	je	.L7
	mov	DWORD PTR -276[rbp], 0
	jmp	.L8
.L10:
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -276[rbp]
	cdqe
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8
	test	eax, eax
	jne	.L9
	mov	eax, DWORD PTR -276[rbp]
	cdqe
	lea	rdx, TR[rip]
	mov	BYTE PTR [rax+rdx], -128
.L9:
	add	DWORD PTR -276[rbp], 1
.L8:
	cmp	DWORD PTR -276[rbp], 127
	jle	.L10
.L7:
	mov	eax, DWORD PTR WHOLELINE[rip]
	test	eax, eax
	je	.L11
	mov	rax, QWORD PTR -304[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -296[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -296[rbp]
	mov	BYTE PTR [rax], 10
	mov	rax, QWORD PTR -304[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -296[rbp]
	lea	rcx, 1[rax]
	lea	rax, -272[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -304[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 10
	mov	rax, QWORD PTR -304[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -304[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 2[rax]
	mov	rax, QWORD PTR -304[rbp]
	mov	DWORD PTR [rax], edx
.L11:
	nop
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L12
	call	__stack_chk_fail@PLT
.L12:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	char_tr, .-char_tr
	.section	.rodata
.LC0:
	.string	"%s: pattern too long\n"
	.text
	.globl	sgrep
	.type	sgrep, @function
sgrep:
.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, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 2384
	mov	QWORD PTR -10552[rbp], rdi
	mov	DWORD PTR -10556[rbp], esi
	mov	DWORD PTR -10560[rbp], edx
	mov	DWORD PTR -10564[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -10528[rbp], 2048
	mov	DWORD PTR -10524[rbp], 0
	mov	rax, QWORD PTR -10552[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 94
	je	.L14
	mov	rax, QWORD PTR -10552[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 36
	jne	.L15
.L14:
	mov	rax, QWORD PTR -10552[rbp]
	mov	BYTE PTR [rax], 10
.L15:
	mov	eax, DWORD PTR -10556[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -10552[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 94
	je	.L16
	mov	eax, DWORD PTR -10556[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -10552[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 36
	jne	.L17
.L16:
	mov	eax, DWORD PTR -10556[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -10552[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 10
.L17:
	lea	rdx, -10556[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	mov	eax, 0
	call	char_tr
	mov	eax, DWORD PTR -10528[rbp]
	sub	eax, 1
	cdqe
	mov	BYTE PTR -10512[rbp+rax], 10
	mov	DWORD PTR -10540[rbp], 0
	jmp	.L18
.L19:
	mov	eax, DWORD PTR -10540[rbp]
	cdqe
	mov	BYTE PTR -10512[rbp+rax], 0
	add	DWORD PTR -10540[rbp], 1
.L18:
	cmp	DWORD PTR -10540[rbp], 1023
	jle	.L19
	mov	eax, DWORD PTR -10528[rbp]
	mov	DWORD PTR -10536[rbp], eax
	mov	eax, DWORD PTR WHOLELINE[rip]
	test	eax, eax
	je	.L20
	sub	DWORD PTR -10536[rbp], 1
.L20:
	mov	eax, DWORD PTR -10556[rbp]
	cmp	eax, 255
	jle	.L21
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, Progname[rip]
	lea	rsi, .LC0[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 2
	call	exit@PLT
.L21:
	cmp	DWORD PTR -10564[rbp], 0
	jne	.L22
	mov	eax, DWORD PTR -10556[rbp]
	cmp	eax, 20
	jle	.L23
	mov	rax, QWORD PTR -10552[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	m_preprocess
	jmp	.L24
.L23:
	mov	edx, DWORD PTR -10556[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	esi, edx
	mov	rdi, rax
	mov	eax, 0
	call	prep_bm
	jmp	.L24
.L22:
	mov	eax, DWORD PTR DNA[rip]
	test	eax, eax
	je	.L25
	mov	edx, DWORD PTR -10556[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	esi, edx
	mov	rdi, rax
	mov	eax, 0
	call	prep4
	jmp	.L24
.L25:
	mov	eax, DWORD PTR -10556[rbp]
	cmp	eax, 23
	jle	.L26
	mov	rax, QWORD PTR -10552[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	am_preprocess
	jmp	.L24
.L26:
	mov	ecx, DWORD PTR -10556[rbp]
	mov	edx, DWORD PTR -10564[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	esi, ecx
	mov	rdi, rax
	mov	eax, 0
	call	prep
	mov	edx, DWORD PTR -10556[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	lea	r8, endposition[rip]
	mov	ecx, 0
	lea	rsi, Mask[rip]
	mov	rdi, rax
	mov	eax, 0
	call	initmask
.L24:
	mov	DWORD PTR -10540[rbp], 1
	jmp	.L27
.L28:
	mov	eax, DWORD PTR -10556[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -10552[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -10528[rbp]
	lea	ecx, 8192[rdx]
	mov	edx, DWORD PTR -10540[rbp]
	add	ecx, edx
	movzx	edx, BYTE PTR [rax]
	movsx	rax, ecx
	mov	BYTE PTR -10512[rbp+rax], dl
	add	DWORD PTR -10540[rbp], 1
.L27:
	mov	eax, DWORD PTR -10556[rbp]
	cmp	DWORD PTR -10540[rbp], eax
	jle	.L28
	jmp	.L29
.L41:
	mov	edx, DWORD PTR -10528[rbp]
	mov	eax, DWORD PTR -10520[rbp]
	add	eax, edx
	sub	eax, 1
	mov	DWORD PTR -10532[rbp], eax
	mov	eax, DWORD PTR -10532[rbp]
	mov	DWORD PTR -10516[rbp], eax
	jmp	.L30
.L32:
	sub	DWORD PTR -10532[rbp], 1
.L30:
	mov	eax, DWORD PTR -10532[rbp]
	cdqe
	movzx	eax, BYTE PTR -10512[rbp+rax]
	cmp	al, 10
	je	.L31
	mov	eax, DWORD PTR -10532[rbp]
	cmp	eax, DWORD PTR -10528[rbp]
	jg	.L32
.L31:
	mov	eax, DWORD PTR -10516[rbp]
	sub	eax, DWORD PTR -10532[rbp]
	add	eax, 1
	mov	DWORD PTR -10524[rbp], eax
	mov	eax, DWORD PTR -10536[rbp]
	sub	eax, 1
	cdqe
	mov	BYTE PTR -10512[rbp+rax], 10
	cmp	DWORD PTR -10564[rbp], 0
	jne	.L33
	mov	eax, DWORD PTR -10556[rbp]
	cmp	eax, 20
	jle	.L34
	mov	eax, DWORD PTR -10532[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -10536[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	add	rdx, rax
	mov	esi, DWORD PTR -10556[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	monkey
	jmp	.L35
.L34:
	mov	eax, DWORD PTR -10532[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -10536[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	add	rdx, rax
	mov	esi, DWORD PTR -10556[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	bm
	jmp	.L35
.L33:
	mov	eax, DWORD PTR DNA[rip]
	test	eax, eax
	je	.L36
	mov	eax, DWORD PTR -10532[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -10536[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	add	rdx, rax
	mov	esi, DWORD PTR -10556[rbp]
	mov	edi, DWORD PTR -10564[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	monkey4
	jmp	.L35
.L36:
	mov	eax, DWORD PTR -10556[rbp]
	cmp	eax, 23
	jle	.L37
	mov	eax, DWORD PTR -10532[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -10536[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	add	rdx, rax
	mov	esi, DWORD PTR -10556[rbp]
	mov	edi, DWORD PTR -10564[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	a_monkey
	jmp	.L35
.L37:
	mov	eax, DWORD PTR -10532[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -10536[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	add	rdx, rax
	mov	esi, DWORD PTR -10556[rbp]
	mov	edi, DWORD PTR -10564[rbp]
	mov	rax, QWORD PTR -10552[rbp]
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	agrep
.L35:
	mov	eax, DWORD PTR FILENAMEONLY[rip]
	test	eax, eax
	je	.L38
	mov	eax, DWORD PTR num_of_matched[rip]
	test	eax, eax
	je	.L38
	lea	rdi, CurrentFileName[rip]
	call	puts@PLT
	jmp	.L42
.L38:
	mov	eax, DWORD PTR -10528[rbp]
	sub	eax, DWORD PTR -10524[rbp]
	mov	DWORD PTR -10536[rbp], eax
	cmp	DWORD PTR -10536[rbp], 1023
	jg	.L40
	mov	DWORD PTR -10536[rbp], 1024
.L40:
	mov	eax, DWORD PTR -10524[rbp]
	cdqe
	mov	edx, DWORD PTR -10532[rbp]
	movsx	rdx, edx
	lea	rcx, -10512[rbp]
	lea	rsi, [rcx+rdx]
	mov	edx, DWORD PTR -10536[rbp]
	movsx	rdx, edx
	lea	rcx, -10512[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	strncpy@PLT
	add	DWORD PTR -10536[rbp], 1
.L29:
	mov	eax, DWORD PTR -10528[rbp]
	cdqe
	lea	rdx, -10512[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -10560[rbp]
	mov	edx, 8192
	mov	rsi, rcx
	mov	edi, eax
	mov	eax, 0
	call	read@PLT
	mov	DWORD PTR -10520[rbp], eax
	cmp	DWORD PTR -10520[rbp], 0
	jg	.L41
	nop
.L42:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L43
	call	__stack_chk_fail@PLT
.L43:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	sgrep, .-sgrep
	.section	.rodata
.LC1:
	.string	"%s: "
	.text
	.globl	bm
	.type	bm, @function
bm:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	sub	rsp, 40
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	r12d, DWORD PTR shift_1[rip]
	mov	eax, DWORD PTR -44[rbp]
	lea	r13d, -1[rax]
	mov	ebx, 0
	jmp	.L45
.L65:
	movsx	rax, ebx
	add	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ebx, al
	jmp	.L46
.L47:
	movsx	rax, ebx
	add	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ebx, al
	movsx	rax, ebx
	add	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ebx, al
	movsx	rax, ebx
	add	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ebx, al
.L46:
	test	ebx, ebx
	jne	.L47
	mov	ebx, 0
	jmp	.L48
.L50:
	add	ebx, 1
	cmp	ebx, DWORD PTR -44[rbp]
	je	.L66
.L48:
	mov	eax, r13d
	sub	eax, ebx
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, TR[rip]
	movzx	edx, BYTE PTR [rax+rdx]
	movsx	rax, ebx
	neg	rax
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rcx, TR[rip]
	movzx	eax, BYTE PTR [rax+rcx]
	cmp	dl, al
	je	.L50
	jmp	.L49
.L66:
	nop
.L49:
	cmp	ebx, DWORD PTR -44[rbp]
	jne	.L51
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -64[rbp]
	ja	.L67
	mov	eax, DWORD PTR WORDBOUND[rip]
	test	eax, eax
	je	.L54
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, TR[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -128
	jne	.L68
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, TR[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -128
	jne	.L69
.L54:
	mov	eax, DWORD PTR num_of_matched[rip]
	add	eax, 1
	mov	DWORD PTR num_of_matched[rip], eax
	mov	eax, DWORD PTR FILENAMEONLY[rip]
	test	eax, eax
	jne	.L70
	mov	eax, DWORD PTR COUNT[rip]
	test	eax, eax
	jne	.L63
	mov	eax, DWORD PTR FNAME[rip]
	test	eax, eax
	je	.L60
	lea	rsi, CurrentFileName[rip]
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
.L60:
	sub	QWORD PTR -56[rbp], 1
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jne	.L60
	jmp	.L61
.L62:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
.L61:
	add	QWORD PTR -56[rbp], 1
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jne	.L62
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
	jmp	.L56
.L64:
	add	QWORD PTR -56[rbp], 1
.L63:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jne	.L64
	jmp	.L56
.L68:
	nop
	jmp	.L56
.L69:
	nop
.L56:
	mov	ebx, 1
	jmp	.L45
.L51:
	mov	ebx, r12d
.L45:
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -64[rbp]
	jbe	.L65
	jmp	.L53
.L67:
	nop
	jmp	.L53
.L70:
	nop
.L53:
	add	rsp, 40
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	bm, .-bm
	.globl	initmask
	.type	initmask, @function
initmask:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	eax, edx
	mov	edx, ecx
	mov	QWORD PTR -56[rbp], r8
	mov	r14d, -2147483648
	lea	r12d, 1[rdx]
	mov	rdx, QWORD PTR -56[rbp]
	mov	DWORD PTR [rdx], 0
	mov	ebx, 0
	jmp	.L72
.L73:
	mov	rdx, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	edi, r14d
	mov	ecx, ebx
	shr	edi, cl
	mov	ecx, edi
	or	ecx, edx
	mov	rdx, QWORD PTR -56[rbp]
	mov	DWORD PTR [rdx], ecx
	add	ebx, 1
.L72:
	cmp	ebx, r12d
	jl	.L73
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR [rdx]
	mov	edx, eax
	sub	edx, r12d
	mov	ecx, edx
	shr	esi, cl
	mov	ecx, esi
	mov	rdx, QWORD PTR -56[rbp]
	mov	DWORD PTR [rdx], ecx
	mov	ebx, 0
	jmp	.L74
.L77:
	movsx	rcx, ebx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	cmp	dl, 94
	je	.L75
	movsx	rcx, ebx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	cmp	dl, 36
	jne	.L76
.L75:
	movsx	rcx, ebx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	mov	BYTE PTR [rdx], 10
.L76:
	add	ebx, 1
.L74:
	cmp	ebx, eax
	jl	.L77
	mov	ebx, 0
	jmp	.L78
.L79:
	movsx	rdx, ebx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, rcx
	mov	DWORD PTR [rdx], -1
	add	ebx, 1
.L78:
	cmp	ebx, 255
	jle	.L79
	mov	ebx, 0
	jmp	.L80
.L84:
	movsx	rcx, ebx
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movzx	r13d, dl
	mov	r12d, 0
	jmp	.L81
.L83:
	movsx	rcx, r12d
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	cmp	r13d, edx
	jne	.L82
	mov	edx, r13d
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, rcx
	mov	esi, DWORD PTR [rdx]
	mov	edx, r14d
	mov	ecx, r12d
	shr	edx, cl
	mov	ecx, edx
	not	ecx
	mov	edx, r13d
	lea	rdi, 0[0+rdx*4]
	mov	rdx, QWORD PTR -48[rbp]
	add	rdx, rdi
	and	ecx, esi
	mov	DWORD PTR [rdx], ecx
.L82:
	add	r12d, 1
.L81:
	cmp	r12d, eax
	jl	.L83
	add	ebx, 1
.L80:
	cmp	ebx, eax
	jl	.L84
	nop
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	initmask, .-initmask
	.globl	prep
	.type	prep, @function
prep:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -64[rbp], rdi
	mov	ecx, esi
	mov	esi, edx
	mov	DWORD PTR -44[rbp], 3
	lea	edi, 1[rsi]
	mov	eax, ecx
	cdq
	idiv	edi
	mov	r12d, eax
	mov	edi, ecx
	lea	eax, 1[rsi]
	imul	eax, r12d
	mov	edx, eax
	mov	eax, edi
	sub	eax, edx
	mov	r14d, eax
	mov	ebx, 0
	jmp	.L86
.L87:
	mov	edi, r12d
	movsx	rax, ebx
	lea	rdx, SHIFT[rip]
	mov	BYTE PTR [rax+rdx], dil
	add	ebx, 1
.L86:
	cmp	ebx, 255
	jle	.L87
	lea	ebx, -1[rcx]
	jmp	.L88
.L90:
	lea	eax, -1[rcx]
	sub	eax, ebx
	mov	edx, 0
	div	r12d
	mov	eax, edx
	mov	r13d, eax
	movsx	rdx, ebx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	cmp	r13d, eax
	jge	.L89
	mov	edi, r13d
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, SHIFT[rip]
	mov	BYTE PTR [rax+rdx], dil
.L89:
	sub	ebx, 1
.L88:
	cmp	ebx, r14d
	jge	.L90
	mov	eax, r12d
	mov	DWORD PTR shift_1[rip], eax
	mov	ebx, 0
	jmp	.L91
.L97:
	mov	edi, ecx
	mov	eax, ebx
	imul	eax, r12d
	mov	edx, eax
	mov	eax, edi
	sub	eax, edx
	sub	eax, 1
	mov	r15d, eax
	mov	r13d, 1
	jmp	.L92
.L96:
	mov	r14d, 0
	jmp	.L93
.L95:
	mov	eax, r15d
	sub	eax, r13d
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	r8d, ecx
	mov	eax, r14d
	imul	eax, r12d
	mov	edi, eax
	mov	eax, r8d
	sub	eax, edi
	sub	eax, 1
	mov	edi, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdi
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L94
	mov	eax, DWORD PTR shift_1[rip]
	cmp	r13d, eax
	jge	.L94
	mov	DWORD PTR shift_1[rip], r13d
.L94:
	add	r14d, 1
.L93:
	cmp	esi, r14d
	jge	.L95
	add	r13d, 1
.L92:
	mov	eax, r13d
	cmp	r12d, eax
	ja	.L96
	add	ebx, 1
.L91:
	cmp	esi, ebx
	jge	.L97
	mov	eax, DWORD PTR shift_1[rip]
	test	eax, eax
	jne	.L98
	mov	DWORD PTR shift_1[rip], 1
.L98:
	mov	ebx, 0
	jmp	.L99
.L100:
	movsx	rax, ebx
	lea	rdx, MEMBER[rip]
	mov	BYTE PTR [rax+rdx], 0
	add	ebx, 1
.L99:
	cmp	ebx, 8191
	jle	.L100
	cmp	r12d, 2
	ja	.L101
	mov	DWORD PTR -44[rbp], r12d
.L101:
	mov	ebx, 0
	jmp	.L102
.L105:
	mov	edi, ecx
	mov	eax, ebx
	imul	eax, r12d
	mov	edx, eax
	mov	eax, edi
	sub	eax, edx
	sub	eax, 1
	mov	r15d, eax
	mov	DWORD PTR -48[rbp], 0
	mov	r13d, 0
	jmp	.L103
.L104:
	mov	eax, DWORD PTR -48[rbp]
	lea	edi, 0[0+rax*4]
	mov	eax, r15d
	sub	eax, r13d
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edi
	mov	DWORD PTR -48[rbp], eax
	add	r13d, 1
.L103:
	mov	eax, r13d
	cmp	DWORD PTR -44[rbp], eax
	ja	.L104
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, MEMBER[rip]
	mov	BYTE PTR [rax+rdx], 1
	add	ebx, 1
.L102:
	cmp	esi, ebx
	jge	.L105
	nop
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	prep, .-prep
	.globl	agrep
	.type	agrep, @function
agrep:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	lea	r11, -16384[rsp]
.LPSRL0:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL0
	sub	rsp, 272
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	DWORD PTR -16676[rbp], esi
	mov	r12, rdx
	mov	DWORD PTR -16680[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -16680[rbp]
	lea	esi, 1[rax]
	mov	eax, DWORD PTR -16676[rbp]
	cdq
	idiv	esi
	mov	ebx, eax
	mov	DWORD PTR -16660[rbp], 0
	mov	DWORD PTR -16644[rbp], 0
	mov	DWORD PTR -16428[rbp], 0
	mov	eax, DWORD PTR -16428[rbp]
	mov	DWORD PTR -16432[rbp], eax
	mov	eax, DWORD PTR shift_1[rip]
	mov	DWORD PTR -16640[rbp], eax
	mov	DWORD PTR -16652[rbp], 0
	cmp	ebx, 2
	jg	.L107
	mov	r13d, ebx
	jmp	.L108
.L107:
	mov	r13d, 3
.L108:
	mov	r14, r12
	sub	ebx, 1
	jmp	.L109
.L117:
	movsx	rax, ebx
	add	r12, rax
	movzx	eax, BYTE PTR [r12]
	movzx	eax, al
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ebx, al
	jmp	.L110
.L111:
	movsx	rax, ebx
	add	r12, rax
	movzx	eax, BYTE PTR [r12]
	movzx	eax, al
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ebx, al
	movsx	rax, ebx
	add	r12, rax
	movzx	eax, BYTE PTR [r12]
	movzx	eax, al
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	ebx, al
.L110:
	test	ebx, ebx
	jne	.L111
	mov	DWORD PTR -16660[rbp], 1
	movzx	eax, BYTE PTR [r12]
	movzx	ebx, al
	jmp	.L112
.L113:
	lea	edx, 0[0+rbx*4]
	mov	eax, DWORD PTR -16660[rbp]
	cdqe
	neg	rax
	add	rax, r12
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ebx, [rdx+rax]
	add	DWORD PTR -16660[rbp], 1
.L112:
	mov	eax, DWORD PTR -16660[rbp]
	cmp	r13d, eax
	ja	.L113
	movsx	rax, ebx
	lea	rdx, MEMBER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	je	.L114
	mov	rax, r12
	sub	rax, r14
	mov	ebx, eax
	mov	eax, ebx
	sub	eax, DWORD PTR -16676[rbp]
	sub	eax, DWORD PTR -16680[rbp]
	lea	edx, -10[rax]
	mov	eax, DWORD PTR -16652[rbp]
	cdqe
	mov	eax, DWORD PTR -16428[rbp+rax*8]
	cmp	edx, eax
	jle	.L115
	mov	eax, ebx
	sub	eax, DWORD PTR -16676[rbp]
	sub	eax, DWORD PTR -16680[rbp]
	add	DWORD PTR -16652[rbp], 1
	lea	edx, -2[rax]
	mov	eax, DWORD PTR -16652[rbp]
	cdqe
	mov	DWORD PTR -16432[rbp+rax*8], edx
	mov	eax, DWORD PTR -16676[rbp]
	lea	edx, [rbx+rax]
	mov	eax, DWORD PTR -16680[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16652[rbp]
	cdqe
	mov	DWORD PTR -16428[rbp+rax*8], edx
	jmp	.L116
.L115:
	mov	eax, DWORD PTR -16676[rbp]
	lea	edx, [rbx+rax]
	mov	eax, DWORD PTR -16680[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16652[rbp]
	cdqe
	mov	DWORD PTR -16428[rbp+rax*8], edx
.L116:
	mov	ebx, DWORD PTR -16640[rbp]
	jmp	.L109
.L114:
	mov	ebx, DWORD PTR -16640[rbp]
.L109:
	cmp	r12, rcx
	jb	.L117
	mov	r12, r14
	mov	rax, rcx
	sub	rax, r14
	mov	DWORD PTR -16636[rbp], eax
	mov	DWORD PTR -16632[rbp], 10
	mov	eax, DWORD PTR -16424[rbp]
	test	eax, eax
	jns	.L118
	mov	DWORD PTR -16424[rbp], 0
.L118:
	mov	r14d, DWORD PTR endposition[rip]
	mov	DWORD PTR -16628[rbp], -2147483648
	mov	DWORD PTR -16648[rbp], 0
	jmp	.L119
.L148:
	mov	eax, DWORD PTR -16648[rbp]
	cdqe
	mov	ebx, DWORD PTR -16432[rbp+rax*8]
	mov	eax, DWORD PTR -16648[rbp]
	cdqe
	mov	eax, DWORD PTR -16428[rbp+rax*8]
	cmp	DWORD PTR -16636[rbp], eax
	jge	.L120
	mov	eax, DWORD PTR -16648[rbp]
	cdqe
	mov	edx, DWORD PTR -16636[rbp]
	mov	DWORD PTR -16428[rbp+rax*8], edx
.L120:
	test	ebx, ebx
	jns	.L121
	mov	ebx, 0
.L121:
	mov	DWORD PTR -16528[rbp], -1
	mov	eax, DWORD PTR -16528[rbp]
	mov	DWORD PTR -16624[rbp], eax
	mov	eax, DWORD PTR -16628[rbp]
	not	eax
	mov	DWORD PTR -16524[rbp], eax
	mov	eax, DWORD PTR -16524[rbp]
	mov	DWORD PTR -16620[rbp], eax
	mov	DWORD PTR -16656[rbp], 1
	jmp	.L122
.L123:
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	eax, DWORD PTR -16624[rbp+rax*4]
	shr	eax
	mov	edx, eax
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	eax, DWORD PTR -16624[rbp+rax*4]
	and	edx, eax
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16528[rbp+rax*4], edx
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	edx, DWORD PTR -16528[rbp+rax*4]
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16624[rbp+rax*4], edx
	add	DWORD PTR -16656[rbp], 1
.L122:
	mov	eax, DWORD PTR -16656[rbp]
	cmp	eax, DWORD PTR -16680[rbp]
	jle	.L123
	jmp	.L124
.L147:
	mov	eax, ebx
	lea	ebx, 1[rax]
	cdqe
	add	rax, r12
	movzx	eax, BYTE PTR [rax]
	movzx	r13d, al
	cmp	r13d, DWORD PTR -16632[rbp]
	jne	.L125
	mov	DWORD PTR -16656[rbp], 0
	jmp	.L126
.L127:
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16528[rbp+rax*4], -1
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	edx, DWORD PTR -16528[rbp+rax*4]
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16624[rbp+rax*4], edx
	add	DWORD PTR -16656[rbp], 1
.L126:
	mov	eax, DWORD PTR -16656[rbp]
	cmp	eax, DWORD PTR -16680[rbp]
	jle	.L127
.L125:
	mov	eax, r13d
	lea	rdx, 0[0+rax*4]
	lea	rax, Mask[rip]
	mov	r13d, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -16528[rbp]
	shr	eax
	or	eax, r13d
	mov	DWORD PTR -16624[rbp], eax
	mov	DWORD PTR -16656[rbp], 1
	jmp	.L128
.L129:
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	eax, DWORD PTR -16528[rbp+rax*4]
	shr	eax
	or	eax, r13d
	mov	edx, eax
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	eax, DWORD PTR -16528[rbp+rax*4]
	mov	ecx, edx
	and	ecx, eax
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	edx, DWORD PTR -16624[rbp+rax*4]
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	eax, DWORD PTR -16528[rbp+rax*4]
	and	eax, edx
	shr	eax
	and	ecx, eax
	mov	edx, ecx
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16624[rbp+rax*4], edx
	add	DWORD PTR -16656[rbp], 1
.L128:
	mov	eax, DWORD PTR -16656[rbp]
	cmp	eax, DWORD PTR -16680[rbp]
	jle	.L129
	mov	eax, DWORD PTR -16680[rbp]
	cdqe
	mov	eax, DWORD PTR -16624[rbp+rax*4]
	and	eax, r14d
	test	eax, eax
	jne	.L130
	mov	eax, DWORD PTR num_of_matched[rip]
	add	eax, 1
	mov	DWORD PTR num_of_matched[rip], eax
	mov	eax, DWORD PTR FILENAMEONLY[rip]
	test	eax, eax
	jne	.L151
	mov	eax, ebx
	mov	DWORD PTR -16664[rbp], eax
	cmp	ebx, DWORD PTR -16644[rbp]
	jg	.L133
	mov	ebx, DWORD PTR -16644[rbp]
	jmp	.L134
.L133:
	lea	rax, -16664[rbp]
	mov	rsi, rax
	mov	rdi, r12
	mov	eax, 0
	call	s_output
	mov	eax, DWORD PTR -16664[rbp]
	mov	ebx, eax
.L134:
	mov	DWORD PTR -16644[rbp], ebx
	mov	DWORD PTR -16656[rbp], 0
	jmp	.L135
.L136:
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16528[rbp+rax*4], -1
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	edx, DWORD PTR -16528[rbp+rax*4]
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16624[rbp+rax*4], edx
	add	DWORD PTR -16656[rbp], 1
.L135:
	mov	eax, DWORD PTR -16656[rbp]
	cmp	eax, DWORD PTR -16680[rbp]
	jle	.L136
.L130:
	mov	eax, ebx
	lea	ebx, 1[rax]
	cdqe
	add	rax, r12
	movzx	eax, BYTE PTR [rax]
	movzx	r13d, al
	cmp	r13d, DWORD PTR -16632[rbp]
	jne	.L137
	mov	DWORD PTR -16656[rbp], 0
	jmp	.L138
.L139:
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16528[rbp+rax*4], -1
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	edx, DWORD PTR -16528[rbp+rax*4]
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16624[rbp+rax*4], edx
	add	DWORD PTR -16656[rbp], 1
.L138:
	mov	eax, DWORD PTR -16656[rbp]
	cmp	eax, DWORD PTR -16680[rbp]
	jle	.L139
.L137:
	mov	eax, r13d
	lea	rdx, 0[0+rax*4]
	lea	rax, Mask[rip]
	mov	r13d, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -16624[rbp]
	shr	eax
	or	eax, r13d
	mov	DWORD PTR -16528[rbp], eax
	mov	DWORD PTR -16656[rbp], 1
	jmp	.L140
.L141:
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	eax, DWORD PTR -16624[rbp+rax*4]
	shr	eax
	or	eax, r13d
	mov	edx, eax
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	eax, DWORD PTR -16624[rbp+rax*4]
	mov	ecx, edx
	and	ecx, eax
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	edx, DWORD PTR -16624[rbp+rax*4]
	mov	eax, DWORD PTR -16656[rbp]
	sub	eax, 1
	cdqe
	mov	eax, DWORD PTR -16528[rbp+rax*4]
	and	eax, edx
	shr	eax
	and	ecx, eax
	mov	edx, ecx
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16528[rbp+rax*4], edx
	add	DWORD PTR -16656[rbp], 1
.L140:
	mov	eax, DWORD PTR -16656[rbp]
	cmp	eax, DWORD PTR -16680[rbp]
	jle	.L141
	mov	eax, DWORD PTR -16680[rbp]
	cdqe
	mov	eax, DWORD PTR -16528[rbp+rax*4]
	and	eax, r14d
	test	eax, eax
	jne	.L124
	mov	eax, ebx
	mov	DWORD PTR -16664[rbp], eax
	mov	eax, DWORD PTR num_of_matched[rip]
	add	eax, 1
	mov	DWORD PTR num_of_matched[rip], eax
	mov	eax, DWORD PTR FILENAMEONLY[rip]
	test	eax, eax
	jne	.L152
	cmp	ebx, DWORD PTR -16644[rbp]
	jg	.L143
	mov	ebx, DWORD PTR -16644[rbp]
	jmp	.L144
.L143:
	lea	rax, -16664[rbp]
	mov	rsi, rax
	mov	rdi, r12
	mov	eax, 0
	call	s_output
	mov	eax, DWORD PTR -16664[rbp]
	mov	ebx, eax
.L144:
	mov	DWORD PTR -16644[rbp], ebx
	mov	DWORD PTR -16656[rbp], 0
	jmp	.L145
.L146:
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16528[rbp+rax*4], -1
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	edx, DWORD PTR -16528[rbp+rax*4]
	mov	eax, DWORD PTR -16656[rbp]
	cdqe
	mov	DWORD PTR -16624[rbp+rax*4], edx
	add	DWORD PTR -16656[rbp], 1
.L145:
	mov	eax, DWORD PTR -16656[rbp]
	cmp	eax, DWORD PTR -16680[rbp]
	jle	.L146
.L124:
	mov	eax, DWORD PTR -16648[rbp]
	cdqe
	mov	eax, DWORD PTR -16428[rbp+rax*8]
	cmp	ebx, eax
	jl	.L147
	add	DWORD PTR -16648[rbp], 1
.L119:
	mov	eax, DWORD PTR -16648[rbp]
	cmp	eax, DWORD PTR -16652[rbp]
	jle	.L148
	jmp	.L149
.L151:
	nop
	jmp	.L149
.L152:
	nop
.L149:
	mov	rdi, QWORD PTR -40[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L150
	call	__stack_chk_fail@PLT
.L150:
	add	rsp, 16656
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	agrep, .-agrep
	.globl	s_output
	.type	s_output, @function
s_output:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, DWORD PTR SILENT[rip]
	test	eax, eax
	jne	.L163
	mov	eax, DWORD PTR COUNT[rip]
	test	eax, eax
	je	.L156
	jmp	.L157
.L158:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
.L157:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jne	.L158
	jmp	.L155
.L156:
	mov	eax, DWORD PTR FNAME[rip]
	cmp	eax, 1
	jne	.L159
	lea	rsi, CurrentFileName[rip]
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
.L159:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
.L160:
	sub	DWORD PTR -4[rbp], 1
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jne	.L160
	jmp	.L161
.L162:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
.L161:
	add	DWORD PTR -4[rbp], 1
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jne	.L162
	mov	edi, 10
	call	putchar@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L155
.L163:
	nop
.L155:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	s_output, .-s_output
	.globl	prep_bm
	.type	prep_bm, @function
prep_bm:
.LFB7:
	.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	eax, esi
	mov	DWORD PTR -8[rbp], 0
	jmp	.L165
.L166:
	mov	esi, eax
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	lea	rcx, SHIFT[rip]
	mov	BYTE PTR [rdx+rcx], sil
	add	DWORD PTR -8[rbp], 1
.L165:
	cmp	DWORD PTR -8[rbp], 255
	jle	.L166
	lea	edx, -1[rax]
	mov	DWORD PTR -8[rbp], edx
	jmp	.L167
.L169:
	mov	edx, DWORD PTR -8[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	movsx	rdx, edx
	lea	rcx, TR[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	movzx	edx, dl
	mov	DWORD PTR -4[rbp], edx
	mov	edx, DWORD PTR -4[rbp]
	lea	rcx, SHIFT[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	movzx	ecx, dl
	lea	edx, -1[rax]
	cmp	ecx, edx
	jl	.L168
	mov	ecx, eax
	mov	edx, DWORD PTR -8[rbp]
	mov	esi, edx
	sub	ecx, esi
	mov	edx, ecx
	lea	esi, -1[rdx]
	mov	edx, DWORD PTR -4[rbp]
	lea	rcx, SHIFT[rip]
	mov	BYTE PTR [rdx+rcx], sil
.L168:
	sub	DWORD PTR -8[rbp], 1
.L167:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L169
	lea	edx, -1[rax]
	mov	DWORD PTR shift_1[rip], edx
	movsx	rdx, eax
	lea	rcx, -1[rdx]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	movsx	rdx, edx
	lea	rcx, TR[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	mov	BYTE PTR -9[rbp], dl
	lea	edx, -2[rax]
	mov	DWORD PTR -8[rbp], edx
	jmp	.L170
.L172:
	mov	edx, DWORD PTR -8[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	movsx	rdx, edx
	lea	rcx, TR[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	cmp	BYTE PTR -9[rbp], dl
	jne	.L171
	lea	edx, -1[rax]
	sub	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR shift_1[rip], edx
	mov	DWORD PTR -8[rbp], -1
.L171:
	sub	DWORD PTR -8[rbp], 1
.L170:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L172
	mov	eax, DWORD PTR shift_1[rip]
	test	eax, eax
	jne	.L173
	mov	DWORD PTR shift_1[rip], 1
.L173:
	mov	eax, DWORD PTR NOUPPER[rip]
	test	eax, eax
	je	.L174
	mov	DWORD PTR -8[rbp], 65
	jmp	.L175
.L176:
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 32
	cdqe
	lea	rdx, SHIFT[rip]
	movzx	edx, BYTE PTR [rax+rdx]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rcx, SHIFT[rip]
	mov	BYTE PTR [rax+rcx], dl
	add	DWORD PTR -8[rbp], 1
.L175:
	cmp	DWORD PTR -8[rbp], 90
	jle	.L176
.L174:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	prep_bm, .-prep_bm
	.globl	a_monkey
	.type	a_monkey, @function
a_monkey:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 40
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -80[rbp], rdi
	mov	r12d, esi
	mov	rbx, rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	r15d, r8d
	lea	eax, -1[r12]
	sub	eax, r15d
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR Hashmask[rip]
	mov	DWORD PTR -72[rbp], eax
	mov	QWORD PTR -56[rbp], rbx
	jmp	.L178
.L195:
	movsx	rax, DWORD PTR -68[rbp]
	add	rbx, rax
	mov	r14d, 0
	jmp	.L179
.L182:
	mov	rax, rbx
	lea	rbx, -1[rax]
	movzx	eax, BYTE PTR [rax]
	movzx	r13d, al
	jmp	.L180
.L181:
	mov	edx, r13d
	sal	edx, 8
	mov	rax, rbx
	lea	rbx, -1[rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	and	eax, DWORD PTR -72[rbp]
	mov	r13d, eax
.L180:
	mov	edx, r13d
	lea	rax, MEMBER_1[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	jne	.L181
	add	r14d, 1
.L179:
	mov	eax, r15d
	cmp	r14d, eax
	jbe	.L182
	mov	r14, QWORD PTR -56[rbp]
	cmp	rbx, r14
	ja	.L183
	lea	eax, [r12+r12]
	add	eax, r15d
	mov	r8, r14
	mov	rcx, QWORD PTR -80[rbp]
	mov	edx, r15d
	mov	esi, eax
	mov	edi, r12d
	mov	eax, 0
	call	verify
	mov	ebx, eax
	test	ebx, ebx
	jle	.L184
	movsx	rax, ebx
	mov	rbx, r14
	add	rbx, rax
	cmp	rbx, QWORD PTR -64[rbp]
	ja	.L196
	mov	eax, DWORD PTR num_of_matched[rip]
	add	eax, 1
	mov	DWORD PTR num_of_matched[rip], eax
	mov	eax, DWORD PTR FILENAMEONLY[rip]
	test	eax, eax
	jne	.L197
	mov	eax, DWORD PTR COUNT[rip]
	test	eax, eax
	jne	.L193
	mov	eax, DWORD PTR FNAME[rip]
	test	eax, eax
	je	.L190
	lea	rsi, CurrentFileName[rip]
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
.L190:
	sub	rbx, 1
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 10
	jne	.L190
	jmp	.L191
.L192:
	movzx	eax, BYTE PTR [rbx]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
.L191:
	add	rbx, 1
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 10
	jne	.L192
	mov	edi, 10
	call	putchar@PLT
	jmp	.L183
.L194:
	add	rbx, 1
.L193:
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 10
	jne	.L194
	jmp	.L183
.L184:
	movsx	rax, r12d
	mov	rbx, QWORD PTR -56[rbp]
	add	rbx, rax
.L183:
	mov	QWORD PTR -56[rbp], rbx
.L178:
	cmp	rbx, QWORD PTR -64[rbp]
	jb	.L195
	jmp	.L186
.L196:
	nop
	jmp	.L186
.L197:
	nop
.L186:
	add	rsp, 40
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	a_monkey, .-a_monkey
	.globl	SHIFT_2
	.bss
	.align 32
	.type	SHIFT_2, @object
	.size	SHIFT_2, 4096
SHIFT_2:
	.zero	4096
	.text
	.globl	monkey
	.type	monkey, @function
monkey:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 24
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -64[rbp], rdi
	mov	r13d, esi
	mov	rbx, rdx
	mov	r15, rcx
	mov	r14d, 10
	lea	eax, -1[r13]
	mov	DWORD PTR -52[rbp], eax
	cdqe
	add	rbx, rax
	jmp	.L199
.L216:
	movzx	eax, BYTE PTR [rbx]
	movzx	r12d, al
	lea	edx, 0[0+r12*8]
	lea	rax, -1[rbx]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	r12d, [rdx+rax]
	mov	edx, r12d
	lea	rax, SHIFT_2[rip]
	movzx	r12d, BYTE PTR [rdx+rax]
	jmp	.L200
.L201:
	movzx	eax, r12b
	add	rbx, rax
	movzx	eax, BYTE PTR [rbx]
	movzx	eax, al
	lea	edx, 0[0+rax*8]
	lea	rax, -1[rbx]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	mov	r12d, eax
	mov	edx, r12d
	lea	rax, SHIFT_2[rip]
	movzx	r12d, BYTE PTR [rdx+rax]
.L200:
	test	r12b, r12b
	jne	.L201
	mov	r12d, 0
	jmp	.L202
.L204:
	add	r12d, 1
	cmp	r12d, r13d
	je	.L217
.L202:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, r12d
	cdqe
	add	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, TR[rip]
	movzx	edx, BYTE PTR [rax+rdx]
	movsx	rax, r12d
	neg	rax
	add	rax, rbx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rcx, TR[rip]
	movzx	eax, BYTE PTR [rax+rcx]
	cmp	dl, al
	je	.L204
	jmp	.L203
.L217:
	nop
.L203:
	cmp	r12d, r13d
	jne	.L205
	cmp	rbx, r15
	jnb	.L218
	mov	eax, DWORD PTR num_of_matched[rip]
	add	eax, 1
	mov	DWORD PTR num_of_matched[rip], eax
	mov	eax, DWORD PTR FILENAMEONLY[rip]
	test	eax, eax
	jne	.L219
	mov	eax, DWORD PTR COUNT[rip]
	test	eax, eax
	je	.L209
	jmp	.L210
.L211:
	add	rbx, 1
.L210:
	movzx	eax, BYTE PTR [rbx]
	movzx	eax, al
	cmp	r14d, eax
	jne	.L211
	sub	rbx, 1
	jmp	.L205
.L209:
	mov	eax, DWORD PTR FNAME[rip]
	test	eax, eax
	je	.L213
	lea	rsi, CurrentFileName[rip]
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
.L213:
	sub	rbx, 1
	movzx	eax, BYTE PTR [rbx]
	movzx	eax, al
	cmp	r14d, eax
	jne	.L213
	jmp	.L214
.L215:
	movzx	eax, BYTE PTR [rbx]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
.L214:
	add	rbx, 1
	movzx	eax, BYTE PTR [rbx]
	movzx	eax, al
	cmp	r14d, eax
	jne	.L215
	mov	edi, 10
	call	putchar@PLT
	sub	rbx, 1
.L205:
	add	rbx, 1
.L199:
	cmp	rbx, r15
	jb	.L216
	jmp	.L207
.L218:
	nop
	jmp	.L207
.L219:
	nop
.L207:
	add	rsp, 24
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	monkey, .-monkey
	.globl	am_preprocess
	.type	am_preprocess, @function
am_preprocess:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -8[rbp], 1
	mov	DWORD PTR Hashmask[rip], 1
	jmp	.L221
.L222:
	mov	eax, DWORD PTR Hashmask[rip]
	add	eax, eax
	add	eax, 1
	mov	DWORD PTR Hashmask[rip], eax
	add	DWORD PTR -8[rbp], 1
.L221:
	cmp	DWORD PTR -8[rbp], 15
	jle	.L222
	mov	DWORD PTR -8[rbp], 0
	jmp	.L223
.L224:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, MEMBER_1[rip]
	mov	BYTE PTR [rax+rdx], 0
	add	DWORD PTR -8[rbp], 1
.L223:
	cmp	DWORD PTR -8[rbp], 65535
	jle	.L224
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 1
	mov	DWORD PTR -8[rbp], eax
	jmp	.L225
.L226:
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, MEMBER_1[rip]
	mov	BYTE PTR [rax+rdx], 1
	sub	DWORD PTR -8[rbp], 1
.L225:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L226
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 1
	mov	DWORD PTR -8[rbp], eax
	jmp	.L227
.L228:
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	cdqe
	lea	rdx, MEMBER_1[rip]
	mov	BYTE PTR [rax+rdx], 1
	sub	DWORD PTR -8[rbp], 1
.L227:
	cmp	DWORD PTR -8[rbp], 0
	jg	.L228
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	am_preprocess, .-am_preprocess
	.globl	verify
	.type	verify, @function
verify:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 2096
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	eax, edx
	mov	QWORD PTR -2120[rbp], rcx
	mov	QWORD PTR -2128[rbp], r8
	mov	rbx, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rbx
	xor	ebx, ebx
	mov	ebx, eax
	lea	r14d, 1[rdi]
	movsx	rcx, esi
	mov	rdx, QWORD PTR -2128[rbp]
	add	rdx, rcx
	mov	QWORD PTR -2112[rbp], rdx
	mov	rdx, QWORD PTR -2128[rbp]
	mov	QWORD PTR -2104[rbp], rdx
	mov	r12d, 0
	jmp	.L230
.L231:
	movsx	rdx, r12d
	mov	DWORD PTR -1072[rbp+rdx*4], r12d
	movsx	rdx, r12d
	mov	ecx, DWORD PTR -1072[rbp+rdx*4]
	movsx	rdx, r12d
	mov	DWORD PTR -2096[rbp+rdx*4], ecx
	add	r12d, 1
.L230:
	cmp	r12d, r14d
	jle	.L231
	jmp	.L232
.L259:
	mov	r12d, 1
	jmp	.L233
.L237:
	lea	edx, -1[r12]
	movsx	rdx, edx
	mov	edx, DWORD PTR -1072[rbp+rdx*4]
	lea	r13d, 1[rdx]
	movsx	rdx, r12d
	lea	rcx, -1[rdx]
	mov	rdx, QWORD PTR -2120[rbp]
	add	rdx, rcx
	movzx	ecx, BYTE PTR [rdx]
	mov	rdx, QWORD PTR -2128[rbp]
	movzx	edx, BYTE PTR [rdx]
	cmp	cl, dl
	je	.L234
	movsx	rdx, r12d
	mov	edx, DWORD PTR -1072[rbp+rdx*4]
	add	edx, 1
	cmp	r13d, edx
	jle	.L235
	movsx	rdx, r12d
	mov	edx, DWORD PTR -1072[rbp+rdx*4]
	lea	r13d, 1[rdx]
.L235:
	lea	edx, -1[r12]
	movsx	rdx, edx
	mov	edx, DWORD PTR -2096[rbp+rdx*4]
	add	edx, 1
	cmp	r13d, edx
	jle	.L236
	lea	edx, -1[r12]
	movsx	rdx, edx
	mov	edx, DWORD PTR -2096[rbp+rdx*4]
	lea	r13d, 1[rdx]
	jmp	.L236
.L234:
	sub	r13d, 1
.L236:
	movsx	rdx, r12d
	mov	DWORD PTR -2096[rbp+rdx*4], r13d
	add	r12d, 1
.L233:
	cmp	r12d, ebx
	jle	.L237
	movsx	rcx, ebx
	mov	rdx, QWORD PTR -2120[rbp]
	add	rdx, rcx
	movzx	esi, BYTE PTR [rdx]
	mov	rdx, QWORD PTR -2128[rbp]
	lea	rcx, 1[rdx]
	mov	QWORD PTR -2128[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	cmp	sil, dl
	jne	.L238
	lea	esi, 1[rbx]
	movsx	rdx, ebx
	mov	ecx, DWORD PTR -1072[rbp+rdx*4]
	movsx	rdx, esi
	mov	DWORD PTR -2096[rbp+rdx*4], ecx
	add	ebx, 1
.L238:
	movsx	rdx, ebx
	mov	edx, DWORD PTR -2096[rbp+rdx*4]
	cmp	eax, edx
	jle	.L240
	mov	edx, ebx
	lea	ebx, 1[rdx]
	movsx	rdx, edx
	mov	ecx, DWORD PTR -2096[rbp+rdx*4]
	lea	edx, 1[rbx]
	add	ecx, 1
	movsx	rdx, edx
	mov	DWORD PTR -2096[rbp+rdx*4], ecx
	jmp	.L240
.L241:
	sub	ebx, 1
.L240:
	movsx	rdx, ebx
	mov	edx, DWORD PTR -2096[rbp+rdx*4]
	cmp	eax, edx
	jl	.L241
	cmp	ebx, edi
	jl	.L242
	mov	rax, QWORD PTR -2128[rbp]
	sub	rax, QWORD PTR -2104[rbp]
	sub	eax, 1
	jmp	.L260
.L242:
	mov	rdx, QWORD PTR -2128[rbp]
	movzx	edx, BYTE PTR [rdx]
	cmp	dl, 10
	jne	.L244
	mov	ebx, eax
	mov	r12d, 0
	jmp	.L245
.L246:
	movsx	rdx, r12d
	mov	DWORD PTR -1072[rbp+rdx*4], r12d
	movsx	rdx, r12d
	mov	ecx, DWORD PTR -1072[rbp+rdx*4]
	movsx	rdx, r12d
	mov	DWORD PTR -2096[rbp+rdx*4], ecx
	add	r12d, 1
.L245:
	cmp	r12d, r14d
	jle	.L246
.L244:
	mov	r12d, 1
	jmp	.L247
.L251:
	lea	edx, -1[r12]
	movsx	rdx, edx
	mov	edx, DWORD PTR -2096[rbp+rdx*4]
	lea	r13d, 1[rdx]
	movsx	rdx, r12d
	lea	rcx, -1[rdx]
	mov	rdx, QWORD PTR -2120[rbp]
	add	rdx, rcx
	movzx	ecx, BYTE PTR [rdx]
	mov	rdx, QWORD PTR -2128[rbp]
	movzx	edx, BYTE PTR [rdx]
	cmp	cl, dl
	je	.L248
	movsx	rdx, r12d
	mov	edx, DWORD PTR -2096[rbp+rdx*4]
	add	edx, 1
	cmp	r13d, edx
	jle	.L249
	movsx	rdx, r12d
	mov	edx, DWORD PTR -2096[rbp+rdx*4]
	lea	r13d, 1[rdx]
.L249:
	lea	edx, -1[r12]
	movsx	rdx, edx
	mov	edx, DWORD PTR -1072[rbp+rdx*4]
	add	edx, 1
	cmp	r13d, edx
	jle	.L250
	lea	edx, -1[r12]
	movsx	rdx, edx
	mov	edx, DWORD PTR -1072[rbp+rdx*4]
	lea	r13d, 1[rdx]
	jmp	.L250
.L248:
	sub	r13d, 1
.L250:
	movsx	rdx, r12d
	mov	DWORD PTR -1072[rbp+rdx*4], r13d
	add	r12d, 1
.L247:
	cmp	r12d, ebx
	jle	.L251
	movsx	rcx, ebx
	mov	rdx, QWORD PTR -2120[rbp]
	add	rdx, rcx
	movzx	esi, BYTE PTR [rdx]
	mov	rdx, QWORD PTR -2128[rbp]
	lea	rcx, 1[rdx]
	mov	QWORD PTR -2128[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	cmp	sil, dl
	jne	.L252
	lea	esi, 1[rbx]
	movsx	rdx, ebx
	mov	ecx, DWORD PTR -2096[rbp+rdx*4]
	movsx	rdx, esi
	mov	DWORD PTR -1072[rbp+rdx*4], ecx
	add	ebx, 1
.L252:
	movsx	rdx, ebx
	mov	edx, DWORD PTR -1072[rbp+rdx*4]
	cmp	eax, edx
	jle	.L254
	mov	edx, ebx
	lea	ebx, 1[rdx]
	movsx	rdx, edx
	mov	ecx, DWORD PTR -1072[rbp+rdx*4]
	lea	edx, 1[rbx]
	add	ecx, 1
	movsx	rdx, edx
	mov	DWORD PTR -1072[rbp+rdx*4], ecx
	jmp	.L254
.L255:
	sub	ebx, 1
.L254:
	movsx	rdx, ebx
	mov	edx, DWORD PTR -1072[rbp+rdx*4]
	cmp	eax, edx
	jl	.L255
	cmp	ebx, edi
	jl	.L256
	mov	rax, QWORD PTR -2128[rbp]
	sub	rax, QWORD PTR -2104[rbp]
	sub	eax, 1
	jmp	.L260
.L256:
	mov	rdx, QWORD PTR -2128[rbp]
	movzx	edx, BYTE PTR [rdx]
	cmp	dl, 10
	jne	.L232
	mov	ebx, eax
	mov	r12d, 0
	jmp	.L257
.L258:
	movsx	rdx, r12d
	mov	DWORD PTR -1072[rbp+rdx*4], r12d
	movsx	rdx, r12d
	mov	ecx, DWORD PTR -1072[rbp+rdx*4]
	movsx	rdx, r12d
	mov	DWORD PTR -2096[rbp+rdx*4], ecx
	add	r12d, 1
.L257:
	cmp	r12d, r14d
	jle	.L258
.L232:
	mov	rdx, QWORD PTR -2128[rbp]
	cmp	rdx, QWORD PTR -2112[rbp]
	jb	.L259
	mov	eax, 0
.L260:
	mov	rdi, QWORD PTR -40[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L261
	call	__stack_chk_fail@PLT
.L261:
	add	rsp, 2096
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	verify, .-verify
	.globl	m_preprocess
	.type	m_preprocess, @function
m_preprocess:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L263
.L264:
	mov	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, SHIFT_2[rip]
	mov	BYTE PTR [rax+rdx], cl
	add	DWORD PTR -16[rbp], 1
.L263:
	cmp	DWORD PTR -16[rbp], 4095
	jle	.L264
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, 1
	mov	DWORD PTR -16[rbp], eax
	jmp	.L265
.L270:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	sal	DWORD PTR -4[rbp], 3
	mov	DWORD PTR -12[rbp], 0
	jmp	.L266
.L268:
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	mov	edx, eax
	lea	rax, SHIFT_2[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -8[rbp], eax
	jne	.L267
	mov	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	lea	edx, -1[rcx]
	mov	ecx, eax
	lea	rax, SHIFT_2[rip]
	mov	BYTE PTR [rcx+rax], dl
.L267:
	add	DWORD PTR -12[rbp], 1
.L266:
	cmp	DWORD PTR -12[rbp], 255
	jle	.L268
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, SHIFT_2[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	edx, DWORD PTR -8[rbp]
	sub	edx, 1
	cmp	eax, edx
	jl	.L269
	mov	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	lea	ecx, -1[rax]
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, SHIFT_2[rip]
	mov	BYTE PTR [rax+rdx], cl
.L269:
	sub	DWORD PTR -16[rbp], 1
.L265:
	cmp	DWORD PTR -16[rbp], 0
	jg	.L270
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, 1
	mov	DWORD PTR shift_1[rip], eax
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, 2
	mov	DWORD PTR -16[rbp], eax
	jmp	.L271
.L273:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L272
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, 1
	sub	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR shift_1[rip], eax
	mov	DWORD PTR -16[rbp], -1
.L272:
	sub	DWORD PTR -16[rbp], 1
.L271:
	cmp	DWORD PTR -16[rbp], 0
	jns	.L273
	mov	eax, DWORD PTR shift_1[rip]
	test	eax, eax
	jne	.L274
	mov	DWORD PTR shift_1[rip], 1
.L274:
	mov	BYTE PTR SHIFT_2[rip], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	m_preprocess, .-m_preprocess
	.globl	MEMBER_D
	.bss
	.align 8
	.type	MEMBER_D, @object
	.size	MEMBER_D, 8
MEMBER_D:
	.zero	8
	.section	.rodata
.LC2:
	.string	"%s:"
	.text
	.globl	monkey4
	.type	monkey4, @function
monkey4:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 40
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -80[rbp], rdi
	mov	r12d, esi
	mov	rbx, rdx
	mov	QWORD PTR -72[rbp], rcx
	mov	r15d, r8d
	lea	eax, -1[r12]
	sub	eax, r15d
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR Hashmask[rip]
	mov	DWORD PTR -60[rbp], eax
	mov	QWORD PTR -56[rbp], rbx
	jmp	.L276
.L293:
	movsx	rax, DWORD PTR -64[rbp]
	add	rbx, rax
	mov	r14d, 0
	jmp	.L277
.L280:
	mov	rax, rbx
	lea	rbx, -1[rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, char_map[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	r13d, al
	lea	ecx, 0[0+r13*8]
	mov	rax, rbx
	lea	rbx, -1[rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, char_map[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	add	eax, ecx
	and	eax, DWORD PTR -60[rbp]
	mov	r13d, eax
	jmp	.L278
.L279:
	lea	ecx, 0[0+r13*8]
	mov	rax, rbx
	lea	rbx, -1[rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	lea	rdx, char_map[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	add	eax, ecx
	and	eax, DWORD PTR -60[rbp]
	mov	r13d, eax
.L278:
	mov	rax, QWORD PTR MEMBER_D[rip]
	mov	edx, r13d
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L279
	add	r14d, 1
.L277:
	mov	eax, r15d
	cmp	r14d, eax
	jbe	.L280
	mov	r14, QWORD PTR -56[rbp]
	cmp	rbx, r14
	ja	.L281
	lea	eax, [r12+r12]
	add	eax, r15d
	mov	r8, r14
	mov	rcx, QWORD PTR -80[rbp]
	mov	edx, r15d
	mov	esi, eax
	mov	edi, r12d
	mov	eax, 0
	call	verify
	mov	ebx, eax
	test	ebx, ebx
	jle	.L282
	movsx	rax, ebx
	mov	rbx, r14
	add	rbx, rax
	cmp	rbx, QWORD PTR -72[rbp]
	ja	.L294
	mov	eax, DWORD PTR num_of_matched[rip]
	add	eax, 1
	mov	DWORD PTR num_of_matched[rip], eax
	mov	eax, DWORD PTR FILENAMEONLY[rip]
	test	eax, eax
	jne	.L295
	mov	eax, DWORD PTR COUNT[rip]
	test	eax, eax
	jne	.L291
	mov	eax, DWORD PTR FNAME[rip]
	test	eax, eax
	je	.L288
	lea	rsi, CurrentFileName[rip]
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
.L288:
	sub	rbx, 1
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 10
	jne	.L288
	jmp	.L289
.L290:
	movzx	eax, BYTE PTR [rbx]
	movzx	eax, al
	mov	edi, eax
	call	putchar@PLT
.L289:
	add	rbx, 1
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 10
	jne	.L290
	mov	edi, 10
	call	putchar@PLT
	add	rbx, 1
	jmp	.L281
.L292:
	add	rbx, 1
.L291:
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 10
	jne	.L292
	add	rbx, 1
	jmp	.L281
.L282:
	movsx	rax, r12d
	mov	rbx, QWORD PTR -56[rbp]
	add	rbx, rax
.L281:
	mov	QWORD PTR -56[rbp], rbx
.L276:
	cmp	rbx, QWORD PTR -72[rbp]
	jb	.L293
	jmp	.L284
.L294:
	nop
	jmp	.L284
.L295:
	nop
.L284:
	add	rsp, 40
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	monkey4, .-monkey4
	.globl	prep4
	.type	prep4, @function
prep4:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -16[rbp], 0
	jmp	.L297
.L298:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, char_map[rip]
	mov	BYTE PTR [rax+rdx], 0
	add	DWORD PTR -16[rbp], 1
.L297:
	cmp	DWORD PTR -16[rbp], 255
	jle	.L298
	mov	BYTE PTR char_map[rip+65], 4
	movzx	eax, BYTE PTR char_map[rip+65]
	mov	BYTE PTR char_map[rip+97], al
	mov	BYTE PTR char_map[rip+103], 1
	movzx	eax, BYTE PTR char_map[rip+103]
	mov	BYTE PTR char_map[rip+103], al
	mov	BYTE PTR char_map[rip+116], 2
	movzx	eax, BYTE PTR char_map[rip+116]
	mov	BYTE PTR char_map[rip+116], al
	mov	BYTE PTR char_map[rip+99], 3
	movzx	eax, BYTE PTR char_map[rip+99]
	mov	BYTE PTR char_map[rip+99], al
	mov	BYTE PTR char_map[rip+110], 5
	movzx	eax, BYTE PTR char_map[rip+110]
	mov	BYTE PTR char_map[rip+110], al
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, eax
	mov	edi, 4
	mov	eax, 0
	call	blog
	mov	BYTE PTR BSize[rip], al
	mov	DWORD PTR -16[rbp], 1
	mov	DWORD PTR Hashmask[rip], 1
	jmp	.L299
.L300:
	mov	eax, DWORD PTR Hashmask[rip]
	add	eax, eax
	add	eax, 1
	mov	DWORD PTR Hashmask[rip], eax
	add	DWORD PTR -16[rbp], 1
.L299:
	movzx	eax, BYTE PTR BSize[rip]
	movzx	edx, al
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	cmp	DWORD PTR -16[rbp], eax
	jl	.L300
	mov	eax, DWORD PTR Hashmask[rip]
	add	eax, 1
	mov	eax, eax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR MEMBER_D[rip], rax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L301
.L302:
	mov	rdx, QWORD PTR MEMBER_D[rip]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -16[rbp], 1
.L301:
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR Hashmask[rip]
	cmp	edx, eax
	jbe	.L302
	mov	DWORD PTR -12[rbp], 0
	jmp	.L303
.L308:
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	DWORD PTR -16[rbp], eax
	jmp	.L304
.L307:
	mov	DWORD PTR -4[rbp], 0
	mov	DWORD PTR -8[rbp], 0
	jmp	.L305
.L306:
	mov	eax, DWORD PTR -4[rbp]
	lea	ecx, 0[0+rax*8]
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cdqe
	lea	rdx, char_map[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	add	eax, ecx
	mov	DWORD PTR -4[rbp], eax
	add	DWORD PTR -8[rbp], 1
.L305:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jle	.L306
	mov	rdx, QWORD PTR MEMBER_D[rip]
	mov	eax, DWORD PTR -4[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 1
	sub	DWORD PTR -16[rbp], 1
.L304:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jge	.L307
	add	DWORD PTR -12[rbp], 1
.L303:
	movzx	eax, BYTE PTR BSize[rip]
	movzx	eax, al
	cmp	DWORD PTR -12[rbp], eax
	jl	.L308
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	prep4, .-prep4
	.globl	blog
	.type	blog, @function
blog:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	add	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -8[rbp], 1
	jmp	.L310
.L311:
	mov	eax, DWORD PTR -4[rbp]
	imul	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -4[rbp], eax
	add	DWORD PTR -8[rbp], 1
.L310:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L311
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	blog, .-blog
	.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	"495312.c"
	.text
	.comm	BSize,1,1
	.comm	char_map,256,4
	.comm	shift_1,4,4
	.comm	SHIFT,256,4
	.comm	MEMBER,8192,4
	.comm	pat,256,4
	.comm	Hashmask,4,4
	.comm	MEMBER_1,65536,4
	.comm	TR,256,4
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	char_tr
	.syntax unified
	.arm
	.fpu softvfp
	.type	char_tr, %function
char_tr:
	@ args = 0, pretend = 0, frame = 272
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #272
	str	r0, [fp, #-272]
	str	r1, [fp, #-276]
	ldr	r3, .L13
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-268]
	b	.L2
.L3:
	ldr	r3, [fp, #-268]
	and	r1, r3, #255
	ldr	r2, .L13+4
	ldr	r3, [fp, #-268]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-268]
	add	r3, r3, #1
	str	r3, [fp, #-268]
.L2:
	ldr	r3, [fp, #-268]
	cmp	r3, #255
	ble	.L3
	ldr	r3, .L13+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4
	mov	r3, #65
	str	r3, [fp, #-268]
	b	.L5
.L6:
	ldr	r3, [fp, #-268]
	and	r3, r3, #255
	add	r3, r3, #32
	and	r1, r3, #255
	ldr	r2, .L13+4
	ldr	r3, [fp, #-268]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-268]
	add	r3, r3, #1
	str	r3, [fp, #-268]
.L5:
	ldr	r3, [fp, #-268]
	cmp	r3, #90
	ble	.L6
.L4:
	ldr	r3, .L13+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L7
	mov	r3, #0
	str	r3, [fp, #-268]
	b	.L8
.L10:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8
	cmp	r3, #0
	bne	.L9
	ldr	r2, .L13+4
	ldr	r3, [fp, #-268]
	add	r3, r2, r3
	mvn	r2, #127
	strb	r2, [r3]
.L9:
	ldr	r3, [fp, #-268]
	add	r3, r3, #1
	str	r3, [fp, #-268]
.L8:
	ldr	r3, [fp, #-268]
	cmp	r3, #127
	ble	.L10
.L7:
	ldr	r3, .L13+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L11
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #264
	ldr	r1, [fp, #-272]
	mov	r0, r3
	bl	memcpy
	ldr	r3, [fp, #-272]
	mov	r2, #10
	strb	r2, [r3]
	ldr	r3, [fp, #-272]
	add	r0, r3, #1
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #264
	mov	r1, r3
	bl	memcpy
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, [fp, #-272]
	add	r3, r2, r3
	mov	r2, #10
	strb	r2, [r3]
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	add	r3, r3, #2
	ldr	r2, [fp, #-272]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	add	r2, r3, #2
	ldr	r3, [fp, #-276]
	str	r2, [r3]
.L11:
	nop
	ldr	r2, .L13
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L12
	bl	__stack_chk_fail
.L12:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L14:
	.align	2
.L13:
	.word	.LC0
	.word	TR
	.word	NOUPPER
	.word	WORDBOUND
	.word	WHOLELINE
	.size	char_tr, .-char_tr
	.section	.rodata
	.align	2
.LC1:
	.ascii	"%s: pattern too long\012\000"
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	sgrep
	.syntax unified
	.arm
	.fpu softvfp
	.type	sgrep, %function
sgrep:
	@ args = 0, pretend = 0, frame = 10544
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #10496
	sub	sp, sp, #60
	sub	ip, fp, #8192
	sub	ip, ip, #12
	str	r0, [ip, #-2340]
	sub	r0, fp, #8192
	sub	r0, r0, #12
	str	r1, [r0, #-2344]
	sub	r1, fp, #8192
	sub	r1, r1, #12
	str	r2, [r1, #-2348]
	sub	r2, fp, #8192
	sub	r2, r2, #12
	str	r3, [r2, #-2352]
	ldr	r3, .L46
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #2048
	str	r3, [r2, #-2324]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-2320]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2340]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #94
	beq	.L16
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2340]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #36
	bne	.L17
.L16:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2340]
	mov	r2, #10
	strb	r2, [r3]
.L17:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r3, r3, #1
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-2340]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #94
	beq	.L18
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r3, r3, #1
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-2340]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #36
	bne	.L19
.L18:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r3, r3, #1
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-2340]
	add	r3, r2, r3
	mov	r2, #10
	strb	r2, [r3]
.L19:
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #40
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r1, r3
	ldr	r0, [r2, #-2340]
	bl	char_tr
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2324]
	sub	r3, r3, #1
	sub	r2, fp, #8192
	sub	r2, r2, #12
	add	r3, r2, r3
	mov	r2, #10
	strb	r2, [r3, #-2308]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-2336]
	b	.L20
.L21:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2336]
	add	r3, r2, r3
	sub	r3, r3, #2304
	sub	r3, r3, #4
	mov	r2, #0
	strb	r2, [r3]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2336]
	add	r3, r3, #1
	str	r3, [r2, #-2336]
.L20:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2336]
	cmp	r3, #1024
	blt	.L21
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2324]
	str	r3, [r2, #-2332]
	ldr	r3, .L46+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L22
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2332]
	sub	r3, r3, #1
	str	r3, [r2, #-2332]
.L22:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	cmp	r3, #255
	ble	.L23
	ldr	r3, .L46+8
	ldr	r3, [r3]
	ldr	r2, .L46+12
	ldr	r1, .L46+16
	mov	r0, r3
	bl	fprintf
	mov	r0, #2
	bl	exit
.L23:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2352]
	cmp	r3, #0
	bne	.L24
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	cmp	r3, #20
	ble	.L25
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-2340]
	bl	m_preprocess
	b	.L26
.L25:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r1, r3
	ldr	r0, [r2, #-2340]
	bl	prep_bm
	b	.L26
.L24:
	ldr	r3, .L46+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L27
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r1, r3
	ldr	r0, [r2, #-2340]
	bl	prep4
	b	.L26
.L27:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	cmp	r3, #23
	ble	.L28
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-2340]
	bl	am_preprocess
	b	.L26
.L28:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r2, fp, #8192
	sub	r2, r2, #12
	sub	r1, fp, #8192
	sub	r1, r1, #12
	mov	r0, r1
	ldr	r2, [r2, #-2352]
	mov	r1, r3
	ldr	r0, [r0, #-2340]
	bl	prep
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2344]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r0, r3
	ldr	r3, .L46+24
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, .L46+28
	ldr	r0, [r0, #-2340]
	bl	initmask
.L26:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-2336]
	b	.L29
.L30:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r3, r3, #1
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-2340]
	add	r2, r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2324]
	add	r1, r3, #8192
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2336]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	sub	r1, fp, #8192
	sub	r1, r1, #12
	add	r3, r1, r3
	strb	r2, [r3, #-2308]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2336]
	add	r3, r3, #1
	str	r3, [r2, #-2336]
.L29:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-2336]
	cmp	r2, r3
	ble	.L30
	b	.L31
.L43:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r2, #-2324]
	ldr	r3, [r3, #-2316]
	add	r3, r2, r3
	sub	r2, fp, #8192
	sub	r2, r2, #12
	sub	r3, r3, #1
	str	r3, [r2, #-2328]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2328]
	str	r3, [r2, #-2312]
	b	.L32
.L34:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2328]
	sub	r3, r3, #1
	str	r3, [r2, #-2328]
.L32:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2328]
	add	r3, r2, r3
	sub	r3, r3, #2304
	sub	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L33
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r2, #-2328]
	ldr	r3, [r3, #-2324]
	cmp	r2, r3
	bgt	.L34
.L33:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r2, #-2312]
	ldr	r3, [r3, #-2328]
	sub	r3, r2, r3
	sub	r2, fp, #8192
	sub	r2, r2, #12
	add	r3, r3, #1
	str	r3, [r2, #-2320]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2332]
	sub	r3, r3, #1
	sub	r2, fp, #8192
	sub	r2, r2, #12
	add	r3, r2, r3
	mov	r2, #10
	strb	r2, [r3, #-2308]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2352]
	cmp	r3, #0
	bne	.L35
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	cmp	r3, #20
	ble	.L36
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r1, [r3, #-2344]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2332]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r0, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2328]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r3, r3, r2
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	ip, r2
	mov	r2, r0
	ldr	r0, [ip, #-2340]
	bl	monkey
	b	.L37
.L36:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r1, [r3, #-2344]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2332]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r0, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2328]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r3, r3, r2
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	ip, r2
	mov	r2, r0
	ldr	r0, [ip, #-2340]
	bl	bm
	b	.L37
.L35:
	ldr	r3, .L46+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L38
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r1, [r3, #-2344]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2332]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r0, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2328]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r2, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	ip, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2352]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r0
	ldr	r0, [ip, #-2340]
	bl	monkey4
	b	.L37
.L38:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2344]
	cmp	r3, #23
	ble	.L39
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r1, [r3, #-2344]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2332]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r0, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2328]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r2, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	ip, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2352]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r0
	ldr	r0, [ip, #-2340]
	bl	a_monkey
	b	.L37
.L39:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r1, [r3, #-2344]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2332]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r0, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2328]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r2, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	ip, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2352]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r0
	ldr	r0, [ip, #-2340]
	bl	agrep
.L37:
	ldr	r3, .L46+32
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L40
	ldr	r3, .L46+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L40
	ldr	r0, .L46+40
	bl	puts
	b	.L44
.L40:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r2, #-2324]
	ldr	r3, [r3, #-2320]
	sub	r3, r2, r3
	str	r3, [r1, #-2332]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2332]
	cmp	r3, #1024
	bge	.L42
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1024
	str	r3, [r2, #-2332]
.L42:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2332]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r0, r3, r2
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2328]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r3, r3, r2
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-2320]
	mov	r1, r3
	bl	strncpy
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2332]
	add	r3, r3, #1
	str	r3, [r2, #-2332]
.L31:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-2324]
	sub	r3, fp, #10496
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r3, r3, r2
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r4, r2
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r0, r2
	mov	r2, #8192
	mov	r1, r3
	ldr	r0, [r0, #-2348]
	bl	read
	str	r0, [r4, #-2316]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-2316]
	cmp	r3, #0
	bgt	.L43
	nop
.L44:
	ldr	r2, .L46
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L45
	bl	__stack_chk_fail
.L45:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L47:
	.align	2
.L46:
	.word	.LC2
	.word	WHOLELINE
	.word	stderr
	.word	Progname
	.word	.LC1
	.word	DNA
	.word	endposition
	.word	Mask
	.word	FILENAMEONLY
	.word	num_of_matched
	.word	CurrentFileName
	.size	sgrep, .-sgrep
	.section	.rodata
	.align	2
.LC3:
	.ascii	"%s: \000"
	.text
	.align	2
	.global	bm
	.syntax unified
	.arm
	.fpu softvfp
	.type	bm, %function
bm:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, .L75
	ldr	r6, [r3]
	ldr	r3, [fp, #-28]
	sub	r5, r3, #1
	mov	r4, #0
	b	.L49
.L69:
	mov	r2, r4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L75+4
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r4, r3
	b	.L50
.L51:
	mov	r2, r4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L75+4
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r4, r3
	mov	r2, r4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L75+4
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r4, r3
	mov	r2, r4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L75+4
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r4, r3
.L50:
	cmp	r4, #0
	bne	.L51
	mov	r4, #0
	b	.L52
.L54:
	add	r4, r4, #1
	ldr	r3, [fp, #-28]
	cmp	r4, r3
	beq	.L70
.L52:
	sub	r3, r5, r4
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L75+8
	ldrb	r2, [r3, r2]	@ zero_extendqisi2
	mov	r3, r4
	rsb	r3, r3, #0
	ldr	r1, [fp, #-32]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L75+8
	ldrb	r3, [r3, r1]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L54
	b	.L53
.L70:
	nop
.L53:
	ldr	r3, [fp, #-28]
	cmp	r4, r3
	bne	.L55
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bhi	.L71
	ldr	r3, .L75+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L58
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L75+8
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	cmp	r3, #128
	bne	.L72
	ldr	r3, [fp, #-28]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L75+8
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	cmp	r3, #128
	bne	.L73
.L58:
	ldr	r3, .L75+16
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L75+16
	str	r3, [r2]
	ldr	r3, .L75+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L74
	ldr	r3, .L75+24
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L67
	ldr	r3, .L75+28
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L64
	ldr	r1, .L75+32
	ldr	r0, .L75+36
	bl	printf
.L64:
	ldr	r3, [fp, #-32]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L64
	b	.L65
.L66:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
.L65:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L66
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	b	.L60
.L68:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L67:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L68
	b	.L60
.L72:
	nop
	b	.L60
.L73:
	nop
.L60:
	mov	r4, #1
	b	.L49
.L55:
	mov	r4, r6
.L49:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bls	.L69
	b	.L57
.L71:
	nop
	b	.L57
.L74:
	nop
.L57:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L76:
	.align	2
.L75:
	.word	shift_1
	.word	SHIFT
	.word	TR
	.word	WORDBOUND
	.word	num_of_matched
	.word	FILENAMEONLY
	.word	COUNT
	.word	FNAME
	.word	CurrentFileName
	.word	.LC3
	.size	bm, .-bm
	.align	2
	.global	initmask
	.syntax unified
	.arm
	.fpu softvfp
	.type	initmask, %function
initmask:
	@ args = 4, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, fp}
	add	fp, sp, #16
	sub	sp, sp, #12
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r7, #-2147483648
	add	r5, r3, #1
	ldr	r3, [fp, #4]
	mov	r1, #0
	str	r1, [r3]
	mov	r4, #0
	b	.L78
.L79:
	ldr	r3, [fp, #4]
	ldr	r1, [r3]
	lsr	r3, r7, r4
	orr	r1, r1, r3
	ldr	r3, [fp, #4]
	str	r1, [r3]
	add	r4, r4, #1
.L78:
	cmp	r4, r5
	blt	.L79
	ldr	r3, [fp, #4]
	ldr	r1, [r3]
	sub	r3, r2, r5
	lsr	r1, r1, r3
	ldr	r3, [fp, #4]
	str	r1, [r3]
	mov	r4, #0
	b	.L80
.L83:
	mov	r1, r4
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #94
	beq	.L81
	mov	r1, r4
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #36
	bne	.L82
.L81:
	mov	r1, r4
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	mov	r1, #10
	strb	r1, [r3]
.L82:
	add	r4, r4, #1
.L80:
	cmp	r4, r2
	blt	.L83
	mov	r4, #0
	b	.L84
.L85:
	mov	r3, r4
	lsl	r3, r3, #2
	ldr	r1, [fp, #-28]
	add	r3, r1, r3
	mvn	r1, #0
	str	r1, [r3]
	add	r4, r4, #1
.L84:
	cmp	r4, #255
	ble	.L85
	mov	r4, #0
	b	.L86
.L90:
	mov	r1, r4
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r6, r3
	mov	r5, #0
	b	.L87
.L89:
	mov	r1, r5
	ldr	r3, [fp, #-24]
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r6, r3
	bne	.L88
	lsl	r3, r6, #2
	ldr	r1, [fp, #-28]
	add	r3, r1, r3
	ldr	r0, [r3]
	lsr	r3, r7, r5
	mvn	r1, r3
	lsl	r3, r6, #2
	ldr	ip, [fp, #-28]
	add	r3, ip, r3
	and	r1, r1, r0
	str	r1, [r3]
.L88:
	add	r5, r5, #1
.L87:
	cmp	r5, r2
	blt	.L89
	add	r4, r4, #1
.L86:
	cmp	r4, r2
	blt	.L90
	nop
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, r7, fp}
	bx	lr
	.size	initmask, .-initmask
	.global	__aeabi_idiv
	.global	__aeabi_uidivmod
	.align	2
	.global	prep
	.syntax unified
	.arm
	.fpu softvfp
	.type	prep, %function
prep:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #20
	str	r0, [fp, #-48]
	mov	r8, r1
	mov	r7, r2
	mov	r3, #3
	str	r3, [fp, #-40]
	add	r3, r7, #1
	mov	r1, r3
	mov	r0, r8
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r6, r3
	mov	r2, r8
	add	r3, r7, #1
	mul	r3, r6, r3
	sub	r3, r2, r3
	mov	r9, r3
	mov	r4, #0
	b	.L92
.L93:
	and	r2, r6, #255
	ldr	r3, .L112
	strb	r2, [r3, r4]
	add	r4, r4, #1
.L92:
	cmp	r4, #255
	ble	.L93
	sub	r4, r8, #1
	b	.L94
.L96:
	sub	r3, r8, #1
	sub	r3, r3, r4
	mov	r1, r6
	mov	r0, r3
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r5, r3
	mov	r2, r4
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-44]
	ldr	r2, .L112
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r5, r3
	bge	.L95
	and	r1, r5, #255
	ldr	r2, .L112
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
.L95:
	sub	r4, r4, #1
.L94:
	cmp	r4, r9
	bge	.L96
	mov	r2, r6
	ldr	r3, .L112+4
	str	r2, [r3]
	mov	r4, #0
	b	.L97
.L103:
	mov	r2, r8
	mov	r3, r4
	mul	r3, r6, r3
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r10, r3
	mov	r5, #1
	b	.L98
.L102:
	mov	r9, #0
	b	.L99
.L101:
	sub	r3, r10, r5
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	ldrb	r2, [r3]	@ zero_extendqisi2
	mov	r1, r8
	mov	r3, r9
	mul	r3, r6, r3
	sub	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-48]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L100
	ldr	r3, .L112+4
	ldr	r3, [r3]
	cmp	r5, r3
	bge	.L100
	ldr	r3, .L112+4
	str	r5, [r3]
.L100:
	add	r9, r9, #1
.L99:
	cmp	r7, r9
	bge	.L101
	add	r5, r5, #1
.L98:
	mov	r3, r5
	cmp	r6, r3
	bhi	.L102
	add	r4, r4, #1
.L97:
	cmp	r7, r4
	bge	.L103
	ldr	r3, .L112+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L104
	ldr	r3, .L112+4
	mov	r2, #1
	str	r2, [r3]
.L104:
	mov	r4, #0
	b	.L105
.L106:
	ldr	r3, .L112+8
	mov	r2, #0
	strb	r2, [r3, r4]
	add	r4, r4, #1
.L105:
	cmp	r4, #8192
	blt	.L106
	cmp	r6, #2
	bhi	.L107
	str	r6, [fp, #-40]
.L107:
	mov	r4, #0
	b	.L108
.L111:
	mov	r2, r8
	mov	r3, r4
	mul	r3, r6, r3
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r10, r3
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r5, #0
	b	.L109
.L110:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	sub	r2, r10, r5
	mov	r1, r2
	ldr	r2, [fp, #-48]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-44]
	add	r5, r5, #1
.L109:
	mov	r2, r5
	ldr	r3, [fp, #-40]
	cmp	r3, r2
	bhi	.L110
	ldr	r2, .L112+8
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	add	r4, r4, #1
.L108:
	cmp	r7, r4
	bge	.L111
	nop
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L113:
	.align	2
.L112:
	.word	SHIFT
	.word	shift_1
	.word	MEMBER
	.size	prep, .-prep
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	agrep
	.syntax unified
	.arm
	.fpu softvfp
	.type	agrep, %function
agrep:
	@ args = 4, pretend = 0, frame = 16608
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #16384
	sub	sp, sp, #228
	sub	r0, fp, #16384
	sub	r0, r0, #28
	str	r1, [r0, #-220]
	mov	r4, r2
	mov	r8, r3
	ldr	r3, .L161
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #4]
	add	r3, r3, #1
	sub	r2, fp, #16384
	sub	r2, r2, #28
	mov	r1, r3
	ldr	r0, [r2, #-220]
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r5, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-208]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-192]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3]
	sub	r2, fp, #16384
	sub	r2, r2, #28
	str	r3, [r2, #-4]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	ldr	r3, .L161+4
	ldr	r3, [r3]
	str	r3, [r2, #-188]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-200]
	cmp	r5, #2
	bgt	.L115
	mov	r6, r5
	b	.L116
.L115:
	mov	r6, #3
.L116:
	mov	r7, r4
	sub	r5, r5, #1
	b	.L117
.L125:
	mov	r3, r5
	add	r4, r4, r3
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L161+8
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r5, r3
	b	.L118
.L119:
	mov	r3, r5
	add	r4, r4, r3
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L161+8
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r5, r3
	mov	r3, r5
	add	r4, r4, r3
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L161+8
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r5, r3
.L118:
	cmp	r5, #0
	bne	.L119
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-208]
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r5, r3
	b	.L120
.L121:
	lsl	r3, r5, #2
	sub	r2, fp, #16384
	sub	r2, r2, #28
	ldr	r2, [r2, #-208]
	rsb	r2, r2, #0
	add	r2, r4, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r5, r3, r2
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-208]
	add	r3, r3, #1
	str	r3, [r2, #-208]
.L120:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-208]
	cmp	r6, r3
	bhi	.L121
	ldr	r3, .L161+12
	ldrb	r3, [r3, r5]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L122
	sub	r5, r4, r7
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-220]
	sub	r2, r5, r3
	ldr	r3, [fp, #4]
	sub	r3, r2, r3
	sub	r2, r3, #10
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-200]
	ldr	r3, [r1, r3, lsl #3]
	cmp	r2, r3
	ble	.L123
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-220]
	sub	r2, r5, r3
	ldr	r3, [fp, #4]
	sub	r3, r2, r3
	sub	r2, fp, #16384
	sub	r2, r2, #28
	mov	r1, r2
	sub	r2, fp, #16384
	sub	r2, r2, #28
	ldr	r2, [r2, #-200]
	add	r2, r2, #1
	str	r2, [r1, #-200]
	sub	r2, r3, #2
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-200]
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r2, [r3, #-4]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-220]
	add	r2, r5, r3
	ldr	r3, [fp, #4]
	add	r2, r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-200]
	str	r2, [r1, r3, lsl #3]
	b	.L124
.L123:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-220]
	add	r2, r5, r3
	ldr	r3, [fp, #4]
	add	r2, r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-200]
	str	r2, [r1, r3, lsl #3]
.L124:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r5, [r3, #-188]
	b	.L117
.L122:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r5, [r3, #-188]
.L117:
	cmp	r4, r8
	bcc	.L125
	mov	r4, r7
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, r8, r7
	str	r3, [r2, #-184]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #10
	str	r3, [r2, #-180]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bge	.L126
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #4]
.L126:
	ldr	r3, .L161+16
	ldr	r7, [r3]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #-2147483648
	str	r3, [r2, #-176]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-196]
	b	.L127
.L156:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-196]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r5, [r3, #-4]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-196]
	ldr	r3, [r2, r3, lsl #3]
	sub	r2, fp, #16384
	sub	r2, r2, #28
	ldr	r2, [r2, #-184]
	cmp	r2, r3
	bge	.L128
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-196]
	sub	r2, fp, #16384
	sub	r2, r2, #28
	ldr	r2, [r2, #-184]
	str	r2, [r1, r3, lsl #3]
.L128:
	cmp	r5, #0
	bge	.L129
	mov	r5, #0
.L129:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mvn	r3, #0
	str	r3, [r2, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-88]
	sub	r2, fp, #16384
	sub	r2, r2, #28
	str	r3, [r2, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-176]
	mvn	r3, r3
	sub	r2, fp, #16384
	sub	r2, r2, #28
	str	r3, [r2, #-84]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-84]
	sub	r2, fp, #16384
	sub	r2, r2, #28
	str	r3, [r2, #-168]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-204]
	b	.L130
.L131:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r2, fp, #16384
	sub	r2, r2, #28
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #-172]
	lsr	r2, r3, #1
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r1, fp, #16384
	sub	r1, r1, #28
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #-172]
	and	r2, r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	add	r3, r3, #1
	str	r3, [r2, #-204]
.L130:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r3, #-204]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	ble	.L131
	b	.L132
.L155:
	mov	r3, r5
	add	r5, r3, #1
	add	r3, r4, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r6, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-180]
	cmp	r6, r3
	bne	.L133
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-204]
	b	.L134
.L135:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	add	r3, r3, #1
	str	r3, [r2, #-204]
.L134:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r3, #-204]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	ble	.L135
.L133:
	ldr	r3, .L161+20
	ldr	r6, [r3, r6, lsl #2]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-88]
	lsr	r3, r3, #1
	orr	r3, r6, r3
	sub	r2, fp, #16384
	sub	r2, r2, #28
	str	r3, [r2, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-204]
	b	.L136
.L137:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #-88]
	lsr	r3, r3, #1
	orr	r2, r6, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r1, fp, #16384
	sub	r1, r1, #28
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #-88]
	and	r2, r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r1, fp, #16384
	sub	r1, r1, #28
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r1, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r0, fp, #16384
	sub	r0, r0, #28
	lsl	r3, r3, #2
	add	r3, r0, r3
	ldr	r3, [r3, #-88]
	and	r3, r3, r1
	lsr	r3, r3, #1
	and	r2, r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	add	r3, r3, #1
	str	r3, [r2, #-204]
.L136:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r3, #-204]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	ble	.L137
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #-172]
	and	r3, r3, r7
	cmp	r3, #0
	bne	.L138
	ldr	r3, .L161+24
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L161+24
	str	r3, [r2]
	ldr	r3, .L161+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L159
	mov	r2, r5
	sub	r3, fp, #16384
	sub	r3, r3, #28
	str	r2, [r3, #-212]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-192]
	cmp	r5, r3
	bgt	.L141
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r5, [r3, #-192]
	b	.L142
.L141:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	sub	r3, r3, #212
	mov	r1, r3
	mov	r0, r4
	bl	s_output
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-212]
	mov	r5, r3
.L142:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	str	r5, [r3, #-192]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-204]
	b	.L143
.L144:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	add	r3, r3, #1
	str	r3, [r2, #-204]
.L143:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r3, #-204]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	ble	.L144
.L138:
	mov	r3, r5
	add	r5, r3, #1
	add	r3, r4, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r6, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-180]
	cmp	r6, r3
	bne	.L145
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-204]
	b	.L146
.L147:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	add	r3, r3, #1
	str	r3, [r2, #-204]
.L146:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r3, #-204]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	ble	.L147
.L145:
	ldr	r3, .L161+20
	ldr	r6, [r3, r6, lsl #2]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-172]
	lsr	r3, r3, #1
	orr	r3, r6, r3
	sub	r2, fp, #16384
	sub	r2, r2, #28
	str	r3, [r2, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-204]
	b	.L148
.L149:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #-172]
	lsr	r3, r3, #1
	orr	r2, r6, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r1, fp, #16384
	sub	r1, r1, #28
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #-172]
	and	r2, r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r1, fp, #16384
	sub	r1, r1, #28
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r1, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	sub	r3, r3, #1
	sub	r0, fp, #16384
	sub	r0, r0, #28
	lsl	r3, r3, #2
	add	r3, r0, r3
	ldr	r3, [r3, #-88]
	and	r3, r3, r1
	lsr	r3, r3, #1
	and	r2, r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	add	r3, r3, #1
	str	r3, [r2, #-204]
.L148:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r3, #-204]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	ble	.L149
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #-88]
	and	r3, r3, r7
	cmp	r3, #0
	bne	.L132
	mov	r2, r5
	sub	r3, fp, #16384
	sub	r3, r3, #28
	str	r2, [r3, #-212]
	ldr	r3, .L161+24
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L161+24
	str	r3, [r2]
	ldr	r3, .L161+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L160
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-192]
	cmp	r5, r3
	bgt	.L151
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r5, [r3, #-192]
	b	.L152
.L151:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	sub	r3, r3, #212
	mov	r1, r3
	mov	r0, r4
	bl	s_output
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-212]
	mov	r5, r3
.L152:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	str	r5, [r3, #-192]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-204]
	b	.L153
.L154:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #-88]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r1, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #-172]
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-204]
	add	r3, r3, #1
	str	r3, [r2, #-204]
.L153:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r3, #-204]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	ble	.L154
.L132:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-196]
	ldr	r3, [r2, r3, lsl #3]
	cmp	r5, r3
	blt	.L155
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r3, [r3, #-196]
	add	r3, r3, #1
	str	r3, [r2, #-196]
.L127:
	sub	r3, fp, #16384
	sub	r3, r3, #28
	mov	r2, r3
	sub	r3, fp, #16384
	sub	r3, r3, #28
	ldr	r2, [r2, #-196]
	ldr	r3, [r3, #-200]
	cmp	r2, r3
	ble	.L156
	b	.L157
.L159:
	nop
	b	.L157
.L160:
	nop
.L157:
	ldr	r2, .L161
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L158
	bl	__stack_chk_fail
.L158:
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L162:
	.align	2
.L161:
	.word	.LC4
	.word	shift_1
	.word	SHIFT
	.word	MEMBER
	.word	endposition
	.word	Mask
	.word	num_of_matched
	.word	FILENAMEONLY
	.size	agrep, .-agrep
	.align	2
	.global	s_output
	.syntax unified
	.arm
	.fpu softvfp
	.type	s_output, %function
s_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]
	ldr	r3, .L174
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L173
	ldr	r3, .L174+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L166
	b	.L167
.L168:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r3, [fp, #-20]
	str	r2, [r3]
.L167:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L168
	b	.L165
.L166:
	ldr	r3, .L174+8
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L169
	ldr	r1, .L174+12
	ldr	r0, .L174+16
	bl	printf
.L169:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
.L170:
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L170
	b	.L171
.L172:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
.L171:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L172
	mov	r0, #10
	bl	putchar
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	b	.L165
.L173:
	nop
.L165:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L175:
	.align	2
.L174:
	.word	SILENT
	.word	COUNT
	.word	FNAME
	.word	CurrentFileName
	.word	.LC3
	.size	s_output, .-s_output
	.align	2
	.global	prep_bm
	.syntax unified
	.arm
	.fpu softvfp
	.type	prep_bm, %function
prep_bm:
	@ 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, #-24]
	mov	r3, r1
	mov	r2, #0
	str	r2, [fp, #-12]
	b	.L177
.L178:
	and	r0, r3, #255
	ldr	r1, .L189
	ldr	r2, [fp, #-12]
	add	r2, r1, r2
	mov	r1, r0
	strb	r1, [r2]
	ldr	r2, [fp, #-12]
	add	r2, r2, #1
	str	r2, [fp, #-12]
.L177:
	ldr	r2, [fp, #-12]
	cmp	r2, #255
	ble	.L178
	sub	r2, r3, #1
	str	r2, [fp, #-12]
	b	.L179
.L181:
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-24]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, .L189+4
	ldrb	r2, [r2, r1]	@ zero_extendqisi2
	str	r2, [fp, #-8]
	ldr	r1, .L189
	ldr	r2, [fp, #-8]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	mov	r1, r2
	sub	r2, r3, #1
	cmp	r1, r2
	blt	.L180
	and	r1, r3, #255
	ldr	r2, [fp, #-12]
	and	r2, r2, #255
	sub	r2, r1, r2
	and	r2, r2, #255
	sub	r2, r2, #1
	and	r0, r2, #255
	ldr	r1, .L189
	ldr	r2, [fp, #-8]
	add	r2, r1, r2
	mov	r1, r0
	strb	r1, [r2]
.L180:
	ldr	r2, [fp, #-12]
	sub	r2, r2, #1
	str	r2, [fp, #-12]
.L179:
	ldr	r2, [fp, #-12]
	cmp	r2, #0
	bge	.L181
	sub	r2, r3, #1
	ldr	r1, .L189+8
	str	r2, [r1]
	mov	r2, r3
	sub	r2, r2, #1
	ldr	r1, [fp, #-24]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, .L189+4
	ldrb	r2, [r2, r1]
	strb	r2, [fp, #-13]
	sub	r2, r3, #2
	str	r2, [fp, #-12]
	b	.L182
.L184:
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-24]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, .L189+4
	ldrb	r2, [r2, r1]	@ zero_extendqisi2
	ldrb	r1, [fp, #-13]	@ zero_extendqisi2
	cmp	r1, r2
	bne	.L183
	sub	r1, r3, #1
	ldr	r2, [fp, #-12]
	sub	r2, r1, r2
	ldr	r1, .L189+8
	str	r2, [r1]
	mvn	r2, #0
	str	r2, [fp, #-12]
.L183:
	ldr	r2, [fp, #-12]
	sub	r2, r2, #1
	str	r2, [fp, #-12]
.L182:
	ldr	r2, [fp, #-12]
	cmp	r2, #0
	bge	.L184
	ldr	r3, .L189+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L185
	ldr	r3, .L189+8
	mov	r2, #1
	str	r2, [r3]
.L185:
	ldr	r3, .L189+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L186
	mov	r3, #65
	str	r3, [fp, #-12]
	b	.L187
.L188:
	ldr	r3, [fp, #-12]
	add	r3, r3, #32
	ldr	r2, .L189
	ldrb	r1, [r2, r3]	@ zero_extendqisi2
	ldr	r2, .L189
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L187:
	ldr	r3, [fp, #-12]
	cmp	r3, #90
	ble	.L188
.L186:
	nop
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L190:
	.align	2
.L189:
	.word	SHIFT
	.word	TR
	.word	shift_1
	.word	NOUPPER
	.size	prep_bm, .-prep_bm
	.align	2
	.global	a_monkey
	.syntax unified
	.arm
	.fpu softvfp
	.type	a_monkey, %function
a_monkey:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #28
	str	r0, [fp, #-48]
	mov	r6, r1
	mov	r4, r2
	mov	r10, r3
	ldr	r9, [fp, #4]
	sub	r3, r6, #1
	sub	r3, r3, r9
	str	r3, [fp, #-40]
	ldr	r3, .L212
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	mov	r5, r4
	b	.L192
.L209:
	ldr	r3, [fp, #-40]
	add	r4, r4, r3
	mov	r7, #0
	b	.L193
.L196:
	mov	r3, r4
	sub	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r8, r3
	b	.L194
.L195:
	lsl	r2, r8, #8
	mov	r3, r4
	sub	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	and	r8, r2, r3
.L194:
	ldr	r3, .L212+4
	ldrb	r3, [r3, r8]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L195
	add	r7, r7, #1
.L193:
	mov	r3, r9
	cmp	r7, r3
	bls	.L196
	cmp	r4, r5
	bhi	.L197
	lsl	r3, r6, #1
	add	r1, r9, r3
	str	r5, [sp]
	ldr	r3, [fp, #-48]
	mov	r2, r9
	mov	r0, r6
	bl	verify
	mov	r4, r0
	cmp	r4, #0
	ble	.L198
	mov	r3, r4
	add	r4, r5, r3
	cmp	r4, r10
	bhi	.L210
	ldr	r3, .L212+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L212+8
	str	r3, [r2]
	ldr	r3, .L212+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L211
	ldr	r3, .L212+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L207
	ldr	r3, .L212+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L204
	ldr	r1, .L212+24
	ldr	r0, .L212+28
	bl	printf
.L204:
	sub	r4, r4, #1
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L204
	b	.L205
.L206:
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
.L205:
	add	r4, r4, #1
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L206
	mov	r0, #10
	bl	putchar
	b	.L197
.L208:
	add	r4, r4, #1
.L207:
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L208
	b	.L197
.L198:
	mov	r3, r6
	add	r4, r5, r3
.L197:
	mov	r5, r4
.L192:
	cmp	r4, r10
	bcc	.L209
	b	.L200
.L210:
	nop
	b	.L200
.L211:
	nop
.L200:
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L213:
	.align	2
.L212:
	.word	Hashmask
	.word	MEMBER_1
	.word	num_of_matched
	.word	FILENAMEONLY
	.word	COUNT
	.word	FNAME
	.word	CurrentFileName
	.word	.LC3
	.size	a_monkey, .-a_monkey
	.comm	SHIFT_2,4096,4
	.align	2
	.global	monkey
	.syntax unified
	.arm
	.fpu softvfp
	.type	monkey, %function
monkey:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #36
	mov	r10, r0
	mov	r6, r1
	mov	r4, r2
	mov	r8, r3
	mov	r7, #10
	sub	r9, r6, #1
	mov	r3, r9
	add	r4, r4, r3
	b	.L215
.L232:
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r5, r3
	lsl	r3, r5, #3
	sub	r2, r4, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r5, r3, r2
	ldr	r3, .L236
	ldrb	r5, [r3, r5]	@ zero_extendqisi2
	b	.L216
.L217:
	mov	r3, r5
	add	r4, r4, r3
	ldrb	r3, [r4]	@ zero_extendqisi2
	lsl	r3, r3, #3
	sub	r2, r4, #1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r5, r3
	ldr	r3, .L236
	ldrb	r5, [r3, r5]	@ zero_extendqisi2
.L216:
	cmp	r5, #0
	bne	.L217
	mov	r5, #0
	b	.L218
.L220:
	add	r5, r5, #1
	cmp	r5, r6
	beq	.L233
.L218:
	sub	r3, r9, r5
	add	r3, r10, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L236+4
	ldrb	r2, [r3, r2]	@ zero_extendqisi2
	mov	r3, r5
	rsb	r3, r3, #0
	add	r3, r4, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L236+4
	ldrb	r3, [r3, r1]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L220
	b	.L219
.L233:
	nop
.L219:
	cmp	r5, r6
	bne	.L221
	cmp	r4, r8
	bcs	.L234
	ldr	r3, .L236+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L236+8
	str	r3, [r2]
	ldr	r3, .L236+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L235
	ldr	r3, .L236+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L225
	b	.L226
.L227:
	add	r4, r4, #1
.L226:
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r7, r3
	bne	.L227
	sub	r4, r4, #1
	b	.L221
.L225:
	ldr	r3, .L236+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L229
	ldr	r1, .L236+24
	ldr	r0, .L236+28
	bl	printf
.L229:
	sub	r4, r4, #1
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r7, r3
	bne	.L229
	b	.L230
.L231:
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
.L230:
	add	r4, r4, #1
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r7, r3
	bne	.L231
	mov	r0, #10
	bl	putchar
	sub	r4, r4, #1
.L221:
	add	r4, r4, #1
.L215:
	cmp	r4, r8
	bcc	.L232
	b	.L223
.L234:
	nop
	b	.L223
.L235:
	nop
.L223:
	mov	r0, r3
	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L237:
	.align	2
.L236:
	.word	SHIFT_2
	.word	TR
	.word	num_of_matched
	.word	FILENAMEONLY
	.word	COUNT
	.word	FNAME
	.word	CurrentFileName
	.word	.LC3
	.size	monkey, .-monkey
	.align	2
	.global	am_preprocess
	.syntax unified
	.arm
	.fpu softvfp
	.type	am_preprocess, %function
am_preprocess:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r3, #1
	str	r3, [fp, #-12]
	ldr	r3, .L247
	mov	r2, #1
	str	r2, [r3]
	b	.L239
.L240:
	ldr	r3, .L247
	ldr	r3, [r3]
	lsl	r3, r3, #1
	add	r3, r3, #1
	ldr	r2, .L247
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L239:
	ldr	r3, [fp, #-12]
	cmp	r3, #15
	ble	.L240
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L241
.L242:
	ldr	r2, .L247+4
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L241:
	ldr	r3, [fp, #-12]
	cmp	r3, #65536
	blt	.L242
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	b	.L243
.L244:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L247+4
	mov	r1, #1
	strb	r1, [r3, r2]
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
.L243:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L244
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	b	.L245
.L246:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	ldr	r2, [fp, #-12]
	sub	r2, r2, #1
	ldr	r1, [fp, #-16]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, .L247+4
	mov	r1, #1
	strb	r1, [r2, r3]
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
.L245:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bgt	.L246
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L248:
	.align	2
.L247:
	.word	Hashmask
	.word	MEMBER_1
	.size	am_preprocess, .-am_preprocess
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	verify
	.syntax unified
	.arm
	.fpu softvfp
	.type	verify, %function
verify:
	@ args = 4, pretend = 0, frame = 2072
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #2064
	sub	sp, sp, #8
	str	r3, [fp, #-2088]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-2092]
	ldr	r3, .L282
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r4, r2
	mov	r6, #0
	add	r7, r0, #1
	ldr	r3, [fp, #-2092]
	add	r3, r3, r1
	str	r3, [fp, #-2080]
	ldr	r3, [fp, #-2092]
	str	r3, [fp, #-2076]
	mov	r5, #0
	b	.L250
.L251:
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r5, [r3, #-1028]
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r1, [r3, #-1028]
	lsl	r3, r5, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	str	r1, [r3, #-2052]
	add	r5, r5, #1
.L250:
	cmp	r5, r7
	ble	.L251
	b	.L252
.L279:
	mov	r5, #1
	b	.L253
.L257:
	sub	r3, r5, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1028]
	add	r6, r3, #1
	mov	r3, r5
	sub	r3, r3, #1
	ldr	r1, [fp, #-2088]
	add	r3, r1, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-2092]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	beq	.L254
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1028]
	add	r3, r3, #1
	cmp	r6, r3
	ble	.L255
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1028]
	add	r6, r3, #1
.L255:
	sub	r3, r5, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	add	r3, r3, #1
	cmp	r6, r3
	ble	.L256
	sub	r3, r5, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	add	r6, r3, #1
	b	.L256
.L254:
	sub	r6, r6, #1
.L256:
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r6, [r3, #-2052]
	add	r5, r5, #1
.L253:
	cmp	r5, r4
	ble	.L257
	mov	r1, r4
	ldr	r3, [fp, #-2088]
	add	r3, r3, r1
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-2092]
	add	ip, r3, #1
	str	ip, [fp, #-2092]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	bne	.L258
	add	ip, r4, #1
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r1, [r3, #-1028]
	lsl	r3, ip, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	str	r1, [r3, #-2052]
	add	r4, r4, #1
.L258:
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	cmp	r2, r3
	ble	.L260
	mov	r3, r4
	add	r4, r3, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r1, [r3, #-2052]
	add	r3, r4, #1
	add	r1, r1, #1
	lsl	r3, r3, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	str	r1, [r3, #-2052]
	b	.L260
.L261:
	sub	r4, r4, #1
.L260:
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	cmp	r2, r3
	blt	.L261
	cmp	r4, r0
	blt	.L262
	ldr	r2, [fp, #-2092]
	ldr	r3, [fp, #-2076]
	sub	r3, r2, r3
	sub	r3, r3, #1
	b	.L280
.L262:
	ldr	r3, [fp, #-2092]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L264
	mov	r4, r2
	mov	r5, #0
	b	.L265
.L266:
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r5, [r3, #-1028]
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r1, [r3, #-1028]
	lsl	r3, r5, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	str	r1, [r3, #-2052]
	add	r5, r5, #1
.L265:
	cmp	r5, r7
	ble	.L266
.L264:
	mov	r5, #1
	b	.L267
.L271:
	sub	r3, r5, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	add	r6, r3, #1
	mov	r3, r5
	sub	r3, r3, #1
	ldr	r1, [fp, #-2088]
	add	r3, r1, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-2092]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	beq	.L268
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	add	r3, r3, #1
	cmp	r6, r3
	ble	.L269
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	add	r6, r3, #1
.L269:
	sub	r3, r5, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1028]
	add	r3, r3, #1
	cmp	r6, r3
	ble	.L270
	sub	r3, r5, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1028]
	add	r6, r3, #1
	b	.L270
.L268:
	sub	r6, r6, #1
.L270:
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r6, [r3, #-1028]
	add	r5, r5, #1
.L267:
	cmp	r5, r4
	ble	.L271
	mov	r1, r4
	ldr	r3, [fp, #-2088]
	add	r3, r3, r1
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-2092]
	add	ip, r3, #1
	str	ip, [fp, #-2092]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	bne	.L272
	add	ip, r4, #1
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r1, [r3, #-2052]
	lsl	r3, ip, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	str	r1, [r3, #-1028]
	add	r4, r4, #1
.L272:
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1028]
	cmp	r2, r3
	ble	.L274
	mov	r3, r4
	add	r4, r3, #1
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r1, [r3, #-1028]
	add	r3, r4, #1
	add	r1, r1, #1
	lsl	r3, r3, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	str	r1, [r3, #-1028]
	b	.L274
.L275:
	sub	r4, r4, #1
.L274:
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1028]
	cmp	r2, r3
	blt	.L275
	cmp	r4, r0
	blt	.L276
	ldr	r2, [fp, #-2092]
	ldr	r3, [fp, #-2076]
	sub	r3, r2, r3
	sub	r3, r3, #1
	b	.L280
.L276:
	ldr	r3, [fp, #-2092]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L252
	mov	r4, r2
	mov	r5, #0
	b	.L277
.L278:
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r5, [r3, #-1028]
	lsl	r3, r5, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r1, [r3, #-1028]
	lsl	r3, r5, #2
	sub	ip, fp, #20
	add	r3, ip, r3
	str	r1, [r3, #-2052]
	add	r5, r5, #1
.L277:
	cmp	r5, r7
	ble	.L278
.L252:
	ldr	r1, [fp, #-2092]
	ldr	r3, [fp, #-2080]
	cmp	r1, r3
	bcc	.L279
	mov	r3, #0
.L280:
	ldr	r2, .L282
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L281
	bl	__stack_chk_fail
.L281:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L283:
	.align	2
.L282:
	.word	.LC5
	.size	verify, .-verify
	.align	2
	.global	m_preprocess
	.syntax unified
	.arm
	.fpu softvfp
	.type	m_preprocess, %function
m_preprocess:
	@ 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	r0, [fp, #-24]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L285
.L286:
	ldr	r3, [fp, #-12]
	and	r1, r3, #255
	ldr	r2, .L297
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L285:
	ldr	r3, [fp, #-20]
	cmp	r3, #4096
	blt	.L286
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	b	.L287
.L292:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L288
.L290:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldr	r2, .L297
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	bne	.L289
	ldr	r3, [fp, #-12]
	and	r2, r3, #255
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-8]
	add	r3, r1, r3
	sub	r2, r2, #1
	and	r1, r2, #255
	ldr	r2, .L297
	strb	r1, [r2, r3]
.L289:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L288:
	ldr	r3, [fp, #-16]
	cmp	r3, #255
	ble	.L290
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r2, .L297
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	cmp	r2, r3
	blt	.L291
	ldr	r3, [fp, #-12]
	and	r2, r3, #255
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	sub	r3, r2, r3
	and	r3, r3, #255
	sub	r3, r3, #1
	and	r1, r3, #255
	ldr	r2, .L297
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
.L291:
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
.L287:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bgt	.L292
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	ldr	r2, .L297+4
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	sub	r3, r3, #2
	str	r3, [fp, #-20]
	b	.L293
.L295:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L294
	ldr	r3, [fp, #-12]
	sub	r2, r3, #1
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	ldr	r2, .L297+4
	str	r3, [r2]
	mvn	r3, #0
	str	r3, [fp, #-20]
.L294:
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
.L293:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L295
	ldr	r3, .L297+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L296
	ldr	r3, .L297+4
	mov	r2, #1
	str	r2, [r3]
.L296:
	ldr	r3, .L297
	mov	r2, #0
	strb	r2, [r3]
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L298:
	.align	2
.L297:
	.word	SHIFT_2
	.word	shift_1
	.size	m_preprocess, .-m_preprocess
	.comm	MEMBER_D,4,4
	.section	.rodata
	.align	2
.LC6:
	.ascii	"%s:\000"
	.text
	.align	2
	.global	monkey4
	.syntax unified
	.arm
	.fpu softvfp
	.type	monkey4, %function
monkey4:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #28
	str	r0, [fp, #-48]
	mov	r7, r1
	mov	r4, r2
	str	r3, [fp, #-40]
	ldr	r10, [fp, #4]
	sub	r3, r7, #1
	sub	r3, r3, r10
	str	r3, [fp, #-44]
	ldr	r3, .L320
	ldr	r9, [r3]
	mov	r6, r4
	b	.L300
.L317:
	ldr	r3, [fp, #-44]
	add	r4, r4, r3
	mov	r8, #0
	b	.L301
.L304:
	mov	r3, r4
	sub	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L320+4
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	mov	r5, r3
	lsl	r2, r5, #3
	mov	r3, r4
	sub	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L320+4
	ldrb	r3, [r3, r1]	@ zero_extendqisi2
	add	r3, r2, r3
	and	r5, r9, r3
	b	.L302
.L303:
	lsl	r2, r5, #3
	mov	r3, r4
	sub	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L320+4
	ldrb	r3, [r3, r1]	@ zero_extendqisi2
	add	r3, r2, r3
	and	r5, r9, r3
.L302:
	ldr	r3, .L320+8
	ldr	r3, [r3]
	add	r3, r3, r5
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L303
	add	r8, r8, #1
.L301:
	mov	r3, r10
	cmp	r8, r3
	bls	.L304
	cmp	r4, r6
	bhi	.L305
	lsl	r3, r7, #1
	add	r1, r10, r3
	str	r6, [sp]
	ldr	r3, [fp, #-48]
	mov	r2, r10
	mov	r0, r7
	bl	verify
	mov	r4, r0
	cmp	r4, #0
	ble	.L306
	mov	r3, r4
	add	r4, r6, r3
	ldr	r3, [fp, #-40]
	cmp	r4, r3
	bhi	.L318
	ldr	r3, .L320+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L320+12
	str	r3, [r2]
	ldr	r3, .L320+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L319
	ldr	r3, .L320+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L315
	ldr	r3, .L320+24
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L312
	ldr	r1, .L320+28
	ldr	r0, .L320+32
	bl	printf
.L312:
	sub	r4, r4, #1
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L312
	b	.L313
.L314:
	ldrb	r3, [r4]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
.L313:
	add	r4, r4, #1
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L314
	mov	r0, #10
	bl	putchar
	add	r4, r4, #1
	b	.L305
.L316:
	add	r4, r4, #1
.L315:
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L316
	add	r4, r4, #1
	b	.L305
.L306:
	mov	r3, r7
	add	r4, r6, r3
.L305:
	mov	r6, r4
.L300:
	ldr	r3, [fp, #-40]
	cmp	r4, r3
	bcc	.L317
	b	.L308
.L318:
	nop
	b	.L308
.L319:
	nop
.L308:
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L321:
	.align	2
.L320:
	.word	Hashmask
	.word	char_map
	.word	MEMBER_D
	.word	num_of_matched
	.word	FILENAMEONLY
	.word	COUNT
	.word	FNAME
	.word	CurrentFileName
	.word	.LC6
	.size	monkey4, .-monkey4
	.align	2
	.global	prep4
	.syntax unified
	.arm
	.fpu softvfp
	.type	prep4, %function
prep4:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L323
.L324:
	ldr	r2, .L335
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L323:
	ldr	r3, [fp, #-20]
	cmp	r3, #255
	ble	.L324
	ldr	r3, .L335
	mov	r2, #4
	strb	r2, [r3, #65]
	ldr	r3, .L335
	ldrb	r2, [r3, #65]	@ zero_extendqisi2
	ldr	r3, .L335
	strb	r2, [r3, #97]
	ldr	r3, .L335
	mov	r2, #1
	strb	r2, [r3, #103]
	ldr	r3, .L335
	ldrb	r2, [r3, #103]	@ zero_extendqisi2
	ldr	r3, .L335
	strb	r2, [r3, #103]
	ldr	r3, .L335
	mov	r2, #2
	strb	r2, [r3, #116]
	ldr	r3, .L335
	ldrb	r2, [r3, #116]	@ zero_extendqisi2
	ldr	r3, .L335
	strb	r2, [r3, #116]
	ldr	r3, .L335
	mov	r2, #3
	strb	r2, [r3, #99]
	ldr	r3, .L335
	ldrb	r2, [r3, #99]	@ zero_extendqisi2
	ldr	r3, .L335
	strb	r2, [r3, #99]
	ldr	r3, .L335
	mov	r2, #5
	strb	r2, [r3, #110]
	ldr	r3, .L335
	ldrb	r2, [r3, #110]	@ zero_extendqisi2
	ldr	r3, .L335
	strb	r2, [r3, #110]
	ldr	r1, [fp, #-28]
	mov	r0, #4
	bl	blog
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, .L335+4
	strb	r2, [r3]
	mov	r3, #1
	str	r3, [fp, #-20]
	ldr	r3, .L335+8
	mov	r2, #1
	str	r2, [r3]
	b	.L325
.L326:
	ldr	r3, .L335+8
	ldr	r3, [r3]
	lsl	r3, r3, #1
	add	r3, r3, #1
	ldr	r2, .L335+8
	str	r3, [r2]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L325:
	ldr	r3, .L335+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L326
	ldr	r3, .L335+8
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L335+12
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L327
.L328:
	ldr	r3, .L335+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L327:
	ldr	r2, [fp, #-20]
	ldr	r3, .L335+8
	ldr	r3, [r3]
	cmp	r2, r3
	bls	.L328
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L329
.L334:
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	b	.L330
.L333:
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L331
.L332:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	ldr	r1, [fp, #-20]
	ldr	r2, [fp, #-12]
	sub	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-24]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, .L335
	ldrb	r2, [r2, r1]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L331:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	ble	.L332
	ldr	r3, .L335+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
.L330:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bge	.L333
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L329:
	ldr	r3, .L335+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	blt	.L334
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L336:
	.align	2
.L335:
	.word	char_map
	.word	BSize
	.word	Hashmask
	.word	MEMBER_D
	.size	prep4, .-prep4
	.align	2
	.global	blog
	.syntax unified
	.arm
	.fpu softvfp
	.type	blog, %function
blog:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L338
.L339:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	mul	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L338:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L339
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	blog, .-blog
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
