	.file	"531129.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 8
.LC0:
	.string	"Usage: susan <in.pgm> <out.pgm> [options]\n"
.LC1:
	.string	"-s : Smoothing mode (default)"
.LC2:
	.string	"-e : Edges mode"
.LC3:
	.string	"-c : Corners mode\n"
	.align 8
.LC4:
	.string	"See source code for more information about setting the thresholds"
	.align 8
.LC5:
	.string	"-t <thresh> : Brightness threshold, all modes (default=20)"
	.align 8
.LC6:
	.string	"-d <thresh> : Distance threshold, smoothing mode, (default=4) (use next option instead for flat 3x3 mask)"
	.align 8
.LC7:
	.string	"-3 : Use flat 3x3 mask, edges or smoothing mode"
	.align 8
.LC8:
	.string	"-n : No post-processing on the binary edge map (runs much faster); edges mode"
	.align 8
.LC9:
	.string	"-q : Use faster (and usually stabler) corner mode; edge-like corner suppression not carried out; corners mode"
	.align 8
.LC10:
	.string	"-b : Mark corners/edges with single black points instead of black with white border; corners or edges mode"
	.align 8
.LC11:
	.string	"-p : Output initial enhancement image only; corners or edges mode (default is edges mode)"
	.align 8
.LC12:
	.string	"\nSUSAN Version 2l (C) 1995-1997 Stephen Smith, DRA UK. steve@fmrib.ox.ac.uk"
	.text
	.globl	usage
	.type	usage, @function
