	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function unfilterScanline
LCPI0_0:
	.space	16,127
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_unfilterScanline:                      ## @unfilterScanline
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	cmpb	$4, %r8b
	ja	LBB0_1
## %bb.2:
	movq	%rdx, %r10
	movq	%rsi, %r15
	movq	%rdi, %r13
	movl	%r8d, %eax
	leaq	LJTI0_0(%rip), %rdx
	movslq	(%rdx,%rax,4), %rax
	addq	%rdx, %rax
	movq	%r10, -48(%rbp)                 ## 8-byte Spill
	jmpq	*%rax
LBB0_33:
	testq	%r9, %r9
	je	LBB0_270
## %bb.34:
	xorl	%ebx, %ebx
	cmpq	$8, %r9
	jb	LBB0_50
## %bb.35:
	movq	%r13, %rcx
	subq	%r15, %rcx
	cmpq	$32, %rcx
	jb	LBB0_50
## %bb.36:
	cmpq	$32, %r9
	jae	LBB0_38
## %bb.37:
	xorl	%ebx, %ebx
	jmp	LBB0_47
LBB0_1:
	movl	$36, %eax
	jmp	LBB0_271
LBB0_3:
	testq	%rcx, %rcx
	je	LBB0_23
## %bb.4:
	xorl	%eax, %eax
	cmpq	$8, %rcx
	jb	LBB0_20
## %bb.5:
	movq	%r13, %rdx
	subq	%r15, %rdx
	cmpq	$32, %rdx
	jb	LBB0_20
## %bb.6:
	cmpq	$32, %rcx
	jae	LBB0_8
## %bb.7:
	xorl	%eax, %eax
	jmp	LBB0_17
LBB0_68:
	testq	%r10, %r10
	je	LBB0_91
## %bb.69:
	testq	%r9, %r9
	je	LBB0_270
## %bb.70:
	cmpq	$8, %r9
	jae	LBB0_72
## %bb.71:
	xorl	%edi, %edi
LBB0_87:
	movq	%rdi, %rsi
	notq	%rsi
	addq	%r9, %rsi
	movq	%r9, %rdx
	andq	$3, %rdx
	je	LBB0_89
	.p2align	4, 0x90
LBB0_88:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r10,%rdi), %ecx
	addb	(%r15,%rdi), %cl
	movb	%cl, (%r13,%rdi)
	incq	%rdi
	decq	%rdx
	jne	LBB0_88
LBB0_89:
	xorl	%eax, %eax
	cmpq	$3, %rsi
	jb	LBB0_271
	.p2align	4, 0x90
LBB0_90:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r10,%rdi), %ecx
	addb	(%r15,%rdi), %cl
	movb	%cl, (%r13,%rdi)
	movzbl	1(%r10,%rdi), %ecx
	addb	1(%r15,%rdi), %cl
	movb	%cl, 1(%r13,%rdi)
	movzbl	2(%r10,%rdi), %ecx
	addb	2(%r15,%rdi), %cl
	movb	%cl, 2(%r13,%rdi)
	movzbl	3(%r10,%rdi), %ecx
	addb	3(%r15,%rdi), %cl
	movb	%cl, 3(%r13,%rdi)
	addq	$4, %rdi
	cmpq	%rdi, %r9
	jne	LBB0_90
	jmp	LBB0_271
LBB0_112:
	testq	%r10, %r10
	je	LBB0_146
## %bb.113:
	testq	%rcx, %rcx
	je	LBB0_134
## %bb.114:
	cmpq	$8, %rcx
	jae	LBB0_116
## %bb.115:
	xorl	%eax, %eax
LBB0_131:
	movq	%rax, %rsi
	notq	%rsi
	testb	$1, %cl
	je	LBB0_133
## %bb.132:
	movb	(%r10,%rax), %dl
	shrb	%dl
	addb	(%r15,%rax), %dl
	movb	%dl, (%r13,%rax)
	orq	$1, %rax
LBB0_133:
	addq	%rcx, %rsi
	je	LBB0_134
	.p2align	4, 0x90
LBB0_273:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r10,%rax), %edx
	shrb	%dl
	addb	(%r15,%rax), %dl
	movb	%dl, (%r13,%rax)
	movzbl	1(%r10,%rax), %edx
	shrb	%dl
	addb	1(%r15,%rax), %dl
	movb	%dl, 1(%r13,%rax)
	addq	$2, %rax
	cmpq	%rax, %rcx
	jne	LBB0_273
LBB0_134:
	movq	%r9, %r8
	subq	%rcx, %r8
	jbe	LBB0_270
## %bb.135:
	movq	%rcx, %r11
	cmpq	$8, %r8
	jb	LBB0_181
## %bb.136:
	leaq	(%rcx,%r13), %rax
	movq	%rax, %rdx
	subq	%r15, %rdx
	subq	%rcx, %rdx
	movq	%rcx, %r11
	cmpq	$32, %rdx
	jb	LBB0_181
## %bb.137:
	subq	%r10, %rax
	subq	%rcx, %rax
	movq	%rcx, %r11
	cmpq	$32, %rax
	jb	LBB0_181
## %bb.138:
	movq	%rcx, %r11
	cmpq	$32, %rdx
	jb	LBB0_181
## %bb.139:
	movq	%rcx, %r11
	cmpq	$32, %rcx
	jb	LBB0_181
## %bb.140:
	movq	%rcx, %r11
	cmpq	$32, %rax
	jb	LBB0_181
## %bb.141:
	cmpq	$32, %r8
	jae	LBB0_176
## %bb.142:
	xorl	%esi, %esi
	jmp	LBB0_143
LBB0_200:
	testq	%r10, %r10
	je	LBB0_225
## %bb.201:
	testq	%rcx, %rcx
	je	LBB0_222
## %bb.202:
	cmpq	$8, %rcx
	jae	LBB0_204
## %bb.203:
	xorl	%eax, %eax
LBB0_219:
	movq	%rax, %rdi
	notq	%rdi
	addq	%rcx, %rdi
	movq	%rcx, %rsi
	andq	$3, %rsi
	je	LBB0_221
	.p2align	4, 0x90
LBB0_220:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r10,%rax), %edx
	addb	(%r15,%rax), %dl
	movb	%dl, (%r13,%rax)
	incq	%rax
	decq	%rsi
	jne	LBB0_220
LBB0_221:
	cmpq	$3, %rdi
	jb	LBB0_222
	.p2align	4, 0x90
LBB0_255:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r10,%rax), %edx
	addb	(%r15,%rax), %dl
	movb	%dl, (%r13,%rax)
	movzbl	1(%r10,%rax), %edx
	addb	1(%r15,%rax), %dl
	movb	%dl, 1(%r13,%rax)
	movzbl	2(%r10,%rax), %edx
	addb	2(%r15,%rax), %dl
	movb	%dl, 2(%r13,%rax)
	movzbl	3(%r10,%rax), %edx
	addb	3(%r15,%rax), %dl
	movb	%dl, 3(%r13,%rax)
	addq	$4, %rax
	cmpq	%rax, %rcx
	jne	LBB0_255
LBB0_222:
	xorl	%eax, %eax
	subq	%rcx, %r9
	jbe	LBB0_271
## %bb.223:
	leaq	(%rcx,%r13), %rax
	movq	%rax, -64(%rbp)                 ## 8-byte Spill
	leaq	(%r10,%rcx), %rax
	movq	%rax, -56(%rbp)                 ## 8-byte Spill
	addq	%rcx, %r15
	xorl	%r12d, %r12d
	.p2align	4, 0x90
LBB0_224:                               ## =>This Inner Loop Header: Depth=1
	movq	%r9, %rbx
	movzbl	(%r15,%r12), %r14d
	movzbl	(%r13,%r12), %edi
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movzbl	(%rax,%r12), %esi
	movzbl	(%r10,%r12), %edx
	callq	_paethPredictor
	movq	-48(%rbp), %r10                 ## 8-byte Reload
	addb	%r14b, %al
	movq	%rbx, %r9
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	movb	%al, (%rcx,%r12)
	incq	%r12
	cmpq	%r12, %rbx
	jne	LBB0_224
	jmp	LBB0_270
LBB0_91:
	testq	%r9, %r9
	je	LBB0_270
## %bb.92:
	xorl	%ebx, %ebx
	cmpq	$8, %r9
	jb	LBB0_108
## %bb.93:
	movq	%r13, %rcx
	subq	%r15, %rcx
	cmpq	$32, %rcx
	jb	LBB0_108
## %bb.94:
	cmpq	$32, %r9
	jae	LBB0_96
## %bb.95:
	xorl	%ebx, %ebx
	jmp	LBB0_105
LBB0_146:
	testq	%rcx, %rcx
	je	LBB0_166
## %bb.147:
	xorl	%eax, %eax
	cmpq	$8, %rcx
	jb	LBB0_163
## %bb.148:
	movq	%r13, %rdx
	subq	%r15, %rdx
	cmpq	$32, %rdx
	jb	LBB0_163
## %bb.149:
	cmpq	$32, %rcx
	jae	LBB0_151
## %bb.150:
	xorl	%eax, %eax
	jmp	LBB0_160
LBB0_225:
	testq	%rcx, %rcx
	je	LBB0_245
## %bb.226:
	xorl	%eax, %eax
	cmpq	$8, %rcx
	jb	LBB0_242
## %bb.227:
	movq	%r13, %rdx
	subq	%r15, %rdx
	cmpq	$32, %rdx
	jb	LBB0_242
## %bb.228:
	cmpq	$32, %rcx
	jae	LBB0_230
## %bb.229:
	xorl	%eax, %eax
	jmp	LBB0_239
LBB0_72:
	movq	%r13, %rcx
	subq	%r15, %rcx
	xorl	%edi, %edi
	cmpq	$32, %rcx
	jb	LBB0_87
## %bb.73:
	movq	%r13, %rcx
	subq	%r10, %rcx
	cmpq	$32, %rcx
	jb	LBB0_87
## %bb.74:
	cmpq	$32, %r9
	jae	LBB0_76
## %bb.75:
	xorl	%edi, %edi
	jmp	LBB0_84
LBB0_116:
	movq	%r13, %rdx
	subq	%r15, %rdx
	xorl	%eax, %eax
	cmpq	$32, %rdx
	jb	LBB0_131
## %bb.117:
	movq	%r13, %rdx
	subq	%r10, %rdx
	cmpq	$32, %rdx
	jb	LBB0_131
## %bb.118:
	cmpq	$32, %rcx
	jae	LBB0_120
## %bb.119:
	xorl	%eax, %eax
	jmp	LBB0_128
LBB0_204:
	movq	%r13, %rdx
	subq	%r15, %rdx
	xorl	%eax, %eax
	cmpq	$32, %rdx
	jb	LBB0_219
## %bb.205:
	movq	%r13, %rdx
	subq	%r10, %rdx
	cmpq	$32, %rdx
	jb	LBB0_219
