	.file	"151112.c"
	.intel_syntax noprefix
	.text
	.type	InnerProductMerge, @function
InnerProductMerge:
.LFB6:
	.cfi_startproc
	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 -8[rbp], 0
	jmp	.L2
.L5:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L3
.L4:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	cwde
	imul	eax, edx
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	subsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -4[rbp], 1
.L3:
	cmp	DWORD PTR -4[rbp], 13
	jle	.L4
	add	DWORD PTR -8[rbp], 1
.L2:
	cmp	DWORD PTR -8[rbp], 2
	jle	.L5
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	InnerProductMerge, .-InnerProductMerge
	.type	OuterProductMerge, @function
OuterProductMerge:
.LFB7:
	.cfi_startproc
	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 -12[rbp], 1
	jmp	.L7
.L12:
	mov	DWORD PTR -8[rbp], 1
	jmp	.L8
.L11:
	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 -24[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rdx+rax*8], xmm0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L9
.L10:
	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 -24[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	movsd	xmm1, QWORD PTR [rdx+rax*8]
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	cwde
	imul	eax, edx
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, 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 -24[rbp]
	add	rdx, rax
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	movsd	QWORD PTR [rdx+rax*8], xmm0
	add	DWORD PTR -4[rbp], 1
.L9:
	cmp	DWORD PTR -4[rbp], 13
	jle	.L10
	add	DWORD PTR -8[rbp], 1
.L8:
	cmp	DWORD PTR -8[rbp], 2
	jle	.L11
	add	DWORD PTR -12[rbp], 1
.L7:
	cmp	DWORD PTR -12[rbp], 2
	jle	.L12
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	OuterProductMerge, .-OuterProductMerge
	.type	AnalyzeRanges, @function
AnalyzeRanges:
.LFB8:
	.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 -120[rbp], rdi
	mov	QWORD PTR -128[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -104[rbp], 1
	jmp	.L14
.L21:
	mov	eax, DWORD PTR -104[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
	movsd	xmm0, QWORD PTR 8[rax]
	movq	xmm1, QWORD PTR .LC1[rip]
	andpd	xmm0, xmm1
	mov	eax, DWORD PTR -104[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
	movsd	xmm1, QWORD PTR 16[rax]
	movq	xmm2, QWORD PTR .LC1[rip]
	andpd	xmm1, xmm2
	comisd	xmm0, xmm1
	jbe	.L59
	mov	eax, DWORD PTR -104[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
	movsd	xmm0, QWORD PTR 8[rax]
	movq	xmm1, QWORD PTR .LC1[rip]
	andpd	xmm0, xmm1
	jmp	.L17
.L59:
	mov	eax, DWORD PTR -104[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
	movsd	xmm0, QWORD PTR 16[rax]
	movq	xmm1, QWORD PTR .LC1[rip]
	andpd	xmm0, xmm1
.L17:
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC2[rip]
	comisd	xmm0, QWORD PTR -64[rbp]
	jbe	.L60
	mov	eax, 1
	jmp	.L50
.L60:
	movsd	xmm0, QWORD PTR .LC3[rip]
	divsd	xmm0, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	movsd	QWORD PTR -32[rbp+rax*8], xmm0
	add	DWORD PTR -104[rbp], 1
.L14:
	cmp	DWORD PTR -104[rbp], 2
	jle	.L21
	mov	DWORD PTR -100[rbp], 0
	mov	DWORD PTR -96[rbp], 1
	jmp	.L22
.L41:
	mov	DWORD PTR -92[rbp], 1
	jmp	.L23
.L26:
	mov	eax, DWORD PTR -92[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	movsd	QWORD PTR -56[rbp], xmm0
	mov	DWORD PTR -88[rbp], 1
	jmp	.L24
.L25:
	mov	eax, DWORD PTR -92[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 -88[rbp]
	cdqe
	movsd	xmm1, QWORD PTR [rdx+rax*8]
	mov	eax, DWORD PTR -88[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	add	DWORD PTR -88[rbp], 1
.L24:
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jl	.L25
	mov	eax, DWORD PTR -92[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR [rdx+rax*8], xmm0
	add	DWORD PTR -92[rbp], 1
.L23:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jl	.L26
	pxor	xmm0, xmm0
	movsd	QWORD PTR -64[rbp], xmm0
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR -84[rbp], eax
	jmp	.L27
.L32:
	mov	eax, DWORD PTR -84[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	movsd	QWORD PTR -56[rbp], xmm0
	mov	DWORD PTR -80[rbp], 1
	jmp	.L28
.L29:
	mov	eax, DWORD PTR -84[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 -80[rbp]
	cdqe
	movsd	xmm1, QWORD PTR [rdx+rax*8]
	mov	eax, DWORD PTR -80[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	add	DWORD PTR -80[rbp], 1
.L28:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jl	.L29
	mov	eax, DWORD PTR -84[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR [rdx+rax*8], xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	movq	xmm1, QWORD PTR .LC1[rip]
	andpd	xmm1, xmm0
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -32[rbp+rax*8]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR -56[rbp]
	comisd	xmm0, QWORD PTR -64[rbp]
	jb	.L30
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR -64[rbp], xmm0
	mov	eax, DWORD PTR -84[rbp]
	mov	DWORD PTR -100[rbp], eax
.L30:
	add	DWORD PTR -84[rbp], 1
.L27:
	cmp	DWORD PTR -84[rbp], 2
	jle	.L32
	mov	eax, DWORD PTR -100[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	je	.L33
	mov	DWORD PTR -76[rbp], 1
	jmp	.L34
.L35:
	mov	eax, DWORD PTR -100[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 -76[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	movsd	QWORD PTR -56[rbp], xmm0
	mov	eax, DWORD PTR -96[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]
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -100[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 -76[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rcx+rax*8]
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	movsd	QWORD PTR [rdx+rax*8], xmm0
	mov	eax, DWORD PTR -96[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 -76[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR [rdx+rax*8], xmm0
	add	DWORD PTR -76[rbp], 1
.L34:
	cmp	DWORD PTR -76[rbp], 2
	jle	.L35
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -32[rbp+rax*8]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	movsd	QWORD PTR -32[rbp+rax*8], xmm0
.L33:
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -128[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -100[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -96[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	pxor	xmm1, xmm1
	ucomisd	xmm0, xmm1
	jp	.L36
	pxor	xmm1, xmm1
	ucomisd	xmm0, xmm1
	jne	.L36
	mov	eax, 1
	jmp	.L50
.L36:
	cmp	DWORD PTR -96[rbp], 2
	je	.L38
	mov	eax, DWORD PTR -96[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 -96[rbp]
	cdqe
	movsd	xmm1, QWORD PTR [rdx+rax*8]
	movsd	xmm0, QWORD PTR .LC3[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	mov	eax, DWORD PTR -96[rbp]
	add	eax, 1
	mov	DWORD PTR -72[rbp], eax
	jmp	.L39
.L40:
	mov	eax, DWORD PTR -72[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 -96[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	mov	eax, DWORD PTR -72[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
	mulsd	xmm0, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	movsd	QWORD PTR [rdx+rax*8], xmm0
	add	DWORD PTR -72[rbp], 1
.L39:
	cmp	DWORD PTR -72[rbp], 2
	jle	.L40
.L38:
	add	DWORD PTR -96[rbp], 1
.L22:
	cmp	DWORD PTR -96[rbp], 2
	jle	.L41
	movsd	xmm0, QWORD PTR .LC4[rip]
	movsd	QWORD PTR -48[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -68[rbp], 1
	jmp	.L42
.L47:
	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 -68[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	movq	xmm1, QWORD PTR .LC1[rip]
	andpd	xmm0, xmm1
	movsd	QWORD PTR -56[rbp], xmm0
	movsd	xmm0, QWORD PTR -48[rbp]
	comisd	xmm0, QWORD PTR -56[rbp]
	jbe	.L43
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR -48[rbp], xmm0
.L43:
	movsd	xmm0, QWORD PTR -56[rbp]
	comisd	xmm0, QWORD PTR -40[rbp]
	jbe	.L45
	movsd	xmm0, QWORD PTR -56[rbp]
	movsd	QWORD PTR -40[rbp], xmm0
.L45:
	add	DWORD PTR -68[rbp], 1
.L42:
	cmp	DWORD PTR -68[rbp], 2
	jle	.L47
	movsd	xmm0, QWORD PTR -48[rbp]
	movapd	xmm1, xmm0
	divsd	xmm1, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR .LC5[rip]
	comisd	xmm0, xmm1
	jbe	.L61
	mov	eax, 1
	jmp	.L50
.L61:
	mov	eax, 0
.L50:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L51
	call	__stack_chk_fail@PLT
.L51:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	AnalyzeRanges, .-AnalyzeRanges
	.type	BidirectionalFilter, @function
BidirectionalFilter:
.LFB9:
	.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	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -32[rbp], 1
	mov	DWORD PTR -28[rbp], 0
	jmp	.L63
.L69:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	movsd	xmm0, QWORD PTR [rdx]
	movsd	QWORD PTR [rax], xmm0
	cmp	DWORD PTR -28[rbp], 0
	je	.L64
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -24[rbp], eax
	jmp	.L65
.L66:
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	add	DWORD PTR -24[rbp], 1
.L65:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jg	.L66
	jmp	.L67
.L64:
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -8[rbp]
	jp	.L74
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -8[rbp]
	je	.L67
.L74:
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -28[rbp], eax
.L67:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -32[rbp], 1
.L63:
	cmp	DWORD PTR -32[rbp], 2
	jle	.L69
	mov	DWORD PTR -20[rbp], 2
	jmp	.L70
.L73:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 1
	mov	DWORD PTR -16[rbp], eax
	jmp	.L71
.L72:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	movsd	xmm0, QWORD PTR [rdx+rax*8]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	add	DWORD PTR -16[rbp], 1
.L71:
	cmp	DWORD PTR -16[rbp], 2
	jle	.L72
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	movsd	xmm1, QWORD PTR [rdx+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR -8[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	sub	DWORD PTR -20[rbp], 1
.L70:
	cmp	DWORD PTR -20[rbp], 0
	jg	.L73
	mov	rax, QWORD PTR -56[rbp]
	movsd	xmm0, QWORD PTR .LC3[rip]
	movsd	QWORD PTR [rax], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	BidirectionalFilter, .-BidirectionalFilter
	.type	QuadraticMerge, @function
QuadraticMerge:
.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR 16[rax]
	movsd	QWORD PTR -32[rbp], xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	movapd	xmm1, xmm0
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC3[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -24[rbp]
	jp	.L76
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -24[rbp]
	jne	.L76
	mov	eax, 1
	jmp	.L78
.L76:
	mov	rax, QWORD PTR -40[rbp]
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR -32[rbp]
	movapd	xmm2, xmm0
	mulsd	xmm2, xmm0
	subsd	xmm1, xmm2
	movapd	xmm0, xmm1
	divsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	mulsd	xmm1, QWORD PTR -32[rbp]
	subsd	xmm0, xmm1
	divsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR -8[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR -16[rbp]
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR -8[rbp]
	movsd	QWORD PTR [rax], xmm0
	movsd	xmm0, QWORD PTR -8[rbp]
	movq	xmm1, QWORD PTR .LC1[rip]
	andpd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC3[rip]
	comisd	xmm0, xmm1
	seta	al
.L78:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	QuadraticMerge, .-QuadraticMerge
	.type	FinishRecord, @function
FinishRecord:
.LFB11:
	.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 -4[rbp], 1
	jmp	.L81
.L86:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR .LC3[rip]
	comisd	xmm0, xmm1
	jb	.L89
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC6[rip]
	movsd	QWORD PTR [rax], xmm0
	jmp	.L84
.L89:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR .LC7[rip]
	comisd	xmm0, xmm1
	jb	.L84
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR .LC8[rip]
	movsd	QWORD PTR [rax], xmm0
.L84:
	add	DWORD PTR -4[rbp], 1
.L81:
	cmp	DWORD PTR -4[rbp], 2
	jle	.L86
	mov	rax, QWORD PTR -32[rbp]
	movsd	xmm0, QWORD PTR .LC3[rip]
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm1, xmm0
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 16[rax]
	movsd	QWORD PTR [rdx], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	FinishRecord, .-FinishRecord
	.type	MatrixFilter, @function
MatrixFilter:
.LFB12:
	.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 -120[rbp], rdi
	mov	QWORD PTR -128[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movsd	xmm0, QWORD PTR .LC3[rip]
	movsd	QWORD PTR -32[rbp], xmm0
	mov	DWORD PTR -108[rbp], 1
	jmp	.L91
.L92:
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm1, QWORD PTR .LC9[rip]
	xorpd	xmm0, xmm1
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	add	rax, 6
	movsd	QWORD PTR -80[rbp+rax*8], xmm0
	add	DWORD PTR -108[rbp], 1
.L91:
	cmp	DWORD PTR -108[rbp], 2
	jle	.L92
	mov	DWORD PTR -104[rbp], 2
	jmp	.L93
.L96:
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 5
	add	rax, rbp
	sub	rax, 80
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 5
	add	rax, rbp
	sub	rax, 80
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC3[rip]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -88[rbp], xmm0
	mov	DWORD PTR -100[rbp], 1
	jmp	.L94
.L95:
	mov	eax, DWORD PTR -104[rbp]
	cdqe
	sal	rax, 5
	add	rax, rbp
	sub	rax, 80
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -100[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	xmm0, QWORD PTR -80[rbp+rax*8]
	mulsd	xmm1, xmm0
	mov	eax, DWORD PTR -100[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	xmm0, QWORD PTR -80[rbp+rax*8]
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -104[rbp]
	lea	edx, -1[rax]
	divsd	xmm0, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR -100[rbp]
	movsx	rcx, eax
	movsx	rdx, edx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	QWORD PTR -80[rbp+rax*8], xmm0
	add	DWORD PTR -100[rbp], 1
.L94:
	mov	eax, DWORD PTR -100[rbp]
	cmp	eax, DWORD PTR -104[rbp]
	jle	.L95
	sub	DWORD PTR -104[rbp], 1
.L93:
	cmp	DWORD PTR -104[rbp], 0
	jg	.L96
	mov	rax, QWORD PTR -128[rbp]
	movsd	xmm0, QWORD PTR .LC3[rip]
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -96[rbp], 1
	jmp	.L97
.L100:
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -92[rbp], 1
	jmp	.L98
.L99:
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -92[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	xmm2, QWORD PTR -80[rbp+rax*8]
	mov	eax, DWORD PTR -96[rbp]
	sub	eax, DWORD PTR -92[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm2
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -92[rbp], 1
.L98:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jle	.L99
	add	DWORD PTR -96[rbp], 1
.L97:
	cmp	DWORD PTR -96[rbp], 2
	jle	.L100
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L101
	call	__stack_chk_fail@PLT
.L101:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	MatrixFilter, .-MatrixFilter
	.type	MergeFinishRecord, @function
MergeFinishRecord:
.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 -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	movsd	xmm0, QWORD PTR [rax]
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR .LC3[rip]
	movsd	QWORD PTR [rax], xmm0
	mov	DWORD PTR -60[rbp], 1
	jmp	.L103
.L111:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -40[rbp], xmm0
	mov	DWORD PTR -56[rbp], 1
	jmp	.L104
.L105:
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, DWORD PTR -56[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -40[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -40[rbp], xmm0
	add	DWORD PTR -56[rbp], 1
.L104:
	mov	eax, DWORD PTR -56[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L105
	movsd	xmm0, QWORD PTR -48[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L114
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	addsd	xmm0, QWORD PTR -40[rbp]
	movq	xmm1, QWORD PTR .LC9[rip]
	xorpd	xmm0, xmm1
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	divsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR [rax], xmm0
	jmp	.L108
.L114:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	pxor	xmm0, xmm0
	movsd	QWORD PTR [rax], xmm0
.L108:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	movsd	QWORD PTR -32[rbp+rax*8], xmm0
	mov	DWORD PTR -52[rbp], 1
	jmp	.L109
.L110:
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movsd	xmm2, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm2
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	addsd	xmm0, xmm1
	movsd	QWORD PTR [rax], xmm0
	add	DWORD PTR -52[rbp], 1
.L109:
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L110
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movsd	xmm1, QWORD PTR [rax]
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC3[rip]
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -48[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	add	DWORD PTR -60[rbp], 1
.L103:
	cmp	DWORD PTR -60[rbp], 2
	jle	.L111
	mov	rdx, QWORD PTR -80[rbp]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FinishRecord
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L112
	call	__stack_chk_fail@PLT
.L112:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	MergeFinishRecord, .-MergeFinishRecord
	.type	ContrastVectors, @function
ContrastVectors:
.LFB14:
	.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	rax, QWORD PTR -48[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	movsd	xmm1, QWORD PTR [rax]
	subsd	xmm0, xmm1
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 16
	movsd	xmm2, QWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 16
	movsd	xmm1, QWORD PTR [rax]
	mulsd	xmm2, xmm1
	movsd	xmm1, QWORD PTR .LC3[rip]
	subsd	xmm1, xmm2
	divsd	xmm0, xmm1
	movsd	QWORD PTR -32[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm1, xmm0
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	movsd	xmm2, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm2
	addsd	xmm1, xmm0
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 16
	movsd	xmm2, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm1, xmm0
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	movsd	xmm2, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movsd	xmm1, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 16
	movsd	xmm0, QWORD PTR [rax]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -8[rbp], xmm0
	movsd	xmm0, QWORD PTR -32[rbp]
	addsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -16[rbp]
	movapd	xmm1, xmm0
	addsd	xmm1, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm2, QWORD PTR .LC9[rip]
	xorpd	xmm0, xmm2
	mulsd	xmm0, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 16
	movsd	xmm2, QWORD PTR [rax]
	subsd	xmm0, xmm2
	addsd	xmm0, xmm0
	mulsd	xmm0, QWORD PTR -8[rbp]
	addsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	ContrastVectors, .-ContrastVectors
	.type	FilterRecords, @function
FilterRecords:
.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, 368
	mov	QWORD PTR -344[rbp], rdi
	mov	DWORD PTR -348[rbp], esi
	mov	QWORD PTR -360[rbp], rdx
	mov	DWORD PTR -352[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -280[rbp], xmm0
	mov	DWORD PTR -324[rbp], 0
	jmp	.L118
.L138:
	mov	DWORD PTR -320[rbp], 0
	jmp	.L119
.L122:
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	mov	DWORD PTR -240[rbp+rax*4], 0
	mov	DWORD PTR -316[rbp], 0
	jmp	.L120
.L121:
	mov	eax, DWORD PTR -316[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -320[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	pxor	xmm0, xmm0
	movsd	QWORD PTR -208[rbp+rax*8], xmm0
	add	DWORD PTR -316[rbp], 1
.L120:
	cmp	DWORD PTR -316[rbp], 2
	jle	.L121
	add	DWORD PTR -320[rbp], 1
.L119:
	mov	eax, DWORD PTR -320[rbp]
	cmp	eax, DWORD PTR -348[rbp]
	jl	.L122
	mov	DWORD PTR -312[rbp], 0
	jmp	.L123
.L130:
	mov	DWORD PTR -328[rbp], 0
	movsd	xmm0, QWORD PTR .LC10[rip]
	movsd	QWORD PTR -288[rbp], xmm0
	mov	DWORD PTR -308[rbp], 0
	jmp	.L124
.L127:
	mov	eax, DWORD PTR -312[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -360[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -308[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	sal	rax, 3
	mov	rcx, rax
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rcx
	mov	rsi, rdx
	mov	rdi, rax
	call	ContrastVectors
	movq	rax, xmm0
	mov	QWORD PTR -280[rbp], rax
	movsd	xmm0, QWORD PTR -288[rbp]
	comisd	xmm0, QWORD PTR -280[rbp]
	jbe	.L125
	movsd	xmm0, QWORD PTR -280[rbp]
	movsd	QWORD PTR -288[rbp], xmm0
	mov	eax, DWORD PTR -308[rbp]
	mov	DWORD PTR -328[rbp], eax
.L125:
	add	DWORD PTR -308[rbp], 1
.L124:
	mov	eax, DWORD PTR -308[rbp]
	cmp	eax, DWORD PTR -348[rbp]
	jl	.L127
	mov	eax, DWORD PTR -328[rbp]
	cdqe
	mov	eax, DWORD PTR -240[rbp+rax*4]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -328[rbp]
	cdqe
	mov	DWORD PTR -240[rbp+rax*4], edx
	mov	eax, DWORD PTR -312[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -360[rbp]
	add	rdx, rax
	lea	rax, -272[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	MatrixFilter
	mov	DWORD PTR -304[rbp], 0
	jmp	.L128
.L129:
	mov	eax, DWORD PTR -304[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -328[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	xmm1, QWORD PTR -208[rbp+rax*8]
	mov	eax, DWORD PTR -304[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -272[rbp+rax*8]
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -304[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -328[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	QWORD PTR -208[rbp+rax*8], xmm0
	add	DWORD PTR -304[rbp], 1
.L128:
	cmp	DWORD PTR -304[rbp], 2
	jle	.L129
	add	DWORD PTR -312[rbp], 1
.L123:
	mov	eax, DWORD PTR -312[rbp]
	cmp	eax, DWORD PTR -352[rbp]
	jl	.L130
	mov	DWORD PTR -300[rbp], 0
	jmp	.L131
.L135:
	mov	eax, DWORD PTR -300[rbp]
	cdqe
	mov	eax, DWORD PTR -240[rbp+rax*4]
	test	eax, eax
	jle	.L132
	mov	DWORD PTR -296[rbp], 0
	jmp	.L133
.L134:
	mov	eax, DWORD PTR -296[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	xmm0, QWORD PTR -208[rbp+rax*8]
	mov	eax, DWORD PTR -300[rbp]
	cdqe
	mov	eax, DWORD PTR -240[rbp+rax*4]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	mov	eax, DWORD PTR -296[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	QWORD PTR -208[rbp+rax*8], xmm0
	add	DWORD PTR -296[rbp], 1
.L133:
	cmp	DWORD PTR -296[rbp], 2
	jle	.L134
.L132:
	add	DWORD PTR -300[rbp], 1
.L131:
	mov	eax, DWORD PTR -300[rbp]
	cmp	eax, DWORD PTR -348[rbp]
	jl	.L135
	mov	DWORD PTR -292[rbp], 0
	jmp	.L136
.L137:
	mov	eax, DWORD PTR -292[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -344[rbp]
	add	rdx, rax
	lea	rsi, -208[rbp]
	mov	eax, DWORD PTR -292[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	sal	rax, 3
	add	rax, rsi
	mov	rsi, rdx
	mov	rdi, rax
	call	MergeFinishRecord
	add	DWORD PTR -292[rbp], 1
.L136:
	mov	eax, DWORD PTR -292[rbp]
	cmp	eax, DWORD PTR -348[rbp]
	jl	.L137
	add	DWORD PTR -324[rbp], 1
.L118:
	cmp	DWORD PTR -324[rbp], 1
	jle	.L138
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L139
	call	__stack_chk_fail@PLT
.L139:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	FilterRecords, .-FilterRecords
	.globl	DSPCorrelateCoefs
	.type	DSPCorrelateCoefs, @function
DSPCorrelateCoefs:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 560
	mov	QWORD PTR -536[rbp], rdi
	mov	DWORD PTR -540[rbp], esi
	mov	QWORD PTR -552[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -540[rbp]
	add	eax, 13
	movsx	rdx, eax
	imul	rdx, rdx, -1840700269
	shr	rdx, 32
	add	edx, eax
	sar	edx, 3
	sar	eax, 31
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -460[rbp], eax
	mov	esi, 14336
	mov	edi, 2
	call	calloc@PLT
	mov	QWORD PTR -456[rbp], rax
	mov	QWORD PTR -352[rbp], 0
	mov	QWORD PTR -344[rbp], 0
	mov	QWORD PTR -336[rbp], 0
	mov	QWORD PTR -328[rbp], 0
	mov	QWORD PTR -320[rbp], 0
	mov	QWORD PTR -312[rbp], 0
	mov	QWORD PTR -304[rbp], 0
	mov	eax, DWORD PTR -460[rbp]
	add	eax, eax
	cdqe
	mov	rsi, rax
	mov	edi, 24
	call	calloc@PLT
	mov	QWORD PTR -448[rbp], rax
	mov	DWORD PTR -516[rbp], 0
	mov	eax, DWORD PTR -540[rbp]
	mov	DWORD PTR -512[rbp], eax
	jmp	.L142
.L155:
	cmp	DWORD PTR -512[rbp], 14336
	jle	.L143
	mov	DWORD PTR -520[rbp], 14336
	sub	DWORD PTR -512[rbp], 14336
	jmp	.L144
.L143:
	mov	eax, DWORD PTR -512[rbp]
	mov	DWORD PTR -520[rbp], eax
	mov	DWORD PTR -508[rbp], 0
	jmp	.L145
.L147:
	mov	edx, DWORD PTR -520[rbp]
	mov	eax, DWORD PTR -508[rbp]
	add	eax, edx
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 0
	add	DWORD PTR -508[rbp], 1
.L145:
	cmp	DWORD PTR -508[rbp], 13
	jg	.L146
	mov	edx, DWORD PTR -508[rbp]
	mov	eax, DWORD PTR -520[rbp]
	add	eax, edx
	cmp	eax, 14335
	jle	.L147
.L146:
	mov	DWORD PTR -512[rbp], 0
.L144:
	mov	eax, DWORD PTR -520[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rcx, QWORD PTR -536[rbp]
	mov	rax, QWORD PTR -456[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	eax, DWORD PTR -520[rbp]
	cdqe
	add	rax, rax
	add	QWORD PTR -536[rbp], rax
	mov	DWORD PTR -504[rbp], 0
	jmp	.L148
.L154:
	mov	DWORD PTR -500[rbp], 0
	jmp	.L149
.L150:
	mov	eax, DWORD PTR -500[rbp]
	cdqe
	add	rax, 14
	movzx	edx, WORD PTR -352[rbp+rax*2]
	mov	eax, DWORD PTR -500[rbp]
	cdqe
	mov	WORD PTR -352[rbp+rax*2], dx
	add	DWORD PTR -500[rbp], 1
.L149:
	cmp	DWORD PTR -500[rbp], 13
	jle	.L150
	mov	DWORD PTR -496[rbp], 0
	jmp	.L151
.L152:
	mov	eax, DWORD PTR -504[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -504[rbp], edx
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	mov	edx, DWORD PTR -496[rbp]
	movsx	rdx, edx
	add	rdx, 14
	mov	WORD PTR -352[rbp+rdx*2], ax
	add	DWORD PTR -496[rbp], 1
.L151:
	cmp	DWORD PTR -496[rbp], 13
	jle	.L152
	lea	rax, -352[rbp]
	lea	rdx, 28[rax]
	lea	rax, -416[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	InnerProductMerge
	movsd	xmm0, QWORD PTR -416[rbp]
	movq	xmm1, QWORD PTR .LC1[rip]
	andpd	xmm0, xmm1
	comisd	xmm0, QWORD PTR .LC11[rip]
	ja	.L189
	jmp	.L148
.L189:
	lea	rax, -352[rbp]
	lea	rdx, 28[rax]
	lea	rax, -288[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	OuterProductMerge
	lea	rdx, -428[rbp]
	lea	rax, -288[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AnalyzeRanges
	xor	eax, 1
	test	al, al
	je	.L148
	lea	rdx, -416[rbp]
	lea	rcx, -428[rbp]
	lea	rax, -288[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	BidirectionalFilter
	lea	rax, -416[rbp]
	mov	rdi, rax
	call	QuadraticMerge
	xor	eax, 1
	test	al, al
	je	.L148
	mov	eax, DWORD PTR -516[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -448[rbp]
	add	rdx, rax
	lea	rax, -416[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	FinishRecord
	add	DWORD PTR -516[rbp], 1
.L148:
	mov	eax, DWORD PTR -504[rbp]
	cmp	eax, DWORD PTR -520[rbp]
	jl	.L154
.L142:
	cmp	DWORD PTR -512[rbp], 0
	jg	.L155
	movsd	xmm0, QWORD PTR .LC3[rip]
	movsd	QWORD PTR -416[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -408[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -400[rbp], xmm0
	mov	DWORD PTR -492[rbp], 0
	jmp	.L156
.L159:
	mov	eax, DWORD PTR -492[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -448[rbp]
	add	rdx, rax
	lea	rax, -208[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	MatrixFilter
	mov	DWORD PTR -488[rbp], 1
	jmp	.L157
.L158:
	mov	eax, DWORD PTR -488[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -416[rbp+rax*8]
	mov	eax, DWORD PTR -488[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -208[rbp+rax*8]
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -488[rbp]
	cdqe
	movsd	QWORD PTR -416[rbp+rax*8], xmm0
	add	DWORD PTR -488[rbp], 1
.L157:
	cmp	DWORD PTR -488[rbp], 2
	jle	.L158
	add	DWORD PTR -492[rbp], 1
.L156:
	mov	eax, DWORD PTR -492[rbp]
	cmp	eax, DWORD PTR -516[rbp]
	jl	.L159
	mov	DWORD PTR -484[rbp], 1
	jmp	.L160
.L161:
	mov	eax, DWORD PTR -484[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -416[rbp+rax*8]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -516[rbp]
	divsd	xmm0, xmm1
	mov	eax, DWORD PTR -484[rbp]
	cdqe
	movsd	QWORD PTR -416[rbp+rax*8], xmm0
	add	DWORD PTR -484[rbp], 1
.L160:
	cmp	DWORD PTR -484[rbp], 2
	jle	.L161
	lea	rdx, -208[rbp]
	lea	rax, -416[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	MergeFinishRecord
	mov	DWORD PTR -480[rbp], 1
	mov	DWORD PTR -476[rbp], 0
	jmp	.L162
.L167:
	pxor	xmm0, xmm0
	movsd	QWORD PTR -384[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC7[rip]
	movsd	QWORD PTR -376[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -368[rbp], xmm0
	mov	DWORD PTR -472[rbp], 0
	jmp	.L163
.L166:
	mov	DWORD PTR -468[rbp], 0
	jmp	.L164
.L165:
	mov	eax, DWORD PTR -468[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -384[rbp+rax*8]
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm1, xmm0
	mov	eax, DWORD PTR -468[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -472[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	xmm0, QWORD PTR -208[rbp+rax*8]
	mov	edx, DWORD PTR -480[rbp]
	mov	eax, DWORD PTR -472[rbp]
	add	edx, eax
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -468[rbp]
	movsx	rcx, eax
	movsx	rdx, edx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movsd	QWORD PTR -208[rbp+rax*8], xmm0
	add	DWORD PTR -468[rbp], 1
.L164:
	cmp	DWORD PTR -468[rbp], 2
	jle	.L165
	add	DWORD PTR -472[rbp], 1
.L163:
	mov	eax, DWORD PTR -472[rbp]
	cmp	eax, DWORD PTR -480[rbp]
	jl	.L166
	add	DWORD PTR -476[rbp], 1
	mov	eax, DWORD PTR -476[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -480[rbp], eax
	mov	ecx, DWORD PTR -516[rbp]
	mov	rdx, QWORD PTR -448[rbp]
	mov	esi, DWORD PTR -480[rbp]
	lea	rax, -208[rbp]
	mov	rdi, rax
	call	FilterRecords
.L162:
	cmp	DWORD PTR -476[rbp], 2
	jle	.L167
	mov	DWORD PTR -464[rbp], 0
	jmp	.L168
.L187:
	mov	eax, DWORD PTR -464[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 200
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm1, QWORD PTR .LC9[rip]
	xorpd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC13[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -440[rbp], xmm0
	movsd	xmm0, QWORD PTR -440[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L196
	movsd	xmm0, QWORD PTR -440[rbp]
	comisd	xmm0, QWORD PTR .LC14[rip]
	jbe	.L197
	mov	edx, 32767
	jmp	.L173
.L197:
	mov	rax, QWORD PTR -440[rbp]
	movq	xmm0, rax
	call	lround@PLT
	mov	edx, eax
.L173:
	mov	eax, DWORD PTR -464[rbp]
	add	eax, eax
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
	jmp	.L174
.L196:
	movsd	xmm0, QWORD PTR .LC15[rip]
	comisd	xmm0, QWORD PTR -440[rbp]
	jbe	.L198
	mov	edx, -32768
	jmp	.L177
.L198:
	mov	rax, QWORD PTR -440[rbp]
	movq	xmm0, rax
	call	lround@PLT
	mov	edx, eax
.L177:
	mov	eax, DWORD PTR -464[rbp]
	add	eax, eax
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
.L174:
	mov	eax, DWORD PTR -464[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 192
	movsd	xmm0, QWORD PTR [rax]
	movq	xmm1, QWORD PTR .LC9[rip]
	xorpd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC13[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -440[rbp], xmm0
	movsd	xmm0, QWORD PTR -440[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L199
	movsd	xmm0, QWORD PTR -440[rbp]
	comisd	xmm0, QWORD PTR .LC14[rip]
	jbe	.L200
	mov	edx, 32767
	jmp	.L182
.L200:
	mov	rax, QWORD PTR -440[rbp]
	movq	xmm0, rax
	call	lround@PLT
	mov	edx, eax
.L182:
	mov	eax, DWORD PTR -464[rbp]
	add	eax, eax
	cdqe
	add	rax, 1
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
	jmp	.L183
.L199:
	movsd	xmm0, QWORD PTR .LC15[rip]
	comisd	xmm0, QWORD PTR -440[rbp]
	jbe	.L201
	mov	edx, -32768
	jmp	.L186
.L201:
	mov	rax, QWORD PTR -440[rbp]
	movq	xmm0, rax
	call	lround@PLT
	mov	edx, eax
.L186:
	mov	eax, DWORD PTR -464[rbp]
	add	eax, eax
	cdqe
	add	rax, 1
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
.L183:
	add	DWORD PTR -464[rbp], 1
.L168:
	cmp	DWORD PTR -464[rbp], 7
	jle	.L187
	mov	rax, QWORD PTR -448[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -456[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L188
	call	__stack_chk_fail@PLT
.L188:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	DSPCorrelateCoefs, .-DSPCorrelateCoefs
	.globl	DSPEncodeFrame
	.type	DSPEncodeFrame, @function
DSPEncodeFrame:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1168
	mov	QWORD PTR -1144[rbp], rdi
	mov	DWORD PTR -1148[rbp], esi
	mov	QWORD PTR -1160[rbp], rdx
	mov	QWORD PTR -1168[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -1136[rbp], 0
	mov	DWORD PTR -1132[rbp], 0
	jmp	.L203
.L227:
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, WORD PTR [rax]
	cwde
	mov	edx, DWORD PTR -1132[rbp]
	movsx	rdx, edx
	sal	rdx, 6
	add	rdx, rbp
	sub	rdx, 528
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, 2
	movzx	eax, WORD PTR [rax]
	cwde
	mov	edx, DWORD PTR -1132[rbp]
	movsx	rdx, edx
	sal	rdx, 6
	add	rdx, rbp
	sub	rdx, 524
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR -1124[rbp], 0
	mov	DWORD PTR -1116[rbp], 0
	jmp	.L204
.L208:
	mov	eax, DWORD PTR -1116[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -1168[rbp]
	add	rax, rcx
	movzx	eax, WORD PTR 2[rax]
	cwde
	mov	ecx, edx
	imul	ecx, eax
	mov	eax, DWORD PTR -1116[rbp]
	cdqe
	add	rax, 1
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	lea	rsi, 0[0+rax*4]
	mov	rax, QWORD PTR -1168[rbp]
	add	rax, rsi
	movzx	eax, WORD PTR [rax]
	cwde
	imul	eax, edx
	add	eax, ecx
	lea	edx, 2047[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 11
	mov	DWORD PTR -1088[rbp], eax
	mov	eax, DWORD PTR -1116[rbp]
	add	eax, 2
	movsx	rdx, eax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -1088[rbp]
	mov	DWORD PTR -528[rbp+rdx*4], eax
	mov	eax, DWORD PTR -1116[rbp]
	cdqe
	add	rax, 2
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	cwde
	sub	eax, DWORD PTR -1088[rbp]
	mov	DWORD PTR -1084[rbp], eax
	cmp	DWORD PTR -1084[rbp], 32766
	jg	.L205
	mov	eax, -32768
	cmp	DWORD PTR -1084[rbp], -32768
	cmovge	eax, DWORD PTR -1084[rbp]
	jmp	.L206
.L205:
	mov	eax, 32767
.L206:
	mov	DWORD PTR -1128[rbp], eax
	mov	eax, DWORD PTR -1128[rbp]
	sar	eax, 31
	mov	edx, eax
	xor	edx, DWORD PTR -1128[rbp]
	sub	edx, eax
	mov	eax, DWORD PTR -1124[rbp]
	sar	eax, 31
	mov	ecx, eax
	mov	eax, ecx
	xor	eax, DWORD PTR -1124[rbp]
	sub	eax, ecx
	cmp	edx, eax
	jle	.L207
	mov	eax, DWORD PTR -1128[rbp]
	mov	DWORD PTR -1124[rbp], eax
.L207:
	add	DWORD PTR -1116[rbp], 1
.L204:
	mov	eax, DWORD PTR -1116[rbp]
	cmp	eax, DWORD PTR -1148[rbp]
	jl	.L208
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	DWORD PTR -1072[rbp+rax*4], 0
	jmp	.L209
.L211:
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	DWORD PTR -1072[rbp+rax*4], edx
	mov	eax, DWORD PTR -1124[rbp]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	DWORD PTR -1124[rbp], eax
.L209:
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	cmp	eax, 12
	jg	.L210
	cmp	DWORD PTR -1124[rbp], 7
	jg	.L211
	cmp	DWORD PTR -1124[rbp], -8
	jl	.L211
.L210:
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	mov	edx, 1
	test	eax, eax
	cmovle	eax, edx
	lea	edx, -2[rax]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	DWORD PTR -1072[rbp+rax*4], edx
.L226:
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	DWORD PTR -1072[rbp+rax*4], edx
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	pxor	xmm0, xmm0
	movsd	QWORD PTR -1040[rbp+rax*8], xmm0
	mov	DWORD PTR -1120[rbp], 0
	mov	DWORD PTR -1112[rbp], 0
	jmp	.L212
.L221:
	mov	eax, DWORD PTR -1112[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edx, DWORD PTR -528[rbp+rax*4]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -1168[rbp]
	add	rax, rcx
	movzx	eax, WORD PTR 2[rax]
	cwde
	mov	ecx, edx
	imul	ecx, eax
	mov	eax, DWORD PTR -1112[rbp]
	add	eax, 1
	movsx	rdx, eax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edx, DWORD PTR -528[rbp+rax*4]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	lea	rsi, 0[0+rax*4]
	mov	rax, QWORD PTR -1168[rbp]
	add	rax, rsi
	movzx	eax, WORD PTR [rax]
	cwde
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -1088[rbp], eax
	mov	eax, DWORD PTR -1112[rbp]
	cdqe
	add	rax, 2
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	cwde
	sal	eax, 11
	sub	eax, DWORD PTR -1088[rbp]
	lea	edx, 2047[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 11
	mov	DWORD PTR -1084[rbp], eax
	cmp	DWORD PTR -1084[rbp], 0
	jle	.L213
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -1084[rbp]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, eax
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC16[rip]
	addsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
	jmp	.L214
.L213:
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -1084[rbp]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	divsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC16[rip]
	subsd	xmm0, xmm1
	cvttsd2si	eax, xmm0
.L214:
	mov	DWORD PTR -1128[rbp], eax
	cmp	DWORD PTR -1128[rbp], -8
	jge	.L215
	mov	eax, -8
	sub	eax, DWORD PTR -1128[rbp]
	mov	DWORD PTR -1128[rbp], eax
	mov	eax, DWORD PTR -1128[rbp]
	cmp	eax, DWORD PTR -1120[rbp]
	jle	.L216
	mov	eax, DWORD PTR -1128[rbp]
	mov	DWORD PTR -1120[rbp], eax
.L216:
	mov	DWORD PTR -1128[rbp], -8
	jmp	.L217
.L215:
	cmp	DWORD PTR -1128[rbp], 7
	jle	.L217
	sub	DWORD PTR -1128[rbp], 7
	mov	eax, DWORD PTR -1128[rbp]
	cmp	eax, DWORD PTR -1120[rbp]
	jle	.L218
	mov	eax, DWORD PTR -1128[rbp]
	mov	DWORD PTR -1120[rbp], eax
.L218:
	mov	DWORD PTR -1128[rbp], 7
.L217:
	mov	eax, DWORD PTR -1112[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -1132[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	add	rax, rax
	lea	rdx, [rax+rcx]
	mov	eax, DWORD PTR -1128[rbp]
	mov	DWORD PTR -976[rbp+rdx*4], eax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	mov	edx, DWORD PTR -1128[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sal	eax, 11
	mov	edx, eax
	mov	eax, DWORD PTR -1088[rbp]
	add	eax, edx
	add	eax, 1024
	sar	eax, 11
	mov	DWORD PTR -1088[rbp], eax
	cmp	DWORD PTR -1088[rbp], 32766
	jg	.L219
	mov	eax, -32768
	cmp	DWORD PTR -1088[rbp], -32768
	cmovge	eax, DWORD PTR -1088[rbp]
	jmp	.L220
.L219:
	mov	eax, 32767
.L220:
	mov	DWORD PTR -1084[rbp], eax
	mov	eax, DWORD PTR -1112[rbp]
	add	eax, 2
	movsx	rdx, eax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -1084[rbp]
	mov	DWORD PTR -528[rbp+rdx*4], eax
	mov	eax, DWORD PTR -1112[rbp]
	cdqe
	add	rax, 2
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	cwde
	sub	eax, DWORD PTR -1084[rbp]
	mov	DWORD PTR -1128[rbp], eax
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -1040[rbp+rax*8]
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, DWORD PTR -1128[rbp]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -1128[rbp]
	mulsd	xmm0, xmm2
	addsd	xmm0, xmm1
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	movsd	QWORD PTR -1040[rbp+rax*8], xmm0
	add	DWORD PTR -1112[rbp], 1
.L212:
	mov	eax, DWORD PTR -1112[rbp]
	cmp	eax, DWORD PTR -1148[rbp]
	jl	.L221
	mov	eax, DWORD PTR -1120[rbp]
	add	eax, 8
	mov	DWORD PTR -1108[rbp], eax
	jmp	.L222
.L224:
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	DWORD PTR -1072[rbp+rax*4], edx
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	cmp	eax, 11
	jle	.L223
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	DWORD PTR -1072[rbp+rax*4], 11
.L223:
	sar	DWORD PTR -1108[rbp]
.L222:
	cmp	DWORD PTR -1108[rbp], 256
	jg	.L224
	mov	eax, DWORD PTR -1132[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	cmp	eax, 11
	jg	.L225
	cmp	DWORD PTR -1120[rbp], 1
	jg	.L226
.L225:
	add	DWORD PTR -1132[rbp], 1
.L203:
	cmp	DWORD PTR -1132[rbp], 7
	jle	.L227
	movsd	xmm0, QWORD PTR .LC17[rip]
	movsd	QWORD PTR -1080[rbp], xmm0
	mov	DWORD PTR -1104[rbp], 0
	jmp	.L228
.L231:
	mov	eax, DWORD PTR -1104[rbp]
	cdqe
	movsd	xmm1, QWORD PTR -1040[rbp+rax*8]
	movsd	xmm0, QWORD PTR -1080[rbp]
	comisd	xmm0, xmm1
	jbe	.L229
	mov	eax, DWORD PTR -1104[rbp]
	cdqe
	movsd	xmm0, QWORD PTR -1040[rbp+rax*8]
	movsd	QWORD PTR -1080[rbp], xmm0
	mov	eax, DWORD PTR -1104[rbp]
	mov	DWORD PTR -1136[rbp], eax
.L229:
	add	DWORD PTR -1104[rbp], 1
.L228:
	cmp	DWORD PTR -1104[rbp], 7
	jle	.L231
	mov	DWORD PTR -1100[rbp], 0
	jmp	.L232
.L233:
	mov	eax, DWORD PTR -1100[rbp]
	add	eax, 2
	movsx	rdx, eax
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	edx, DWORD PTR -528[rbp+rax*4]
	mov	eax, DWORD PTR -1100[rbp]
	cdqe
	add	rax, 2
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
	add	DWORD PTR -1100[rbp], 1
.L232:
	mov	eax, DWORD PTR -1100[rbp]
	cmp	eax, DWORD PTR -1148[rbp]
	jl	.L233
	mov	eax, DWORD PTR -1136[rbp]
	sal	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -1136[rbp]
	cdqe
	mov	eax, DWORD PTR -1072[rbp+rax*4]
	and	eax, 15
	or	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1160[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -1148[rbp]
	mov	DWORD PTR -1096[rbp], eax
	jmp	.L234
.L235:
	mov	eax, DWORD PTR -1096[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -1136[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	add	rax, rax
	add	rax, rcx
	mov	DWORD PTR -976[rbp+rax*4], 0
	add	DWORD PTR -1096[rbp], 1
.L234:
	cmp	DWORD PTR -1096[rbp], 13
	jle	.L235
	mov	DWORD PTR -1092[rbp], 0
	jmp	.L236
.L237:
	mov	eax, DWORD PTR -1092[rbp]
	add	eax, eax
	movsx	rcx, eax
	mov	eax, DWORD PTR -1136[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	add	rax, rax
	add	rax, rcx
	mov	eax, DWORD PTR -976[rbp+rax*4]
	sal	eax, 4
	mov	esi, eax
	mov	eax, DWORD PTR -1092[rbp]
	add	eax, eax
	add	eax, 1
	movsx	rcx, eax
	mov	eax, DWORD PTR -1136[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	add	rax, rax
	add	rax, rcx
	mov	eax, DWORD PTR -976[rbp+rax*4]
	and	eax, 15
	or	esi, eax
	mov	edx, esi
	mov	eax, DWORD PTR -1092[rbp]
	cdqe
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -1160[rbp]
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -1092[rbp], 1
.L236:
	cmp	DWORD PTR -1092[rbp], 6
	jle	.L237
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L238
	call	__stack_chk_fail@PLT
.L238:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	DSPEncodeFrame, .-DSPEncodeFrame
	.section	.rodata
	.align 16
.LC1:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.align 8
.LC2:
	.long	0
	.long	1018167296
	.align 8
.LC3:
	.long	0
	.long	1072693248
	.align 8
.LC4:
	.long	536870912
	.long	1107468383
	.align 8
.LC5:
	.long	-640172613
	.long	1037794527
	.align 8
.LC6:
	.long	-900720
	.long	1072693247
	.align 8
.LC7:
	.long	0
	.long	-1074790400
	.align 8
.LC8:
	.long	-900720
	.long	-1074790401
	.align 16
.LC9:
	.long	0
	.long	-2147483648
	.long	0
	.long	0
	.align 8
.LC10:
	.long	966823146
	.long	1177108057
	.align 8
.LC11:
	.long	0
	.long	1076101120
	.align 8
.LC12:
	.long	1202590843
	.long	1065646817
	.align 8
.LC13:
	.long	0
	.long	1084227584
	.align 8
.LC14:
	.long	0
	.long	1088421824
	.align 8
.LC15:
	.long	0
	.long	-1059061760
	.align 8
.LC16:
	.long	-1610612736
	.long	1071644671
	.align 8
.LC17:
	.long	-1
	.long	2146435071
	.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	"151112.c"
	.text
	.global	__aeabi_i2d
	.global	__aeabi_dsub
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	InnerProductMerge, %function
InnerProductMerge:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #20
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L2
.L5:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L3
.L4:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mul	r3, r1, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-28]
	lsl	r1, r1, #3
	ldr	r0, [fp, #-32]
	add	r6, r0, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L3:
	ldr	r3, [fp, #-24]
	cmp	r3, #13
	ble	.L4
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L2:
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	ble	.L5
	nop
	nop
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
	.size	InnerProductMerge, .-InnerProductMerge
	.global	__aeabi_dadd
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	OuterProductMerge, %function
OuterProductMerge:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #28
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L7
.L12:
	mov	r3, #1
	str	r3, [fp, #-28]
	b	.L8
.L11:
	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, #-40]
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L9
.L10:
	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, #-40]
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mul	r3, r1, r3
	mov	r0, r3
	bl	__aeabi_i2d
	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, #-40]
	add	r6, r3, r2
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-28]
	lsl	r1, r1, #3
	add	r1, r6, r1
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L9:
	ldr	r3, [fp, #-24]
	cmp	r3, #13
	ble	.L10
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L8:
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	ble	.L11
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L7:
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	ble	.L12
	nop
	nop
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
	.size	OuterProductMerge, .-OuterProductMerge
	.global	__aeabi_dcmpgt
	.global	__aeabi_dcmplt
	.global	__aeabi_ddiv
	.global	__aeabi_dmul
	.global	__aeabi_dcmpge
	.global	__aeabi_dcmpeq
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	AnalyzeRanges, %function
AnalyzeRanges:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #120
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	ldr	r3, .L63
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r3, #1
	str	r3, [fp, #-132]
	b	.L14
.L21:
	ldr	r2, [fp, #-132]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, r2
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	r8, r2
	bic	r9, r3, #-2147483648
	ldr	r2, [fp, #-132]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, r2
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-148]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L59
	ldr	r2, [fp, #-132]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, r2
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	r4, r2
	bic	r5, r3, #-2147483648
	b	.L17
.L59:
	ldr	r2, [fp, #-132]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, r2
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	r4, r2
	bic	r5, r3, #-2147483648
.L17:
	str	r4, [fp, #-92]
	str	r5, [fp, #-88]
	mov	r2, #0
	ldr	r3, .L63+4
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L60
	mov	r3, #1
	b	.L50
.L60:
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L63+8
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-132]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #32
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
.L14:
	ldr	r3, [fp, #-132]
	cmp	r3, #2
	ble	.L21
	mov	r3, #0
	str	r3, [fp, #-128]
	mov	r3, #1
	str	r3, [fp, #-124]
	b	.L22
.L41:
	mov	r3, #1
	str	r3, [fp, #-120]
	b	.L23
.L26:
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r3, #1
	str	r3, [fp, #-116]
	b	.L24
.L25:
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-116]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L24:
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-120]
	cmp	r2, r3
	blt	.L25
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r1, r2, r3
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L23:
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	blt	.L26
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-112]
	b	.L27
.L32:
	ldr	r2, [fp, #-112]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r3, #1
	str	r3, [fp, #-108]
	b	.L28
.L29:
	ldr	r2, [fp, #-112]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-108]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
.L28:
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	blt	.L29
	ldr	r2, [fp, #-112]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r1, r2, r3
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r6, [fp, #-84]
	ldr	r3, [fp, #-80]
	bic	r7, r3, #-2147483648
	ldr	r3, [fp, #-112]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r2-r3}
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L30
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-128]
.L30:
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L27:
	ldr	r3, [fp, #-112]
	cmp	r3, #2
	ble	.L32
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	beq	.L33
	mov	r3, #1
	str	r3, [fp, #-104]
	b	.L34
.L35:
	ldr	r2, [fp, #-128]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r1, r3, r2
	ldr	r2, [fp, #-128]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r0, r3, r2
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-104]
	lsl	r1, r1, #3
	add	r1, r0, r1
	stm	r1, {r2-r3}
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #3
	add	r1, r2, r3
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L34:
	ldr	r3, [fp, #-104]
	cmp	r3, #2
	ble	.L35
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #32
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-128]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #32
	stm	r1, {r2-r3}
.L33:
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-140]
	add	r3, r2, r3
	ldr	r2, [fp, #-128]
	str	r2, [r3]
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L61
	mov	r3, #1
	b	.L50
.L61:
	ldr	r3, [fp, #-124]
	cmp	r3, #2
	beq	.L38
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, #0
	ldr	r1, .L63+8
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-100]
	b	.L39
.L40:
	ldr	r2, [fp, #-100]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-100]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r4, r3, r2
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-124]
	lsl	r1, r1, #3
	add	r1, r4, r1
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
.L39:
	ldr	r3, [fp, #-100]
	cmp	r3, #2
	ble	.L40
.L38:
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L22:
	ldr	r3, [fp, #-124]
	cmp	r3, #2
	ble	.L41
	mov	r2, #536870912
	ldr	r3, .L63+12
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r3, #1
	str	r3, [fp, #-96]
	b	.L42
.L47:
	ldr	r2, [fp, #-96]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-136]
	add	r2, r3, r2
	ldr	r3, [fp, #-96]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r1, r2
	str	r1, [fp, #-84]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-80]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L43
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
.L43:
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L45
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
.L45:
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	str	r3, [fp, #-96]
.L42:
	ldr	r3, [fp, #-96]
	cmp	r3, #2
	ble	.L47
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L63+16
	ldr	r3, .L63+20
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L62
	mov	r3, #1
	b	.L50
.L62:
	mov	r3, #0
.L50:
	ldr	r2, .L63
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L51
	bl	__stack_chk_fail
.L51:
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L64:
	.align	2
.L63:
	.word	.LC0
	.word	1018167296
	.word	1072693248
	.word	1107468383
	.word	-640172613
	.word	1037794527
	.size	AnalyzeRanges, .-AnalyzeRanges
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	BidirectionalFilter, %function
BidirectionalFilter:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	mov	r3, #1
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L66
.L72:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	lsl	r2, r2, #3
	ldr	r1, [fp, #-56]
	add	r1, r1, r2
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L67
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	b	.L68
.L69:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-44]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r2, r3, r2
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L68:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bgt	.L69
	b	.L70
.L67:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	bne	.L70
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
.L70:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r1, r2, r3
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L66:
	ldr	r3, [fp, #-44]
	cmp	r3, #2
	ble	.L72
	mov	r3, #2
	str	r3, [fp, #-32]
	b	.L73
.L76:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L74
.L75:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	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, #-48]
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L74:
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	ble	.L75
	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, #-48]
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-32]
	lsl	r1, r1, #3
	ldr	r0, [fp, #-56]
	add	r4, r0, r1
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-32]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
.L73:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bgt	.L76
	ldr	r1, [fp, #-56]
	mov	r2, #0
	ldr	r3, .L78
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L79:
	.align	2
.L78:
	.word	1072693248
	.size	BidirectionalFilter, .-BidirectionalFilter
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	QuadraticMerge, %function
QuadraticMerge:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #40
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L87
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L86
	mov	r3, #1
	b	.L83
.L86:
	ldr	r3, [fp, #-56]
	ldmia	r3, {r6-r7}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldmia	r3, {r6-r7}
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-56]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-56]
	add	r1, r3, #8
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r4, [fp, #-28]
	ldr	r3, [fp, #-24]
	bic	r5, r3, #-2147483648
	mov	r3, #1
	mov	r6, r3
	mov	r2, #0
	ldr	r3, .L87
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L84
	mov	r3, #0
	mov	r6, r3
.L84:
	and	r3, r6, #255
.L83:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L88:
	.align	2
.L87:
	.word	1072693248
	.size	QuadraticMerge, .-QuadraticMerge
	.global	__aeabi_dcmple
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	FinishRecord, %function
FinishRecord:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r6, r7, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #20
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L90
.L95:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L99
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L98
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r1, r2, r3
	ldr	r2, .L99+4
	ldr	r3, .L99+8
	stm	r1, {r2-r3}
	b	.L93
.L98:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L99+12
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L93
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-32]
	add	r1, r2, r3
	ldr	r2, .L99+4
	ldr	r3, .L99+16
	stm	r1, {r2-r3}
.L93:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L90:
	ldr	r3, [fp, #-24]
	cmp	r3, #2
	ble	.L95
	ldr	r1, [fp, #-36]
	mov	r2, #0
	ldr	r3, .L99
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-32]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-32]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-36]
	add	r4, r1, #8
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldr	r3, [fp, #-36]
	add	r1, r3, #16
	ldr	r3, [fp, #-32]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r6, r7, fp, pc}
.L100:
	.align	2
.L99:
	.word	1072693248
	.word	-900720
	.word	1072693247
	.word	-1074790400
	.word	-1074790401
	.size	FinishRecord, .-FinishRecord
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	MatrixFilter, %function
MatrixFilter:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #124
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	ldr	r1, .L113
	ldr	r1, [r1]
	str	r1, [fp, #-24]
	mov	r1,#0
	mov	r0, #0
	ldr	r1, .L113+4
	str	r0, [fp, #-52]
	str	r1, [fp, #-48]
	mov	r1, #1
	str	r1, [fp, #-128]
	b	.L102
.L103:
	ldr	r1, [fp, #-128]
	lsl	r1, r1, #3
	ldr	r0, [fp, #-136]
	add	r1, r0, r1
	ldmia	r1, {r0-r1}
	mov	r2, r0
	eor	r3, r1, #-2147483648
	ldr	r1, [fp, #-128]
	add	r1, r1, #6
	lsl	r1, r1, #3
	sub	r0, fp, #20
	add	r1, r0, r1
	sub	r1, r1, #80
	stm	r1, {r2-r3}
	ldr	r1, [fp, #-128]
	add	r1, r1, #1
	str	r1, [fp, #-128]
.L102:
	ldr	r1, [fp, #-128]
	cmp	r1, #2
	ble	.L103
	mov	r3, #2
	str	r3, [fp, #-124]
	b	.L104
.L107:
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L113+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	mov	r3, #1
	str	r3, [fp, #-120]
	b	.L105
.L106:
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-120]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-124]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-120]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-124]
	sub	r4, r3, #1
	sub	r3, fp, #108
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r3, r4
	lsl	r3, r3, #1
	add	r3, r3, r4
	ldr	r2, [fp, #-120]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L105:
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	ble	.L106
	ldr	r3, [fp, #-124]
	sub	r3, r3, #1
	str	r3, [fp, #-124]
.L104:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bgt	.L107
	ldr	r1, [fp, #-140]
	mov	r2, #0
	ldr	r3, .L113+4
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-116]
	b	.L108
.L111:
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-140]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-112]
	b	.L109
.L110:
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-140]
	add	r3, r2, r3
	ldmia	r3, {r4-r5}
	ldr	r2, [fp, #-116]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-112]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #80
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-112]
	sub	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-140]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-116]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-140]
	add	r6, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
.L109:
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-116]
	cmp	r2, r3
	ble	.L110
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L108:
	ldr	r3, [fp, #-116]
	cmp	r3, #2
	ble	.L111
	nop
	ldr	r3, .L113
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L112
	bl	__stack_chk_fail
.L112:
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L114:
	.align	2
.L113:
	.word	.LC1
	.word	1072693248
	.size	MatrixFilter, .-MatrixFilter
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	MergeFinishRecord, %function
MergeFinishRecord:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #76
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	ldr	r3, .L128
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #-96]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r1, [fp, #-100]
	mov	r2, #0
	ldr	r3, .L128+4
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-88]
	b	.L116
.L124:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L117
.L118:
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	sub	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L117:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	blt	.L118
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L127
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-96]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r6, r2, r3
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	stm	r6, {r2-r3}
	b	.L121
.L127:
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
.L121:
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-88]
	lsl	r1, r1, #3
	sub	r0, fp, #28
	add	r1, r0, r1
	sub	r1, r1, #32
	stm	r1, {r2-r3}
	mov	r3, #1
	str	r3, [fp, #-80]
	b	.L122
.L123:
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldmia	r3, {r6-r7}
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	sub	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r8, r2, r3
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	stm	r8, {r2-r3}
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L122:
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	blt	.L123
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L128+4
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L116:
	ldr	r3, [fp, #-88]
	cmp	r3, #2
	ble	.L124
	sub	r3, fp, #60
	ldr	r1, [fp, #-100]
	mov	r0, r3
	bl	FinishRecord
	nop
	ldr	r3, .L128
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L125
	bl	__stack_chk_fail
.L125:
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L129:
	.align	2
.L128:
	.word	.LC2
	.word	1072693248
	.size	MergeFinishRecord, .-MergeFinishRecord
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ContrastVectors, %function
ContrastVectors:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #40
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-60]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-60]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-60]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-60]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L132
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-56]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-56]
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-56]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-60]
	add	r3, r3, #8
	ldmia	r3, {r2-r3}
	mov	r4, r2
	eor	r5, r3, #-2147483648
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-60]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L133:
	.align	2
.L132:
	.word	1072693248
	.size	ContrastVectors, .-ContrastVectors
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	FilterRecords, %function
FilterRecords:
	@ args = 0, pretend = 0, frame = 328
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #328
	str	r0, [fp, #-328]
	str	r1, [fp, #-332]
	str	r2, [fp, #-336]
	str	r3, [fp, #-340]
	ldr	r3, .L158
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-276]
	str	r3, [fp, #-272]
	mov	r3, #0
	str	r3, [fp, #-320]
	b	.L135
.L155:
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L136
.L139:
	ldr	r3, [fp, #-316]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-232]
	mov	r3, #0
	str	r3, [fp, #-312]
	b	.L137
.L138:
	ldr	r2, [fp, #-316]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-312]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r1, r3, #200
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-312]
	add	r3, r3, #1
	str	r3, [fp, #-312]
.L137:
	ldr	r3, [fp, #-312]
	cmp	r3, #2
	ble	.L138
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L136:
	ldr	r2, [fp, #-316]
	ldr	r3, [fp, #-332]
	cmp	r2, r3
	blt	.L139
	mov	r3, #0
	str	r3, [fp, #-308]
	b	.L140
.L147:
	mov	r3, #0
	str	r3, [fp, #-324]
	ldr	r2, .L158+4
	ldr	r3, .L158+8
	str	r2, [fp, #-284]
	str	r3, [fp, #-280]
	mov	r3, #0
	str	r3, [fp, #-304]
	b	.L141
.L144:
	ldr	r2, [fp, #-304]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-328]
	add	r0, r3, r2
	ldr	r2, [fp, #-308]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-336]
	add	r3, r3, r2
	mov	r1, r3
	bl	ContrastVectors
	str	r0, [fp, #-276]
	str	r1, [fp, #-272]
	sub	r3, fp, #284
	ldmia	r3, {r2-r3}
	sub	r1, fp, #276
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L142
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-284]
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-304]
	str	r3, [fp, #-324]
.L142:
	ldr	r3, [fp, #-304]
	add	r3, r3, #1
	str	r3, [fp, #-304]
.L141:
	ldr	r2, [fp, #-304]
	ldr	r3, [fp, #-332]
	cmp	r2, r3
	blt	.L144
	ldr	r3, [fp, #-324]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-232]
	add	r2, r3, #1
	ldr	r3, [fp, #-324]
	lsl	r3, r3, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-232]
	ldr	r2, [fp, #-308]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-336]
	add	r3, r3, r2
	sub	r2, fp, #268
	mov	r1, r2
	mov	r0, r3
	bl	MatrixFilter
	mov	r3, #0
	str	r3, [fp, #-300]
	b	.L145
.L146:
	ldr	r2, [fp, #-324]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-300]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-300]
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #256
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-324]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-300]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #200
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-300]
	add	r3, r3, #1
	str	r3, [fp, #-300]
.L145:
	ldr	r3, [fp, #-300]
	cmp	r3, #2
	ble	.L146
	ldr	r3, [fp, #-308]
	add	r3, r3, #1
	str	r3, [fp, #-308]
.L140:
	ldr	r2, [fp, #-308]
	ldr	r3, [fp, #-340]
	cmp	r2, r3
	blt	.L147
	mov	r3, #0
	str	r3, [fp, #-296]
	b	.L148
.L152:
	ldr	r3, [fp, #-296]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-232]
	cmp	r3, #0
	ble	.L149
	mov	r3, #0
	str	r3, [fp, #-292]
	b	.L150
.L151:
	ldr	r2, [fp, #-296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-292]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r4-r5}
	ldr	r3, [fp, #-296]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-232]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, [fp, #-296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-292]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	sub	r3, r3, #200
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-292]
	add	r3, r3, #1
	str	r3, [fp, #-292]
.L150:
	ldr	r3, [fp, #-292]
	cmp	r3, #2
	ble	.L151
.L149:
	ldr	r3, [fp, #-296]
	add	r3, r3, #1
	str	r3, [fp, #-296]
.L148:
	ldr	r2, [fp, #-296]
	ldr	r3, [fp, #-332]
	cmp	r2, r3
	blt	.L152
	mov	r3, #0
	str	r3, [fp, #-288]
	b	.L153
.L154:
	sub	r1, fp, #212
	ldr	r2, [fp, #-288]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r0, r1, r3
	ldr	r2, [fp, #-288]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-328]
	add	r3, r3, r2
	mov	r1, r3
	bl	MergeFinishRecord
	ldr	r3, [fp, #-288]
	add	r3, r3, #1
	str	r3, [fp, #-288]
.L153:
	ldr	r2, [fp, #-288]
	ldr	r3, [fp, #-332]
	cmp	r2, r3
	blt	.L154
	ldr	r3, [fp, #-320]
	add	r3, r3, #1
	str	r3, [fp, #-320]
.L135:
	ldr	r3, [fp, #-320]
	cmp	r3, #1
	ble	.L155
	nop
	ldr	r3, .L158
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L156
	bl	__stack_chk_fail
.L156:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L159:
	.align	2
.L158:
	.word	.LC3
	.word	966823146
	.word	1177108057
	.size	FilterRecords, .-FilterRecords
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	DSPCorrelateCoefs
	.syntax unified
	.arm
	.fpu softvfp
	.type	DSPCorrelateCoefs, %function
DSPCorrelateCoefs:
	@ args = 0, pretend = 0, frame = 488
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #492
	str	r0, [fp, #-512]
	str	r1, [fp, #-516]
	str	r2, [fp, #-520]
	ldr	r3, .L221
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	mov	r3,#0
	ldr	r3, [fp, #-516]
	add	r3, r3, #13
	ldr	r2, .L221+4
	smull	r1, r2, r3, r2
	add	r2, r2, r3
	asr	r2, r2, #3
	asr	r3, r3, #31
	sub	r3, r2, r3
	str	r3, [fp, #-448]
	mov	r1, #14336
	mov	r0, #2
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-444]
	sub	r3, fp, #364
	mov	r2, #56
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #1
	mov	r1, r3
	mov	r0, #24
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-440]
	mov	r3, #0
	str	r3, [fp, #-504]
	ldr	r3, [fp, #-516]
	str	r3, [fp, #-500]
	b	.L161
.L174:
	ldr	r3, [fp, #-500]
	cmp	r3, #14336
	ble	.L162
	mov	r3, #14336
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-500]
	sub	r3, r3, #14336
	str	r3, [fp, #-500]
	b	.L163
.L162:
	ldr	r3, [fp, #-500]
	str	r3, [fp, #-508]
	mov	r3, #0
	str	r3, [fp, #-496]
	b	.L164
.L166:
	ldr	r2, [fp, #-508]
	ldr	r3, [fp, #-496]
	add	r3, r2, r3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-444]
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-496]
	add	r3, r3, #1
	str	r3, [fp, #-496]
.L164:
	ldr	r3, [fp, #-496]
	cmp	r3, #13
	bgt	.L165
	ldr	r2, [fp, #-496]
	ldr	r3, [fp, #-508]
	add	r3, r2, r3
	cmp	r3, #14336
	blt	.L166
.L165:
	mov	r3, #0
	str	r3, [fp, #-500]
.L163:
	ldr	r3, [fp, #-508]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-512]
	ldr	r0, [fp, #-444]
	bl	memcpy
	ldr	r3, [fp, #-508]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-512]
	add	r3, r2, r3
	str	r3, [fp, #-512]
	mov	r3, #0
	str	r3, [fp, #-492]
	b	.L167
.L173:
	mov	r3, #0
	str	r3, [fp, #-488]
	b	.L168
.L169:
	sub	r3, fp, #36
	sub	r2, r3, #328
	ldr	r3, [fp, #-488]
	add	r3, r3, #14
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r2, [r3]
	sub	r3, fp, #36
	sub	r1, r3, #328
	ldr	r3, [fp, #-488]
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-488]
	add	r3, r3, #1
	str	r3, [fp, #-488]
.L168:
	ldr	r3, [fp, #-488]
	cmp	r3, #13
	ble	.L169
	mov	r3, #0
	str	r3, [fp, #-484]
	b	.L170
.L171:
	ldr	r3, [fp, #-492]
	add	r2, r3, #1
	str	r2, [fp, #-492]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-444]
	add	r3, r2, r3
	ldrsh	r2, [r3]
	sub	r3, fp, #36
	sub	r1, r3, #328
	ldr	r3, [fp, #-484]
	add	r3, r3, #14
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-484]
	add	r3, r3, #1
	str	r3, [fp, #-484]
.L170:
	ldr	r3, [fp, #-484]
	cmp	r3, #13
	ble	.L171
	sub	r3, fp, #364
	add	r2, r3, #28
	sub	r3, fp, #412
	mov	r1, r2
	mov	r0, r3
	bl	InnerProductMerge
	sub	r3, fp, #412
	ldmia	r3, {r2-r3}
	mov	r8, r2
	bic	r9, r3, #-2147483648
	mov	r2, #0
	ldr	r3, .L221+8
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L208
	b	.L167
.L208:
	sub	r3, fp, #364
	add	r2, r3, #28
	sub	r3, fp, #308
	mov	r1, r2
	mov	r0, r3
	bl	OuterProductMerge
	sub	r2, fp, #424
	sub	r3, fp, #308
	mov	r1, r2
	mov	r0, r3
	bl	AnalyzeRanges
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L167
	sub	r2, fp, #412
	sub	r1, fp, #424
	sub	r3, fp, #308
	mov	r0, r3
	bl	BidirectionalFilter
	sub	r3, fp, #412
	mov	r0, r3
	bl	QuadraticMerge
	mov	r3, r0
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L167
	ldr	r2, [fp, #-504]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-440]
	add	r2, r3, r2
	sub	r3, fp, #412
	mov	r1, r2
	mov	r0, r3
	bl	FinishRecord
	ldr	r3, [fp, #-504]
	add	r3, r3, #1
	str	r3, [fp, #-504]
.L167:
	ldr	r2, [fp, #-492]
	ldr	r3, [fp, #-508]
	cmp	r2, r3
	blt	.L173
.L161:
	ldr	r3, [fp, #-500]
	cmp	r3, #0
	bgt	.L174
	mov	r2, #0
	ldr	r3, .L221+12
	str	r2, [fp, #-412]
	str	r3, [fp, #-408]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-404]
	str	r3, [fp, #-400]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-396]
	str	r3, [fp, #-392]
	mov	r3, #0
	str	r3, [fp, #-480]
	b	.L175
.L178:
	ldr	r2, [fp, #-480]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-440]
	add	r3, r3, r2
	sub	r2, fp, #236
	mov	r1, r2
	mov	r0, r3
	bl	MatrixFilter
	mov	r3, #1
	str	r3, [fp, #-476]
	b	.L176
.L177:
	ldr	r3, [fp, #-476]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #376
	ldmia	r3, {r0-r1}
	ldr	r3, [fp, #-476]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-476]
	lsl	r1, r1, #3
	sub	r0, fp, #36
	add	r1, r0, r1
	sub	r1, r1, #376
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-476]
	add	r3, r3, #1
	str	r3, [fp, #-476]
.L176:
	ldr	r3, [fp, #-476]
	cmp	r3, #2
	ble	.L177
	ldr	r3, [fp, #-480]
	add	r3, r3, #1
	str	r3, [fp, #-480]
.L175:
	ldr	r2, [fp, #-480]
	ldr	r3, [fp, #-504]
	cmp	r2, r3
	blt	.L178
	mov	r3, #1
	str	r3, [fp, #-472]
	b	.L179
.L180:
	ldr	r3, [fp, #-472]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #376
	ldmia	r3, {r8-r9}
	ldr	r0, [fp, #-504]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r8
	mov	r1, r9
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-472]
	lsl	r1, r1, #3
	sub	r0, fp, #36
	add	r1, r0, r1
	sub	r1, r1, #376
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-472]
	add	r3, r3, #1
	str	r3, [fp, #-472]
.L179:
	ldr	r3, [fp, #-472]
	cmp	r3, #2
	ble	.L180
	sub	r2, fp, #236
	sub	r3, fp, #412
	mov	r1, r2
	mov	r0, r3
	bl	MergeFinishRecord
	mov	r3, #1
	str	r3, [fp, #-468]
	mov	r3, #0
	str	r3, [fp, #-464]
	b	.L181
.L186:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-388]
	str	r3, [fp, #-384]
	mov	r2, #0
	ldr	r3, .L221+16
	str	r2, [fp, #-380]
	str	r3, [fp, #-376]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-372]
	str	r3, [fp, #-368]
	mov	r3, #0
	str	r3, [fp, #-460]
	b	.L182
.L185:
	mov	r3, #0
	str	r3, [fp, #-456]
	b	.L183
.L184:
	ldr	r3, [fp, #-456]
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #352
	ldmia	r3, {r0-r1}
	ldr	r2, .L221+20
	ldr	r3, .L221+24
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r9, r2
	mov	r10, r3
	ldr	r2, [fp, #-460]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-456]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #200
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-468]
	ldr	r1, [fp, #-460]
	add	r8, r0, r1
	mov	r0, r9
	mov	r1, r10
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r3, r8
	lsl	r3, r3, #1
	add	r3, r3, r8
	ldr	r2, [fp, #-456]
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #200
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-456]
	add	r3, r3, #1
	str	r3, [fp, #-456]
.L183:
	ldr	r3, [fp, #-456]
	cmp	r3, #2
	ble	.L184
	ldr	r3, [fp, #-460]
	add	r3, r3, #1
	str	r3, [fp, #-460]
.L182:
	ldr	r2, [fp, #-460]
	ldr	r3, [fp, #-468]
	cmp	r2, r3
	blt	.L185
	ldr	r3, [fp, #-464]
	add	r3, r3, #1
	str	r3, [fp, #-464]
	mov	r2, #1
	ldr	r3, [fp, #-464]
	lsl	r3, r2, r3
	str	r3, [fp, #-468]
	sub	r0, fp, #236
	ldr	r3, [fp, #-504]
	ldr	r2, [fp, #-440]
	ldr	r1, [fp, #-468]
	bl	FilterRecords
.L181:
	ldr	r3, [fp, #-464]
	cmp	r3, #2
	ble	.L186
	mov	r3, #0
	str	r3, [fp, #-452]
	b	.L187
.L206:
	ldr	r2, [fp, #-452]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #192
	ldmia	r3, {r2-r3}
	mov	r4, r2
	eor	r5, r3, #-2147483648
	mov	r2, #0
	ldr	r3, .L221+28
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-436]
	str	r3, [fp, #-432]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L215
	mov	r2, #0
	ldr	r3, .L221+32
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L216
	ldr	r3, .L221+36
	b	.L192
.L216:
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	lround
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
.L192:
	ldr	r2, [fp, #-452]
	lsl	r2, r2, #2
	ldr	r1, [fp, #-520]
	add	r2, r1, r2
	strh	r3, [r2]	@ movhi
	b	.L193
.L215:
	mov	r2, #0
	ldr	r3, .L221+40
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L217
	ldr	r3, .L221+44
	b	.L196
.L217:
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	lround
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
.L196:
	ldr	r2, [fp, #-452]
	lsl	r2, r2, #2
	ldr	r1, [fp, #-520]
	add	r2, r1, r2
	strh	r3, [r2]	@ movhi
.L193:
	ldr	r2, [fp, #-452]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, fp, #36
	add	r3, r2, r3
	sub	r3, r3, #184
	ldmia	r3, {r2-r3}
	mov	r6, r2
	eor	r7, r3, #-2147483648
	mov	r2, #0
	ldr	r3, .L221+28
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-436]
	str	r3, [fp, #-432]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L218
	mov	r2, #0
	ldr	r3, .L221+32
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L219
	ldr	r3, .L221+36
	b	.L201
.L219:
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	lround
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
.L201:
	ldr	r2, [fp, #-452]
	lsl	r2, r2, #2
	add	r2, r2, #2
	ldr	r1, [fp, #-520]
	add	r2, r1, r2
	strh	r3, [r2]	@ movhi
	b	.L202
.L218:
	mov	r2, #0
	ldr	r3, .L221+40
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L220
	ldr	r3, .L221+44
	b	.L205
.L220:
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	bl	lround
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
.L205:
	ldr	r2, [fp, #-452]
	lsl	r2, r2, #2
	add	r2, r2, #2
	ldr	r1, [fp, #-520]
	add	r2, r1, r2
	strh	r3, [r2]	@ movhi
.L202:
	ldr	r3, [fp, #-452]
	add	r3, r3, #1
	str	r3, [fp, #-452]
.L187:
	ldr	r3, [fp, #-452]
	cmp	r3, #7
	ble	.L206
	ldr	r0, [fp, #-440]
	bl	free
	ldr	r0, [fp, #-444]
	bl	free
	nop
	ldr	r3, .L221
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L207
	bl	__stack_chk_fail
.L207:
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L222:
	.align	2
.L221:
	.word	.LC4
	.word	-1840700269
	.word	1076101120
	.word	1072693248
	.word	-1074790400
	.word	1202590843
	.word	1065646817
	.word	1084227584
	.word	1088421824
	.word	32767
	.word	-1059061760
	.word	-32768
	.size	DSPCorrelateCoefs, .-DSPCorrelateCoefs
	.global	__aeabi_d2iz
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	DSPEncodeFrame
	.syntax unified
	.arm
	.fpu softvfp
	.type	DSPEncodeFrame, %function
DSPEncodeFrame:
	@ args = 0, pretend = 0, frame = 1144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #1136
	sub	sp, sp, #8
	str	r0, [fp, #-1152]
	str	r1, [fp, #-1156]
	str	r2, [fp, #-1160]
	str	r3, [fp, #-1164]
	ldr	r3, .L261
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-1148]
	mov	r3, #0
	str	r3, [fp, #-1144]
	b	.L224
.L248:
	ldr	r3, [fp, #-1152]
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #6
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-516]
	ldr	r3, [fp, #-1152]
	add	r3, r3, #2
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #6
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-512]
	mov	r3, #0
	str	r3, [fp, #-1136]
	mov	r3, #0
	str	r3, [fp, #-1128]
	b	.L225
.L229:
	ldr	r3, [fp, #-1128]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1152]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1164]
	add	r3, r2, r3
	ldrsh	r3, [r3, #2]
	mul	r2, r3, r1
	ldr	r3, [fp, #-1128]
	add	r3, r3, #1
	lsl	r3, r3, #1
	ldr	r1, [fp, #-1152]
	add	r3, r1, r3
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-1164]
	add	r3, r1, r3
	ldrsh	r3, [r3]
	mul	r3, r0, r3
	add	r3, r2, r3
	add	r2, r3, #2032
	add	r2, r2, #15
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #11
	str	r3, [fp, #-1100]
	ldr	r3, [fp, #-1128]
	add	r3, r3, #2
	ldr	r2, [fp, #-1144]
	lsl	r2, r2, #4
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [fp, #-1100]
	str	r2, [r3, #-516]
	ldr	r3, [fp, #-1128]
	add	r3, r3, #2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1152]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1100]
	sub	r3, r2, r3
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1096]
	ldr	r2, .L261+4
	cmp	r3, r2
	bgt	.L226
	ldr	r3, [fp, #-1096]
	ldr	r2, .L261+8
	cmp	r3, r2
	movge	r3, r3
	movlt	r3, r2
	b	.L227
.L226:
	ldr	r3, .L261+12
.L227:
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1140]
	eor	r2, r3, r3, asr #31
	sub	r2, r2, r3, asr #31
	ldr	r3, [fp, #-1136]
	cmp	r3, #0
	rsblt	r3, r3, #0
	cmp	r2, r3
	ble	.L228
	ldr	r3, [fp, #-1140]
	str	r3, [fp, #-1136]
.L228:
	ldr	r3, [fp, #-1128]
	add	r3, r3, #1
	str	r3, [fp, #-1128]
.L225:
	ldr	r2, [fp, #-1128]
	ldr	r3, [fp, #-1156]
	cmp	r2, r3
	blt	.L229
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-1064]
	b	.L230
.L232:
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	add	r2, r3, #1
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-1064]
	ldr	r3, [fp, #-1136]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	str	r3, [fp, #-1136]
.L230:
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	cmp	r3, #12
	bgt	.L231
	ldr	r3, [fp, #-1136]
	cmp	r3, #7
	bgt	.L232
	ldr	r3, [fp, #-1136]
	cmn	r3, #8
	blt	.L232
.L231:
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	cmp	r3, #1
	movge	r3, r3
	movlt	r3, #1
	sub	r2, r3, #2
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-1064]
.L247:
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	add	r2, r3, #1
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-1064]
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #1024
	sub	r3, r3, #8
	mov	r0, #0
	mov	r1, #0
	stm	r3, {r0-r1}
	mov	r3, #0
	str	r3, [fp, #-1132]
	mov	r3, #0
	str	r3, [fp, #-1124]
	b	.L233
.L242:
	ldr	r3, [fp, #-1144]
	lsl	r2, r3, #4
	ldr	r3, [fp, #-1124]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-516]
	ldr	r2, [fp, #-1144]
	lsl	r2, r2, #2
	ldr	r1, [fp, #-1164]
	add	r2, r1, r2
	ldrsh	r2, [r2, #2]
	mul	r2, r3, r2
	ldr	r3, [fp, #-1124]
	add	r3, r3, #1
	ldr	r1, [fp, #-1144]
	lsl	r1, r1, #4
	add	r3, r1, r3
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-516]
	ldr	r1, [fp, #-1144]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-1164]
	add	r1, r0, r1
	ldrsh	r1, [r1]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-1100]
	ldr	r3, [fp, #-1124]
	add	r3, r3, #2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1152]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	lsl	r2, r3, #11
	ldr	r3, [fp, #-1100]
	sub	r3, r2, r3
	add	r2, r3, #2032
	add	r2, r2, #15
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #11
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1096]
	cmp	r3, #0
	ble	.L234
	ldr	r0, [fp, #-1096]
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	mov	r2, #1
	lsl	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #-1610612736
	ldr	r3, .L261+16
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	b	.L235
.L234:
	ldr	r0, [fp, #-1096]
	bl	__aeabi_i2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	mov	r2, #1
	lsl	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #-1610612736
	ldr	r3, .L261+16
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
.L235:
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1140]
	cmn	r3, #8
	bge	.L236
	ldr	r2, [fp, #-1140]
	mvn	r3, #7
	sub	r3, r3, r2
	str	r3, [fp, #-1140]
	ldr	r2, [fp, #-1140]
	ldr	r3, [fp, #-1132]
	cmp	r2, r3
	ble	.L237
	ldr	r3, [fp, #-1140]
	str	r3, [fp, #-1132]
.L237:
	mvn	r3, #7
	str	r3, [fp, #-1140]
	b	.L238
.L236:
	ldr	r3, [fp, #-1140]
	cmp	r3, #7
	ble	.L238
	ldr	r3, [fp, #-1140]
	sub	r3, r3, #7
	str	r3, [fp, #-1140]
	ldr	r2, [fp, #-1140]
	ldr	r3, [fp, #-1132]
	cmp	r2, r3
	ble	.L239
	ldr	r3, [fp, #-1140]
	str	r3, [fp, #-1132]
.L239:
	mov	r3, #7
	str	r3, [fp, #-1140]
.L238:
	ldr	r2, [fp, #-1144]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1124]
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [fp, #-1140]
	str	r2, [r3, #-964]
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	ldr	r2, [fp, #-1140]
	lsl	r3, r2, r3
	lsl	r2, r3, #11
	ldr	r3, [fp, #-1100]
	add	r3, r2, r3
	add	r3, r3, #1024
	asr	r3, r3, #11
	str	r3, [fp, #-1100]
	ldr	r3, [fp, #-1100]
	ldr	r2, .L261+4
	cmp	r3, r2
	bgt	.L240
	ldr	r3, [fp, #-1100]
	ldr	r2, .L261+8
	cmp	r3, r2
	movge	r3, r3
	movlt	r3, r2
	b	.L241
.L240:
	ldr	r3, .L261+12
.L241:
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1124]
	add	r3, r3, #2
	ldr	r2, [fp, #-1144]
	lsl	r2, r2, #4
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [fp, #-1096]
	str	r2, [r3, #-516]
	ldr	r3, [fp, #-1124]
	add	r3, r3, #2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1152]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1096]
	sub	r3, r2, r3
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #1024
	sub	r3, r3, #8
	ldmia	r3, {r4-r5}
	ldr	r0, [fp, #-1140]
	bl	__aeabi_i2d
	mov	r6, r0
	mov	r7, r1
	ldr	r0, [fp, #-1140]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #1024
	sub	r3, r3, #8
	stm	r3, {r0-r1}
	ldr	r3, [fp, #-1124]
	add	r3, r3, #1
	str	r3, [fp, #-1124]
.L233:
	ldr	r2, [fp, #-1124]
	ldr	r3, [fp, #-1156]
	cmp	r2, r3
	blt	.L242
	ldr	r3, [fp, #-1132]
	add	r3, r3, #8
	str	r3, [fp, #-1120]
	b	.L243
.L245:
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	add	r2, r3, #1
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-1064]
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	cmp	r3, #11
	ble	.L244
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #11
	str	r2, [r3, #-1064]
.L244:
	ldr	r3, [fp, #-1120]
	asr	r3, r3, #1
	str	r3, [fp, #-1120]
.L243:
	ldr	r3, [fp, #-1120]
	cmp	r3, #256
	bgt	.L245
	ldr	r3, [fp, #-1144]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-1064]
	cmp	r3, #11
	bgt	.L246
	ldr	r3, [fp, #-1132]
	cmp	r3, #1
	bgt	.L247
.L246:
	ldr	r3, [fp, #-1144]
	add	r3, r3, #1
	str	r3, [fp, #-1144]
.L224:
	ldr	r3, [fp, #-1144]
	cmp	r3, #7
	ble	.L248
	mvn	r2, #0
	ldr	r3, .L261+20
	str	r2, [fp, #-1092]
	str	r3, [fp, #-1088]
	mov	r3, #0
	str	r3, [fp, #-1116]
	b	.L249
.L252:
	ldr	r3, [fp, #-1116]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #1024
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-1092]
	ldr	r1, [fp, #-1088]
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L250
	ldr	r3, [fp, #-1116]
	lsl	r3, r3, #3
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r3, r3, #1024
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-1092]
	str	r3, [fp, #-1088]
	ldr	r3, [fp, #-1116]
	str	r3, [fp, #-1148]
.L250:
	ldr	r3, [fp, #-1116]
	add	r3, r3, #1
	str	r3, [fp, #-1116]
.L249:
	ldr	r3, [fp, #-1116]
	cmp	r3, #7
	ble	.L252
	mov	r3, #0
	str	r3, [fp, #-1112]
	b	.L253
.L254:
	ldr	r3, [fp, #-1112]
	add	r3, r3, #2
	ldr	r2, [fp, #-1148]
	lsl	r2, r2, #4
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-516]
	ldr	r3, [fp, #-1112]
	add	r3, r3, #2
	lsl	r3, r3, #1
	ldr	r1, [fp, #-1152]
	add	r3, r1, r3
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1112]
	add	r3, r3, #1
	str	r3, [fp, #-1112]
.L253:
	ldr	r2, [fp, #-1112]
	ldr	r3, [fp, #-1156]
	cmp	r2, r3
	blt	.L254
	ldr	r3, [fp, #-1148]
	lsl	r3, r3, #4
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-1148]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-1064]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #15
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r2, r3, #255
	ldr	r3, [fp, #-1160]
	strb	r2, [r3]
	ldr	r3, [fp, #-1156]
	str	r3, [fp, #-1108]
	b	.L255
.L256:
	ldr	r2, [fp, #-1148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1108]
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-964]
	ldr	r3, [fp, #-1108]
	add	r3, r3, #1
	str	r3, [fp, #-1108]
.L255:
	ldr	r3, [fp, #-1108]
	cmp	r3, #13
	ble	.L256
	mov	r3, #0
	str	r3, [fp, #-1104]
	b	.L257
.L258:
	ldr	r3, [fp, #-1104]
	lsl	r1, r3, #1
	ldr	r2, [fp, #-1148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #4
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, [fp, #-1104]
	lsl	r3, r3, #1
	add	r0, r3, #1
	ldr	r2, [fp, #-1148]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-964]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #15
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r1, r3
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-1104]
	add	r3, r3, #1
	ldr	r1, [fp, #-1160]
	add	r3, r1, r3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1104]
	add	r3, r3, #1
	str	r3, [fp, #-1104]
.L257:
	ldr	r3, [fp, #-1104]
	cmp	r3, #6
	ble	.L258
	nop
	ldr	r3, .L261
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L259
	bl	__stack_chk_fail
.L259:
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L262:
	.align	2
.L261:
	.word	.LC5
	.word	32766
	.word	-32768
	.word	32767
	.word	1071644671
	.word	2146435071
	.size	DSPEncodeFrame, .-DSPEncodeFrame
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