usage:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC0[rip]
	call	puts@PLT
	lea	rdi, .LC1[rip]
	call	puts@PLT
	lea	rdi, .LC2[rip]
	call	puts@PLT
	lea	rdi, .LC3[rip]
	call	puts@PLT
	lea	rdi, .LC4[rip]
	call	puts@PLT
	lea	rdi, .LC5[rip]
	call	puts@PLT
	lea	rdi, .LC6[rip]
	call	puts@PLT
	lea	rdi, .LC7[rip]
	call	puts@PLT
	lea	rdi, .LC8[rip]
	call	puts@PLT
	lea	rdi, .LC9[rip]
	call	puts@PLT
	lea	rdi, .LC10[rip]
	call	puts@PLT
	lea	rdi, .LC11[rip]
	call	puts@PLT
	lea	rdi, .LC12[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
	.cfi_endproc
.LFE6:
	.size	usage, .-usage
	.section	.rodata
.LC13:
	.string	"is"
.LC14:
	.string	"Image %s not binary PGM.\n"
	.text
	.globl	getint
	.type	getint, @function
getint:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1856
	mov	QWORD PTR -10040[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -10040[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR -10024[rbp], eax
.L7:
	cmp	DWORD PTR -10024[rbp], 35
	jne	.L3
	mov	rdx, QWORD PTR -10040[rbp]
	lea	rax, -10016[rbp]
	mov	esi, 9000
	mov	rdi, rax
	call	fgets@PLT
.L3:
	cmp	DWORD PTR -10024[rbp], -1
	jne	.L4
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, .LC13[rip]
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L4:
	cmp	DWORD PTR -10024[rbp], 47
	jle	.L5
	cmp	DWORD PTR -10024[rbp], 57
	jle	.L15
.L5:
	mov	rax, QWORD PTR -10040[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR -10024[rbp], eax
	jmp	.L7
.L15:
	nop
	mov	DWORD PTR -10020[rbp], 0
.L11:
	mov	edx, DWORD PTR -10020[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	add	eax, eax
	mov	edx, eax
	mov	eax, DWORD PTR -10024[rbp]
	sub	eax, 48
	add	eax, edx
	mov	DWORD PTR -10020[rbp], eax
	mov	rax, QWORD PTR -10040[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR -10024[rbp], eax
	cmp	DWORD PTR -10024[rbp], -1
	jne	.L8
	mov	eax, DWORD PTR -10020[rbp]
	jmp	.L12
.L8:
	cmp	DWORD PTR -10024[rbp], 47
	jle	.L10
	cmp	DWORD PTR -10024[rbp], 57
	jg	.L10
	jmp	.L11
.L10:
	mov	eax, DWORD PTR -10020[rbp]
.L12:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L13
	call	__stack_chk_fail@PLT
.L13:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	getint, .-getint
	.section	.rodata
.LC15:
	.string	"r"
.LC16:
	.string	"Can't input image %s.\n"
	.align 8
.LC17:
	.string	"Image %s does not have binary PGM header.\n"
.LC18:
	.string	"Image %s is wrong size.\n"
	.text
	.globl	get_image
	.type	get_image, @function
get_image:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -136[rbp], rdi
	mov	QWORD PTR -144[rbp], rsi
	mov	QWORD PTR -152[rbp], rdx
	mov	QWORD PTR -160[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -136[rbp]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -120[rbp], rax
	cmp	QWORD PTR -120[rbp], 0
	jne	.L17
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -136[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L17:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	fgetc@PLT
	mov	BYTE PTR -112[rbp], al
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	fgetc@PLT
	mov	BYTE PTR -111[rbp], al
	movzx	eax, BYTE PTR -112[rbp]
	cmp	al, 80
	jne	.L18
	movzx	eax, BYTE PTR -111[rbp]
	cmp	al, 53
	je	.L19
.L18:
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -136[rbp]
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L19:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	getint
	mov	rdx, QWORD PTR -152[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	getint
	mov	rdx, QWORD PTR -160[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	getint
	mov	DWORD PTR -124[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR [rax]
	imul	eax, edx
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR [rax]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR -120[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fread@PLT
	test	rax, rax
	jne	.L20
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -136[rbp]
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L20:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	fclose@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	get_image, .-get_image
	.section	.rodata
.LC19:
	.string	"w"
.LC20:
	.string	"Can't output image%s.\n"
.LC21:
	.string	"P5\n"
.LC22:
	.string	"%d %d\n"
.LC23:
	.string	"255\n"
.LC24:
	.string	"Can't write image %s.\n"
	.text
	.globl	put_image
	.type	put_image, @function
put_image:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	DWORD PTR -40[rbp], ecx
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L23
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L23:
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 3
	mov	esi, 1
	lea	rdi, .LC21[rip]
	call	fwrite@PLT
	mov	ecx, DWORD PTR -40[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 4
	mov	esi, 1
	lea	rdi, .LC23[rip]
	call	fwrite@PLT
	mov	eax, DWORD PTR -36[rbp]
	imul	eax, DWORD PTR -40[rbp]
	movsx	rsi, eax
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	rdi, rax
	call	fwrite@PLT
	cmp	rax, 1
	je	.L24
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -24[rbp]
	lea	rsi, .LC24[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	edi, 0
	call	exit@PLT
.L24:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	put_image, .-put_image
	.globl	int_to_uchar
	.type	int_to_uchar, @function
int_to_uchar:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L26
.L29:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jge	.L27
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -8[rbp], eax
.L27:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -4[rbp], eax
	jle	.L28
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
.L28:
	add	DWORD PTR -12[rbp], 1
.L26:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L29
	mov	eax, DWORD PTR -4[rbp]
	sub	DWORD PTR -8[rbp], eax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L30
.L31:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	eax, edx
	sal	eax, 8
	sub	eax, edx
	cdq
	idiv	DWORD PTR -8[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -12[rbp], 1
.L30:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L31
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	int_to_uchar, .-int_to_uchar
	.globl	setup_brightness_lut
	.type	setup_brightness_lut, @function
setup_brightness_lut:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	edi, 516
	call	malloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 258[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	DWORD PTR -8[rbp], -256
	jmp	.L33
.L35:
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -8[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -28[rbp]
	divss	xmm0, xmm1
	movss	DWORD PTR -4[rbp], xmm0
	movss	xmm0, DWORD PTR -4[rbp]
	mulss	xmm0, xmm0
	movss	DWORD PTR -4[rbp], xmm0
	cmp	DWORD PTR -32[rbp], 6
	jne	.L34
	movss	xmm0, DWORD PTR -4[rbp]
	mulss	xmm0, xmm0
	movss	xmm1, DWORD PTR -4[rbp]
	mulss	xmm0, xmm1
	movss	DWORD PTR -4[rbp], xmm0
.L34:
	movss	xmm0, DWORD PTR -4[rbp]
	movss	xmm1, DWORD PTR .LC25[rip]
	xorps	xmm0, xmm1
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rax, xmm2
	movq	xmm0, rax
	call	exp@PLT
	movsd	xmm1, QWORD PTR .LC26[rip]
	mulsd	xmm0, xmm1
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -4[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	add	rax, rdx
	cvttss2si	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -8[rbp], 1
.L33:
	cmp	DWORD PTR -8[rbp], 256
	jle	.L35
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	setup_brightness_lut, .-setup_brightness_lut
	.globl	susan_principle
	.type	susan_principle, @function
susan_principle:
.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, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -60[rbp], ecx
	mov	DWORD PTR -64[rbp], r8d
	mov	DWORD PTR -68[rbp], r9d
	mov	eax, DWORD PTR -64[rbp]
	imul	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -28[rbp], 3
	jmp	.L37
.L41:
	mov	DWORD PTR -24[rbp], 3
	jmp	.L38
.L40:
	mov	DWORD PTR -20[rbp], 100
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -64[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -64[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	add	QWORD PTR -16[rbp], 2
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jg	.L39
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -64[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
.L39:
	add	DWORD PTR -24[rbp], 1
.L38:
	mov	eax, DWORD PTR -64[rbp]
	sub	eax, 3
	cmp	DWORD PTR -24[rbp], eax
	jl	.L40
	add	DWORD PTR -28[rbp], 1
.L37:
	mov	eax, DWORD PTR -68[rbp]
	sub	eax, 3
	cmp	DWORD PTR -28[rbp], eax
	jl	.L41
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	susan_principle, .-susan_principle
	.globl	susan_principle_small
	.type	susan_principle_small, @function
susan_principle_small:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -60[rbp], ecx
	mov	DWORD PTR -64[rbp], r8d
	mov	DWORD PTR -68[rbp], r9d
	mov	eax, DWORD PTR -64[rbp]
	imul	eax, DWORD PTR -68[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -60[rbp], 730
	mov	DWORD PTR -28[rbp], 1
	jmp	.L43
.L47:
	mov	DWORD PTR -24[rbp], 1
	jmp	.L44
.L46:
	mov	DWORD PTR -20[rbp], 100
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -64[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -64[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	add	QWORD PTR -16[rbp], 2
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jg	.L45
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -64[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
.L45:
	add	DWORD PTR -24[rbp], 1
.L44:
	mov	eax, DWORD PTR -64[rbp]
	sub	eax, 1
	cmp	DWORD PTR -24[rbp], eax
	jl	.L46
	add	DWORD PTR -28[rbp], 1
.L43:
	mov	eax, DWORD PTR -68[rbp]
	sub	eax, 1
	cmp	DWORD PTR -28[rbp], eax
	jl	.L47
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	susan_principle_small, .-susan_principle_small
	.globl	median
	.type	median, @function
median:
.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, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	DWORD PTR -80[rbp], edx
	mov	DWORD PTR -84[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -20[rbp], eax
	mov	DWORD PTR -60[rbp], 0
	jmp	.L49
.L53:
	mov	DWORD PTR -56[rbp], 0
	jmp	.L50
.L52:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	mov	edx, DWORD PTR -48[rbp+rax*4]
	mov	eax, DWORD PTR -56[rbp]
	add	eax, 1
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	cmp	edx, eax
	jle	.L51
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, 1
	cdqe
	mov	edx, DWORD PTR -48[rbp+rax*4]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	mov	DWORD PTR -48[rbp+rax*4], edx
	mov	eax, DWORD PTR -56[rbp]
	add	eax, 1
	cdqe
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR -48[rbp+rax*4], edx
.L51:
	add	DWORD PTR -56[rbp], 1
.L50:
	mov	eax, 7
	sub	eax, DWORD PTR -60[rbp]
	cmp	DWORD PTR -56[rbp], eax
	jl	.L52
	add	DWORD PTR -60[rbp], 1
.L49:
	cmp	DWORD PTR -60[rbp], 6
	jle	.L53
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -32[rbp]
	add	eax, edx
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L55
	call	__stack_chk_fail@PLT
.L55:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	median, .-median
	.globl	enlarge
	.type	enlarge, @function
enlarge:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -52[rbp], r8d
	mov	DWORD PTR -8[rbp], 0
	jmp	.L57
.L58:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rdx]
	imul	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	lea	rsi, [rcx+rdx]
	mov	ecx, DWORD PTR -8[rbp]
	mov	edx, DWORD PTR -52[rbp]
	add	ecx, edx
	mov	rdx, QWORD PTR -40[rbp]
	mov	edi, DWORD PTR [rdx]
	mov	edx, DWORD PTR -52[rbp]
	add	edx, edx
	add	edx, edi
	imul	edx, ecx
	movsx	rcx, edx
	mov	edx, DWORD PTR -52[rbp]
	movsx	rdx, edx
	add	rcx, rdx
	mov	rdx, QWORD PTR -32[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	add	DWORD PTR -8[rbp], 1
.L57:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L58
	mov	DWORD PTR -8[rbp], 0
	jmp	.L59
.L60:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rdx]
	imul	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	lea	rsi, [rcx+rdx]
	mov	edx, DWORD PTR -52[rbp]
	sub	edx, 1
	mov	ecx, edx
	sub	ecx, DWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	edi, DWORD PTR [rdx]
	mov	edx, DWORD PTR -52[rbp]
	add	edx, edx
	add	edx, edi
	imul	edx, ecx
	movsx	rcx, edx
	mov	edx, DWORD PTR -52[rbp]
	movsx	rdx, edx
	add	rcx, rdx
	mov	rdx, QWORD PTR -32[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR [rdx]
	mov	rdx, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rdx]
	sub	edx, DWORD PTR -8[rbp]
	lea	ecx, -1[rdx]
	mov	rdx, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rdx]
	imul	edx, ecx
	movsx	rdx, edx
	add	rsi, rdx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, DWORD PTR [rdx]
	mov	edx, DWORD PTR -52[rbp]
	add	ecx, edx
	mov	edx, DWORD PTR -8[rbp]
	add	ecx, edx
	mov	rdx, QWORD PTR -40[rbp]
	mov	edi, DWORD PTR [rdx]
	mov	edx, DWORD PTR -52[rbp]
	add	edx, edx
	add	edx, edi
	imul	edx, ecx
	movsx	rcx, edx
	mov	edx, DWORD PTR -52[rbp]
	movsx	rdx, edx
	add	rcx, rdx
	mov	rdx, QWORD PTR -32[rbp]
	add	rcx, rdx
	mov	rdx, rax
	mov	rdi, rcx
	call	memcpy@PLT
	add	DWORD PTR -8[rbp], 1
.L59:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L60
	mov	DWORD PTR -8[rbp], 0
	jmp	.L61
.L64:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L62
.L63:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, eax
	add	eax, edx
	imul	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, eax
	add	eax, edx
	imul	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	eax, edx
	sub	eax, 1
	sub	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, eax
	add	eax, edx
	imul	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	add	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	eax, edx
	sub	eax, 1
	sub	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, eax
	add	eax, edx
	imul	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	add	edx, eax
	mov	eax, DWORD PTR -52[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -4[rbp], 1
.L62:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, eax
	add	eax, edx
	cmp	DWORD PTR -4[rbp], eax
	jl	.L63
	add	DWORD PTR -8[rbp], 1
.L61:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L64
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	enlarge, .-enlarge
	.section	.rodata
	.align 8
.LC29:
	.string	"Distance_thresh (%f) too big for integer arithmetic.\n"
	.align 8
.LC30:
	.string	"Either reduce it to <=15 or recompile with variable \"total\""
	.align 8
.LC31:
	.string	"as a float: see top \"defines\" section."
	.align 8
.LC32:
	.string	"Mask size (1.5*distance_thresh+1=%d) too big for image (%dx%d).\n"
	.text
	.globl	susan_smoothing
	.type	susan_smoothing, @function
susan_smoothing:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 152
	.cfi_offset 3, -24
	mov	DWORD PTR -132[rbp], edi
	mov	QWORD PTR -144[rbp], rsi
	mov	DWORD PTR -148[rbp], edx
	mov	DWORD PTR -152[rbp], ecx
	mov	QWORD PTR -160[rbp], r8
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -136[rbp], xmm0
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -48[rbp], rax
	cmp	DWORD PTR -132[rbp], 0
	jne	.L66
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, DWORD PTR -136[rbp]
	movsd	xmm0, QWORD PTR .LC27[rip]
	mulsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	add	eax, 1
	mov	DWORD PTR -116[rbp], eax
	jmp	.L67
.L66:
	mov	DWORD PTR -116[rbp], 1
.L67:
	mov	DWORD PTR -92[rbp], 0
	movss	xmm0, DWORD PTR -136[rbp]
	comiss	xmm0, DWORD PTR .LC28[rip]
	jbe	.L68
	cmp	DWORD PTR -92[rbp], 0
	jne	.L68
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, DWORD PTR -136[rbp]
	movq	rax, xmm2
	movq	xmm0, rax
	lea	rdi, .LC29[rip]
	mov	eax, 1
	call	printf@PLT
	lea	rdi, .LC30[rip]
	call	puts@PLT
	lea	rdi, .LC31[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L68:
	mov	eax, DWORD PTR -116[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -148[rbp]
	cmp	edx, eax
	jge	.L70
	mov	eax, DWORD PTR -116[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -152[rbp]
	cmp	edx, eax
	jl	.L71
.L70:
	mov	ecx, DWORD PTR -152[rbp]
	mov	edx, DWORD PTR -148[rbp]
	mov	eax, DWORD PTR -116[rbp]
	mov	esi, eax
	lea	rdi, .LC32[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 0
	call	exit@PLT
.L71:
	mov	eax, DWORD PTR -116[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -148[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	lea	ecx, [rax+rax]
	mov	eax, DWORD PTR -152[rbp]
	add	eax, ecx
	imul	eax, edx
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -40[rbp], rax
	mov	edi, DWORD PTR -116[rbp]
	lea	rcx, -152[rbp]
	lea	rdx, -148[rbp]
	mov	rsi, QWORD PTR -40[rbp]
	lea	rax, -144[rbp]
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	enlarge
	cmp	DWORD PTR -132[rbp], 0
	jne	.L72
	mov	eax, DWORD PTR -116[rbp]
	add	eax, eax
	add	eax, 1
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	sub	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	imul	eax, eax
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -56[rbp], rax
	movss	xmm0, DWORD PTR -136[rbp]
	mulss	xmm0, xmm0
	movss	xmm1, DWORD PTR .LC25[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR -68[rbp], xmm0
	mov	eax, DWORD PTR -116[rbp]
	neg	eax
	mov	DWORD PTR -112[rbp], eax
	jmp	.L73
.L76:
	mov	eax, DWORD PTR -116[rbp]
	neg	eax
	mov	DWORD PTR -108[rbp], eax
	jmp	.L74
.L75:
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, eax
	mov	edx, eax
	mov	eax, DWORD PTR -108[rbp]
	imul	eax, eax
	add	eax, edx
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	divss	xmm0, DWORD PTR -68[rbp]
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rax, xmm3
	movq	xmm0, rax
	call	exp@PLT
	movsd	xmm1, QWORD PTR .LC26[rip]
	mulsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	mov	DWORD PTR -104[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -56[rbp], rdx
	mov	edx, DWORD PTR -104[rbp]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -108[rbp], 1
.L74:
	mov	eax, DWORD PTR -108[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jle	.L75
	add	DWORD PTR -112[rbp], 1
.L73:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jle	.L76
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -112[rbp], eax
	jmp	.L77
.L86:
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -108[rbp], eax
	jmp	.L78
.L85:
	mov	DWORD PTR -96[rbp], 0
	mov	DWORD PTR -92[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rcx, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR -112[rbp]
	sub	eax, DWORD PTR -116[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -148[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	add	rdx, rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sub	rdx, rax
	lea	rax, [rcx+rdx]
	mov	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR -148[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -108[rbp]
	add	eax, ecx
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -116[rbp]
	neg	eax
	mov	DWORD PTR -100[rbp], eax
	jmp	.L79
.L82:
	mov	eax, DWORD PTR -116[rbp]
	neg	eax
	mov	DWORD PTR -104[rbp], eax
	jmp	.L80
.L81:
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -64[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -56[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rcx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	add	DWORD PTR -104[rbp], 1
.L80:
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jle	.L81
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	add	QWORD PTR -64[rbp], rax
	add	DWORD PTR -100[rbp], 1
.L79:
	mov	eax, DWORD PTR -100[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	jle	.L82
	mov	eax, DWORD PTR -96[rbp]
	sub	eax, 10000
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 0
	jne	.L83
	mov	ecx, DWORD PTR -148[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	rbx, QWORD PTR -48[rbp]
	lea	rdx, 1[rbx]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -108[rbp]
	mov	esi, DWORD PTR -112[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	median
	mov	BYTE PTR [rbx], al
	jmp	.L84
.L83:
	mov	eax, DWORD PTR -88[rbp]
	imul	edx, eax, -10000
	mov	eax, DWORD PTR -92[rbp]
	add	eax, edx
	cdq
	idiv	DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
.L84:
	add	DWORD PTR -108[rbp], 1
.L78:
	mov	eax, DWORD PTR -148[rbp]
	sub	eax, DWORD PTR -116[rbp]
	cmp	DWORD PTR -108[rbp], eax
	jl	.L85
	add	DWORD PTR -112[rbp], 1
.L77:
	mov	eax, DWORD PTR -152[rbp]
	sub	eax, DWORD PTR -116[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jl	.L86
	jmp	.L95
.L72:
	mov	DWORD PTR -112[rbp], 1
	jmp	.L88
.L93:
	mov	DWORD PTR -108[rbp], 1
	jmp	.L89
.L92:
	mov	DWORD PTR -96[rbp], 0
	mov	DWORD PTR -92[rbp], 0
	mov	rcx, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR -112[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -148[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	add	rax, rdx
	sub	rax, 1
	add	rax, rcx
	mov	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR -148[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -108[rbp]
	add	eax, ecx
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -64[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -64[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -64[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -64[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -64[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -64[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	add	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR -84[rbp]
	add	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	sub	eax, 100
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 0
	jne	.L90
	mov	ecx, DWORD PTR -148[rbp]
	mov	rax, QWORD PTR -144[rbp]
	mov	rbx, QWORD PTR -48[rbp]
	lea	rdx, 1[rbx]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -108[rbp]
	mov	esi, DWORD PTR -112[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	median
	mov	BYTE PTR [rbx], al
	jmp	.L91
.L90:
	mov	eax, DWORD PTR -88[rbp]
	imul	edx, eax, -100
	mov	eax, DWORD PTR -92[rbp]
	add	eax, edx
	cdq
	idiv	DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
.L91:
	add	DWORD PTR -108[rbp], 1
.L89:
	mov	eax, DWORD PTR -148[rbp]
	sub	eax, 1
	cmp	DWORD PTR -108[rbp], eax
	jl	.L92
	add	DWORD PTR -112[rbp], 1
.L88:
	mov	eax, DWORD PTR -152[rbp]
	sub	eax, 1
	cmp	DWORD PTR -112[rbp], eax
	jl	.L93
.L95:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	susan_smoothing, .-susan_smoothing
	.globl	edge_draw
	.type	edge_draw, @function
edge_draw:
.LFB17:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	DWORD PTR -56[rbp], ecx
	mov	DWORD PTR -60[rbp], r8d
	cmp	DWORD PTR -60[rbp], 0
	jne	.L97
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L98
.L100:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L99
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, QWORD PTR -48[rbp]
	mov	rcx, rax
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rcx
	sub	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], -1
.L99:
	add	QWORD PTR -16[rbp], 1
	add	DWORD PTR -20[rbp], 1
.L98:
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -56[rbp]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L100
.L97:
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L101
.L103:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L102
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, QWORD PTR -48[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
.L102:
	add	QWORD PTR -16[rbp], 1
	add	DWORD PTR -20[rbp], 1
.L101:
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -56[rbp]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L103
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	edge_draw, .-edge_draw
	.globl	susan_thin
	.type	susan_thin, @function
susan_thin:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	QWORD PTR -152[rbp], rdi
	mov	QWORD PTR -160[rbp], rsi
	mov	DWORD PTR -164[rbp], edx
	mov	DWORD PTR -168[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -120[rbp], 4
	jmp	.L105
.L139:
	mov	DWORD PTR -116[rbp], 4
	jmp	.L106
.L138:
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L107
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -112[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	add	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	lea	ecx, [rdx+rax]
	mov	eax, DWORD PTR -164[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	lea	edx, [rcx+rax]
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	lea	rcx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	add	rax, rax
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	add	rax, 1
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jne	.L108
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 100
.L108:
	cmp	DWORD PTR -108[rbp], 1
	jne	.L109
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 5
	ja	.L109
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -36[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L110
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	eax, DWORD PTR -40[rbp]
	add	eax, eax
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, eax
	mov	DWORD PTR -24[rbp], eax
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -28[rbp], eax
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 2
	mov	DWORD PTR -16[rbp], eax
	jmp	.L111
.L110:
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L112
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -40[rbp], 0
	mov	eax, DWORD PTR -36[rbp]
	add	eax, eax
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, eax
	mov	DWORD PTR -28[rbp], eax
	mov	edx, DWORD PTR -24[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 2
	mov	DWORD PTR -20[rbp], eax
	jmp	.L111
.L112:
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L113
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -28[rbp], 0
	mov	eax, DWORD PTR -48[rbp]
	add	eax, eax
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, eax
	mov	DWORD PTR -16[rbp], eax
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	sal	eax, 2
	mov	DWORD PTR -24[rbp], eax
	jmp	.L111
.L113:
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L114
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -24[rbp], 0
	mov	eax, DWORD PTR -44[rbp]
	add	eax, eax
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	add	eax, eax
	mov	DWORD PTR -20[rbp], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -40[rbp], eax
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	sal	eax, 2
	mov	DWORD PTR -28[rbp], eax
	jmp	.L111
.L114:
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L115
	mov	DWORD PTR -28[rbp], 0
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -44[rbp]
	add	eax, eax
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	add	eax, eax
	mov	DWORD PTR -20[rbp], eax
	mov	edx, DWORD PTR -48[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -48[rbp], eax
	mov	edx, DWORD PTR -24[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	sal	eax, 2
	mov	DWORD PTR -36[rbp], eax
	jmp	.L111
.L115:
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L116
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	eax, DWORD PTR -48[rbp]
	add	eax, eax
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, eax
	mov	DWORD PTR -16[rbp], eax
	mov	edx, DWORD PTR -44[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	sal	eax, 2
	mov	DWORD PTR -40[rbp], eax
	jmp	.L111
.L116:
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L117
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -36[rbp]
	add	eax, eax
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, eax
	mov	DWORD PTR -28[rbp], eax
	mov	edx, DWORD PTR -48[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -48[rbp], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	sal	eax, 2
	mov	DWORD PTR -44[rbp], eax
	jmp	.L111
.L117:
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L111
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -28[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	eax, DWORD PTR -24[rbp]
	add	eax, eax
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, eax
	mov	DWORD PTR -40[rbp], eax
	mov	edx, DWORD PTR -44[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	sal	eax, 2
	mov	DWORD PTR -48[rbp], eax
.L111:
	mov	DWORD PTR -140[rbp], 0
	mov	DWORD PTR -124[rbp], 0
	jmp	.L118
.L122:
	mov	DWORD PTR -128[rbp], 0
	jmp	.L119
.L121:
	mov	edx, DWORD PTR -124[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	cmp	DWORD PTR -140[rbp], eax
	jge	.L120
	mov	edx, DWORD PTR -124[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	cdqe
	mov	eax, DWORD PTR -48[rbp+rax*4]
	mov	DWORD PTR -140[rbp], eax
	mov	eax, DWORD PTR -124[rbp]
	mov	DWORD PTR -136[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	mov	DWORD PTR -132[rbp], eax
.L120:
	add	DWORD PTR -128[rbp], 1
.L119:
	cmp	DWORD PTR -128[rbp], 2
	jle	.L121
	add	DWORD PTR -124[rbp], 1
.L118:
	cmp	DWORD PTR -124[rbp], 2
	jle	.L122
	cmp	DWORD PTR -140[rbp], 0
	jle	.L109
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 3
	ja	.L123
	mov	edx, DWORD PTR -120[rbp]
	mov	eax, DWORD PTR -136[rbp]
	add	eax, edx
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -132[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 4
	jmp	.L124
.L123:
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	ecx, DWORD PTR -120[rbp]
	mov	eax, DWORD PTR -136[rbp]
	add	eax, ecx
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -132[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rcx
	add	edx, 1
	mov	BYTE PTR [rax], dl
.L124:
	mov	eax, DWORD PTR -136[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -132[rbp]
	add	eax, edx
	cmp	eax, 2
	jg	.L109
	mov	eax, DWORD PTR -136[rbp]
	sub	eax, 1
	add	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -132[rbp]
	sub	eax, 2
	add	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -120[rbp], 3
	jg	.L125
	mov	DWORD PTR -120[rbp], 4
.L125:
	cmp	DWORD PTR -116[rbp], 3
	jg	.L109
	mov	DWORD PTR -116[rbp], 4
.L109:
	cmp	DWORD PTR -108[rbp], 2
	jne	.L126
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -104[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -92[rbp], eax
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -100[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -96[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -92[rbp]
	add	eax, edx
	cmp	eax, 2
	jne	.L127
	mov	eax, DWORD PTR -104[rbp]
	or	eax, DWORD PTR -92[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -100[rbp]
	or	eax, DWORD PTR -96[rbp]
	and	eax, edx
	test	eax, eax
	je	.L127
	cmp	DWORD PTR -104[rbp], 0
	je	.L128
	cmp	DWORD PTR -100[rbp], 0
	je	.L129
	mov	DWORD PTR -128[rbp], 0
	mov	DWORD PTR -124[rbp], -1
	jmp	.L130
.L129:
	mov	DWORD PTR -128[rbp], -1
	mov	DWORD PTR -124[rbp], 0
	jmp	.L130
.L128:
	cmp	DWORD PTR -100[rbp], 0
	je	.L131
	mov	DWORD PTR -128[rbp], 1
	mov	DWORD PTR -124[rbp], 0
	jmp	.L130
.L131:
	mov	DWORD PTR -128[rbp], 0
	mov	DWORD PTR -124[rbp], 1
.L130:
	mov	edx, DWORD PTR -120[rbp]
	mov	eax, DWORD PTR -124[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -112[rbp]
	divss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	comisd	xmm0, QWORD PTR .LC33[rip]
	jbe	.L142
	cmp	DWORD PTR -128[rbp], 0
	jne	.L134
	mov	eax, DWORD PTR -124[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -120[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	jbe	.L134
	mov	eax, DWORD PTR -124[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -120[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	jbe	.L134
	mov	eax, DWORD PTR -124[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -120[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	ja	.L135
.L134:
	cmp	DWORD PTR -124[rbp], 0
	jne	.L142
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -128[rbp]
	add	eax, eax
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	jbe	.L142
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -128[rbp]
	add	eax, eax
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	jbe	.L142
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -128[rbp]
	add	eax, eax
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	jbe	.L142
.L135:
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 100
	mov	edx, DWORD PTR -120[rbp]
	mov	eax, DWORD PTR -124[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 3
	jmp	.L142
.L127:
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -76[rbp], eax
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, DWORD PTR -84[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	add	eax, edx
	cmp	eax, 2
	jne	.L126
	mov	eax, DWORD PTR -76[rbp]
	or	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -88[rbp]
	or	eax, DWORD PTR -80[rbp]
	and	eax, edx
	test	eax, eax
	je	.L126
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	cl
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	or	eax, ecx
	movzx	eax, al
	and	eax, DWORD PTR -88[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	sil
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	or	eax, esi
	movzx	eax, al
	and	eax, DWORD PTR -76[rbp]
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	sil
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	or	eax, esi
	movzx	eax, al
	and	eax, DWORD PTR -84[rbp]
	or	ecx, eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	sil
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	or	eax, esi
	movzx	eax, al
	and	eax, DWORD PTR -80[rbp]
	or	eax, ecx
	test	eax, eax
	je	.L126
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 100
	sub	DWORD PTR -120[rbp], 1
	sub	DWORD PTR -116[rbp], 2
	cmp	DWORD PTR -120[rbp], 3
	jg	.L136
	mov	DWORD PTR -120[rbp], 4
.L136:
	cmp	DWORD PTR -116[rbp], 3
	jg	.L126
	mov	DWORD PTR -116[rbp], 4
	jmp	.L126
.L142:
	nop
.L126:
	cmp	DWORD PTR -108[rbp], 2
	jle	.L107
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -76[rbp], eax
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, DWORD PTR -84[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -80[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -76[rbp]
	add	eax, edx
	cmp	eax, 1
	jle	.L107
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -104[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 7
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	or	eax, DWORD PTR -88[rbp]
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	or	eax, DWORD PTR -84[rbp]
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	or	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	or	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -60[rbp], eax
	mov	edx, DWORD PTR -72[rbp]
	mov	eax, DWORD PTR -68[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -64[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -60[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, DWORD PTR -68[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	and	eax, DWORD PTR -64[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, DWORD PTR -60[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	and	eax, DWORD PTR -72[rbp]
	add	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	cmp	eax, 1
	jg	.L107
	mov	eax, DWORD PTR -120[rbp]
	imul	eax, DWORD PTR -164[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 100
	sub	DWORD PTR -120[rbp], 1
	sub	DWORD PTR -116[rbp], 2
	cmp	DWORD PTR -120[rbp], 3
	jg	.L137
	mov	DWORD PTR -120[rbp], 4
.L137:
	cmp	DWORD PTR -116[rbp], 3
	jg	.L107
	mov	DWORD PTR -116[rbp], 4
.L107:
	add	DWORD PTR -116[rbp], 1
.L106:
	mov	eax, DWORD PTR -164[rbp]
	sub	eax, 4
	cmp	DWORD PTR -116[rbp], eax
	jl	.L138
	add	DWORD PTR -120[rbp], 1
.L105:
	mov	eax, DWORD PTR -168[rbp]
	sub	eax, 4
	cmp	DWORD PTR -120[rbp], eax
	jl	.L139
	nop
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L140
	call	__stack_chk_fail@PLT
.L140:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	susan_thin, .-susan_thin
	.globl	susan_edges
	.type	susan_edges, @function
susan_edges:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	DWORD PTR -100[rbp], r8d
	mov	DWORD PTR -104[rbp], r9d
	mov	eax, DWORD PTR -104[rbp]
	imul	eax, DWORD PTR 16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -52[rbp], 3
	jmp	.L144
.L148:
	mov	DWORD PTR -48[rbp], 3
	jmp	.L145
.L147:
	mov	DWORD PTR -28[rbp], 100
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	add	QWORD PTR -8[rbp], 2
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jg	.L146
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -100[rbp]
	sub	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
.L146:
	add	DWORD PTR -48[rbp], 1
.L145:
	mov	eax, DWORD PTR -104[rbp]
	sub	eax, 3
	cmp	DWORD PTR -48[rbp], eax
	jl	.L147
	add	DWORD PTR -52[rbp], 1
.L144:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 3
	cmp	DWORD PTR -52[rbp], eax
	jl	.L148
	mov	DWORD PTR -52[rbp], 4
	jmp	.L149
.L176:
	mov	DWORD PTR -48[rbp], 4
	jmp	.L150
.L175:
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L151
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -28[rbp], 600
	jle	.L152
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	add	QWORD PTR -8[rbp], 2
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	imul	eax, eax
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, eax
	add	eax, edx
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rax, xmm3
	movq	xmm0, rax
	call	sqrt@PLT
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -60[rbp], xmm0
	pxor	xmm0, xmm0
	cvtss2sd	xmm0, DWORD PTR -60[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -28[rbp]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movsd	xmm1, QWORD PTR .LC34[rip]
	mulsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L183
	mov	DWORD PTR -56[rbp], 0
	cmp	DWORD PTR -24[rbp], 0
	jne	.L155
	movss	xmm0, DWORD PTR .LC35[rip]
	movss	DWORD PTR -60[rbp], xmm0
	jmp	.L156
.L155:
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -24[rbp]
	divss	xmm0, xmm1
	movss	DWORD PTR -60[rbp], xmm0
.L156:
	pxor	xmm0, xmm0
	comiss	xmm0, DWORD PTR -60[rbp]
	jbe	.L184
	movss	xmm0, DWORD PTR -60[rbp]
	movss	xmm1, DWORD PTR .LC25[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR -60[rbp], xmm0
	mov	DWORD PTR -36[rbp], -1
	jmp	.L159
.L184:
	mov	DWORD PTR -36[rbp], 1
.L159:
	movss	xmm0, DWORD PTR .LC37[rip]
	comiss	xmm0, DWORD PTR -60[rbp]
	jbe	.L185
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 1
	jmp	.L162
.L185:
	movss	xmm0, DWORD PTR -60[rbp]
	comiss	xmm0, DWORD PTR .LC38[rip]
	jbe	.L186
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 0
	jmp	.L162
.L186:
	cmp	DWORD PTR -36[rbp], 0
	jle	.L165
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 1
	jmp	.L162
.L165:
	mov	DWORD PTR -44[rbp], -1
	mov	DWORD PTR -40[rbp], 1
.L162:
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jle	.L166
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	sub	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L166
	mov	eax, DWORD PTR -44[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, eax
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jle	.L166
	mov	eax, DWORD PTR -44[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	lea	ecx, [rax+rax]
	mov	eax, edx
	sub	eax, ecx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L166
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 1
	jmp	.L166
.L183:
	mov	DWORD PTR -56[rbp], 1
	jmp	.L166
.L152:
	mov	DWORD PTR -56[rbp], 1
.L166:
	cmp	DWORD PTR -56[rbp], 1
	jne	.L151
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	sub	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	add	QWORD PTR -8[rbp], 2
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	eax, eax
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sal	eax, 2
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	DWORD PTR -20[rbp], eax
	movzx	edx, BYTE PTR -61[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L167
	movss	xmm0, DWORD PTR .LC35[rip]
	movss	DWORD PTR -60[rbp], xmm0
	jmp	.L168
.L167:
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -24[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -20[rbp]
	divss	xmm0, xmm1
	movss	DWORD PTR -60[rbp], xmm0
.L168:
	movss	xmm0, DWORD PTR .LC37[rip]
	comiss	xmm0, DWORD PTR -60[rbp]
	jbe	.L187
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 1
	jmp	.L171
.L187:
	movss	xmm0, DWORD PTR -60[rbp]
	comiss	xmm0, DWORD PTR .LC38[rip]
	jbe	.L188
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 0
	jmp	.L171
.L188:
	cmp	DWORD PTR -36[rbp], 0
	jle	.L174
	mov	DWORD PTR -44[rbp], -1
	mov	DWORD PTR -40[rbp], 1
	jmp	.L171
.L174:
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 1
.L171:
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jle	.L151
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	sub	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L151
	mov	eax, DWORD PTR -44[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, eax
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jle	.L151
	mov	eax, DWORD PTR -44[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	lea	ecx, [rax+rax]
	mov	eax, edx
	sub	eax, ecx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L151
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 2
.L151:
	add	DWORD PTR -48[rbp], 1
.L150:
	mov	eax, DWORD PTR -104[rbp]
	sub	eax, 4
	cmp	DWORD PTR -48[rbp], eax
	jl	.L175
	add	DWORD PTR -52[rbp], 1
.L149:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 4
	cmp	DWORD PTR -52[rbp], eax
	jl	.L176
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	susan_edges, .-susan_edges
	.globl	susan_edges_small
	.type	susan_edges_small, @function
susan_edges_small:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	DWORD PTR -100[rbp], r8d
	mov	DWORD PTR -104[rbp], r9d
	mov	eax, DWORD PTR -104[rbp]
	imul	eax, DWORD PTR 16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -100[rbp], 730
	mov	DWORD PTR -52[rbp], 1
	jmp	.L190
.L194:
	mov	DWORD PTR -48[rbp], 1
	jmp	.L191
.L193:
	mov	DWORD PTR -28[rbp], 100
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	add	QWORD PTR -8[rbp], 2
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jg	.L192
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -100[rbp]
	sub	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
.L192:
	add	DWORD PTR -48[rbp], 1
.L191:
	mov	eax, DWORD PTR -104[rbp]
	sub	eax, 1
	cmp	DWORD PTR -48[rbp], eax
	jl	.L193
	add	DWORD PTR -52[rbp], 1
.L190:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 1
	cmp	DWORD PTR -52[rbp], eax
	jl	.L194
	mov	DWORD PTR -52[rbp], 2
	jmp	.L195
.L222:
	mov	DWORD PTR -48[rbp], 2
	jmp	.L196
.L221:
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jle	.L197
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -28[rbp], 250
	jle	.L198
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	add	QWORD PTR -8[rbp], 2
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	imul	eax, eax
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, eax
	add	eax, edx
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	pxor	xmm3, xmm3
	cvtss2sd	xmm3, xmm0
	movq	rax, xmm3
	movq	xmm0, rax
	call	sqrt@PLT
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -60[rbp], xmm0
	pxor	xmm0, xmm0
	cvtss2sd	xmm0, DWORD PTR -60[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -28[rbp]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm1
	movsd	xmm1, QWORD PTR .LC39[rip]
	mulsd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L229
	mov	DWORD PTR -56[rbp], 0
	cmp	DWORD PTR -24[rbp], 0
	jne	.L201
	movss	xmm0, DWORD PTR .LC35[rip]
	movss	DWORD PTR -60[rbp], xmm0
	jmp	.L202
.L201:
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -20[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -24[rbp]
	divss	xmm0, xmm1
	movss	DWORD PTR -60[rbp], xmm0
.L202:
	pxor	xmm0, xmm0
	comiss	xmm0, DWORD PTR -60[rbp]
	jbe	.L230
	movss	xmm0, DWORD PTR -60[rbp]
	movss	xmm1, DWORD PTR .LC25[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR -60[rbp], xmm0
	mov	DWORD PTR -36[rbp], -1
	jmp	.L205
.L230:
	mov	DWORD PTR -36[rbp], 1
.L205:
	movss	xmm0, DWORD PTR .LC37[rip]
	comiss	xmm0, DWORD PTR -60[rbp]
	jbe	.L231
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 1
	jmp	.L208
.L231:
	movss	xmm0, DWORD PTR -60[rbp]
	comiss	xmm0, DWORD PTR .LC38[rip]
	jbe	.L232
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 0
	jmp	.L208
.L232:
	cmp	DWORD PTR -36[rbp], 0
	jle	.L211
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 1
	jmp	.L208
.L211:
	mov	DWORD PTR -44[rbp], -1
	mov	DWORD PTR -40[rbp], 1
.L208:
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jle	.L212
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	sub	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L212
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 1
	jmp	.L212
.L229:
	mov	DWORD PTR -56[rbp], 1
	jmp	.L212
.L198:
	mov	DWORD PTR -56[rbp], 1
.L212:
	cmp	DWORD PTR -56[rbp], 1
	jne	.L197
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	add	QWORD PTR -8[rbp], 2
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	sub	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -61[rbp], al
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -24[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -20[rbp], eax
	movzx	eax, BYTE PTR -61[rbp]
	add	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L213
	movss	xmm0, DWORD PTR .LC35[rip]
	movss	DWORD PTR -60[rbp], xmm0
	jmp	.L214
.L213:
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -24[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -20[rbp]
	divss	xmm0, xmm1
	movss	DWORD PTR -60[rbp], xmm0
.L214:
	movss	xmm0, DWORD PTR .LC37[rip]
	comiss	xmm0, DWORD PTR -60[rbp]
	jbe	.L233
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 1
	jmp	.L217
.L233:
	movss	xmm0, DWORD PTR -60[rbp]
	comiss	xmm0, DWORD PTR .LC38[rip]
	jbe	.L234
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 0
	jmp	.L217
.L234:
	cmp	DWORD PTR -36[rbp], 0
	jle	.L220
	mov	DWORD PTR -44[rbp], -1
	mov	DWORD PTR -40[rbp], 1
	jmp	.L217
.L220:
	mov	DWORD PTR -44[rbp], 1
	mov	DWORD PTR -40[rbp], 1
.L217:
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jle	.L197
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -44[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	sub	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L197
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, DWORD PTR -104[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 2
.L197:
	add	DWORD PTR -48[rbp], 1
.L196:
	mov	eax, DWORD PTR -104[rbp]
	sub	eax, 2
	cmp	DWORD PTR -48[rbp], eax
	jl	.L221
	add	DWORD PTR -52[rbp], 1
.L195:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 2
	cmp	DWORD PTR -52[rbp], eax
	jl	.L222
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	susan_edges_small, .-susan_edges_small
	.globl	corner_draw
	.type	corner_draw, @function
corner_draw:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	DWORD PTR -40[rbp], ecx
	mov	DWORD PTR -12[rbp], 0
	jmp	.L236
.L238:
	cmp	DWORD PTR -40[rbp], 0
	jne	.L237
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	sub	eax, 1
	imul	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, rcx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sub	rax, 2
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], -1
	add	DWORD PTR -12[rbp], 1
	jmp	.L236
.L237:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	imul	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, [rcx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -12[rbp], 1
.L236:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 7
	jne	.L238
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	corner_draw, .-corner_draw
	.section	.rodata
.LC42:
	.string	"Too many corners.\n"
	.text
	.globl	susan_corners
	.type	susan_corners, @function
susan_corners:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	DWORD PTR -108[rbp], ecx
	mov	QWORD PTR -120[rbp], r8
	mov	DWORD PTR -112[rbp], r9d
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR 16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR 16[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR 16[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -60[rbp], 5
	jmp	.L240
.L268:
	mov	DWORD PTR -56[rbp], 5
	jmp	.L241
.L267:
	mov	DWORD PTR -68[rbp], 100
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	add	QWORD PTR -16[rbp], 2
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	jge	.L242
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	edx, BYTE PTR -69[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -52[rbp], eax
	add	QWORD PTR -16[rbp], 2
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	edx, BYTE PTR -69[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	mov	ecx, eax
	lea	edx, 0[0+rax*4]
	mov	eax, ecx
	sub	eax, edx
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	edx, BYTE PTR -69[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -52[rbp], eax
	movzx	eax, BYTE PTR -69[rbp]
	add	eax, eax
	add	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	sub	DWORD PTR -52[rbp], eax
	movzx	edx, BYTE PTR -69[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	edx, BYTE PTR -69[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -69[rbp], al
	movzx	eax, BYTE PTR -69[rbp]
	add	DWORD PTR -52[rbp], eax
	movzx	edx, BYTE PTR -69[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, eax
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	imul	eax, eax
	mov	DWORD PTR -40[rbp], eax
	mov	edx, DWORD PTR -44[rbp]
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	imul	eax, eax
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	cmp	DWORD PTR -64[rbp], eax
	jle	.L242
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jge	.L243
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -48[rbp]
	mov	eax, DWORD PTR -52[rbp]
	cdq
	mov	eax, edx
	xor	eax, DWORD PTR -52[rbp]
	sub	eax, edx
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	divss	xmm0, xmm1
	movss	DWORD PTR -36[rbp], xmm0
	cmp	DWORD PTR -52[rbp], 0
	jns	.L244
	mov	eax, -1
	jmp	.L245
.L244:
	mov	eax, 1
.L245:
	mov	DWORD PTR -64[rbp], eax
	pxor	xmm0, xmm0
	comiss	xmm0, DWORD PTR -36[rbp]
	jbe	.L280
	pxor	xmm0, xmm0
	cvtss2sd	xmm0, DWORD PTR -36[rbp]
	movsd	xmm1, QWORD PTR .LC40[rip]
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L248
.L280:
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, DWORD PTR -36[rbp]
	movsd	xmm0, QWORD PTR .LC40[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L248:
	mov	edx, DWORD PTR -60[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -64[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	movss	xmm0, DWORD PTR -36[rbp]
	movaps	xmm1, xmm0
	addss	xmm1, xmm0
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jbe	.L281
	movss	xmm0, DWORD PTR -36[rbp]
	addss	xmm0, xmm0
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR .LC40[rip]
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L251
.L281:
	movss	xmm0, DWORD PTR -36[rbp]
	addss	xmm0, xmm0
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC40[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L251:
	mov	ecx, DWORD PTR -60[rbp]
	add	eax, ecx
	imul	eax, DWORD PTR -112[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -64[rbp]
	add	eax, eax
	add	eax, ecx
	movsx	rcx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rcx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rdx+rax]
	movss	xmm1, DWORD PTR -36[rbp]
	movss	xmm0, DWORD PTR .LC41[rip]
	mulss	xmm1, xmm0
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jbe	.L282
	movss	xmm1, DWORD PTR -36[rbp]
	movss	xmm0, DWORD PTR .LC41[rip]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR .LC40[rip]
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L254
.L282:
	movss	xmm1, DWORD PTR -36[rbp]
	movss	xmm0, DWORD PTR .LC41[rip]
	mulss	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC40[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L254:
	mov	edx, DWORD PTR -60[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	lea	esi, [rdx+rax]
	mov	edx, DWORD PTR -64[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	eax, esi
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, ecx
	mov	DWORD PTR -64[rbp], eax
	jmp	.L255
.L243:
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -48[rbp]
	cdq
	mov	eax, edx
	xor	eax, DWORD PTR -48[rbp]
	sub	eax, edx
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	divss	xmm0, xmm1
	movss	DWORD PTR -36[rbp], xmm0
	cmp	DWORD PTR -48[rbp], 0
	jns	.L256
	mov	eax, -1
	jmp	.L257
.L256:
	mov	eax, 1
.L257:
	mov	DWORD PTR -64[rbp], eax
	mov	edx, DWORD PTR -60[rbp]
	mov	eax, DWORD PTR -64[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	edx, eax
	pxor	xmm0, xmm0
	comiss	xmm0, DWORD PTR -36[rbp]
	jbe	.L283
	pxor	xmm0, xmm0
	cvtss2sd	xmm0, DWORD PTR -36[rbp]
	movsd	xmm1, QWORD PTR .LC40[rip]
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L260
.L283:
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, DWORD PTR -36[rbp]
	movsd	xmm0, QWORD PTR .LC40[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L260:
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -64[rbp]
	lea	ecx, [rax+rax]
	mov	eax, DWORD PTR -60[rbp]
	add	eax, ecx
	imul	eax, DWORD PTR -112[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	ecx, eax
	movss	xmm0, DWORD PTR -36[rbp]
	movaps	xmm1, xmm0
	addss	xmm1, xmm0
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jbe	.L284
	movss	xmm0, DWORD PTR -36[rbp]
	addss	xmm0, xmm0
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR .LC40[rip]
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L263
.L284:
	movss	xmm0, DWORD PTR -36[rbp]
	addss	xmm0, xmm0
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC40[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L263:
	add	eax, ecx
	movsx	rcx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rcx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rdx+rax]
	mov	edx, DWORD PTR -64[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	eax, DWORD PTR -60[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	edx, eax
	movss	xmm1, DWORD PTR -36[rbp]
	movss	xmm0, DWORD PTR .LC41[rip]
	mulss	xmm1, xmm0
	pxor	xmm0, xmm0
	comiss	xmm0, xmm1
	jbe	.L285
	movss	xmm1, DWORD PTR -36[rbp]
	movss	xmm0, DWORD PTR .LC41[rip]
	mulss	xmm0, xmm1
	cvtss2sd	xmm0, xmm0
	movsd	xmm1, QWORD PTR .LC40[rip]
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L266
.L285:
	movss	xmm1, DWORD PTR -36[rbp]
	movss	xmm0, DWORD PTR .LC41[rip]
	mulss	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC40[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L266:
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, ecx
	mov	DWORD PTR -64[rbp], eax
.L255:
	cmp	DWORD PTR -64[rbp], 290
	jle	.L242
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -108[rbp]
	sub	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -52[rbp]
	imul	eax, eax, 51
	mov	edx, DWORD PTR -60[rbp]
	mov	ecx, edx
	imul	ecx, DWORD PTR -112[rbp]
	mov	edx, DWORD PTR -56[rbp]
	add	edx, ecx
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -32[rbp]
	add	rcx, rdx
	cdq
	idiv	DWORD PTR -68[rbp]
	mov	DWORD PTR [rcx], eax
	mov	eax, DWORD PTR -48[rbp]
	imul	eax, eax, 51
	mov	edx, DWORD PTR -60[rbp]
	mov	ecx, edx
	imul	ecx, DWORD PTR -112[rbp]
	mov	edx, DWORD PTR -56[rbp]
	add	edx, ecx
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -24[rbp]
	add	rcx, rdx
	cdq
	idiv	DWORD PTR -68[rbp]
	mov	DWORD PTR [rcx], eax
.L242:
	add	DWORD PTR -56[rbp], 1
.L241:
	mov	eax, DWORD PTR -112[rbp]
	sub	eax, 5
	cmp	DWORD PTR -56[rbp], eax
	jl	.L267
	add	DWORD PTR -60[rbp], 1
.L240:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 5
	cmp	DWORD PTR -60[rbp], eax
	jl	.L268
	mov	DWORD PTR -68[rbp], 0
	mov	DWORD PTR -60[rbp], 5
	jmp	.L269
.L273:
	mov	DWORD PTR -56[rbp], 5
	jmp	.L270
.L272:
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L271
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	jl	.L271
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	DWORD PTR 8[rax], 0
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR [rcx]
	mov	DWORD PTR 12[rdx], eax
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR [rcx]
	mov	DWORD PTR 16[rdx], eax
	mov	eax, DWORD PTR -60[rbp]
	imul	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rdx, rax
	movzx	eax, cl
	mov	DWORD PTR 20[rdx], eax
	add	DWORD PTR -68[rbp], 1
	cmp	DWORD PTR -68[rbp], 15000
	jne	.L271
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 18
	mov	esi, 1
	lea	rdi, .LC42[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L271:
	add	DWORD PTR -56[rbp], 1
.L270:
	mov	eax, DWORD PTR -112[rbp]
	sub	eax, 5
	cmp	DWORD PTR -56[rbp], eax
	jl	.L272
	add	DWORD PTR -60[rbp], 1
.L269:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 5
	cmp	DWORD PTR -60[rbp], eax
	jl	.L273
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	DWORD PTR 8[rax], 7
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	susan_corners, .-susan_corners
	.globl	susan_corners_quick
	.type	susan_corners_quick, @function
susan_corners_quick:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	DWORD PTR -76[rbp], ecx
	mov	QWORD PTR -88[rbp], r8
	mov	DWORD PTR -80[rbp], r9d
	mov	eax, DWORD PTR -80[rbp]
	imul	eax, DWORD PTR 16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -32[rbp], 7
	jmp	.L287
.L291:
	mov	DWORD PTR -28[rbp], 7
	jmp	.L288
.L290:
	mov	DWORD PTR -36[rbp], 100
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	add	QWORD PTR -16[rbp], 2
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sub	rax, 6
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sub	rax, 5
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	sub	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L289
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR [rdx], eax
.L289:
	add	DWORD PTR -28[rbp], 1
.L288:
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 7
	cmp	DWORD PTR -28[rbp], eax
	jl	.L290
	add	DWORD PTR -32[rbp], 1
.L287:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 7
	cmp	DWORD PTR -32[rbp], eax
	jl	.L291
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -32[rbp], 7
	jmp	.L292
.L296:
	mov	DWORD PTR -28[rbp], 7
	jmp	.L293
.L295:
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jle	.L294
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	sal	rax, 2
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 3
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L294
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	DWORD PTR 8[rax], 0
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rdx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, ecx
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	imul	rcx, rcx, 1374389535
	shr	rcx, 32
	sar	ecx, 3
	sar	eax, 31
	mov	esi, eax
	mov	eax, ecx
	sub	eax, esi
	mov	DWORD PTR 20[rdx], eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rdx+rax]
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	edx, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	esi, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, esi
	cdqe
	lea	rsi, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	esi, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rsi+rax]
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -24[rbp]
	lea	ecx, [rdx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	edx, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	esi, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, esi
	cdqe
	lea	rsi, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	esi, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rsi+rax]
	mov	eax, edx
	sub	eax, ecx
	add	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rdx+rax]
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	edx, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	esi, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, esi
	cdqe
	lea	rsi, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	esi, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	movsx	rcx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 2
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rsi+rax]
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -20[rbp]
	lea	ecx, [rdx+rax]
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	ecx, eax
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cdqe
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	edx, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, -2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	esi, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, esi
	cdqe
	lea	rsi, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	esi, [rcx+rax]
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	movsx	rcx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	esi, eax
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	imul	eax, DWORD PTR -80[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	lea	rcx, 2[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	ecx, [rsi+rax]
	mov	eax, edx
	sub	eax, ecx
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	imul	rcx, rcx, -2004318071
	shr	rcx, 32
	add	ecx, eax
	sar	ecx, 3
	sar	eax, 31
	mov	esi, eax
	mov	eax, ecx
	sub	eax, esi
	mov	DWORD PTR 12[rdx], eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -20[rbp]
	movsx	rcx, eax
	imul	rcx, rcx, -2004318071
	shr	rcx, 32
	add	ecx, eax
	sar	ecx, 3
	sar	eax, 31
	mov	esi, eax
	mov	eax, ecx
	sub	eax, esi
	mov	DWORD PTR 16[rdx], eax
	add	DWORD PTR -36[rbp], 1
	cmp	DWORD PTR -36[rbp], 15000
	jne	.L294
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 18
	mov	esi, 1
	lea	rdi, .LC42[rip]
	call	fwrite@PLT
	mov	edi, 1
	call	exit@PLT
.L294:
	add	DWORD PTR -28[rbp], 1
.L293:
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 7
	cmp	DWORD PTR -28[rbp], eax
	jl	.L295
	add	DWORD PTR -32[rbp], 1
.L292:
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, 7
	cmp	DWORD PTR -32[rbp], eax
	jl	.L296
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	DWORD PTR 8[rax], 7
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	susan_corners_quick, .-susan_corners_quick
	.section	.rodata
.LC44:
	.string	"No argument following -d"
.LC45:
	.string	"No argument following -t"
	.text
	.globl	main
	.type	main, @function
main:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	r11, -356352[rsp]
.LPSRL0:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL0
	sub	rsp, 3856
	mov	DWORD PTR -360196[rbp], edi
	mov	QWORD PTR -360208[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movss	xmm0, DWORD PTR .LC43[rip]
	movss	DWORD PTR -360180[rbp], xmm0
	mov	DWORD PTR -360176[rbp], 3
	mov	DWORD PTR -360172[rbp], 20
	mov	DWORD PTR -360168[rbp], 0
	mov	DWORD PTR -360164[rbp], 1
	mov	DWORD PTR -360160[rbp], 0
	mov	DWORD PTR -360156[rbp], 0
	mov	DWORD PTR -360152[rbp], 0
	mov	DWORD PTR -360144[rbp], 1850
	mov	DWORD PTR -360140[rbp], 2650
	mov	DWORD PTR -360148[rbp], 0
	cmp	DWORD PTR -360196[rbp], 2
	jg	.L298
	mov	eax, 0
	call	usage
.L298:
	mov	rax, QWORD PTR -360208[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rcx, -360184[rbp]
	lea	rdx, -360188[rbp]
	lea	rsi, -360136[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	get_image
	jmp	.L299
.L318:
	mov	eax, DWORD PTR -360176[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -360208[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -360104[rbp], rax
	mov	rax, QWORD PTR -360104[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	jne	.L300
	add	QWORD PTR -360104[rbp], 1
	mov	rax, QWORD PTR -360104[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	sub	eax, 51
	cmp	eax, 65
	ja	.L317
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L303[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L303[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L303:
	.long	.L312-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L311-.L303
	.long	.L310-.L303
	.long	.L309-.L303
	.long	.L308-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L317-.L303
	.long	.L307-.L303
	.long	.L317-.L303
	.long	.L306-.L303
	.long	.L305-.L303
	.long	.L317-.L303
	.long	.L304-.L303
	.long	.L302-.L303
	.text
.L304:
	mov	DWORD PTR -360148[rbp], 0
	jmp	.L317
.L308:
	mov	DWORD PTR -360148[rbp], 1
	jmp	.L317
.L310:
	mov	DWORD PTR -360148[rbp], 2
	jmp	.L317
.L306:
	mov	DWORD PTR -360168[rbp], 1
	jmp	.L317
.L307:
	mov	DWORD PTR -360164[rbp], 0
	jmp	.L317
.L311:
	mov	DWORD PTR -360156[rbp], 1
	jmp	.L317
.L312:
	mov	DWORD PTR -360160[rbp], 1
	jmp	.L317
.L305:
	mov	DWORD PTR -360152[rbp], 1
	jmp	.L317
.L309:
	add	DWORD PTR -360176[rbp], 1
	mov	eax, DWORD PTR -360176[rbp]
	cmp	eax, DWORD PTR -360196[rbp]
	jl	.L313
	lea	rdi, .LC44[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L313:
	mov	eax, DWORD PTR -360176[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -360208[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atof@PLT
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR -360180[rbp], xmm0
	pxor	xmm0, xmm0
	comiss	xmm0, DWORD PTR -360180[rbp]
	ja	.L337
	jmp	.L317
.L337:
	mov	DWORD PTR -360160[rbp], 1
	jmp	.L317
.L302:
	add	DWORD PTR -360176[rbp], 1
	mov	eax, DWORD PTR -360176[rbp]
	cmp	eax, DWORD PTR -360196[rbp]
	jl	.L316
	lea	rdi, .LC45[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L316:
	mov	eax, DWORD PTR -360176[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -360208[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR -360172[rbp], eax
	jmp	.L317
.L300:
	mov	eax, 0
	call	usage
.L317:
	add	DWORD PTR -360176[rbp], 1
.L299:
	mov	eax, DWORD PTR -360176[rbp]
	cmp	eax, DWORD PTR -360196[rbp]
	jl	.L318
	cmp	DWORD PTR -360168[rbp], 1
	jne	.L319
	cmp	DWORD PTR -360148[rbp], 0
	jne	.L319
	mov	DWORD PTR -360148[rbp], 1
.L319:
	cmp	DWORD PTR -360148[rbp], 2
	je	.L320
	cmp	DWORD PTR -360148[rbp], 2
	jg	.L321
	cmp	DWORD PTR -360148[rbp], 0
	je	.L322
	cmp	DWORD PTR -360148[rbp], 1
	je	.L323
	jmp	.L321
.L322:
	mov	ecx, DWORD PTR -360172[rbp]
	lea	rax, -360128[rbp]
	mov	edx, 2
	mov	esi, ecx
	mov	rdi, rax
	mov	eax, 0
	call	setup_brightness_lut
	mov	r8, QWORD PTR -360128[rbp]
	mov	ecx, DWORD PTR -360184[rbp]
	mov	edx, DWORD PTR -360188[rbp]
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, DWORD PTR -360180[rbp]
	movq	rdi, xmm1
	mov	rsi, QWORD PTR -360136[rbp]
	mov	eax, DWORD PTR -360160[rbp]
	movq	xmm0, rdi
	mov	edi, eax
	mov	eax, 1
	call	susan_smoothing
	jmp	.L321
.L323:
	mov	edx, DWORD PTR -360188[rbp]
	mov	eax, DWORD PTR -360184[rbp]
	imul	eax, edx
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -360120[rbp], rax
	mov	ecx, DWORD PTR -360172[rbp]
	lea	rax, -360128[rbp]
	mov	edx, 6
	mov	esi, ecx
	mov	rdi, rax
	mov	eax, 0
	call	setup_brightness_lut
	cmp	DWORD PTR -360168[rbp], 0
	je	.L324
	cmp	DWORD PTR -360160[rbp], 0
	je	.L325
	mov	r8d, DWORD PTR -360184[rbp]
	mov	edi, DWORD PTR -360188[rbp]
	mov	rdx, QWORD PTR -360128[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	mov	ecx, DWORD PTR -360140[rbp]
	mov	rsi, QWORD PTR -360120[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	susan_principle_small
	jmp	.L326
.L325:
	mov	r8d, DWORD PTR -360184[rbp]
	mov	edi, DWORD PTR -360188[rbp]
	mov	rdx, QWORD PTR -360128[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	mov	ecx, DWORD PTR -360140[rbp]
	mov	rsi, QWORD PTR -360120[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	susan_principle
.L326:
	mov	edx, DWORD PTR -360188[rbp]
	mov	eax, DWORD PTR -360184[rbp]
	imul	edx, eax
	mov	rcx, QWORD PTR -360136[rbp]
	mov	rax, QWORD PTR -360120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	mov	eax, 0
	call	int_to_uchar
	jmp	.L321
.L324:
	mov	edx, DWORD PTR -360188[rbp]
	mov	eax, DWORD PTR -360184[rbp]
	imul	eax, edx
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -360112[rbp], rax
	mov	edx, DWORD PTR -360188[rbp]
	mov	eax, DWORD PTR -360184[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -360112[rbp]
	mov	esi, 100
	mov	rdi, rax
	call	memset@PLT
	cmp	DWORD PTR -360160[rbp], 0
	je	.L328
	mov	edi, DWORD PTR -360184[rbp]
	mov	r9d, DWORD PTR -360188[rbp]
	mov	rcx, QWORD PTR -360128[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	mov	r8d, DWORD PTR -360140[rbp]
	mov	rdx, QWORD PTR -360112[rbp]
	mov	rsi, QWORD PTR -360120[rbp]
	sub	rsp, 8
	push	rdi
	mov	rdi, rax
	mov	eax, 0
	call	susan_edges_small
	add	rsp, 16
	jmp	.L329
.L328:
	mov	edi, DWORD PTR -360184[rbp]
	mov	r9d, DWORD PTR -360188[rbp]
	mov	rcx, QWORD PTR -360128[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	mov	r8d, DWORD PTR -360140[rbp]
	mov	rdx, QWORD PTR -360112[rbp]
	mov	rsi, QWORD PTR -360120[rbp]
	sub	rsp, 8
	push	rdi
	mov	rdi, rax
	mov	eax, 0
	call	susan_edges
	add	rsp, 16
.L329:
	cmp	DWORD PTR -360164[rbp], 0
	je	.L330
	mov	ecx, DWORD PTR -360184[rbp]
	mov	edx, DWORD PTR -360188[rbp]
	mov	rsi, QWORD PTR -360112[rbp]
	mov	rax, QWORD PTR -360120[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	susan_thin
.L330:
	mov	ecx, DWORD PTR -360184[rbp]
	mov	edx, DWORD PTR -360188[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	mov	edi, DWORD PTR -360156[rbp]
	mov	rsi, QWORD PTR -360112[rbp]
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	edge_draw
	jmp	.L321
.L320:
	mov	edx, DWORD PTR -360188[rbp]
	mov	eax, DWORD PTR -360184[rbp]
	imul	eax, edx
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -360120[rbp], rax
	mov	ecx, DWORD PTR -360172[rbp]
	lea	rax, -360128[rbp]
	mov	edx, 6
	mov	esi, ecx
	mov	rdi, rax
	mov	eax, 0
	call	setup_brightness_lut
	cmp	DWORD PTR -360168[rbp], 0
	je	.L331
	mov	r8d, DWORD PTR -360184[rbp]
	mov	edi, DWORD PTR -360188[rbp]
	mov	rdx, QWORD PTR -360128[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	mov	ecx, DWORD PTR -360144[rbp]
	mov	rsi, QWORD PTR -360120[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	mov	eax, 0
	call	susan_principle
	mov	edx, DWORD PTR -360188[rbp]
	mov	eax, DWORD PTR -360184[rbp]
	imul	edx, eax
	mov	rcx, QWORD PTR -360136[rbp]
	mov	rax, QWORD PTR -360120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	mov	eax, 0
	call	int_to_uchar
	jmp	.L338
.L331:
	cmp	DWORD PTR -360152[rbp], 0
	je	.L333
	mov	edi, DWORD PTR -360184[rbp]
	mov	r9d, DWORD PTR -360188[rbp]
	mov	rdx, QWORD PTR -360128[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	lea	r8, -360096[rbp]
	mov	ecx, DWORD PTR -360144[rbp]
	mov	rsi, QWORD PTR -360120[rbp]
	sub	rsp, 8
	push	rdi
	mov	rdi, rax
	mov	eax, 0
	call	susan_corners_quick
	add	rsp, 16
	jmp	.L334
.L333:
	mov	edi, DWORD PTR -360184[rbp]
	mov	r9d, DWORD PTR -360188[rbp]
	mov	rdx, QWORD PTR -360128[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	lea	r8, -360096[rbp]
	mov	ecx, DWORD PTR -360144[rbp]
	mov	rsi, QWORD PTR -360120[rbp]
	sub	rsp, 8
	push	rdi
	mov	rdi, rax
	mov	eax, 0
	call	susan_corners
	add	rsp, 16
.L334:
	mov	edx, DWORD PTR -360188[rbp]
	mov	rax, QWORD PTR -360136[rbp]
	mov	ecx, DWORD PTR -360156[rbp]
	lea	rsi, -360096[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	corner_draw
.L338:
	nop
.L321:
	mov	ecx, DWORD PTR -360184[rbp]
	mov	edx, DWORD PTR -360188[rbp]
	mov	rsi, QWORD PTR -360136[rbp]
	mov	rax, QWORD PTR -360208[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	mov	eax, 0
	call	put_image
	mov	eax, 0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L336
	call	__stack_chk_fail@PLT
.L336:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	main, .-main
	.section	.rodata
	.align 16
.LC25:
	.long	-2147483648
	.long	0
	.long	0
	.long	0
	.align 8
.LC26:
	.long	0
	.long	1079574528
	.align 8
.LC27:
	.long	0
	.long	1073217536
	.align 4
.LC28:
	.long	1097859072
	.align 8
.LC33:
	.long	1717986918
	.long	1072064102
	.align 8
.LC34:
	.long	-858993459
	.long	1072483532
	.align 4
.LC35:
	.long	1232348160
	.align 4
.LC37:
	.long	1056964608
	.align 4
.LC38:
	.long	1073741824
	.align 8
.LC39:
	.long	-1717986918
	.long	1071225241
	.align 8
.LC40:
	.long	0
	.long	1071644672
	.align 4
.LC41:
	.long	1077936128
	.align 4
.LC43:
	.long	1082130432
	.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	"531129.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.ascii	"Usage: susan <in.pgm> <out.pgm> [options]\012\000"
	.align	2
.LC1:
	.ascii	"-s : Smoothing mode (default)\000"
	.align	2
.LC2:
	.ascii	"-e : Edges mode\000"
	.align	2
.LC3:
	.ascii	"-c : Corners mode\012\000"
	.align	2
.LC4:
	.ascii	"See source code for more information about setting "
	.ascii	"the thresholds\000"
	.align	2
.LC5:
	.ascii	"-t <thresh> : Brightness threshold, all modes (defa"
	.ascii	"ult=20)\000"
	.align	2
.LC6:
	.ascii	"-d <thresh> : Distance threshold, smoothing mode, ("
	.ascii	"default=4) (use next option instead for flat 3x3 ma"
	.ascii	"sk)\000"
	.align	2
.LC7:
	.ascii	"-3 : Use flat 3x3 mask, edges or smoothing mode\000"
	.align	2
.LC8:
	.ascii	"-n : No post-processing on the binary edge map (run"
	.ascii	"s much faster); edges mode\000"
	.align	2
.LC9:
	.ascii	"-q : Use faster (and usually stabler) corner mode; "
	.ascii	"edge-like corner suppression not carried out; corne"
	.ascii	"rs mode\000"
	.align	2
.LC10:
	.ascii	"-b : Mark corners/edges with single black points in"
	.ascii	"stead of black with white border; corners or edges "
	.ascii	"mode\000"
	.align	2
.LC11:
	.ascii	"-p : Output initial enhancement image only; corners"
	.ascii	" or edges mode (default is edges mode)\000"
	.align	2
.LC12:
	.ascii	"\012SUSAN Version 2l (C) 1995-1997 Stephen Smith, D"
	.ascii	"RA UK. steve@fmrib.ox.ac.uk\000"
	.text
	.align	2
	.global	usage
	.syntax unified
	.arm
	.fpu softvfp
	.type	usage, %function
usage:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L2
	bl	puts
	ldr	r0, .L2+4
	bl	puts
	ldr	r0, .L2+8
	bl	puts
	ldr	r0, .L2+12
	bl	puts
	ldr	r0, .L2+16
	bl	puts
	ldr	r0, .L2+20
	bl	puts
	ldr	r0, .L2+24
	bl	puts
	ldr	r0, .L2+28
	bl	puts
	ldr	r0, .L2+32
	bl	puts
	ldr	r0, .L2+36
	bl	puts
	ldr	r0, .L2+40
	bl	puts
	ldr	r0, .L2+44
	bl	puts
	ldr	r0, .L2+48
	bl	puts
	mov	r0, #0
	bl	exit
.L3:
	.align	2
.L2:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.size	usage, .-usage
	.section	.rodata
	.align	2
.LC13:
	.ascii	"is\000"
	.align	2
.LC14:
	.ascii	"Image %s not binary PGM.\012\000"
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	getint
	.syntax unified
	.arm
	.fpu softvfp
	.type	getint, %function
getint:
	@ args = 0, pretend = 0, frame = 10024
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #9984
	sub	sp, sp, #44
	sub	r3, fp, #8192
	sub	r3, r3, #12
	str	r0, [r3, #-1828]
	ldr	r3, .L18
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-1828]
	bl	getc
	str	r0, [r4, #-1820]
.L9:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	cmp	r3, #35
	bne	.L5
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #9984
	sub	r3, r3, #12
	sub	r3, r3, #20
	ldr	r2, [r2, #-1828]
	ldr	r1, .L18+4
	mov	r0, r3
	bl	fgets
.L5:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	cmn	r3, #1
	bne	.L6
	ldr	r3, .L18+8
	ldr	r3, [r3]
	ldr	r2, .L18+12
	ldr	r1, .L18+16
	mov	r0, r3
	bl	fprintf
	mov	r0, #0
	bl	exit
.L6:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	cmp	r3, #47
	ble	.L7
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	cmp	r3, #57
	ble	.L17
.L7:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-1828]
	bl	getc
	str	r0, [r4, #-1820]
	b	.L9
.L17:
	nop
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-1816]
.L13:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r2, [r3, #-1816]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r1, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	sub	r3, r3, #48
	sub	r2, fp, #8192
	sub	r2, r2, #12
	add	r3, r1, r3
	str	r3, [r2, #-1816]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-1828]
	bl	getc
	str	r0, [r4, #-1820]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	cmn	r3, #1
	bne	.L10
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1816]
	b	.L14
.L10:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	cmp	r3, #47
	ble	.L12
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1820]
	cmp	r3, #57
	bgt	.L12
	b	.L13
.L12:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1816]
.L14:
	ldr	r2, .L18
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L15
	bl	__stack_chk_fail
.L15:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L19:
	.align	2
.L18:
	.word	.LC15
	.word	9000
	.word	stderr
	.word	.LC13
	.word	.LC14
	.size	getint, .-getint
	.section	.rodata
	.align	2
.LC16:
	.ascii	"r\000"
	.align	2
.LC17:
	.ascii	"Can't input image %s.\012\000"
	.align	2
.LC18:
	.ascii	"Image %s does not have binary PGM header.\012\000"
	.align	2
.LC19:
	.ascii	"Image %s is wrong size.\012\000"
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	get_image
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_image, %function
get_image:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #128
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	str	r2, [fp, #-128]
	str	r3, [fp, #-132]
	ldr	r3, .L26
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, .L26+4
	ldr	r0, [fp, #-120]
	bl	fopen
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bne	.L21
	ldr	r3, .L26+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-120]
	ldr	r1, .L26+12
	mov	r0, r3
	bl	fprintf
	mov	r0, #0
	bl	exit
.L21:
	ldr	r0, [fp, #-116]
	bl	fgetc
	mov	r3, r0
	and	r3, r3, #255
	strb	r3, [fp, #-108]
	ldr	r0, [fp, #-116]
	bl	fgetc
	mov	r3, r0
	and	r3, r3, #255
	strb	r3, [fp, #-107]
	ldrb	r3, [fp, #-108]	@ zero_extendqisi2
	cmp	r3, #80
	bne	.L22
	ldrb	r3, [fp, #-107]	@ zero_extendqisi2
	cmp	r3, #53
	beq	.L23
.L22:
	ldr	r3, .L26+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-120]
	ldr	r1, .L26+16
	mov	r0, r3
	bl	fprintf
	mov	r0, #0
	bl	exit
.L23:
	ldr	r0, [fp, #-116]
	bl	getint
	mov	r2, r0
	ldr	r3, [fp, #-128]
	str	r2, [r3]
	ldr	r0, [fp, #-116]
	bl	getint
	mov	r2, r0
	ldr	r3, [fp, #-132]
	str	r2, [r3]
	ldr	r0, [fp, #-116]
	bl	getint
	str	r0, [fp, #-112]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	ldr	r2, [fp, #-132]
	ldr	r2, [r2]
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-124]
	str	r2, [r3]
	ldr	r3, [fp, #-124]
	ldr	r0, [r3]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	ldr	r2, [fp, #-132]
	ldr	r2, [r2]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-116]
	mov	r1, #1
	bl	fread
	mov	r3, r0
	cmp	r3, #0
	bne	.L24
	ldr	r3, .L26+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-120]
	ldr	r1, .L26+20
	mov	r0, r3
	bl	fprintf
	mov	r0, #0
	bl	exit
.L24:
	ldr	r0, [fp, #-116]
	bl	fclose
	nop
	ldr	r3, .L26
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L25
	bl	__stack_chk_fail
.L25:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L27:
	.align	2
.L26:
	.word	.LC20
	.word	.LC16
	.word	stderr
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.size	get_image, .-get_image
	.section	.rodata
	.align	2
.LC21:
	.ascii	"w\000"
	.align	2
.LC22:
	.ascii	"Can't output image%s.\012\000"
	.align	2
.LC23:
	.ascii	"P5\012\000"
	.align	2
.LC24:
	.ascii	"%d %d\012\000"
	.align	2
.LC25:
	.ascii	"255\012\000"
	.align	2
.LC26:
	.ascii	"Can't write image %s.\012\000"
	.text
	.align	2
	.global	put_image
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_image, %function
put_image:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r1, .L31
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L29
	ldr	r3, .L31+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r1, .L31+8
	mov	r0, r3
	bl	fprintf
	mov	r0, #0
	bl	exit
.L29:
	ldr	r3, [fp, #-8]
	mov	r2, #3
	mov	r1, #1
	ldr	r0, .L31+12
	bl	fwrite
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, .L31+16
	ldr	r0, [fp, #-8]
	bl	fprintf
	ldr	r3, [fp, #-8]
	mov	r2, #4
	mov	r1, #1
	ldr	r0, .L31+20
	bl	fwrite
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	mul	r3, r2, r3
	mov	r1, r3
	ldr	r3, [fp, #-8]
	mov	r2, #1
	ldr	r0, [fp, #-20]
	bl	fwrite
	mov	r3, r0
	cmp	r3, #1
	beq	.L30
	ldr	r3, .L31+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r1, .L31+24
	mov	r0, r3
	bl	fprintf
	mov	r0, #0
	bl	exit
.L30:
	ldr	r0, [fp, #-8]
	bl	fclose
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L32:
	.align	2
.L31:
	.word	.LC21
	.word	stderr
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.size	put_image, .-put_image
	.global	__aeabi_idiv
	.align	2
	.global	int_to_uchar
	.syntax unified
	.arm
	.fpu softvfp
	.type	int_to_uchar, %function
int_to_uchar:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L34
.L37:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bge	.L35
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L35:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	ble	.L36
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
.L36:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L34:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L37
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L38
.L39:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #8
	sub	r3, r3, r2
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L38:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L39
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	int_to_uchar, .-int_to_uchar
	.global	__aeabi_i2f
	.global	__aeabi_fdiv
	.global	__aeabi_fmul
	.global	__aeabi_f2d
	.global	__aeabi_dmul
	.global	__aeabi_d2f
	.global	__aeabi_f2uiz
	.align	2
	.global	setup_brightness_lut
	.syntax unified
	.arm
	.fpu softvfp
	.type	setup_brightness_lut, %function
setup_brightness_lut:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r0, #516
	bl	malloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r3, r3, #256
	add	r3, r3, #2
	ldr	r2, [fp, #-24]
	str	r3, [r2]
	mvn	r3, #255
	str	r3, [fp, #-20]
	b	.L41
.L43:
	ldr	r0, [fp, #-20]
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r0, [fp, #-28]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r1, [fp, #-16]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	cmp	r3, #6
	bne	.L42
	ldr	r1, [fp, #-16]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
.L42:
	ldr	r3, [fp, #-16]
	eor	r3, r3, #-2147483648
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, #0
	ldr	r3, .L44
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r4, r2, r3
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_f2uiz
	mov	r3, r0
	and	r3, r3, #255
	strb	r3, [r4]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L41:
	ldr	r3, [fp, #-20]
	cmp	r3, #256
	ble	.L43
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L45:
	.align	2
.L44:
	.word	1079574528
	.size	setup_brightness_lut, .-setup_brightness_lut
	.align	2
	.global	susan_principle
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_principle, %function
susan_principle:
	@ args = 8, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	memset
	mov	r3, #3
	str	r3, [fp, #-24]
	b	.L47
.L51:
	mov	r3, #3
	str	r3, [fp, #-20]
	b	.L48
.L50:
	mov	r3, #100
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #3
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #4]
	mul	r2, r3, r2
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #5
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #6
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #6
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #5
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bgt	.L49
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #4]
	mul	r2, r3, r2
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r1, [fp, #-44]
	ldr	r2, [fp, #-16]
	sub	r2, r1, r2
	str	r2, [r3]
.L49:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L48:
	ldr	r3, [fp, #4]
	sub	r3, r3, #3
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L50
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L47:
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L51
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	susan_principle, .-susan_principle
	.align	2
	.global	susan_principle_small
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_principle_small, %function
susan_principle_small:
	@ args = 8, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	memset
	ldr	r3, .L58
	str	r3, [fp, #-44]
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L53
.L57:
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L54
.L56:
	mov	r3, #100
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #4]
	mul	r2, r3, r2
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #4]
	sub	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bgt	.L55
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #4]
	mul	r2, r3, r2
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldr	r1, [fp, #-44]
	ldr	r2, [fp, #-16]
	sub	r2, r1, r2
	str	r2, [r3]
.L55:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L54:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L56
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L53:
	ldr	r3, [fp, #8]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L57
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L59:
	.align	2
.L58:
	.word	730
	.size	susan_principle_small, .-susan_principle_small
	.section	.rodata
	.align	2
.LC27:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	median
	.syntax unified
	.arm
	.fpu softvfp
	.type	median, %function
median:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, .L68
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L61
.L65:
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L62
.L64:
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-36]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	ldr	r3, [r3, #-36]
	cmp	r2, r3
	ble	.L63
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-36]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-36]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-36]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	str	r2, [r3, #-36]
.L63:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L62:
	ldr	r3, [fp, #-52]
	rsb	r3, r3, #7
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L64
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L61:
	ldr	r3, [fp, #-52]
	cmp	r3, #6
	ble	.L65
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	and	r3, r3, #255
	ldr	r2, .L68
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L67
	bl	__stack_chk_fail
.L67:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L69:
	.align	2
.L68:
	.word	.LC27
	.size	median, .-median
	.align	2
	.global	enlarge
	.syntax unified
	.arm
	.fpu softvfp
	.type	enlarge, %function
enlarge:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L71
.L72:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #4]
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	ldr	r1, [r2]
	ldr	r2, [fp, #4]
	lsl	r2, r2, #1
	add	r2, r1, r2
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	add	r0, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	ldr	r2, [r2]
	ldr	r1, [fp, #-12]
	mul	r2, r1, r2
	add	r1, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L71:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L72
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L73
.L74:
	ldr	r3, [fp, #4]
	sub	r2, r3, #1
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	ldr	r2, [fp, #-24]
	ldr	r1, [r2]
	ldr	r2, [fp, #4]
	lsl	r2, r2, #1
	add	r2, r1, r2
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	add	r0, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	ldr	r2, [r2]
	ldr	r1, [fp, #-12]
	mul	r2, r1, r2
	add	r1, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	ldr	r1, [r2]
	ldr	r2, [fp, #4]
	lsl	r2, r2, #1
	add	r2, r1, r2
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	add	r0, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	ldr	r1, [r2]
	ldr	r2, [fp, #-12]
	sub	r2, r1, r2
	sub	r2, r2, #1
	ldr	r1, [fp, #-24]
	ldr	r1, [r1]
	mul	r2, r1, r2
	add	r1, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L73:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L74
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L75
.L78:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L76
.L77:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	mul	r2, r3, r2
	ldr	r3, [fp, #4]
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r2, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r1, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #1
	add	r3, r1, r3
	ldr	r1, [fp, #-8]
	mul	r1, r3, r1
	ldr	r3, [fp, #4]
	add	r3, r1, r3
	sub	r1, r3, #1
	ldr	r3, [fp, #-12]
	sub	r3, r1, r3
	mov	r1, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r2, r2, r3
	ldr	r3, [fp, #4]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r2, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r1, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #1
	add	r3, r1, r3
	ldr	r1, [fp, #-8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	add	r1, r1, r3
	ldr	r3, [fp, #4]
	add	r1, r1, r3
	ldr	r3, [fp, #-12]
	add	r3, r1, r3
	mov	r1, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L76:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L77
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L75:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L78
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #1
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #1
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	enlarge, .-enlarge
	.global	__aeabi_d2iz
	.global	__aeabi_fcmpgt
	.section	.rodata
	.align	2
.LC28:
	.ascii	"Distance_thresh (%f) too big for integer arithmetic"
	.ascii	".\012\000"
	.align	2
.LC29:
	.ascii	"Either reduce it to <=15 or recompile with variable"
	.ascii	" \"total\"\000"
	.align	2
.LC30:
	.ascii	"as a float: see top \"defines\" section.\000"
	.align	2
.LC31:
	.ascii	"Mask size (1.5*distance_thresh+1=%d) too big for im"
	.ascii	"age (%dx%d).\012\000"
	.text
	.align	2
	.global	susan_smoothing
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_smoothing, %function
susan_smoothing:
	@ args = 12, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #108
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-108]	@ float
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L80
	ldr	r0, [fp, #-108]	@ float
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L110
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-88]
	b	.L81
.L80:
	mov	r3, #1
	str	r3, [fp, #-88]
.L81:
	mov	r3, #0
	str	r3, [fp, #-52]
	ldr	r1, .L110+4
	ldr	r0, [fp, #-108]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L82
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L82
	ldr	r0, [fp, #-108]	@ float
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L110+8
	bl	printf
	ldr	r0, .L110+12
	bl	puts
	ldr	r0, .L110+16
	bl	puts
	mov	r0, #0
	bl	exit
.L82:
	ldr	r3, [fp, #-88]
	lsl	r2, r3, #1
	ldr	r3, [fp, #4]
	cmp	r2, r3
	bge	.L84
	ldr	r3, [fp, #-88]
	lsl	r2, r3, #1
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L85
.L84:
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #8]
	ldr	r1, [fp, #-88]
	ldr	r0, .L110+20
	bl	printf
	mov	r0, #0
	bl	exit
.L85:
	ldr	r3, [fp, #-88]
	lsl	r2, r3, #1
	ldr	r3, [fp, #4]
	add	r3, r2, r3
	ldr	r2, [fp, #-88]
	lsl	r1, r2, #1
	ldr	r2, [fp, #8]
	add	r2, r1, r2
	mul	r3, r2, r3
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-48]
	add	r2, fp, #8
	sub	r0, fp, #100
	ldr	r3, [fp, #-88]
	str	r3, [sp]
	mov	r3, r2
	add	r2, fp, #4
	ldr	r1, [fp, #-48]
	bl	enlarge
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L86
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #1
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	mov	r2, r3
	mul	r2, r3, r2
	mov	r3, r2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-60]
	ldr	r1, [fp, #-108]	@ float
	ldr	r0, [fp, #-108]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-88]
	rsb	r3, r3, #0
	str	r3, [fp, #-84]
	b	.L87
.L90:
	ldr	r3, [fp, #-88]
	rsb	r3, r3, #0
	str	r3, [fp, #-80]
	b	.L88
.L89:
	ldr	r3, [fp, #-84]
	mul	r2, r3, r3
	ldr	r3, [fp, #-80]
	mov	r1, r3
	mul	r1, r3, r1
	mov	r3, r1
	add	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, #0
	ldr	r3, .L110+24
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-60]
	add	r2, r3, #1
	str	r2, [fp, #-60]
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L88:
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	ble	.L89
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L87:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	ble	.L90
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-84]
	b	.L91
.L100:
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-80]
	b	.L92
.L99:
	mov	r3, #0
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-100]
	ldr	r1, [fp, #-84]
	ldr	r3, [fp, #-88]
	sub	r3, r1, r3
	ldr	r1, [fp, #4]
	mul	r3, r1, r3
	mov	r1, r3
	ldr	r3, [fp, #-80]
	add	r1, r1, r3
	ldr	r3, [fp, #-88]
	sub	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-84]
	mul	r1, r2, r1
	ldr	r2, [fp, #-80]
	add	r2, r1, r2
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #12]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-88]
	rsb	r3, r3, #0
	str	r3, [fp, #-72]
	b	.L93
.L96:
	ldr	r3, [fp, #-88]
	rsb	r3, r3, #0
	str	r3, [fp, #-76]
	b	.L94
.L95:
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-60]
	add	r2, r3, #1
	str	r2, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mul	r3, r1, r3
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L94:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	ble	.L95
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L93:
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	ble	.L96
	ldr	r3, [fp, #-68]
	sub	r3, r3, #9984
	sub	r3, r3, #16
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L97
	ldr	r0, [fp, #-100]
	ldr	r2, [fp, #4]
	ldr	r4, [fp, #-56]
	add	r3, r4, #1
	str	r3, [fp, #-56]
	mov	r3, r2
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-84]
	bl	median
	mov	r3, r0
	strb	r3, [r4]
	b	.L98
.L97:
	ldr	r3, [fp, #-44]
	ldr	r2, .L110+28
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-56]
	add	r2, r3, #1
	str	r2, [fp, #-56]
	and	r2, r1, #255
	strb	r2, [r3]
.L98:
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L92:
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-88]
	sub	r3, r2, r3
	ldr	r2, [fp, #-80]
	cmp	r2, r3
	blt	.L99
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L91:
	ldr	r2, [fp, #8]
	ldr	r3, [fp, #-88]
	sub	r3, r2, r3
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	blt	.L100
	b	.L109
.L86:
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L102
.L107:
	mov	r3, #1
	str	r3, [fp, #-80]
	b	.L103
.L106:
	mov	r3, #0
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	ldr	r1, [fp, #4]
	mul	r3, r1, r3
	mov	r1, r3
	ldr	r3, [fp, #-80]
	add	r3, r1, r3
	sub	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-84]
	mul	r1, r2, r1
	ldr	r2, [fp, #-80]
	add	r2, r1, r2
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #12]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #4]
	sub	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #4]
	sub	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-68]
	sub	r3, r3, #100
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L104
	ldr	r0, [fp, #-100]
	ldr	r2, [fp, #4]
	ldr	r4, [fp, #-56]
	add	r3, r4, #1
	str	r3, [fp, #-56]
	mov	r3, r2
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-84]
	bl	median
	mov	r3, r0
	strb	r3, [r4]
	b	.L105
.L104:
	ldr	r3, [fp, #-44]
	mvn	r2, #99
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-56]
	add	r2, r3, #1
	str	r2, [fp, #-56]
	and	r2, r1, #255
	strb	r2, [r3]
.L105:
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L103:
	ldr	r3, [fp, #4]
	sub	r3, r3, #1
	ldr	r2, [fp, #-80]
	cmp	r2, r3
	blt	.L106
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L102:
	ldr	r3, [fp, #8]
	sub	r3, r3, #1
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	blt	.L107
.L109:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L111:
	.align	2
.L110:
	.word	1073217536
	.word	1097859072
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	1079574528
	.word	-10000
	.size	susan_smoothing, .-susan_smoothing
	.align	2
	.global	edge_draw
	.syntax unified
	.arm
	.fpu softvfp
	.type	edge_draw, %function
edge_draw:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L113
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L114
.L116:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L115
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
.L115:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L114:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L116
.L113:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L117
.L119:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L118
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	mov	r2, #0
	strb	r2, [r3]
.L118:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L117:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L119
	nop
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	edge_draw, .-edge_draw
	.global	__aeabi_dcmpgt
	.section	.rodata
	.align	2
.LC32:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	susan_thin
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_thin, %function
susan_thin:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #148
	str	r0, [fp, #-144]
	str	r1, [fp, #-148]
	str	r2, [fp, #-152]
	str	r3, [fp, #-156]
	ldr	r3, .L159+8
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #4
	str	r3, [fp, #-120]
	b	.L121
.L155:
	mov	r3, #4
	str	r3, [fp, #-116]
	b	.L122
.L154:
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L123
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	add	r3, r2, r3
	ldr	r2, [fp, #-108]
	add	r2, r2, #2
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r2, #7
	movls	r2, #1
	movhi	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	ldr	r2, [fp, #-152]
	ldr	r1, [fp, #-108]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r2, #7
	movls	r2, #1
	movhi	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	ldr	r2, [fp, #-152]
	add	r2, r2, #2
	ldr	r1, [fp, #-108]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r2, #7
	movls	r2, #1
	movhi	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	ldr	r2, [fp, #-152]
	lsl	r2, r2, #1
	ldr	r1, [fp, #-108]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r2, #7
	movls	r2, #1
	movhi	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	ldr	r2, [fp, #-152]
	lsl	r2, r2, #1
	add	r2, r2, #1
	ldr	r1, [fp, #-108]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r2, #7
	movls	r2, #1
	movhi	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	ldr	r2, [fp, #-152]
	add	r2, r2, #1
	lsl	r2, r2, #1
	ldr	r1, [fp, #-108]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r2, #7
	movls	r2, #1
	movhi	r2, #0
	and	r2, r2, #255
	add	r3, r3, r2
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L124
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	mov	r2, #100
	strb	r2, [r3]
.L124:
	ldr	r3, [fp, #-104]
	cmp	r3, #1
	bne	.L125
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #5
	bhi	.L125
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L126
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	str	r3, [fp, #-20]
	b	.L127
.L126:
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L128
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #1
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	str	r3, [fp, #-24]
	b	.L127
.L128:
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L129
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	str	r3, [fp, #-28]
	b	.L127
.L129:
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L130
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-44]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	str	r3, [fp, #-32]
	b	.L127
.L130:
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L131
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	str	r3, [fp, #-40]
	b	.L127
.L131:
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L132
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	str	r3, [fp, #-44]
	b	.L127
.L132:
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L133
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #1
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-44]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	str	r3, [fp, #-48]
	b	.L127
.L133:
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L127
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	str	r3, [fp, #-52]
.L127:
	mov	r3, #0
	str	r3, [fp, #-140]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L134
.L138:
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L135
.L137:
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-128]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-40]
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	bge	.L136
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-128]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-40]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-132]
.L136:
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L135:
	ldr	r3, [fp, #-128]
	cmp	r3, #2
	ble	.L137
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L134:
	ldr	r3, [fp, #-124]
	cmp	r3, #2
	ble	.L138
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	ble	.L125
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #3
	bhi	.L139
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-136]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r2, r2, r3
	ldr	r3, [fp, #-132]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	mov	r2, #4
	strb	r2, [r3]
	b	.L140
.L139:
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r1, [fp, #-120]
	ldr	r3, [fp, #-136]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-152]
	mul	r1, r3, r1
	ldr	r3, [fp, #-116]
	add	r1, r1, r3
	ldr	r3, [fp, #-132]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-148]
	add	r3, r1, r3
	add	r2, r2, #1
	and	r2, r2, #255
	strb	r2, [r3]
.L140:
	ldr	r3, [fp, #-136]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-132]
	add	r3, r2, r3
	cmp	r3, #2
	bgt	.L125
	ldr	r3, [fp, #-136]
	sub	r3, r3, #1
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-132]
	sub	r3, r3, #2
	ldr	r2, [fp, #-116]
	add	r3, r2, r3
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-120]
	cmp	r3, #3
	bgt	.L141
	mov	r3, #4
	str	r3, [fp, #-120]
.L141:
	ldr	r3, [fp, #-116]
	cmp	r3, #3
	bgt	.L125
	mov	r3, #4
	str	r3, [fp, #-116]
.L125:
	ldr	r3, [fp, #-104]
	cmp	r3, #2
	bne	.L142
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-88]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-96]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	add	r2, r2, r3
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	cmp	r3, #2
	bne	.L143
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-88]
	orr	r2, r2, r3
	ldr	r1, [fp, #-96]
	ldr	r3, [fp, #-92]
	orr	r3, r1, r3
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L143
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L144
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L145
	mov	r3, #0
	str	r3, [fp, #-128]
	mvn	r3, #0
	str	r3, [fp, #-124]
	b	.L146
.L145:
	mvn	r3, #0
	str	r3, [fp, #-128]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L146
.L144:
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L147
	mov	r3, #1
	str	r3, [fp, #-128]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L146
.L147:
	mov	r3, #0
	str	r3, [fp, #-128]
	mov	r3, #1
	str	r3, [fp, #-124]
.L146:
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-144]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r0, [fp, #-112]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L159
	ldr	r3, .L159+4
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L158
	ldr	r3, [fp, #-128]
	cmp	r3, #0
	bne	.L150
	ldr	r3, [fp, #-124]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bls	.L150
	ldr	r3, [fp, #-124]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bls	.L150
	ldr	r3, [fp, #-124]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L151
.L150:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bne	.L158
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bls	.L158
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bls	.L158
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bls	.L158
.L151:
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	mov	r2, #100
	strb	r2, [r3]
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	mov	r2, #3
	strb	r2, [r3]
	b	.L158
.L160:
	.align	2
.L159:
	.word	1717986918
	.word	1072064102
	.word	.LC32
.L143:
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	add	r2, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	cmp	r3, #2
	bne	.L142
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-80]
	orr	r2, r2, r3
	ldr	r1, [fp, #-84]
	ldr	r3, [fp, #-76]
	orr	r3, r1, r3
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L142
	ldr	r3, [fp, #-120]
	sub	r3, r3, #2
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-120]
	sub	r3, r3, #2
	ldr	r1, [fp, #-152]
	mul	r1, r3, r1
	ldr	r3, [fp, #-116]
	add	r3, r1, r3
	add	r3, r3, #1
	ldr	r1, [fp, #-148]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	orr	r3, r2, r3
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-84]
	and	r2, r2, r3
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r1, [fp, #-152]
	mul	r1, r3, r1
	ldr	r3, [fp, #-116]
	add	r3, r1, r3
	sub	r3, r3, #2
	ldr	r1, [fp, #-148]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r1, r3, #255
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r0, [fp, #-152]
	mul	r0, r3, r0
	ldr	r3, [fp, #-116]
	add	r3, r0, r3
	sub	r3, r3, #2
	ldr	r0, [fp, #-148]
	add	r3, r0, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	orr	r3, r1, r3
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-72]
	and	r3, r3, r1
	orr	r2, r2, r3
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r1, [fp, #-152]
	mul	r1, r3, r1
	ldr	r3, [fp, #-116]
	add	r3, r1, r3
	add	r3, r3, #2
	ldr	r1, [fp, #-148]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r1, r3, #255
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r0, [fp, #-152]
	mul	r0, r3, r0
	ldr	r3, [fp, #-116]
	add	r3, r0, r3
	add	r3, r3, #2
	ldr	r0, [fp, #-148]
	add	r3, r0, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	orr	r3, r1, r3
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-80]
	and	r3, r3, r1
	orr	r2, r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, #2
	ldr	r1, [fp, #-152]
	mul	r1, r3, r1
	ldr	r3, [fp, #-116]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-148]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r1, r3, #255
	ldr	r3, [fp, #-120]
	add	r3, r3, #2
	ldr	r0, [fp, #-152]
	mul	r0, r3, r0
	ldr	r3, [fp, #-116]
	add	r3, r0, r3
	add	r3, r3, #1
	ldr	r0, [fp, #-148]
	add	r3, r0, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	orr	r3, r1, r3
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, r1
	orr	r3, r2, r3
	cmp	r3, #0
	beq	.L142
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	mov	r2, #100
	strb	r2, [r3]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-116]
	sub	r3, r3, #2
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-120]
	cmp	r3, #3
	bgt	.L152
	mov	r3, #4
	str	r3, [fp, #-120]
.L152:
	ldr	r3, [fp, #-116]
	cmp	r3, #3
	bgt	.L142
	mov	r3, #4
	str	r3, [fp, #-116]
	b	.L142
.L158:
	nop
.L142:
	ldr	r3, [fp, #-104]
	cmp	r3, #2
	ble	.L123
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	add	r2, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	cmp	r3, #1
	ble	.L123
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-88]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-84]
	orr	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-80]
	orr	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-76]
	orr	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-72]
	orr	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-64]
	add	r2, r2, r3
	ldr	r3, [fp, #-60]
	add	r2, r2, r3
	ldr	r3, [fp, #-56]
	add	r2, r2, r3
	ldr	r1, [fp, #-84]
	ldr	r3, [fp, #-64]
	and	r1, r1, r3
	ldr	r0, [fp, #-80]
	ldr	r3, [fp, #-60]
	and	r3, r3, r0
	add	r1, r1, r3
	ldr	r0, [fp, #-76]
	ldr	r3, [fp, #-56]
	and	r3, r3, r0
	add	r1, r1, r3
	ldr	r0, [fp, #-72]
	ldr	r3, [fp, #-68]
	and	r3, r3, r0
	add	r3, r1, r3
	sub	r3, r2, r3
	cmp	r3, #1
	bgt	.L123
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-152]
	mul	r2, r3, r2
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	mov	r2, #100
	strb	r2, [r3]
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-116]
	sub	r3, r3, #2
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-120]
	cmp	r3, #3
	bgt	.L153
	mov	r3, #4
	str	r3, [fp, #-120]
.L153:
	ldr	r3, [fp, #-116]
	cmp	r3, #3
	bgt	.L123
	mov	r3, #4
	str	r3, [fp, #-116]
.L123:
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L122:
	ldr	r3, [fp, #-152]
	sub	r3, r3, #4
	ldr	r2, [fp, #-116]
	cmp	r2, r3
	blt	.L154
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L121:
	ldr	r3, [fp, #-156]
	sub	r3, r3, #4
	ldr	r2, [fp, #-120]
	cmp	r2, r3
	blt	.L155
	nop
	ldr	r2, .L159+8
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L156
	bl	__stack_chk_fail
.L156:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	susan_thin, .-susan_thin
	.global	__aeabi_fcmplt
	.align	2
	.global	susan_edges
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_edges, %function
susan_edges:
	@ args = 12, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #12]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-76]
	bl	memset
	mov	r3, #3
	str	r3, [fp, #-56]
	b	.L162
.L166:
	mov	r3, #3
	str	r3, [fp, #-52]
	b	.L163
.L165:
	mov	r3, #100
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-84]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	bgt	.L164
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r1, [fp, #4]
	ldr	r2, [fp, #-32]
	sub	r2, r1, r2
	str	r2, [r3]
.L164:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L163:
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L165
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L162:
	ldr	r3, [fp, #12]
	sub	r3, r3, #3
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L166
	mov	r3, #4
	str	r3, [fp, #-56]
	b	.L167
.L194:
	mov	r3, #4
	str	r3, [fp, #-52]
	b	.L168
.L193:
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L169
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-84]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	cmp	r3, #600
	ble	.L170
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	mul	r2, r3, r3
	ldr	r3, [fp, #-16]
	mov	r1, r3
	mul	r1, r3, r1
	mov	r3, r1
	add	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L207
	ldr	r3, .L207+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L201
	mov	r3, #0
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L173
	ldr	r3, .L207+8
	str	r3, [fp, #-64]	@ float
	b	.L174
.L173:
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r0, [fp, #-20]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
.L174:
	mov	r1, #0
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L202
	ldr	r3, [fp, #-64]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-64]	@ float
	mvn	r3, #0
	str	r3, [fp, #-40]
	b	.L177
.L202:
	mov	r3, #1
	str	r3, [fp, #-40]
.L177:
	mov	r1, #1056964608
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L203
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L180
.L203:
	mov	r1, #1073741824
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L204
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L180
.L204:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L183
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L180
.L183:
	mvn	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
.L180:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L184
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	sub	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L184
	ldr	r3, [fp, #-48]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L184
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-56]
	sub	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L184
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	mov	r2, #1
	strb	r2, [r3]
	b	.L184
.L201:
	mov	r3, #1
	str	r3, [fp, #-60]
	b	.L184
.L170:
	mov	r3, #1
	str	r3, [fp, #-60]
.L184:
	ldr	r3, [fp, #-60]
	cmp	r3, #1
	bne	.L169
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L185
	ldr	r3, .L207+8
	str	r3, [fp, #-64]	@ float
	b	.L186
.L185:
	ldr	r0, [fp, #-20]
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
.L186:
	mov	r1, #1056964608
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L205
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L189
.L205:
	mov	r1, #1073741824
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L206
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L189
.L206:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L192
	mvn	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L189
.L208:
	.align	2
.L207:
	.word	-858993459
	.word	1072483532
	.word	1232348160
.L192:
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
.L189:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L169
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	sub	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L169
	ldr	r3, [fp, #-48]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L169
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-56]
	sub	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L169
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	mov	r2, #2
	strb	r2, [r3]
.L169:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L168:
	ldr	r3, [fp, #8]
	sub	r3, r3, #4
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L193
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L167:
	ldr	r3, [fp, #12]
	sub	r3, r3, #4
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L194
	nop
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	susan_edges, .-susan_edges
	.align	2
	.global	susan_edges_small
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_edges_small, %function
susan_edges_small:
	@ args = 12, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #12]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-76]
	bl	memset
	ldr	r3, .L255
	str	r3, [fp, #4]
	mov	r3, #1
	str	r3, [fp, #-56]
	b	.L210
.L214:
	mov	r3, #1
	str	r3, [fp, #-52]
	b	.L211
.L213:
	mov	r3, #100
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-84]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	bgt	.L212
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r1, [fp, #4]
	ldr	r2, [fp, #-32]
	sub	r2, r1, r2
	str	r2, [r3]
.L212:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L211:
	ldr	r3, [fp, #8]
	sub	r3, r3, #1
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L213
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L210:
	ldr	r3, [fp, #12]
	sub	r3, r3, #1
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L214
	mov	r3, #2
	str	r3, [fp, #-56]
	b	.L215
.L242:
	mov	r3, #2
	str	r3, [fp, #-52]
	b	.L216
.L241:
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L217
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-84]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	cmp	r3, #250
	ble	.L218
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	mul	r2, r3, r3
	ldr	r3, [fp, #-16]
	mov	r1, r3
	mul	r1, r3, r1
	mov	r3, r1
	add	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sqrt
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L255+4
	ldr	r3, .L255+8
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L249
	mov	r3, #0
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L221
	ldr	r3, .L255+12
	str	r3, [fp, #-64]	@ float
	b	.L222
.L221:
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r0, [fp, #-20]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
.L222:
	mov	r1, #0
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L250
	ldr	r3, [fp, #-64]
	eor	r3, r3, #-2147483648
	str	r3, [fp, #-64]	@ float
	mvn	r3, #0
	str	r3, [fp, #-40]
	b	.L225
.L250:
	mov	r3, #1
	str	r3, [fp, #-40]
.L225:
	mov	r1, #1056964608
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L251
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L228
.L251:
	mov	r1, #1073741824
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L252
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L228
.L252:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L231
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L228
.L231:
	mvn	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
.L228:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L232
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	sub	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L232
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	mov	r2, #1
	strb	r2, [r3]
	b	.L232
.L249:
	mov	r3, #1
	str	r3, [fp, #-60]
	b	.L232
.L218:
	mov	r3, #1
	str	r3, [fp, #-60]
.L232:
	ldr	r3, [fp, #-60]
	cmp	r3, #1
	bne	.L217
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L233
	ldr	r3, .L255+12
	str	r3, [fp, #-64]	@ float
	b	.L234
.L233:
	ldr	r0, [fp, #-20]
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
.L234:
	mov	r1, #1056964608
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L253
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L237
.L253:
	mov	r1, #1073741824
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L254
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L237
.L254:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L240
	mvn	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L237
.L240:
	mov	r3, #1
	str	r3, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-44]
.L237:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L217
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	sub	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L217
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	mov	r2, #2
	strb	r2, [r3]
.L217:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L216:
	ldr	r3, [fp, #8]
	sub	r3, r3, #2
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L241
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L215:
	ldr	r3, [fp, #12]
	sub	r3, r3, #2
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L242
	nop
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L256:
	.align	2
.L255:
	.word	730
	.word	-1717986918
	.word	1071225241
	.word	1232348160
	.size	susan_edges_small, .-susan_edges_small
	.align	2
	.global	corner_draw
	.syntax unified
	.arm
	.fpu softvfp
	.type	corner_draw, %function
corner_draw:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L258
.L260:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L259
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	mul	r3, r2, r3
	mov	r1, r3
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r3]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	b	.L258
.L259:
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-24]
	mul	r3, r2, r3
	mov	r1, r3
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r3]
	add	r3, r1, r3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L258:
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r3, #8]
	cmp	r3, #7
	bne	.L260
	nop
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	corner_draw, .-corner_draw
	.global	__aeabi_dsub
	.global	__aeabi_dadd
	.global	__aeabi_fadd
	.section	.rodata
	.align	2
.LC33:
	.ascii	"Too many corners.\012\000"
	.text
	.align	2
	.global	susan_corners
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_corners, %function
susan_corners:
	@ args = 12, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #12]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-76]
	bl	memset
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #12]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #12]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, #5
	str	r3, [fp, #-56]
	b	.L262
.L290:
	mov	r3, #5
	str	r3, [fp, #-52]
	b	.L263
.L289:
	mov	r3, #100
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	bge	.L264
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	sub	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	str	r2, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-65]
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldrb	r2, [fp, #-65]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	mov	r2, r3
	mul	r2, r3, r2
	mov	r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	mov	r2, r3
	mul	r2, r3, r2
	mov	r3, r2
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-64]
	mov	r2, r3
	mul	r2, r3, r2
	mov	r3, r2
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-60]
	cmp	r3, r2
	ble	.L264
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bge	.L265
	ldr	r0, [fp, #-28]
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	rsblt	r3, r3, #0
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bge	.L266
	mvn	r3, #0
	b	.L267
.L266:
	mov	r3, #1
.L267:
	str	r3, [fp, #-60]
	mov	r1, #0
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L302
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L270
.L302:
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L270:
	ldr	r2, [fp, #-56]
	add	r3, r3, r2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r4, r3
	ldr	r3, [fp, #-16]	@ float
	mov	r1, r3
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L303
	ldr	r3, [fp, #-16]	@ float
	mov	r1, r3
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L273
.L303:
	ldr	r3, [fp, #-16]	@ float
	mov	r1, r3
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L273:
	ldr	r2, [fp, #-56]
	add	r3, r3, r2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r4, r4, r3
	ldr	r1, .L308+4
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L304
	ldr	r1, .L308+4
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L276
.L304:
	ldr	r1, .L308+4
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L276:
	ldr	r2, [fp, #-56]
	add	r3, r3, r2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r1, r2, r3
	ldr	r2, [fp, #-60]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r4, r3
	str	r3, [fp, #-60]
	b	.L277
.L265:
	ldr	r0, [fp, #-40]
	bl	__aeabi_i2f
	mov	r4, r0
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	rsblt	r3, r3, #0
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L278
	mvn	r3, #0
	b	.L279
.L278:
	mov	r3, #1
.L279:
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r4, r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L305
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L282
.L305:
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L282:
	add	r3, r3, r4
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	ldr	r3, [fp, #-60]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r4, r2, r3
	ldr	r3, [fp, #-16]	@ float
	mov	r1, r3
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L306
	ldr	r3, [fp, #-16]	@ float
	mov	r1, r3
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L285
.L306:
	ldr	r3, [fp, #-16]	@ float
	mov	r1, r3
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L285:
	add	r3, r3, r4
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r4, r5, r3
	ldr	r2, [fp, #-60]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r5, r2, r3
	ldr	r1, .L308+4
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L307
	ldr	r1, .L308+4
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L288
.L307:
	ldr	r1, .L308+4
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, #0
	ldr	r3, .L308
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L288:
	add	r3, r3, r5
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r4, r3
	str	r3, [fp, #-60]
.L277:
	ldr	r3, [fp, #-60]
	ldr	r2, .L308+8
	cmp	r3, r2
	ble	.L264
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r1, [fp, #-84]
	ldr	r2, [fp, #-64]
	sub	r2, r1, r2
	str	r2, [r3]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r0, r3, r2
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r4, r2, r3
	ldr	r1, [fp, #-64]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [r4]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #4
	add	r0, r3, r2
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r4, r2, r3
	ldr	r1, [fp, #-64]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [r4]
.L264:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L263:
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L289
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L262:
	ldr	r3, [fp, #12]
	sub	r3, r3, #5
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L290
	mov	r3, #0
	str	r3, [fp, #-64]
	mov	r3, #5
	str	r3, [fp, #-56]
	b	.L291
.L295:
	mov	r3, #5
	str	r3, [fp, #-52]
	b	.L292
.L309:
	.align	2
.L308:
	.word	1071644672
	.word	1077936128
	.word	290
	.word	15000
	.word	stderr
	.word	.LC33
.L294:
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L293
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r3, [fp, #-56]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L293
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	ldr	r2, [fp, #-52]
	str	r2, [r3]
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	ldr	r2, [fp, #-56]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r1, r2, r3
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	ldr	r2, [r1]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r1, r2, r3
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	ldr	r2, [r1]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	mov	r2, r1
	str	r2, [r3, #20]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r2, .L308+12
	cmp	r3, r2
	bne	.L293
	ldr	r3, .L308+16
	ldr	r3, [r3]
	mov	r2, #18
	mov	r1, #1
	ldr	r0, .L308+20
	bl	fwrite
	mov	r0, #1
	bl	exit
.L293:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L292:
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L294
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L291:
	ldr	r3, [fp, #12]
	sub	r3, r3, #5
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	blt	.L295
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	mov	r2, #7
	str	r2, [r3, #8]
	ldr	r0, [fp, #-48]
	bl	free
	ldr	r0, [fp, #-44]
	bl	free
	nop
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	susan_corners, .-susan_corners
	.align	2
	.global	susan_corners_quick
	.syntax unified
	.arm
	.fpu softvfp
	.type	susan_corners_quick, %function
susan_corners_quick:
	@ args = 12, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #12]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-44]
	bl	memset
	mov	r3, #7
	str	r3, [fp, #-28]
	b	.L311
.L315:
	mov	r3, #7
	str	r3, [fp, #-24]
	b	.L312
.L314:
	mov	r3, #100
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #8]
	sub	r3, r3, #6
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #8]
	sub	r3, r3, #5
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #8]
	sub	r3, r3, #3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bge	.L313
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r1, [fp, #-52]
	ldr	r2, [fp, #-32]
	sub	r2, r1, r2
	str	r2, [r3]
.L313:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L312:
	ldr	r3, [fp, #8]
	sub	r3, r3, #7
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L314
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L311:
	ldr	r3, [fp, #12]
	sub	r3, r3, #7
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L315
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #7
	str	r3, [fp, #-28]
	b	.L316
.L320:
	mov	r3, #7
	str	r3, [fp, #-24]
	b	.L317
.L319:
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L318
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L318
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r1, r3
	ldr	r2, [fp, #-28]
	sub	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-40]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	sub	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	sub	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	sub	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	sub	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	sub	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-40]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	sub	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	sub	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-40]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-40]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-40]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r2, r3, r2
	ldr	r3, [fp, #-20]
	ldr	r1, .L321
	smull	r0, r1, r3, r1
	asr	r1, r1, #3
	asr	r3, r3, #31
	sub	r3, r1, r3
	str	r3, [r2, #20]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r1, r3
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #2
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #2
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r0, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	sub	r1, r1, #2
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	add	r1, r1, #1
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	sub	r1, r1, #2
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	add	r1, r1, #2
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	sub	r1, r1, #2
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	sub	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r0, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	sub	r1, r1, #1
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	add	r1, r1, #1
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	sub	r1, r1, #1
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	add	r1, r1, #2
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	sub	r1, r1, #1
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	sub	r3, r2, r3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r1, r3
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-40]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #2
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #2
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-28]
	sub	r3, r3, #2
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r0, r3
	ldr	r1, [fp, #-28]
	sub	r1, r1, #2
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	mov	r0, r1
	ldr	r1, [fp, #-40]
	add	r1, r1, r0
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	sub	r1, r1, #2
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	add	r1, r1, #1
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	sub	r1, r1, #2
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	add	r1, r1, #2
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldr	r2, [fp, #8]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	sub	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	sub	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	mov	r1, r2
	ldr	r2, [fp, #-40]
	add	r2, r2, r1
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #1
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r2, r2, #1
	ldr	r1, [fp, #8]
	mul	r1, r2, r1
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	add	r2, r2, #2
	ldr	r1, [fp, #-40]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #2
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r1, [fp, #8]
	mul	r1, r3, r1
	ldr	r3, [fp, #-24]
	add	r3, r1, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r0, r3
	ldr	r1, [fp, #-28]
	sub	r1, r1, #1
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	mov	r0, r1
	ldr	r1, [fp, #-40]
	add	r1, r1, r0
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	sub	r1, r1, #1
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	add	r1, r1, #1
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	ldr	r1, [fp, #-28]
	sub	r1, r1, #1
	ldr	r0, [fp, #8]
	mul	r0, r1, r0
	ldr	r1, [fp, #-24]
	add	r1, r0, r1
	add	r1, r1, #2
	ldr	r0, [fp, #-40]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r3, r3, r1
	sub	r3, r2, r3
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r2, r3, r2
	ldr	r3, [fp, #-20]
	ldr	r1, .L321+4
	smull	r0, r1, r3, r1
	add	r1, r1, r3
	asr	r1, r1, #3
	asr	r3, r3, #31
	sub	r3, r1, r3
	str	r3, [r2, #12]
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r2, r3, r2
	ldr	r3, [fp, #-16]
	ldr	r1, .L321+4
	smull	r0, r1, r3, r1
	add	r1, r1, r3
	asr	r1, r1, #3
	asr	r3, r3, #31
	sub	r3, r1, r3
	str	r3, [r2, #16]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r2, .L321+8
	cmp	r3, r2
	bne	.L318
	ldr	r3, .L321+12
	ldr	r3, [r3]
	mov	r2, #18
	mov	r1, #1
	ldr	r0, .L321+16
	bl	fwrite
	mov	r0, #1
	bl	exit
.L318:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L317:
	ldr	r3, [fp, #8]
	sub	r3, r3, #7
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L319
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L316:
	ldr	r3, [fp, #12]
	sub	r3, r3, #7
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L320
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	mov	r2, #7
	str	r2, [r3, #8]
	nop
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L322:
	.align	2
.L321:
	.word	1374389535
	.word	-2004318071
	.word	15000
	.word	stderr
	.word	.LC33
	.size	susan_corners_quick, .-susan_corners_quick
	.section	.rodata
	.align	2
.LC34:
	.ascii	"No argument following -d\000"
	.align	2
.LC35:
	.ascii	"No argument following -t\000"
	.align	2
.LC36:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 360168
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #356352
	sub	sp, sp, #3824
	sub	sp, sp, #12
	sub	r3, fp, #356352
	sub	r3, r3, #12
	str	r0, [r3, #-3812]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	str	r1, [r3, #-3816]
	ldr	r3, .L365
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r3, .L365+4
	str	r3, [r2, #-3788]	@ float
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #3
	str	r3, [r2, #-3784]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #20
	str	r3, [r2, #-3780]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3776]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3772]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3768]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3764]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3760]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r3, .L365+8
	str	r3, [r2, #-3752]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r3, .L365+12
	str	r3, [r2, #-3748]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3756]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3812]
	cmp	r3, #2
	bgt	.L324
	bl	usage
.L324:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3816]
	add	r3, r3, #4
	ldr	r0, [r3]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	sub	r3, r3, #3792
	ldr	r2, .L365+16
	sub	r1, fp, #12
	add	r2, r1, r2
	ldr	r1, .L365+20
	sub	ip, fp, #12
	add	r1, ip, r1
	bl	get_image
	b	.L325
.L344:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3784]
	lsl	r3, r3, #2
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3816]
	add	r3, r2, r3
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r3, [r3]
	str	r3, [r2, #-3736]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3736]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L326
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3736]
	add	r3, r3, #1
	str	r3, [r2, #-3736]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3736]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #51
	cmp	r3, #65
	ldrls	pc, [pc, r3, asl #2]
	b	.L343
.L329:
	.word	.L338
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L337
	.word	.L336
	.word	.L335
	.word	.L334
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L343
	.word	.L333
	.word	.L343
	.word	.L332
	.word	.L331
	.word	.L343
	.word	.L330
	.word	.L328
.L330:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3756]
	b	.L343
.L334:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3756]
	b	.L343
.L336:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #2
	str	r3, [r2, #-3756]
	b	.L343
.L332:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3776]
	b	.L343
.L333:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-3772]
	b	.L343
.L337:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3764]
	b	.L343
.L338:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3768]
	b	.L343
.L331:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3760]
	b	.L343
.L335:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3784]
	add	r3, r3, #1
	str	r3, [r2, #-3784]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r2, [r2, #-3784]
	ldr	r3, [r3, #-3812]
	cmp	r2, r3
	blt	.L339
	ldr	r0, .L365+24
	bl	puts
	mov	r0, #0
	bl	exit
.L339:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3784]
	lsl	r3, r3, #2
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3816]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	atof
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #356352
	sub	r1, r1, #12
	mov	r4, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4, #-3788]	@ float
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r1, #0
	ldr	r0, [r3, #-3788]	@ float
	bl	__aeabi_fcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L363
	b	.L343
.L363:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3768]
	b	.L343
.L328:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3784]
	add	r3, r3, #1
	str	r3, [r2, #-3784]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r2, [r2, #-3784]
	ldr	r3, [r3, #-3812]
	cmp	r2, r3
	blt	.L342
	ldr	r0, .L365+28
	bl	puts
	mov	r0, #0
	bl	exit
.L342:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3784]
	lsl	r3, r3, #2
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3816]
	add	r3, r2, r3
	ldr	r3, [r3]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	atoi
	str	r0, [r4, #-3780]
	b	.L343
.L326:
	bl	usage
.L343:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3784]
	add	r3, r3, #1
	str	r3, [r2, #-3784]
.L325:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r2, [r2, #-3784]
	ldr	r3, [r3, #-3812]
	cmp	r2, r3
	blt	.L344
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3776]
	cmp	r3, #1
	bne	.L345
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3756]
	cmp	r3, #0
	bne	.L345
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-3756]
.L345:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3756]
	cmp	r3, #2
	beq	.L346
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3756]
	cmp	r3, #2
	bgt	.L347
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3756]
	cmp	r3, #0
	beq	.L348
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3756]
	cmp	r3, #1
	beq	.L349
	b	.L347
.L348:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r1, r3
	ldr	r3, .L365+32
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #2
	ldr	r1, [r1, #-3780]
	mov	r0, r3
	bl	setup_brightness_lut
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r4, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3788]	@ float
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #356352
	sub	r1, r1, #12
	ldr	r1, [r1, #-3796]
	sub	r0, fp, #356352
	sub	r0, r0, #12
	ldr	r0, [r0, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	ldr	ip, [ip, #-3800]
	sub	lr, fp, #356352
	sub	lr, lr, #12
	str	ip, [sp, #8]
	str	r0, [sp, #4]
	str	r1, [sp]
	mov	r1, r4
	ldr	r0, [lr, #-3768]
	bl	susan_smoothing
	b	.L347
.L349:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #356352
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [r4, #-3744]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r1, r3
	ldr	r3, .L365+32
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #6
	ldr	r1, [r1, #-3780]
	mov	r0, r3
	bl	setup_brightness_lut
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3776]
	cmp	r3, #0
	beq	.L350
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3768]
	cmp	r3, #0
	beq	.L351
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3800]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	mov	lr, ip
	sub	ip, fp, #356352
	sub	ip, ip, #12
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [lr, #-3748]
	mov	r2, r1
	ldr	r1, [ip, #-3744]
	bl	susan_principle_small
	b	.L352
.L351:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3800]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	mov	lr, ip
	sub	ip, fp, #356352
	sub	ip, ip, #12
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [lr, #-3748]
	mov	r2, r1
	ldr	r1, [ip, #-3744]
	bl	susan_principle
.L352:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	mul	r3, r2, r3
	sub	r2, fp, #356352
	sub	r2, r2, #12
	mov	r0, r2
	mov	r2, r3
	ldr	r0, [r0, #-3744]
	bl	int_to_uchar
	b	.L347
.L350:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	mul	r3, r2, r3
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r4, r3
	mov	r0, r2
	bl	malloc
	mov	r3, r0
	str	r3, [r4, #-3740]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	mul	r3, r2, r3
	mov	r2, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r1, #100
	ldr	r0, [r3, #-3740]
	bl	memset
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3768]
	cmp	r3, #0
	beq	.L354
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3800]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	mov	lr, ip
	sub	ip, fp, #356352
	sub	ip, ip, #12
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3748]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [lr, #-3740]
	ldr	r1, [ip, #-3744]
	bl	susan_edges_small
	b	.L355
.L354:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3800]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	mov	lr, ip
	sub	ip, fp, #356352
	sub	ip, ip, #12
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3748]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, [lr, #-3740]
	ldr	r1, [ip, #-3744]
	bl	susan_edges
.L355:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3772]
	cmp	r3, #0
	beq	.L356
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r2, [r3, #-3796]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3792]
	sub	r1, fp, #356352
	sub	r1, r1, #12
	sub	r0, fp, #356352
	sub	r0, r0, #12
	ldr	r1, [r1, #-3740]
	ldr	r0, [r0, #-3744]
	bl	susan_thin
.L356:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r2, [r3, #-3796]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3792]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	ip, r3
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3764]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [ip, #-3740]
	bl	edge_draw
	b	.L347
.L346:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #356352
	sub	r2, r2, #12
	mov	r4, r2
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [r4, #-3744]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	mov	r1, r3
	ldr	r3, .L365+32
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #6
	ldr	r1, [r1, #-3780]
	mov	r0, r3
	bl	setup_brightness_lut
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3776]
	cmp	r3, #0
	beq	.L357
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3800]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	mov	lr, ip
	sub	ip, fp, #356352
	sub	ip, ip, #12
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [lr, #-3752]
	mov	r2, r1
	ldr	r1, [ip, #-3744]
	bl	susan_principle
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	mul	r3, r2, r3
	sub	r2, fp, #356352
	sub	r2, r2, #12
	mov	r0, r2
	mov	r2, r3
	ldr	r0, [r0, #-3744]
	bl	int_to_uchar
	b	.L364
.L357:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3760]
	cmp	r3, #0
	beq	.L359
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3800]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	mov	lr, ip
	sub	ip, fp, #356352
	sub	ip, ip, #12
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	ldr	r3, .L365+36
	sub	r2, fp, #12
	add	r3, r2, r3
	str	r3, [sp]
	ldr	r3, [lr, #-3752]
	mov	r2, r1
	ldr	r1, [ip, #-3744]
	bl	susan_corners_quick
	b	.L360
.L359:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3800]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3796]
	sub	r2, fp, #356352
	sub	r2, r2, #12
	ldr	r2, [r2, #-3792]
	sub	ip, fp, #356352
	sub	ip, ip, #12
	mov	lr, ip
	sub	ip, fp, #356352
	sub	ip, ip, #12
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	ldr	r3, .L365+36
	sub	r2, fp, #12
	add	r3, r2, r3
	str	r3, [sp]
	ldr	r3, [lr, #-3752]
	mov	r2, r1
	ldr	r1, [ip, #-3744]
	bl	susan_corners
.L360:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r0, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r2, [r3, #-3796]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, .L365+36
	sub	ip, fp, #12
	add	r1, ip, r1
	ldr	r3, [r3, #-3764]
	bl	corner_draw
.L364:
	nop
.L347:
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3816]
	add	r3, r3, #8
	ldr	r0, [r3]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r1, [r3, #-3804]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r2, [r3, #-3796]
	sub	r3, fp, #356352
	sub	r3, r3, #12
	ldr	r3, [r3, #-3792]
	bl	put_image
	mov	r3, #0
	ldr	r2, .L365
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L362
	bl	__stack_chk_fail
.L362:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L366:
	.align	2
.L365:
	.word	.LC36
	.word	1082130432
	.word	1850
	.word	2650
	.word	-360148
	.word	-360156
	.word	.LC34
	.word	.LC35
	.word	-360152
	.word	-360084
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