## %bb.206:
	cmpq	$32, %rcx
	jae	LBB0_208
## %bb.207:
	xorl	%eax, %eax
	jmp	LBB0_216
LBB0_38:
	movq	%r9, %rbx
	andq	$-32, %rbx
	leaq	-32(%rbx), %rsi
	movq	%rsi, %rdx
	shrq	$5, %rdx
	incq	%rdx
	movl	%edx, %ecx
	andl	$3, %ecx
	cmpq	$96, %rsi
	jae	LBB0_40
## %bb.39:
	xorl	%esi, %esi
	jmp	LBB0_42
LBB0_8:
	movq	%rcx, %rax
	andq	$-32, %rax
	leaq	-32(%rax), %rdx
	movq	%rdx, %rsi
	shrq	$5, %rsi
	incq	%rsi
	movl	%esi, %r8d
	andl	$3, %r8d
	cmpq	$96, %rdx
	jae	LBB0_10
## %bb.9:
	xorl	%edi, %edi
	jmp	LBB0_12
LBB0_40:
	movabsq	$1152921504606846974, %rsi      ## imm = 0xFFFFFFFFFFFFFFE
	addq	$-2, %rsi
	andq	%rsi, %rdx
	xorl	%esi, %esi
	.p2align	4, 0x90
LBB0_41:                                ## =>This Inner Loop Header: Depth=1
	movups	(%r15,%rsi), %xmm0
	movups	16(%r15,%rsi), %xmm1
	movups	%xmm0, (%r13,%rsi)
	movups	%xmm1, 16(%r13,%rsi)
	movups	32(%r15,%rsi), %xmm0
	movups	48(%r15,%rsi), %xmm1
	movups	%xmm0, 32(%r13,%rsi)
	movups	%xmm1, 48(%r13,%rsi)
	movups	64(%r15,%rsi), %xmm0
	movups	80(%r15,%rsi), %xmm1
	movups	%xmm0, 64(%r13,%rsi)
	movups	%xmm1, 80(%r13,%rsi)
	movdqu	96(%r15,%rsi), %xmm0
	movdqu	112(%r15,%rsi), %xmm1
	movdqu	%xmm0, 96(%r13,%rsi)
	movdqu	%xmm1, 112(%r13,%rsi)
	subq	$-128, %rsi
	addq	$-4, %rdx
	jne	LBB0_41
LBB0_42:
	testq	%rcx, %rcx
	je	LBB0_45
## %bb.43:
	leaq	(%rsi,%r13), %rdx
	addq	$16, %rdx
	addq	%r15, %rsi
	addq	$16, %rsi
	shlq	$5, %rcx
	xorl	%edi, %edi
	.p2align	4, 0x90
LBB0_44:                                ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rsi,%rdi), %xmm0
	movdqu	(%rsi,%rdi), %xmm1
	movdqu	%xmm0, -16(%rdx,%rdi)
	movdqu	%xmm1, (%rdx,%rdi)
	addq	$32, %rdi
	cmpq	%rdi, %rcx
	jne	LBB0_44
LBB0_45:
	xorl	%eax, %eax
	cmpq	%r9, %rbx
	je	LBB0_271
## %bb.46:
	testb	$24, %r9b
	je	LBB0_50
LBB0_47:
	movq	%rbx, %rcx
	movq	%r9, %rbx
	andq	$-8, %rbx
	.p2align	4, 0x90
LBB0_48:                                ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rcx), %rdx
	movq	%rdx, (%r13,%rcx)
	addq	$8, %rcx
	cmpq	%rcx, %rbx
	jne	LBB0_48
## %bb.49:
	xorl	%eax, %eax
	cmpq	%r9, %rbx
	je	LBB0_271
LBB0_50:
	movq	%rbx, %rsi
	notq	%rsi
	addq	%r9, %rsi
	movq	%r9, %rdx
	andq	$3, %rdx
	je	LBB0_52
	.p2align	4, 0x90
LBB0_51:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rbx), %ecx
	movb	%cl, (%r13,%rbx)
	incq	%rbx
	decq	%rdx
	jne	LBB0_51
LBB0_52:
	xorl	%eax, %eax
	cmpq	$3, %rsi
	jb	LBB0_271
	.p2align	4, 0x90
LBB0_53:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rbx), %ecx
	movb	%cl, (%r13,%rbx)
	movzbl	1(%r15,%rbx), %ecx
	movb	%cl, 1(%r13,%rbx)
	movzbl	2(%r15,%rbx), %ecx
	movb	%cl, 2(%r13,%rbx)
	movzbl	3(%r15,%rbx), %ecx
	movb	%cl, 3(%r13,%rbx)
	addq	$4, %rbx
	cmpq	%rbx, %r9
	jne	LBB0_53
	jmp	LBB0_271
LBB0_10:
	movabsq	$1152921504606846974, %rdx      ## imm = 0xFFFFFFFFFFFFFFE
	addq	$-2, %rdx
	andq	%rdx, %rsi
	xorl	%edi, %edi
	.p2align	4, 0x90
LBB0_11:                                ## =>This Inner Loop Header: Depth=1
	movups	(%r15,%rdi), %xmm0
	movups	16(%r15,%rdi), %xmm1
	movups	%xmm0, (%r13,%rdi)
	movups	%xmm1, 16(%r13,%rdi)
	movups	32(%r15,%rdi), %xmm0
	movups	48(%r15,%rdi), %xmm1
	movups	%xmm0, 32(%r13,%rdi)
	movups	%xmm1, 48(%r13,%rdi)
	movups	64(%r15,%rdi), %xmm0
	movups	80(%r15,%rdi), %xmm1
	movups	%xmm0, 64(%r13,%rdi)
	movups	%xmm1, 80(%r13,%rdi)
	movdqu	96(%r15,%rdi), %xmm0
	movdqu	112(%r15,%rdi), %xmm1
	movdqu	%xmm0, 96(%r13,%rdi)
	movdqu	%xmm1, 112(%r13,%rdi)
	subq	$-128, %rdi
	addq	$-4, %rsi
	jne	LBB0_11
LBB0_12:
	testq	%r8, %r8
	je	LBB0_15
## %bb.13:
	leaq	(%rdi,%r13), %rsi
	addq	$16, %rsi
	addq	%r15, %rdi
	addq	$16, %rdi
	shlq	$5, %r8
	xorl	%edx, %edx
	.p2align	4, 0x90
LBB0_14:                                ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rdi,%rdx), %xmm0
	movdqu	(%rdi,%rdx), %xmm1
	movdqu	%xmm0, -16(%rsi,%rdx)
	movdqu	%xmm1, (%rsi,%rdx)
	addq	$32, %rdx
	cmpq	%rdx, %r8
	jne	LBB0_14
LBB0_15:
	cmpq	%rcx, %rax
	je	LBB0_23
## %bb.16:
	testb	$24, %cl
	je	LBB0_20
LBB0_17:
	movq	%rax, %rdx
	movq	%rcx, %rax
	andq	$-8, %rax
	.p2align	4, 0x90
LBB0_18:                                ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rdx), %rsi
	movq	%rsi, (%r13,%rdx)
	addq	$8, %rdx
	cmpq	%rdx, %rax
	jne	LBB0_18
## %bb.19:
	cmpq	%rcx, %rax
	je	LBB0_23
LBB0_20:
	movq	%rax, %rdi
	notq	%rdi
	addq	%rcx, %rdi
	movq	%rcx, %rsi
	andq	$3, %rsi
	je	LBB0_22
	.p2align	4, 0x90
LBB0_21:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rax), %edx
	movb	%dl, (%r13,%rax)
	incq	%rax
	decq	%rsi
	jne	LBB0_21
LBB0_22:
	cmpq	$3, %rdi
	jb	LBB0_23
	.p2align	4, 0x90
LBB0_272:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rax), %edx
	movb	%dl, (%r13,%rax)
	movzbl	1(%r15,%rax), %edx
	movb	%dl, 1(%r13,%rax)
	movzbl	2(%r15,%rax), %edx
	movb	%dl, 2(%r13,%rax)
	movzbl	3(%r15,%rax), %edx
	movb	%dl, 3(%r13,%rax)
	addq	$4, %rax
	cmpq	%rax, %rcx
	jne	LBB0_272
LBB0_23:
	movq	%r9, %r11
	subq	%rcx, %r11
	jbe	LBB0_270
## %bb.24:
	movq	%rcx, %rdi
	cmpq	$8, %r11
	jae	LBB0_25
LBB0_63:
	movl	%r9d, %edx
	subl	%edi, %edx
	movq	%rdi, %rax
	notq	%rax
	testb	$1, %dl
	je	LBB0_65
## %bb.64:
	movq	%rdi, %rdx
	subq	%rcx, %rdx
	movb	(%r13,%rdx), %dl
	addb	(%r15,%rdi), %dl
	movb	%dl, (%r13,%rdi)
	incq	%rdi
LBB0_65:
	addq	%r9, %rax
	je	LBB0_270
## %bb.66:
	incq	%r13
	movq	%r13, %rax
	subq	%rcx, %rax
	.p2align	4, 0x90
LBB0_67:                                ## =>This Inner Loop Header: Depth=1
	movzbl	-1(%rax,%rdi), %ecx
	addb	(%r15,%rdi), %cl
	movb	%cl, -1(%r13,%rdi)
	movzbl	(%rax,%rdi), %ecx
	addb	1(%r15,%rdi), %cl
	movb	%cl, (%r13,%rdi)
	addq	$2, %rdi
	cmpq	%rdi, %r9
	jne	LBB0_67
	jmp	LBB0_270
LBB0_25:
	leaq	(%rcx,%r13), %r10
	leaq	(%r15,%rcx), %r8
	movq	%r10, %rax
	subq	%r8, %rax
	movq	%rcx, %rdi
	cmpq	$32, %rax
	jb	LBB0_63
## %bb.26:
	movq	%rcx, %rdi
	jb	LBB0_63
## %bb.27:
	movq	%rcx, %rdi
	cmpq	$32, %rcx
	jb	LBB0_63
## %bb.28:
	cmpq	$32, %r11
	jae	LBB0_54
## %bb.29:
	xorl	%ebx, %ebx
	jmp	LBB0_30
LBB0_54:
	movq	%r11, %rbx
	andq	$-32, %rbx
	leaq	-32(%rbx), %rdx
	movq	%rdx, %r14
	shrq	$5, %r14
	incq	%r14
	testq	%rdx, %rdx
	je	LBB0_55
## %bb.56:
	movq	%r14, %rdx
	andq	$-2, %rdx
	leaq	(%rcx,%r13), %r12
	addq	$48, %r12
	leaq	(%r15,%rcx), %rsi
	addq	$48, %rsi
	xorl	%edi, %edi
	.p2align	4, 0x90
LBB0_57:                                ## =>This Inner Loop Header: Depth=1
	movdqu	-48(%rsi,%rdi), %xmm0
	movdqu	-32(%rsi,%rdi), %xmm1
	movdqu	(%r13,%rdi), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r13,%rdi), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, -48(%r12,%rdi)
	movdqu	%xmm0, -32(%r12,%rdi)
	movdqu	-16(%rsi,%rdi), %xmm0
	movdqu	(%rsi,%rdi), %xmm1
	movdqu	32(%r13,%rdi), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	48(%r13,%rdi), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, -16(%r12,%rdi)
	movdqu	%xmm0, (%r12,%rdi)
	addq	$64, %rdi
	addq	$-2, %rdx
	jne	LBB0_57
	jmp	LBB0_58
LBB0_96:
	movq	%r9, %rbx
	andq	$-32, %rbx
	leaq	-32(%rbx), %rsi
	movq	%rsi, %rdx
	shrq	$5, %rdx
	incq	%rdx
	movl	%edx, %ecx
	andl	$3, %ecx
	cmpq	$96, %rsi
	jae	LBB0_98
## %bb.97:
	xorl	%esi, %esi
	jmp	LBB0_100
LBB0_151:
	movq	%rcx, %rax
	andq	$-32, %rax
	leaq	-32(%rax), %rdx
	movq	%rdx, %rsi
	shrq	$5, %rsi
	incq	%rsi
	movl	%esi, %r8d
	andl	$3, %r8d
	cmpq	$96, %rdx
	jae	LBB0_153
## %bb.152:
	xorl	%edi, %edi
	jmp	LBB0_155
LBB0_230:
	movq	%rcx, %rax
	andq	$-32, %rax
	leaq	-32(%rax), %rdx
	movq	%rdx, %rsi
	shrq	$5, %rsi
	incq	%rsi
	movl	%esi, %r8d
	andl	$3, %r8d
	cmpq	$96, %rdx
	jae	LBB0_232
## %bb.231:
	xorl	%edi, %edi
	jmp	LBB0_234
LBB0_76:
	movq	%r9, %rdi
	andq	$-32, %rdi
	leaq	-32(%rdi), %rcx
	movq	%rcx, %rdx
	shrq	$5, %rdx
	incq	%rdx
	testq	%rcx, %rcx
	je	LBB0_77
## %bb.78:
	movq	%rdx, %rsi
	andq	$-2, %rsi
	xorl	%ecx, %ecx
LBB0_79:                                ## =>This Inner Loop Header: Depth=1
	movdqu	(%r15,%rcx), %xmm0
	movdqu	16(%r15,%rcx), %xmm1
	movdqu	(%r10,%rcx), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r10,%rcx), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, (%r13,%rcx)
	movdqu	%xmm0, 16(%r13,%rcx)
	movdqu	32(%r15,%rcx), %xmm0
	movdqu	48(%r15,%rcx), %xmm1
	movdqu	32(%r10,%rcx), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	48(%r10,%rcx), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, 32(%r13,%rcx)
	movdqu	%xmm0, 48(%r13,%rcx)
	addq	$64, %rcx
	addq	$-2, %rsi
	jne	LBB0_79
	jmp	LBB0_80
LBB0_120:
	movq	%rcx, %rax
	andq	$-32, %rax
	leaq	-32(%rax), %rdx
	movq	%rdx, %rsi
	shrq	$5, %rsi
	incq	%rsi
	testq	%rdx, %rdx
	je	LBB0_121
## %bb.122:
	movq	%rsi, %rdi
	andq	$-2, %rdi
	xorl	%edx, %edx
	movdqa	LCPI0_0(%rip), %xmm0            ## xmm0 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
LBB0_123:                               ## =>This Inner Loop Header: Depth=1
	movdqu	(%r15,%rdx), %xmm1
	movdqu	16(%r15,%rdx), %xmm2
	movdqu	(%r10,%rdx), %xmm3
	movdqu	16(%r10,%rdx), %xmm4
	psrlw	$1, %xmm3
	pand	%xmm0, %xmm3
	paddb	%xmm1, %xmm3
	psrlw	$1, %xmm4
	pand	%xmm0, %xmm4
	paddb	%xmm2, %xmm4
	movdqu	%xmm3, (%r13,%rdx)
	movdqu	%xmm4, 16(%r13,%rdx)
	movdqu	32(%r15,%rdx), %xmm1
	movdqu	48(%r15,%rdx), %xmm2
	movdqu	32(%r10,%rdx), %xmm3
	movdqu	48(%r10,%rdx), %xmm4
	psrlw	$1, %xmm3
	pand	%xmm0, %xmm3
	paddb	%xmm1, %xmm3
	psrlw	$1, %xmm4
	pand	%xmm0, %xmm4
	paddb	%xmm2, %xmm4
	movdqu	%xmm3, 32(%r13,%rdx)
	movdqu	%xmm4, 48(%r13,%rdx)
	addq	$64, %rdx
	addq	$-2, %rdi
	jne	LBB0_123
	jmp	LBB0_124
LBB0_208:
	movq	%rcx, %rax
	andq	$-32, %rax
	leaq	-32(%rax), %rdx
	movq	%rdx, %rsi
	shrq	$5, %rsi
	incq	%rsi
	testq	%rdx, %rdx
	je	LBB0_209
## %bb.210:
	movq	%rsi, %rdi
	andq	$-2, %rdi
	xorl	%edx, %edx
LBB0_211:                               ## =>This Inner Loop Header: Depth=1
	movdqu	(%r15,%rdx), %xmm0
	movdqu	16(%r15,%rdx), %xmm1
	movdqu	(%r10,%rdx), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r10,%rdx), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, (%r13,%rdx)
	movdqu	%xmm0, 16(%r13,%rdx)
	movdqu	32(%r15,%rdx), %xmm0
	movdqu	48(%r15,%rdx), %xmm1
	movdqu	32(%r10,%rdx), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	48(%r10,%rdx), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, 32(%r13,%rdx)
	movdqu	%xmm0, 48(%r13,%rdx)
	addq	$64, %rdx
	addq	$-2, %rdi
	jne	LBB0_211
	jmp	LBB0_212
LBB0_176:
	movq	%r8, %rsi
	andq	$-32, %rsi
	leaq	16(%r13), %rdx
	leaq	(%r15,%rcx), %r11
	addq	$16, %r11
	leaq	(%r10,%rcx), %rax
	addq	$16, %rax
	leaq	(%rcx,%r13), %r10
	addq	$16, %r10
	xorl	%edi, %edi
	.p2align	4, 0x90
LBB0_177:                               ## =>This Inner Loop Header: Depth=1
	pmovzxbw	-8(%rdx,%rdi), %xmm0            ## xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	pmovzxbw	-16(%rdx,%rdi), %xmm1           ## xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	pmovzxbw	8(%rdx,%rdi), %xmm2             ## xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	pmovzxbw	(%rdx,%rdi), %xmm3              ## xmm3 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	pmovzxbw	-8(%rax,%rdi), %xmm4            ## xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	movdqu	-16(%r11,%rdi), %xmm5
	paddw	%xmm0, %xmm4
	pmovzxbw	-16(%rax,%rdi), %xmm0           ## xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	movdqu	(%r11,%rdi), %xmm6
	paddw	%xmm1, %xmm0
	pmovzxbw	8(%rax,%rdi), %xmm1             ## xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	paddw	%xmm2, %xmm1
	pmovzxbw	(%rax,%rdi), %xmm2              ## xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	paddw	%xmm3, %xmm2
	psrlw	$1, %xmm4
	psrlw	$1, %xmm0
	packuswb	%xmm4, %xmm0
	paddb	%xmm5, %xmm0
	psrlw	$1, %xmm1
	psrlw	$1, %xmm2
	packuswb	%xmm1, %xmm2
	paddb	%xmm6, %xmm2
	movdqu	%xmm0, -16(%r10,%rdi)
	movdqu	%xmm2, (%r10,%rdi)
	addq	$32, %rdi
	cmpq	%rdi, %rsi
	jne	LBB0_177
## %bb.178:
	xorl	%eax, %eax
	cmpq	%rsi, %r8
	movq	-48(%rbp), %r10                 ## 8-byte Reload
	je	LBB0_271
## %bb.179:
	testb	$24, %r8b
	je	LBB0_180
LBB0_143:
	movq	%r8, %r10
	andq	$-8, %r10
	leaq	(%r10,%rcx), %r11
	leaq	(%rsi,%r13), %rdi
	movq	%rsi, %rdx
	subq	%r10, %rdx
	addq	%rcx, %rsi
	leaq	(%r15,%rsi), %rax
	addq	-48(%rbp), %rsi                 ## 8-byte Folded Reload
	.p2align	4, 0x90
LBB0_144:                               ## =>This Inner Loop Header: Depth=1
	pmovzxbw	(%rdi), %xmm0                   ## xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	movq	(%rax), %xmm1                   ## xmm1 = mem[0],zero
	pmovzxbw	(%rsi), %xmm2                   ## xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
	paddw	%xmm0, %xmm2
	psrlw	$1, %xmm2
	packuswb	%xmm2, %xmm2
	paddb	%xmm1, %xmm2
	movq	%xmm2, (%rdi,%rcx)
	addq	$8, %rdi
	addq	$8, %rax
	addq	$8, %rsi
	addq	$8, %rdx
	jne	LBB0_144
## %bb.145:
	xorl	%eax, %eax
	cmpq	%r10, %r8
	movq	-48(%rbp), %r10                 ## 8-byte Reload
	jne	LBB0_181
	jmp	LBB0_271
LBB0_98:
	movabsq	$1152921504606846974, %rsi      ## imm = 0xFFFFFFFFFFFFFFE
	addq	$-2, %rsi
	andq	%rsi, %rdx
	xorl	%esi, %esi
LBB0_99:                                ## =>This Inner Loop Header: Depth=1
	movups	(%r15,%rsi), %xmm0
	movups	16(%r15,%rsi), %xmm1
	movups	%xmm0, (%r13,%rsi)
	movups	%xmm1, 16(%r13,%rsi)
	movups	32(%r15,%rsi), %xmm0
	movups	48(%r15,%rsi), %xmm1
	movups	%xmm0, 32(%r13,%rsi)
	movups	%xmm1, 48(%r13,%rsi)
	movups	64(%r15,%rsi), %xmm0
	movups	80(%r15,%rsi), %xmm1
	movups	%xmm0, 64(%r13,%rsi)
	movups	%xmm1, 80(%r13,%rsi)
	movdqu	96(%r15,%rsi), %xmm0
	movdqu	112(%r15,%rsi), %xmm1
	movdqu	%xmm0, 96(%r13,%rsi)
	movdqu	%xmm1, 112(%r13,%rsi)
	subq	$-128, %rsi
	addq	$-4, %rdx
	jne	LBB0_99
LBB0_100:
	testq	%rcx, %rcx
	je	LBB0_103
## %bb.101:
	leaq	(%rsi,%r13), %rdx
	addq	$16, %rdx
	addq	%r15, %rsi
	addq	$16, %rsi
	shlq	$5, %rcx
	xorl	%edi, %edi
LBB0_102:                               ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rsi,%rdi), %xmm0
	movdqu	(%rsi,%rdi), %xmm1
	movdqu	%xmm0, -16(%rdx,%rdi)
	movdqu	%xmm1, (%rdx,%rdi)
	addq	$32, %rdi
	cmpq	%rdi, %rcx
	jne	LBB0_102
LBB0_103:
	xorl	%eax, %eax
	cmpq	%r9, %rbx
	je	LBB0_271
## %bb.104:
	testb	$24, %r9b
	je	LBB0_108
LBB0_105:
	movq	%rbx, %rcx
	movq	%r9, %rbx
	andq	$-8, %rbx
	.p2align	4, 0x90
LBB0_106:                               ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rcx), %rdx
	movq	%rdx, (%r13,%rcx)
	addq	$8, %rcx
	cmpq	%rcx, %rbx
	jne	LBB0_106
## %bb.107:
	xorl	%eax, %eax
	cmpq	%r9, %rbx
	je	LBB0_271
LBB0_108:
	movq	%rbx, %rsi
	notq	%rsi
	addq	%r9, %rsi
	movq	%r9, %rdx
	andq	$3, %rdx
	je	LBB0_110
	.p2align	4, 0x90
LBB0_109:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rbx), %ecx
	movb	%cl, (%r13,%rbx)
	incq	%rbx
	decq	%rdx
	jne	LBB0_109
LBB0_110:
	xorl	%eax, %eax
	cmpq	$3, %rsi
	jb	LBB0_271
	.p2align	4, 0x90
LBB0_111:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rbx), %ecx
	movb	%cl, (%r13,%rbx)
	movzbl	1(%r15,%rbx), %ecx
	movb	%cl, 1(%r13,%rbx)
	movzbl	2(%r15,%rbx), %ecx
	movb	%cl, 2(%r13,%rbx)
	movzbl	3(%r15,%rbx), %ecx
	movb	%cl, 3(%r13,%rbx)
	addq	$4, %rbx
	cmpq	%rbx, %r9
	jne	LBB0_111
	jmp	LBB0_271
LBB0_153:
	movabsq	$1152921504606846974, %rdx      ## imm = 0xFFFFFFFFFFFFFFE
	addq	$-2, %rdx
	andq	%rdx, %rsi
	xorl	%edi, %edi
LBB0_154:                               ## =>This Inner Loop Header: Depth=1
	movups	(%r15,%rdi), %xmm0
	movups	16(%r15,%rdi), %xmm1
	movups	%xmm0, (%r13,%rdi)
	movups	%xmm1, 16(%r13,%rdi)
	movups	32(%r15,%rdi), %xmm0
	movups	48(%r15,%rdi), %xmm1
	movups	%xmm0, 32(%r13,%rdi)
	movups	%xmm1, 48(%r13,%rdi)
	movups	64(%r15,%rdi), %xmm0
	movups	80(%r15,%rdi), %xmm1
	movups	%xmm0, 64(%r13,%rdi)
	movups	%xmm1, 80(%r13,%rdi)
	movdqu	96(%r15,%rdi), %xmm0
	movdqu	112(%r15,%rdi), %xmm1
	movdqu	%xmm0, 96(%r13,%rdi)
	movdqu	%xmm1, 112(%r13,%rdi)
	subq	$-128, %rdi
	addq	$-4, %rsi
	jne	LBB0_154
LBB0_155:
	testq	%r8, %r8
	je	LBB0_158
## %bb.156:
	leaq	(%rdi,%r13), %rsi
	addq	$16, %rsi
	addq	%r15, %rdi
	addq	$16, %rdi
	shlq	$5, %r8
	xorl	%edx, %edx
LBB0_157:                               ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rdi,%rdx), %xmm0
	movdqu	(%rdi,%rdx), %xmm1
	movdqu	%xmm0, -16(%rsi,%rdx)
	movdqu	%xmm1, (%rsi,%rdx)
	addq	$32, %rdx
	cmpq	%rdx, %r8
	jne	LBB0_157
LBB0_158:
	cmpq	%rcx, %rax
	je	LBB0_166
## %bb.159:
	testb	$24, %cl
	je	LBB0_163
LBB0_160:
	movq	%rax, %rdx
	movq	%rcx, %rax
	andq	$-8, %rax
	.p2align	4, 0x90
LBB0_161:                               ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rdx), %rsi
	movq	%rsi, (%r13,%rdx)
	addq	$8, %rdx
	cmpq	%rdx, %rax
	jne	LBB0_161
## %bb.162:
	cmpq	%rcx, %rax
	je	LBB0_166
LBB0_163:
	movq	%rax, %rdi
	notq	%rdi
	addq	%rcx, %rdi
	movq	%rcx, %rsi
	andq	$3, %rsi
	je	LBB0_165
	.p2align	4, 0x90
LBB0_164:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rax), %edx
	movb	%dl, (%r13,%rax)
	incq	%rax
	decq	%rsi
	jne	LBB0_164
LBB0_165:
	cmpq	$3, %rdi
	jb	LBB0_166
	.p2align	4, 0x90
LBB0_274:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rax), %edx
	movb	%dl, (%r13,%rax)
	movzbl	1(%r15,%rax), %edx
	movb	%dl, 1(%r13,%rax)
	movzbl	2(%r15,%rax), %edx
	movb	%dl, 2(%r13,%rax)
	movzbl	3(%r15,%rax), %edx
	movb	%dl, 3(%r13,%rax)
	addq	$4, %rax
	cmpq	%rax, %rcx
	jne	LBB0_274
LBB0_166:
	movq	%r9, %r11
	subq	%rcx, %r11
	jbe	LBB0_270
## %bb.167:
	movq	%rcx, %rdi
	cmpq	$8, %r11
	jae	LBB0_168
LBB0_195:
	movl	%r9d, %edx
	subl	%edi, %edx
	movq	%rdi, %rax
	notq	%rax
	testb	$1, %dl
	je	LBB0_197
## %bb.196:
	movq	%rdi, %rdx
	subq	%rcx, %rdx
	movb	(%r13,%rdx), %dl
	shrb	%dl
	addb	(%r15,%rdi), %dl
	movb	%dl, (%r13,%rdi)
	incq	%rdi
LBB0_197:
	addq	%r9, %rax
	je	LBB0_270
## %bb.198:
	incq	%r13
	movq	%r13, %rax
	subq	%rcx, %rax
	.p2align	4, 0x90
LBB0_199:                               ## =>This Inner Loop Header: Depth=1
	movzbl	-1(%rax,%rdi), %ecx
	shrb	%cl
	addb	(%r15,%rdi), %cl
	movb	%cl, -1(%r13,%rdi)
	movzbl	(%rax,%rdi), %ecx
	shrb	%cl
	addb	1(%r15,%rdi), %cl
	movb	%cl, (%r13,%rdi)
	addq	$2, %rdi
	cmpq	%rdi, %r9
	jne	LBB0_199
	jmp	LBB0_270
LBB0_168:
	leaq	(%rcx,%r13), %r10
	leaq	(%r15,%rcx), %r8
	movq	%r10, %rax
	subq	%r8, %rax
	movq	%rcx, %rdi
	cmpq	$32, %rax
	jb	LBB0_195
## %bb.169:
	movq	%rcx, %rdi
	jb	LBB0_195
## %bb.170:
	movq	%rcx, %rdi
	cmpq	$32, %rcx
	jb	LBB0_195
## %bb.171:
	cmpq	$32, %r11
	jae	LBB0_186
## %bb.172:
	xorl	%ebx, %ebx
	jmp	LBB0_173
LBB0_232:
	movabsq	$1152921504606846974, %rdx      ## imm = 0xFFFFFFFFFFFFFFE
	addq	$-2, %rdx
	andq	%rdx, %rsi
	xorl	%edi, %edi
LBB0_233:                               ## =>This Inner Loop Header: Depth=1
	movups	(%r15,%rdi), %xmm0
	movups	16(%r15,%rdi), %xmm1
	movups	%xmm0, (%r13,%rdi)
	movups	%xmm1, 16(%r13,%rdi)
	movups	32(%r15,%rdi), %xmm0
	movups	48(%r15,%rdi), %xmm1
	movups	%xmm0, 32(%r13,%rdi)
	movups	%xmm1, 48(%r13,%rdi)
	movups	64(%r15,%rdi), %xmm0
	movups	80(%r15,%rdi), %xmm1
	movups	%xmm0, 64(%r13,%rdi)
	movups	%xmm1, 80(%r13,%rdi)
	movdqu	96(%r15,%rdi), %xmm0
	movdqu	112(%r15,%rdi), %xmm1
	movdqu	%xmm0, 96(%r13,%rdi)
	movdqu	%xmm1, 112(%r13,%rdi)
	subq	$-128, %rdi
	addq	$-4, %rsi
	jne	LBB0_233
LBB0_234:
	testq	%r8, %r8
	je	LBB0_237
## %bb.235:
	leaq	(%rdi,%r13), %rsi
	addq	$16, %rsi
	addq	%r15, %rdi
	addq	$16, %rdi
	shlq	$5, %r8
	xorl	%edx, %edx
LBB0_236:                               ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rdi,%rdx), %xmm0
	movdqu	(%rdi,%rdx), %xmm1
	movdqu	%xmm0, -16(%rsi,%rdx)
	movdqu	%xmm1, (%rsi,%rdx)
	addq	$32, %rdx
	cmpq	%rdx, %r8
	jne	LBB0_236
LBB0_237:
	cmpq	%rcx, %rax
	je	LBB0_245
## %bb.238:
	testb	$24, %cl
	je	LBB0_242
LBB0_239:
	movq	%rax, %rdx
	movq	%rcx, %rax
	andq	$-8, %rax
	.p2align	4, 0x90
LBB0_240:                               ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rdx), %rsi
	movq	%rsi, (%r13,%rdx)
	addq	$8, %rdx
	cmpq	%rdx, %rax
	jne	LBB0_240
## %bb.241:
	cmpq	%rcx, %rax
	je	LBB0_245
LBB0_242:
	movq	%rax, %rdi
	notq	%rdi
	addq	%rcx, %rdi
	movq	%rcx, %rsi
	andq	$3, %rsi
	je	LBB0_244
	.p2align	4, 0x90
LBB0_243:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rax), %edx
	movb	%dl, (%r13,%rax)
	incq	%rax
	decq	%rsi
	jne	LBB0_243
LBB0_244:
	cmpq	$3, %rdi
	jb	LBB0_245
	.p2align	4, 0x90
LBB0_275:                               ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15,%rax), %edx
	movb	%dl, (%r13,%rax)
	movzbl	1(%r15,%rax), %edx
	movb	%dl, 1(%r13,%rax)
	movzbl	2(%r15,%rax), %edx
	movb	%dl, 2(%r13,%rax)
	movzbl	3(%r15,%rax), %edx
	movb	%dl, 3(%r13,%rax)
	addq	$4, %rax
	cmpq	%rax, %rcx
	jne	LBB0_275
LBB0_245:
	movq	%r9, %r11
	subq	%rcx, %r11
	jbe	LBB0_270
## %bb.246:
	movq	%rcx, %rdi
	cmpq	$8, %r11
	jae	LBB0_247
LBB0_265:
	movl	%r9d, %edx
	subl	%edi, %edx
	movq	%rdi, %rax
	notq	%rax
	testb	$1, %dl
	je	LBB0_267
## %bb.266:
	movq	%rdi, %rdx
	subq	%rcx, %rdx
	movb	(%r13,%rdx), %dl
	addb	(%r15,%rdi), %dl
	movb	%dl, (%r13,%rdi)
	incq	%rdi
LBB0_267:
	addq	%r9, %rax
	je	LBB0_270
## %bb.268:
	incq	%r13
	movq	%r13, %rax
	subq	%rcx, %rax
	.p2align	4, 0x90
LBB0_269:                               ## =>This Inner Loop Header: Depth=1
	movzbl	-1(%rax,%rdi), %ecx
	addb	(%r15,%rdi), %cl
	movb	%cl, -1(%r13,%rdi)
	movzbl	(%rax,%rdi), %ecx
	addb	1(%r15,%rdi), %cl
	movb	%cl, (%r13,%rdi)
	addq	$2, %rdi
	cmpq	%rdi, %r9
	jne	LBB0_269
	jmp	LBB0_270
LBB0_247:
	leaq	(%rcx,%r13), %r10
	leaq	(%r15,%rcx), %r8
	movq	%r10, %rax
	subq	%r8, %rax
	movq	%rcx, %rdi
	cmpq	$32, %rax
	jb	LBB0_265
## %bb.248:
	movq	%rcx, %rdi
	jb	LBB0_265
## %bb.249:
	movq	%rcx, %rdi
	cmpq	$32, %rcx
	jb	LBB0_265
## %bb.250:
	cmpq	$32, %r11
	jae	LBB0_256
## %bb.251:
	xorl	%ebx, %ebx
	jmp	LBB0_252
LBB0_55:
	xorl	%edi, %edi
LBB0_58:
	testb	$1, %r14b
	je	LBB0_60
## %bb.59:
	leaq	(%rdi,%rcx), %rdx
	movdqu	(%r15,%rdx), %xmm0
	movdqu	16(%r15,%rdx), %xmm1
	movdqu	(%r13,%rdi), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r13,%rdi), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, (%r13,%rdx)
	movdqu	%xmm0, 16(%r13,%rdx)
LBB0_60:
	xorl	%eax, %eax
	cmpq	%rbx, %r11
	je	LBB0_271
## %bb.61:
	testb	$24, %r11b
	je	LBB0_62
LBB0_30:
	movq	%r11, %rdx
	andq	$-8, %rdx
	leaq	(%rdx,%rcx), %rdi
	.p2align	4, 0x90
LBB0_31:                                ## =>This Inner Loop Header: Depth=1
	movq	(%r8,%rbx), %xmm0               ## xmm0 = mem[0],zero
	movq	(%r13,%rbx), %xmm1              ## xmm1 = mem[0],zero
	paddb	%xmm0, %xmm1
	movq	%xmm1, (%r10,%rbx)
	addq	$8, %rbx
	cmpq	%rbx, %rdx
	jne	LBB0_31
## %bb.32:
	xorl	%eax, %eax
	cmpq	%rdx, %r11
	jne	LBB0_63
	jmp	LBB0_271
LBB0_186:
	movq	%r11, %rbx
	andq	$-32, %rbx
	leaq	-32(%rbx), %rdx
	movq	%rdx, %r14
	shrq	$5, %r14
	incq	%r14
	testq	%rdx, %rdx
	je	LBB0_187
## %bb.188:
	movq	%r14, %rdx
	andq	$-2, %rdx
	leaq	(%rcx,%r13), %r12
	addq	$48, %r12
	leaq	(%r15,%rcx), %rsi
	addq	$48, %rsi
	xorl	%edi, %edi
	movdqa	LCPI0_0(%rip), %xmm0            ## xmm0 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
LBB0_189:                               ## =>This Inner Loop Header: Depth=1
	movdqu	-48(%rsi,%rdi), %xmm1
	movdqu	-32(%rsi,%rdi), %xmm2
	movdqu	(%r13,%rdi), %xmm3
	movdqu	16(%r13,%rdi), %xmm4
	psrlw	$1, %xmm3
	pand	%xmm0, %xmm3
	paddb	%xmm1, %xmm3
	psrlw	$1, %xmm4
	pand	%xmm0, %xmm4
	paddb	%xmm2, %xmm4
	movdqu	%xmm3, -48(%r12,%rdi)
	movdqu	%xmm4, -32(%r12,%rdi)
	movdqu	-16(%rsi,%rdi), %xmm1
	movdqu	(%rsi,%rdi), %xmm2
	movdqu	32(%r13,%rdi), %xmm3
	movdqu	48(%r13,%rdi), %xmm4
	psrlw	$1, %xmm3
	pand	%xmm0, %xmm3
	paddb	%xmm1, %xmm3
	psrlw	$1, %xmm4
	pand	%xmm0, %xmm4
	paddb	%xmm2, %xmm4
	movdqu	%xmm3, -16(%r12,%rdi)
	movdqu	%xmm4, (%r12,%rdi)
	addq	$64, %rdi
	addq	$-2, %rdx
	jne	LBB0_189
	jmp	LBB0_190
LBB0_256:
	movq	%r11, %rbx
	andq	$-32, %rbx
	leaq	-32(%rbx), %rdx
	movq	%rdx, %r14
	shrq	$5, %r14
	incq	%r14
	testq	%rdx, %rdx
	je	LBB0_257
## %bb.258:
	movq	%r14, %rdx
	andq	$-2, %rdx
	leaq	(%rcx,%r13), %r12
	addq	$48, %r12
	leaq	(%r15,%rcx), %rsi
	addq	$48, %rsi
	xorl	%edi, %edi
LBB0_259:                               ## =>This Inner Loop Header: Depth=1
	movdqu	-48(%rsi,%rdi), %xmm0
	movdqu	-32(%rsi,%rdi), %xmm1
	movdqu	(%r13,%rdi), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r13,%rdi), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, -48(%r12,%rdi)
	movdqu	%xmm0, -32(%r12,%rdi)
	movdqu	-16(%rsi,%rdi), %xmm0
	movdqu	(%rsi,%rdi), %xmm1
	movdqu	32(%r13,%rdi), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	48(%r13,%rdi), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, -16(%r12,%rdi)
	movdqu	%xmm0, (%r12,%rdi)
	addq	$64, %rdi
	addq	$-2, %rdx
	jne	LBB0_259
	jmp	LBB0_260
LBB0_77:
	xorl	%ecx, %ecx
LBB0_80:
	testb	$1, %dl
	je	LBB0_82
## %bb.81:
	movdqu	(%r15,%rcx), %xmm0
	movdqu	16(%r15,%rcx), %xmm1
	movdqu	(%r10,%rcx), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r10,%rcx), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, (%r13,%rcx)
	movdqu	%xmm0, 16(%r13,%rcx)
LBB0_82:
	xorl	%eax, %eax
	cmpq	%r9, %rdi
	je	LBB0_271
## %bb.83:
	testb	$24, %r9b
	je	LBB0_87
LBB0_84:
	movq	%rdi, %rcx
	movq	%r9, %rdi
	andq	$-8, %rdi
	.p2align	4, 0x90
LBB0_85:                                ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rcx), %xmm0              ## xmm0 = mem[0],zero
	movq	(%r10,%rcx), %xmm1              ## xmm1 = mem[0],zero
	paddb	%xmm0, %xmm1
	movq	%xmm1, (%r13,%rcx)
	addq	$8, %rcx
	cmpq	%rcx, %rdi
	jne	LBB0_85
## %bb.86:
	xorl	%eax, %eax
	cmpq	%r9, %rdi
	jne	LBB0_87
	jmp	LBB0_271
LBB0_121:
	xorl	%edx, %edx
LBB0_124:
	testb	$1, %sil
	je	LBB0_126
## %bb.125:
	movdqu	(%r15,%rdx), %xmm0
	movdqu	16(%r15,%rdx), %xmm1
	movdqu	(%r10,%rdx), %xmm2
	movdqu	16(%r10,%rdx), %xmm3
	psrlw	$1, %xmm2
	movdqa	LCPI0_0(%rip), %xmm4            ## xmm4 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
	pand	%xmm4, %xmm2
	paddb	%xmm0, %xmm2
	psrlw	$1, %xmm3
	pand	%xmm4, %xmm3
	paddb	%xmm1, %xmm3
	movdqu	%xmm2, (%r13,%rdx)
	movdqu	%xmm3, 16(%r13,%rdx)
LBB0_126:
	cmpq	%rcx, %rax
	je	LBB0_134
## %bb.127:
	testb	$24, %cl
	je	LBB0_131
LBB0_128:
	movq	%rax, %rdx
	movq	%rcx, %rax
	andq	$-8, %rax
	movdqa	LCPI0_0(%rip), %xmm0            ## xmm0 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
	.p2align	4, 0x90
LBB0_129:                               ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rdx), %xmm1              ## xmm1 = mem[0],zero
	movq	(%r10,%rdx), %xmm2              ## xmm2 = mem[0],zero
	psrlw	$1, %xmm2
	pand	%xmm0, %xmm2
	paddb	%xmm1, %xmm2
	movq	%xmm2, (%r13,%rdx)
	addq	$8, %rdx
	cmpq	%rdx, %rax
	jne	LBB0_129
## %bb.130:
	cmpq	%rcx, %rax
	jne	LBB0_131
	jmp	LBB0_134
LBB0_209:
	xorl	%edx, %edx
LBB0_212:
	testb	$1, %sil
	je	LBB0_214
## %bb.213:
	movdqu	(%r15,%rdx), %xmm0
	movdqu	16(%r15,%rdx), %xmm1
	movdqu	(%r10,%rdx), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r10,%rdx), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, (%r13,%rdx)
	movdqu	%xmm0, 16(%r13,%rdx)
LBB0_214:
	cmpq	%rcx, %rax
	je	LBB0_222
## %bb.215:
	testb	$24, %cl
	je	LBB0_219
LBB0_216:
	movq	%rax, %rdx
	movq	%rcx, %rax
	andq	$-8, %rax
	.p2align	4, 0x90
LBB0_217:                               ## =>This Inner Loop Header: Depth=1
	movq	(%r15,%rdx), %xmm0              ## xmm0 = mem[0],zero
	movq	(%r10,%rdx), %xmm1              ## xmm1 = mem[0],zero
	paddb	%xmm0, %xmm1
	movq	%xmm1, (%r13,%rdx)
	addq	$8, %rdx
	cmpq	%rdx, %rax
	jne	LBB0_217
## %bb.218:
	cmpq	%rcx, %rax
	jne	LBB0_219
	jmp	LBB0_222
LBB0_62:
	addq	%rcx, %rbx
	movq	%rbx, %rdi
	jmp	LBB0_63
LBB0_187:
	xorl	%edi, %edi
LBB0_190:
	testb	$1, %r14b
	je	LBB0_192
## %bb.191:
	leaq	(%rdi,%rcx), %rdx
	movdqu	(%r15,%rdx), %xmm0
	movdqu	16(%r15,%rdx), %xmm1
	movdqu	(%r13,%rdi), %xmm2
	movdqu	16(%r13,%rdi), %xmm3
	psrlw	$1, %xmm2
	movdqa	LCPI0_0(%rip), %xmm4            ## xmm4 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
	pand	%xmm4, %xmm2
	paddb	%xmm0, %xmm2
	psrlw	$1, %xmm3
	pand	%xmm4, %xmm3
	paddb	%xmm1, %xmm3
	movdqu	%xmm2, (%r13,%rdx)
	movdqu	%xmm3, 16(%r13,%rdx)
LBB0_192:
	xorl	%eax, %eax
	cmpq	%rbx, %r11
	je	LBB0_271
## %bb.193:
	testb	$24, %r11b
	je	LBB0_194
LBB0_173:
	movq	%r11, %rdx
	andq	$-8, %rdx
	leaq	(%rdx,%rcx), %rdi
	movdqa	LCPI0_0(%rip), %xmm0            ## xmm0 = [127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127]
LBB0_174:                               ## =>This Inner Loop Header: Depth=1
	movq	(%r8,%rbx), %xmm1               ## xmm1 = mem[0],zero
	movq	(%r13,%rbx), %xmm2              ## xmm2 = mem[0],zero
	psrlw	$1, %xmm2
	pand	%xmm0, %xmm2
	paddb	%xmm1, %xmm2
	movq	%xmm2, (%r10,%rbx)
	addq	$8, %rbx
	cmpq	%rbx, %rdx
	jne	LBB0_174
## %bb.175:
	xorl	%eax, %eax
	cmpq	%rdx, %r11
	jne	LBB0_195
	jmp	LBB0_271
LBB0_257:
	xorl	%edi, %edi
LBB0_260:
	testb	$1, %r14b
	je	LBB0_262
## %bb.261:
	leaq	(%rdi,%rcx), %rdx
	movdqu	(%r15,%rdx), %xmm0
	movdqu	16(%r15,%rdx), %xmm1
	movdqu	(%r13,%rdi), %xmm2
	paddb	%xmm0, %xmm2
	movdqu	16(%r13,%rdi), %xmm0
	paddb	%xmm1, %xmm0
	movdqu	%xmm2, (%r13,%rdx)
	movdqu	%xmm0, 16(%r13,%rdx)
LBB0_262:
	xorl	%eax, %eax
	cmpq	%rbx, %r11
	je	LBB0_271
## %bb.263:
	testb	$24, %r11b
	je	LBB0_264
LBB0_252:
	movq	%r11, %rdx
	andq	$-8, %rdx
	leaq	(%rdx,%rcx), %rdi
LBB0_253:                               ## =>This Inner Loop Header: Depth=1
	movq	(%r8,%rbx), %xmm0               ## xmm0 = mem[0],zero
	movq	(%r13,%rbx), %xmm1              ## xmm1 = mem[0],zero
	paddb	%xmm0, %xmm1
	movq	%xmm1, (%r10,%rbx)
	addq	$8, %rbx
	cmpq	%rbx, %rdx
	jne	LBB0_253
## %bb.254:
	xorl	%eax, %eax
	cmpq	%rdx, %r11
	jne	LBB0_265
	jmp	LBB0_271
LBB0_180:
	addq	%rcx, %rsi
	movq	%rsi, %r11
LBB0_181:
	movl	%r9d, %edx
	subl	%r11d, %edx
	movq	%r11, %rax
	notq	%rax
	testb	$1, %dl
	je	LBB0_183
## %bb.182:
	movq	%r11, %rdx
	subq	%rcx, %rdx
	movzbl	(%r13,%rdx), %edx
	movzbl	(%r10,%r11), %esi
	addl	%edx, %esi
	shrl	%esi
	addb	(%r15,%r11), %sil
	movb	%sil, (%r13,%r11)
	incq	%r11
LBB0_183:
	addq	%r9, %rax
	je	LBB0_270
## %bb.184:
	subq	%r11, %r9
	leaq	(%r11,%r13), %rax
	incq	%rax
	leaq	(%r10,%r11), %rdx
	incq	%rdx
	negq	%rcx
	leaq	(%r15,%r11), %rsi
	incq	%rsi
	.p2align	4, 0x90
LBB0_185:                               ## =>This Inner Loop Header: Depth=1
	movzbl	-1(%rax,%rcx), %edi
	movzbl	-1(%rdx), %ebx
	addl	%edi, %ebx
	shrl	%ebx
	addb	-1(%rsi), %bl
	movb	%bl, -1(%rax)
	movzbl	(%rax,%rcx), %edi
	movzbl	(%rdx), %ebx
	addl	%edi, %ebx
	shrl	%ebx
	addb	(%rsi), %bl
	movb	%bl, (%rax)
	addq	$2, %rax
	addq	$2, %rdx
	addq	$2, %rsi
	addq	$-2, %r9
	jne	LBB0_185
LBB0_270:
	xorl	%eax, %eax
LBB0_271:
                                        ## kill: def $eax killed $eax killed $rax
	addq	$24, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_194:
	addq	%rcx, %rbx
	movq	%rbx, %rdi
	jmp	LBB0_195
LBB0_264:
	addq	%rcx, %rbx
	movq	%rbx, %rdi
	jmp	LBB0_265
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_33, LBB0_33-LJTI0_0
.set L0_0_set_3, LBB0_3-LJTI0_0
.set L0_0_set_68, LBB0_68-LJTI0_0
.set L0_0_set_112, LBB0_112-LJTI0_0
.set L0_0_set_200, LBB0_200-LJTI0_0
LJTI0_0:
	.long	L0_0_set_33
	.long	L0_0_set_3
	.long	L0_0_set_68
	.long	L0_0_set_112
	.long	L0_0_set_200
	.end_data_region
                                        ## -- End function
	.no_dead_strip	_unfilterScanline
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function unfilterScanline
_unfilterScanline:                      ; @unfilterScanline
	.cfi_startproc
; %bb.0:
	stp	x24, x23, [sp, #-64]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 64
	stp	x22, x21, [sp, #16]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #32]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #48]             ; 16-byte Folded Spill
	add	x29, sp, #48
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	cmp	w4, #4
	b.hi	LBB0_7
; %bb.1:
	mov	x21, x5
	mov	x22, x3
	mov	x23, x2
	mov	x19, x1
	mov	x20, x0
	mov	w8, w4
Lloh0:
	adrp	x9, lJTI0_0@PAGE
Lloh1:
	add	x9, x9, lJTI0_0@PAGEOFF
	adr	x10, LBB0_2
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_2:
	cbz	x21, LBB0_194
; %bb.3:
	mov	x8, #0
	cmp	x21, #8
	b.lo	LBB0_76
; %bb.4:
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_76
; %bb.5:
	cmp	x21, #64
	b.hs	LBB0_69
; %bb.6:
	mov	x8, #0
	b	LBB0_73
LBB0_7:
	mov	w0, #36
	b	LBB0_195
LBB0_8:
	cbz	x22, LBB0_87
; %bb.9:
	mov	x8, #0
	cmp	x22, #8
	b.lo	LBB0_85
; %bb.10:
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_85
; %bb.11:
	cmp	x22, #64
	b.hs	LBB0_78
; %bb.12:
	mov	x8, #0
	b	LBB0_82
LBB0_13:
	cbz	x23, LBB0_42
; %bb.14:
	cbz	x21, LBB0_194
; %bb.15:
	cmp	x21, #8
	b.hs	LBB0_57
; %bb.16:
	mov	x8, #0
LBB0_17:
	sub	x9, x21, x8
	add	x10, x20, x8
	add	x11, x23, x8
	add	x8, x19, x8
LBB0_18:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w12, [x8], #1
	ldrb	w13, [x11], #1
	add	w12, w13, w12
	strb	w12, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_18
	b	LBB0_194
LBB0_19:
	cbz	x23, LBB0_47
; %bb.20:
	cbz	x22, LBB0_25
; %bb.21:
	cmp	x22, #8
	b.hs	LBB0_61
; %bb.22:
	mov	x8, #0
LBB0_23:
	sub	x9, x22, x8
	add	x10, x20, x8
	add	x11, x23, x8
	add	x8, x19, x8
LBB0_24:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w12, [x8], #1
	ldrb	w13, [x11], #1
	add	w12, w12, w13, lsr #1
	strb	w12, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_24
LBB0_25:
	subs	x8, x21, x22
	b.ls	LBB0_194
; %bb.26:
	mov	x9, x22
	cmp	x8, #8
	b.lo	LBB0_192
; %bb.27:
	add	x10, x20, x22
	add	x9, x19, x22
	sub	x11, x10, x9
	mov	x9, x22
	cmp	x11, #64
	b.lo	LBB0_192
; %bb.28:
	add	x9, x23, x22
	sub	x10, x10, x9
	mov	x9, x22
	cmp	x10, #64
	b.lo	LBB0_192
; %bb.29:
	mov	x9, x22
	cmp	x11, #64
	b.lo	LBB0_192
; %bb.30:
	mov	x9, x22
	cmp	x22, #64
	b.lo	LBB0_192
; %bb.31:
	mov	x9, x22
	cmp	x10, #64
	b.lo	LBB0_192
; %bb.32:
	cmp	x8, #64
	b.hs	LBB0_169
; %bb.33:
	mov	x10, #0
	b	LBB0_173
LBB0_34:
	cbz	x23, LBB0_52
; %bb.35:
	cbz	x22, LBB0_40
; %bb.36:
	cmp	x22, #8
	b.hs	LBB0_65
; %bb.37:
	mov	x8, #0
LBB0_38:
	sub	x9, x22, x8
	add	x10, x20, x8
	add	x11, x23, x8
	add	x8, x19, x8
LBB0_39:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w12, [x8], #1
	ldrb	w13, [x11], #1
	add	w12, w13, w12
	strb	w12, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_39
LBB0_40:
	cmp	x21, x22
	b.ls	LBB0_194
LBB0_41:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w24, [x19, x22]
	ldrb	w0, [x20]
	ldrb	w1, [x23, x22]
	ldrb	w2, [x23], #1
	bl	_paethPredictor
	add	w8, w24, w0
	strb	w8, [x20, x22]
	sub	x21, x21, #1
	add	x20, x20, #1
	add	x19, x19, #1
	cmp	x22, x21
	b.ne	LBB0_41
	b	LBB0_194
LBB0_42:
	cbz	x21, LBB0_194
; %bb.43:
	mov	x8, #0
	cmp	x21, #8
	b.lo	LBB0_110
; %bb.44:
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_110
; %bb.45:
	cmp	x21, #64
	b.hs	LBB0_103
; %bb.46:
	mov	x8, #0
	b	LBB0_107
LBB0_47:
	cbz	x22, LBB0_121
; %bb.48:
	mov	x8, #0
	cmp	x22, #8
	b.lo	LBB0_119
; %bb.49:
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_119
; %bb.50:
	cmp	x22, #64
	b.hs	LBB0_112
; %bb.51:
	mov	x8, #0
	b	LBB0_116
LBB0_52:
	cbz	x22, LBB0_139
; %bb.53:
	mov	x8, #0
	cmp	x22, #8
	b.lo	LBB0_137
; %bb.54:
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_137
; %bb.55:
	cmp	x22, #64
	b.hs	LBB0_130
; %bb.56:
	mov	x8, #0
	b	LBB0_134
LBB0_57:
	mov	x8, #0
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_17
; %bb.58:
	sub	x9, x20, x23
	cmp	x9, #64
	b.lo	LBB0_17
; %bb.59:
	cmp	x21, #64
	b.hs	LBB0_148
; %bb.60:
	mov	x8, #0
	b	LBB0_152
LBB0_61:
	mov	x8, #0
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_23
; %bb.62:
	sub	x9, x20, x23
	cmp	x9, #64
	b.lo	LBB0_23
; %bb.63:
	cmp	x22, #64
	b.hs	LBB0_155
; %bb.64:
	mov	x8, #0
	b	LBB0_159
LBB0_65:
	mov	x8, #0
	sub	x9, x20, x19
	cmp	x9, #64
	b.lo	LBB0_38
; %bb.66:
	sub	x9, x20, x23
	cmp	x9, #64
	b.lo	LBB0_38
; %bb.67:
	cmp	x22, #64
	b.hs	LBB0_162
; %bb.68:
	mov	x8, #0
	b	LBB0_166
LBB0_69:
	and	x8, x21, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	mov	x11, x8
LBB0_70:                                ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x11, x11, #64
	b.ne	LBB0_70
; %bb.71:
	cmp	x8, x21
	b.eq	LBB0_194
; %bb.72:
	tst	x21, #0x38
	b.eq	LBB0_76
LBB0_73:
	mov	x11, x8
	and	x8, x21, #0xfffffffffffffff8
	add	x9, x19, x11
	add	x10, x20, x11
	sub	x11, x11, x8
LBB0_74:                                ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	str	d0, [x10], #8
	adds	x11, x11, #8
	b.ne	LBB0_74
; %bb.75:
	cmp	x8, x21
	b.eq	LBB0_194
LBB0_76:
	sub	x9, x21, x8
	add	x10, x20, x8
	add	x8, x19, x8
LBB0_77:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w11, [x8], #1
	strb	w11, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_77
	b	LBB0_194
LBB0_78:
	and	x8, x22, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	mov	x11, x8
LBB0_79:                                ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x11, x11, #64
	b.ne	LBB0_79
; %bb.80:
	cmp	x8, x22
	b.eq	LBB0_87
; %bb.81:
	tst	x22, #0x38
	b.eq	LBB0_85
LBB0_82:
	mov	x11, x8
	and	x8, x22, #0xfffffffffffffff8
	add	x9, x19, x11
	add	x10, x20, x11
	sub	x11, x11, x8
LBB0_83:                                ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	str	d0, [x10], #8
	adds	x11, x11, #8
	b.ne	LBB0_83
; %bb.84:
	cmp	x8, x22
	b.eq	LBB0_87
LBB0_85:
	sub	x9, x22, x8
	add	x10, x20, x8
	add	x8, x19, x8
LBB0_86:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w11, [x8], #1
	strb	w11, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_86
LBB0_87:
	subs	x8, x21, x22
	b.ls	LBB0_194
; %bb.88:
	mov	x10, x22
	cmp	x8, #8
	b.hs	LBB0_91
LBB0_89:
	sub	x8, x21, x10
	add	x9, x20, x10
	neg	x11, x22
	add	x10, x19, x10
LBB0_90:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w12, [x10], #1
	ldrb	w13, [x9, x11]
	add	w12, w13, w12
	strb	w12, [x9], #1
	subs	x8, x8, #1
	b.ne	LBB0_90
	b	LBB0_194
LBB0_91:
	add	x9, x20, x22
	add	x10, x19, x22
	sub	x9, x9, x10
	mov	x10, x22
	cmp	x9, #64
	b.lo	LBB0_89
; %bb.92:
	mov	x10, x22
	b.lo	LBB0_89
; %bb.93:
	mov	x10, x22
	cmp	x22, #64
	b.lo	LBB0_89
; %bb.94:
	cmp	x8, #64
	b.hs	LBB0_96
; %bb.95:
	mov	x9, #0
	b	LBB0_100
LBB0_96:
	and	x9, x8, #0xffffffffffffffc0
	add	x10, x20, #32
	mov	x11, x9
	mov	x12, x19
LBB0_97:                                ; =>This Inner Loop Header: Depth=1
	add	x13, x12, x22
	ldp	q0, q1, [x13]
	ldp	q2, q3, [x13, #32]
	ldp	q4, q5, [x10, #-32]
	ldp	q6, q7, [x10]
	add.16b	v0, v4, v0
	add.16b	v1, v5, v1
	add.16b	v2, v6, v2
	add.16b	v3, v7, v3
	add	x13, x10, x22
	stp	q0, q1, [x13, #-32]
	stp	q2, q3, [x13]
	add	x10, x10, #64
	add	x12, x12, #64
	subs	x11, x11, #64
	b.ne	LBB0_97
; %bb.98:
	cmp	x8, x9
	b.eq	LBB0_194
; %bb.99:
	tst	x8, #0x38
	b.eq	LBB0_190
LBB0_100:
	and	x11, x8, #0xfffffffffffffff8
	add	x10, x11, x22
	add	x12, x20, x9
	sub	x13, x9, x11
	add	x9, x19, x9
LBB0_101:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9, x22]
	ldr	d1, [x12]
	add.8b	v0, v1, v0
	str	d0, [x12, x22]
	add	x12, x12, #8
	add	x9, x9, #8
	adds	x13, x13, #8
	b.ne	LBB0_101
; %bb.102:
	cmp	x8, x11
	b.ne	LBB0_89
	b	LBB0_194
LBB0_103:
	and	x8, x21, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	mov	x11, x8
LBB0_104:                               ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x11, x11, #64
	b.ne	LBB0_104
; %bb.105:
	cmp	x8, x21
	b.eq	LBB0_194
; %bb.106:
	tst	x21, #0x38
	b.eq	LBB0_110
LBB0_107:
	mov	x11, x8
	and	x8, x21, #0xfffffffffffffff8
	add	x9, x19, x11
	add	x10, x20, x11
	sub	x11, x11, x8
LBB0_108:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	str	d0, [x10], #8
	adds	x11, x11, #8
	b.ne	LBB0_108
; %bb.109:
	cmp	x8, x21
	b.eq	LBB0_194
LBB0_110:
	sub	x9, x21, x8
	add	x10, x20, x8
	add	x8, x19, x8
	mov	w0, #0
LBB0_111:                               ; =>This Inner Loop Header: Depth=1
	ldrb	w11, [x8], #1
	strb	w11, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_111
	b	LBB0_195
LBB0_112:
	and	x8, x22, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	mov	x11, x8
LBB0_113:                               ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x11, x11, #64
	b.ne	LBB0_113
; %bb.114:
	cmp	x8, x22
	b.eq	LBB0_121
; %bb.115:
	tst	x22, #0x38
	b.eq	LBB0_119
LBB0_116:
	mov	x11, x8
	and	x8, x22, #0xfffffffffffffff8
	add	x9, x19, x11
	add	x10, x20, x11
	sub	x11, x11, x8
LBB0_117:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	str	d0, [x10], #8
	adds	x11, x11, #8
	b.ne	LBB0_117
; %bb.118:
	cmp	x8, x22
	b.eq	LBB0_121
LBB0_119:
	sub	x9, x22, x8
	add	x10, x20, x8
	add	x8, x19, x8
LBB0_120:                               ; =>This Inner Loop Header: Depth=1
	ldrb	w11, [x8], #1
	strb	w11, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_120
LBB0_121:
	subs	x8, x21, x22
	b.ls	LBB0_194
; %bb.122:
	mov	x10, x22
	cmp	x8, #8
	b.hs	LBB0_125
LBB0_123:
	sub	x8, x21, x10
	add	x9, x20, x10
	neg	x11, x22
	add	x10, x19, x10
	mov	w0, #0
LBB0_124:                               ; =>This Inner Loop Header: Depth=1
	ldrb	w12, [x10], #1
	ldrb	w13, [x9, x11]
	add	w12, w12, w13, lsr #1
	strb	w12, [x9], #1
	subs	x8, x8, #1
	b.ne	LBB0_124
	b	LBB0_195
LBB0_125:
	add	x9, x20, x22
	add	x10, x19, x22
	sub	x9, x9, x10
	mov	x10, x22
	cmp	x9, #64
	b.lo	LBB0_123
; %bb.126:
	mov	x10, x22
	b.lo	LBB0_123
; %bb.127:
	mov	x10, x22
	cmp	x22, #64
	b.lo	LBB0_123
; %bb.128:
	cmp	x8, #64
	b.hs	LBB0_176
; %bb.129:
	mov	x9, #0
	b	LBB0_180
LBB0_130:
	and	x8, x22, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	mov	x11, x8
LBB0_131:                               ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x11, x11, #64
	b.ne	LBB0_131
; %bb.132:
	cmp	x8, x22
	b.eq	LBB0_139
; %bb.133:
	tst	x22, #0x38
	b.eq	LBB0_137
LBB0_134:
	mov	x11, x8
	and	x8, x22, #0xfffffffffffffff8
	add	x9, x19, x11
	add	x10, x20, x11
	sub	x11, x11, x8
LBB0_135:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	str	d0, [x10], #8
	adds	x11, x11, #8
	b.ne	LBB0_135
; %bb.136:
	cmp	x8, x22
	b.eq	LBB0_139
LBB0_137:
	sub	x9, x22, x8
	add	x10, x20, x8
	add	x8, x19, x8
LBB0_138:                               ; =>This Inner Loop Header: Depth=1
	ldrb	w11, [x8], #1
	strb	w11, [x10], #1
	subs	x9, x9, #1
	b.ne	LBB0_138
LBB0_139:
	subs	x8, x21, x22
	b.ls	LBB0_194
; %bb.140:
	mov	x10, x22
	cmp	x8, #8
	b.hs	LBB0_143
LBB0_141:
	sub	x8, x21, x10
	add	x9, x20, x10
	neg	x11, x22
	add	x10, x19, x10
	mov	w0, #0
LBB0_142:                               ; =>This Inner Loop Header: Depth=1
	ldrb	w12, [x10], #1
	ldrb	w13, [x9, x11]
	add	w12, w13, w12
	strb	w12, [x9], #1
	subs	x8, x8, #1
	b.ne	LBB0_142
	b	LBB0_195
LBB0_143:
	add	x9, x20, x22
	add	x10, x19, x22
	sub	x9, x9, x10
	mov	x10, x22
	cmp	x9, #64
	b.lo	LBB0_141
; %bb.144:
	mov	x10, x22
	b.lo	LBB0_141
; %bb.145:
	mov	x10, x22
	cmp	x22, #64
	b.lo	LBB0_141
; %bb.146:
	cmp	x8, #64
	b.hs	LBB0_183
; %bb.147:
	mov	x9, #0
	b	LBB0_187
LBB0_148:
	and	x8, x21, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	add	x11, x23, #32
	mov	x12, x8
LBB0_149:                               ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	ldp	q4, q5, [x11, #-32]
	ldp	q6, q7, [x11], #64
	add.16b	v0, v4, v0
	add.16b	v1, v5, v1
	add.16b	v2, v6, v2
	add.16b	v3, v7, v3
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x12, x12, #64
	b.ne	LBB0_149
; %bb.150:
	cmp	x8, x21
	b.eq	LBB0_194
; %bb.151:
	tst	x21, #0x38
	b.eq	LBB0_17
LBB0_152:
	mov	x12, x8
	and	x8, x21, #0xfffffffffffffff8
	add	x9, x19, x12
	add	x10, x23, x12
	add	x11, x20, x12
	sub	x12, x12, x8
LBB0_153:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	ldr	d1, [x10], #8
	add.8b	v0, v1, v0
	str	d0, [x11], #8
	adds	x12, x12, #8
	b.ne	LBB0_153
; %bb.154:
	cmp	x8, x21
	b.ne	LBB0_17
	b	LBB0_194
LBB0_155:
	and	x8, x22, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	add	x11, x23, #32
	mov	x12, x8
LBB0_156:                               ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	ldp	q4, q5, [x11, #-32]
	ldp	q6, q7, [x11], #64
	usra.16b	v0, v4, #1
	usra.16b	v1, v5, #1
	usra.16b	v2, v6, #1
	usra.16b	v3, v7, #1
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x12, x12, #64
	b.ne	LBB0_156
; %bb.157:
	cmp	x8, x22
	b.eq	LBB0_25
; %bb.158:
	tst	x22, #0x38
	b.eq	LBB0_23
LBB0_159:
	mov	x12, x8
	and	x8, x22, #0xfffffffffffffff8
	add	x9, x19, x12
	add	x10, x23, x12
	add	x11, x20, x12
	sub	x12, x12, x8
LBB0_160:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	ldr	d1, [x10], #8
	usra.8b	v0, v1, #1
	str	d0, [x11], #8
	adds	x12, x12, #8
	b.ne	LBB0_160
; %bb.161:
	cmp	x8, x22
	b.ne	LBB0_23
	b	LBB0_25
LBB0_162:
	and	x8, x22, #0xffffffffffffffc0
	add	x9, x19, #32
	add	x10, x20, #32
	add	x11, x23, #32
	mov	x12, x8
LBB0_163:                               ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x9, #-32]
	ldp	q2, q3, [x9], #64
	ldp	q4, q5, [x11, #-32]
	ldp	q6, q7, [x11], #64
	add.16b	v0, v4, v0
	add.16b	v1, v5, v1
	add.16b	v2, v6, v2
	add.16b	v3, v7, v3
	stp	q0, q1, [x10, #-32]
	stp	q2, q3, [x10], #64
	subs	x12, x12, #64
	b.ne	LBB0_163
; %bb.164:
	cmp	x8, x22
	b.eq	LBB0_40
; %bb.165:
	tst	x22, #0x38
	b.eq	LBB0_38
LBB0_166:
	mov	x12, x8
	and	x8, x22, #0xfffffffffffffff8
	add	x9, x19, x12
	add	x10, x23, x12
	add	x11, x20, x12
	sub	x12, x12, x8
LBB0_167:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9], #8
	ldr	d1, [x10], #8
	add.8b	v0, v1, v0
	str	d0, [x11], #8
	adds	x12, x12, #8
	b.ne	LBB0_167
; %bb.168:
	cmp	x8, x22
	b.ne	LBB0_38
	b	LBB0_40
LBB0_169:
	and	x10, x8, #0xffffffffffffffc0
	add	x9, x20, #32
	mov	x11, x10
	mov	x12, x19
	mov	x13, x23
LBB0_170:                               ; =>This Inner Loop Header: Depth=1
	add	x14, x12, x22
	ldp	q0, q1, [x14]
	ldp	q2, q3, [x14, #32]
	ldp	q4, q5, [x9, #-32]
	ldp	q6, q7, [x9]
	add	x14, x13, x22
	ldp	q16, q17, [x14]
	ldp	q18, q19, [x14, #32]
	uhadd.16b	v4, v16, v4
	uhadd.16b	v5, v17, v5
	uhadd.16b	v6, v18, v6
	uhadd.16b	v7, v19, v7
	add.16b	v0, v0, v4
	add.16b	v1, v1, v5
	add.16b	v2, v2, v6
	add.16b	v3, v3, v7
	add	x14, x9, x22
	stp	q0, q1, [x14, #-32]
	stp	q2, q3, [x14]
	add	x9, x9, #64
	add	x13, x13, #64
	add	x12, x12, #64
	subs	x11, x11, #64
	b.ne	LBB0_170
; %bb.171:
	cmp	x8, x10
	b.eq	LBB0_194
; %bb.172:
	tst	x8, #0x38
	b.eq	LBB0_191
LBB0_173:
	and	x11, x8, #0xfffffffffffffff8
	add	x9, x11, x22
	add	x12, x20, x10
	sub	x13, x10, x11
	add	x14, x19, x10
	add	x10, x23, x10
LBB0_174:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x14, x22]
	ldr	d1, [x12]
	ldr	d2, [x10, x22]
	uhadd.8b	v1, v2, v1
	add.8b	v0, v0, v1
	str	d0, [x12, x22]
	add	x12, x12, #8
	add	x14, x14, #8
	add	x10, x10, #8
	adds	x13, x13, #8
	b.ne	LBB0_174
; %bb.175:
	cmp	x8, x11
	b.ne	LBB0_192
	b	LBB0_194
LBB0_176:
	and	x9, x8, #0xffffffffffffffc0
	add	x10, x20, #32
	mov	x11, x9
	mov	x12, x19
LBB0_177:                               ; =>This Inner Loop Header: Depth=1
	add	x13, x12, x22
	ldp	q0, q1, [x13]
	ldp	q2, q3, [x13, #32]
	ldp	q4, q5, [x10, #-32]
	ldp	q6, q7, [x10]
	usra.16b	v0, v4, #1
	usra.16b	v1, v5, #1
	usra.16b	v2, v6, #1
	usra.16b	v3, v7, #1
	add	x13, x10, x22
	stp	q0, q1, [x13, #-32]
	stp	q2, q3, [x13]
	add	x10, x10, #64
	add	x12, x12, #64
	subs	x11, x11, #64
	b.ne	LBB0_177
; %bb.178:
	cmp	x8, x9
	b.eq	LBB0_194
; %bb.179:
	tst	x8, #0x38
	b.eq	LBB0_196
LBB0_180:
	and	x11, x8, #0xfffffffffffffff8
	add	x10, x11, x22
	add	x12, x20, x9
	sub	x13, x9, x11
	add	x9, x19, x9
LBB0_181:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9, x22]
	ldr	d1, [x12]
	usra.8b	v0, v1, #1
	str	d0, [x12, x22]
	add	x12, x12, #8
	add	x9, x9, #8
	adds	x13, x13, #8
	b.ne	LBB0_181
; %bb.182:
	cmp	x8, x11
	b.ne	LBB0_123
	b	LBB0_194
LBB0_183:
	and	x9, x8, #0xffffffffffffffc0
	add	x10, x20, #32
	mov	x11, x9
	mov	x12, x19
LBB0_184:                               ; =>This Inner Loop Header: Depth=1
	add	x13, x12, x22
	ldp	q0, q1, [x13]
	ldp	q2, q3, [x13, #32]
	ldp	q4, q5, [x10, #-32]
	ldp	q6, q7, [x10]
	add.16b	v0, v4, v0
	add.16b	v1, v5, v1
	add.16b	v2, v6, v2
	add.16b	v3, v7, v3
	add	x13, x10, x22
	stp	q0, q1, [x13, #-32]
	stp	q2, q3, [x13]
	add	x10, x10, #64
	add	x12, x12, #64
	subs	x11, x11, #64
	b.ne	LBB0_184
; %bb.185:
	cmp	x8, x9
	b.eq	LBB0_194
; %bb.186:
	tst	x8, #0x38
	b.eq	LBB0_197
LBB0_187:
	and	x11, x8, #0xfffffffffffffff8
	add	x10, x11, x22
	add	x12, x20, x9
	sub	x13, x9, x11
	add	x9, x19, x9
LBB0_188:                               ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x9, x22]
	ldr	d1, [x12]
	add.8b	v0, v1, v0
	str	d0, [x12, x22]
	add	x12, x12, #8
	add	x9, x9, #8
	adds	x13, x13, #8
	b.ne	LBB0_188
; %bb.189:
	cmp	x8, x11
	b.ne	LBB0_141
	b	LBB0_194
LBB0_190:
	add	x10, x9, x22
	b	LBB0_89
LBB0_191:
	add	x9, x10, x22
LBB0_192:
	sub	x8, x21, x9
	add	x10, x20, x9
	add	x11, x23, x9
	neg	x12, x22
	add	x9, x19, x9
LBB0_193:                               ; =>This Inner Loop Header: Depth=1
	ldrb	w13, [x9], #1
	ldrb	w14, [x10, x12]
	ldrb	w15, [x11], #1
	add	w14, w15, w14
	add	w13, w13, w14, lsr #1
	strb	w13, [x10], #1
	subs	x8, x8, #1
	b.ne	LBB0_193
LBB0_194:
	mov	w0, #0
LBB0_195:
	ldp	x29, x30, [sp, #48]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #32]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #16]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp], #64             ; 16-byte Folded Reload
	ret
LBB0_196:
	add	x10, x9, x22
	b	LBB0_123
LBB0_197:
	add	x10, x9, x22
	b	LBB0_141
	.loh AdrpAdd	Lloh0, Lloh1
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_8-LBB0_2)>>2
	.byte	(LBB0_13-LBB0_2)>>2
	.byte	(LBB0_19-LBB0_2)>>2
	.byte	(LBB0_34-LBB0_2)>>2
                                        ; -- End function
	.no_dead_strip	_unfilterScanline
.subsections_via_symbols
