14082287d:	48 8b c2             	mov    %rdx,%rax
140822880:	48 c1 e8 3f          	shr    $0x3f,%rax
140822884:	48 03 d0             	add    %rax,%rdx
140822887:	0f 84 4d 08 00 00    	je     0x1408230da
14082288d:	49 8b d0             	mov    %r8,%rdx
140822890:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
140822895:	e8 06 7a d5 ff       	call   0x14057a2a0
14082289a:	4c 8b 75 b0          	mov    -0x50(%rbp),%r14
14082289e:	e9 47 05 00 00       	jmp    0x140822dea
1408228a3:	4c 89 64 24 58       	mov    %r12,0x58(%rsp)
1408228a8:	41 8b ff             	mov    %r15d,%edi
1408228ab:	0f 10 74 24 50       	movups 0x50(%rsp),%xmm6
1408228b0:	0f 10 7c 24 40       	movups 0x40(%rsp),%xmm7
1408228b5:	45 33 d2             	xor    %r10d,%r10d
1408228b8:	41 8b c2             	mov    %r10d,%eax
1408228bb:	48 85 f6             	test   %rsi,%rsi
1408228be:	0f 95 c0             	setne  %al
1408228c1:	3b f8                	cmp    %eax,%edi
1408228c3:	0f 8d ac 00 00 00    	jge    0x140822975
1408228c9:	48 63 d7             	movslq %edi,%rdx
1408228cc:	4c 8b da             	mov    %rdx,%r11
1408228cf:	49 c1 e3 05          	shl    $0x5,%r11
1408228d3:	4c 03 de             	add    %rsi,%r11
1408228d6:	41 0f b7 03          	movzwl (%r11),%eax
1408228da:	b9 ff ff 00 00       	mov    $0xffff,%ecx
1408228df:	66 3b c1             	cmp    %cx,%ax
1408228e2:	74 71                	je     0x140822955
1408228e4:	41 0f 10 03          	movups (%r11),%xmm0
1408228e8:	0f 11 44 24 40       	movups %xmm0,0x40(%rsp)
1408228ed:	41 0f 10 4b 10       	movups 0x10(%r11),%xmm1
1408228f2:	8b df                	mov    %edi,%ebx
1408228f4:	2b d8                	sub    %eax,%ebx
1408228f6:	44 8b c7             	mov    %edi,%r8d
1408228f9:	48 85 f6             	test   %rsi,%rsi
1408228fc:	41 0f 95 c2          	setne  %r10b
140822900:	49 3b d2             	cmp    %r10,%rdx
140822903:	7d 30                	jge    0x140822935
140822905:	4d 8b cb             	mov    %r11,%r9
140822908:	8b f1                	mov    %ecx,%esi
14082290a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140822910:	41 0f b7 01          	movzwl (%r9),%eax
140822914:	66 3b c6             	cmp    %si,%ax
140822917:	74 18                	je     0x140822931
140822919:	41 8b c8             	mov    %r8d,%ecx
14082291c:	2b c8                	sub    %eax,%ecx
14082291e:	3b cb                	cmp    %ebx,%ecx
140822920:	75 0f                	jne    0x140822931
140822922:	41 ff c0             	inc    %r8d
140822925:	48 ff c2             	inc    %rdx
140822928:	49 83 c1 20          	add    $0x20,%r9
14082292c:	49 3b d2             	cmp    %r10,%rdx
14082292f:	7c df                	jl     0x140822910
140822931:	48 8b 75 a0          	mov    -0x60(%rbp),%rsi
140822935:	41 0f b7 c0          	movzwl %r8w,%eax
140822939:	66 2b c7             	sub    %di,%ax
14082293c:	66 01 44 24 40       	add    %ax,0x40(%rsp)
140822941:	41 0f 11 3b          	movups %xmm7,(%r11)
140822945:	41 0f 11 73 10       	movups %xmm6,0x10(%r11)
14082294a:	0f 10 f1             	movups %xmm1,%xmm6
14082294d:	41 8b f8             	mov    %r8d,%edi
140822950:	e9 5b ff ff ff       	jmp    0x1408228b0
140822955:	41 0f 11 3b          	movups %xmm7,(%r11)
140822959:	41 0f 11 73 10       	movups %xmm6,0x10(%r11)
14082295e:	41 bc ff ff ff ff    	mov    $0xffffffff,%r12d
140822964:	44 8b 6c 24 64       	mov    0x64(%rsp),%r13d
140822969:	44 8b b5 d8 00 00 00 	mov    0xd8(%rbp),%r14d
140822970:	e9 a5 00 00 00       	jmp    0x140822a1a
140822975:	45 8b e2             	mov    %r10d,%r12d
140822978:	48 85 f6             	test   %rsi,%rsi
14082297b:	41 0f 95 c4          	setne  %r12b
14082297f:	45 8b f4             	mov    %r12d,%r14d
140822982:	b8 01 00 00 00       	mov    $0x1,%eax
140822987:	89 85 d0 00 00 00    	mov    %eax,0xd0(%rbp)
14082298d:	66 89 44 24 62       	mov    %ax,0x62(%rsp)
140822992:	c7 44 24 68 02 00 00 	movl   $0x2,0x68(%rsp)
140822999:	00
14082299a:	41 bd 03 00 00 00    	mov    $0x3,%r13d
1408229a0:	44 89 6c 24 64       	mov    %r13d,0x64(%rsp)
1408229a5:	48 8b c6             	mov    %rsi,%rax
1408229a8:	48 f7 d8             	neg    %rax
1408229ab:	48 1b db             	sbb    %rbx,%rbx
1408229ae:	41 23 dd             	and    %r13d,%ebx
1408229b1:	8b d3                	mov    %ebx,%edx
1408229b3:	48 c1 e2 05          	shl    $0x5,%rdx
1408229b7:	48 8b ce             	mov    %rsi,%rcx
1408229ba:	e8 e9 e7 60 00       	call   0x140e311a8
1408229bf:	48 8b f0             	mov    %rax,%rsi
1408229c2:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
1408229c6:	4c 3b f3             	cmp    %rbx,%r14
1408229c9:	73 24                	jae    0x1408229ef
1408229cb:	41 8b c6             	mov    %r14d,%eax
1408229ce:	48 c1 e0 05          	shl    $0x5,%rax
1408229d2:	48 03 c6             	add    %rsi,%rax
1408229d5:	49 2b de             	sub    %r14,%rbx
1408229d8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
1408229df:	00
1408229e0:	66 c7 00 ff ff       	movw   $0xffff,(%rax)
1408229e5:	48 8d 40 20          	lea    0x20(%rax),%rax
1408229e9:	48 83 eb 01          	sub    $0x1,%rbx
1408229ed:	75 f1                	jne    0x1408229e0
1408229ef:	44 89 64 24 70       	mov    %r12d,0x70(%rsp)
1408229f4:	41 be 01 00 00 00    	mov    $0x1,%r14d
1408229fa:	44 89 b5 d8 00 00 00 	mov    %r14d,0xd8(%rbp)
140822a01:	66 44 89 74 24 60    	mov    %r14w,0x60(%rsp)
140822a07:	48 63 c7             	movslq %edi,%rax
140822a0a:	48 c1 e0 05          	shl    $0x5,%rax
140822a0e:	0f 11 3c 30          	movups %xmm7,(%rax,%rsi,1)
140822a12:	0f 11 74 30 10       	movups %xmm6,0x10(%rax,%rsi,1)
140822a17:	45 33 d2             	xor    %r10d,%r10d
140822a1a:	8b c7                	mov    %edi,%eax
140822a1c:	41 2b c7             	sub    %r15d,%eax
140822a1f:	48 98                	cltq
140822a21:	48 89 45 90          	mov    %rax,-0x70(%rbp)
140822a25:	c7 45 88 01 00 00 00 	movl   $0x1,-0x78(%rbp)
140822a2c:	45 85 e4             	test   %r12d,%r12d
140822a2f:	78 11                	js     0x140822a42
140822a31:	45 3b fc             	cmp    %r12d,%r15d
140822a34:	7f 0c                	jg     0x140822a42
140822a36:	44 3b e7             	cmp    %edi,%r12d
140822a39:	44 0f 4c e7          	cmovl  %edi,%r12d
140822a3d:	44 89 64 24 70       	mov    %r12d,0x70(%rsp)
140822a42:	c7 44 24 74 01 00 00 	movl   $0x1,0x74(%rsp)
140822a49:	00
140822a4a:	48 c7 45 80 01 00 00 	movq   $0x1,-0x80(%rbp)
140822a51:	00
140822a52:	c7 44 24 78 01 00 00 	movl   $0x1,0x78(%rsp)
140822a59:	00
140822a5a:	41 8b d2             	mov    %r10d,%edx
140822a5d:	48 85 f6             	test   %rsi,%rsi
140822a60:	41 0f 45 d5          	cmovne %r13d,%edx
140822a64:	44 8b 85 d0 00 00 00 	mov    0xd0(%rbp),%r8d
140822a6b:	66 41 83 f8 03       	cmp    $0x3,%r8w
140822a70:	76 14                	jbe    0x140822a86
140822a72:	6b ca 4b             	imul   $0x4b,%edx,%ecx
140822a75:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140822a7a:	f7 e9                	imul   %ecx
140822a7c:	c1 fa 05             	sar    $0x5,%edx
140822a7f:	8b c2                	mov    %edx,%eax
140822a81:	c1 e8 1f             	shr    $0x1f,%eax
140822a84:	03 d0                	add    %eax,%edx
140822a86:	83 fa 01             	cmp    $0x1,%edx
140822a89:	0f 83 a8 00 00 00    	jae    0x140822b37
140822a8f:	45 8b e2             	mov    %r10d,%r12d
140822a92:	48 85 f6             	test   %rsi,%rsi
140822a95:	45 0f 45 e5          	cmovne %r13d,%r12d
140822a99:	66 41 ff c0          	inc    %r8w
140822a9d:	41 0f b7 c8          	movzwl %r8w,%ecx
140822aa1:	44 0f b7 c1          	movzwl %cx,%r8d
140822aa5:	44 89 85 d0 00 00 00 	mov    %r8d,0xd0(%rbp)
140822aac:	66 89 4c 24 62       	mov    %cx,0x62(%rsp)
140822ab1:	ba 01 00 00 00       	mov    $0x1,%edx
140822ab6:	d3 e2                	shl    %cl,%edx
140822ab8:	89 54 24 68          	mov    %edx,0x68(%rsp)
140822abc:	44 8d 2c 0a          	lea    (%rdx,%rcx,1),%r13d
140822ac0:	44 89 6c 24 64       	mov    %r13d,0x64(%rsp)
140822ac5:	41 8b c2             	mov    %r10d,%eax
140822ac8:	48 85 f6             	test   %rsi,%rsi
140822acb:	41 0f 45 c5          	cmovne %r13d,%eax
140822acf:	48 63 d8             	movslq %eax,%rbx
140822ad2:	48 8b d3             	mov    %rbx,%rdx
140822ad5:	48 c1 e2 05          	shl    $0x5,%rdx
140822ad9:	48 8b ce             	mov    %rsi,%rcx
140822adc:	e8 c7 e6 60 00       	call   0x140e311a8
140822ae1:	48 8b f0             	mov    %rax,%rsi
140822ae4:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140822ae8:	49 63 cc             	movslq %r12d,%rcx
140822aeb:	48 3b cb             	cmp    %rbx,%rcx
140822aee:	7d 1f                	jge    0x140822b0f
140822af0:	48 8b c1             	mov    %rcx,%rax
140822af3:	48 c1 e0 05          	shl    $0x5,%rax
140822af7:	48 03 c6             	add    %rsi,%rax
140822afa:	48 2b d9             	sub    %rcx,%rbx
140822afd:	0f 1f 00             	nopl   (%rax)
140822b00:	66 c7 00 ff ff       	movw   $0xffff,(%rax)
140822b05:	48 8d 40 20          	lea    0x20(%rax),%rax
140822b09:	48 83 eb 01          	sub    $0x1,%rbx
140822b0d:	75 f1                	jne    0x140822b00
140822b0f:	44 89 64 24 70       	mov    %r12d,0x70(%rsp)
140822b14:	66 41 ff c6          	inc    %r14w
140822b18:	44 89 b5 d8 00 00 00 	mov    %r14d,0xd8(%rbp)
140822b1f:	66 44 89 74 24 60    	mov    %r14w,0x60(%rsp)
140822b25:	45 33 d2             	xor    %r10d,%r10d
140822b28:	4c 89 55 90          	mov    %r10,-0x70(%rbp)
140822b2c:	44 89 55 88          	mov    %r10d,-0x78(%rbp)
140822b30:	44 8b 85 d0 00 00 00 	mov    0xd0(%rbp),%r8d
140822b37:	45 85 e4             	test   %r12d,%r12d
140822b3a:	0f 88 3a fc ff ff    	js     0x14082277a
140822b40:	41 bf 10 00 00 00    	mov    $0x10,%r15d
140822b46:	49 bb 15 7c 4a 7f b9 	movabs $0x9e3779b97f4a7c15,%r11
140822b4d:	79 37 9e
140822b50:	41 b9 ff ff 00 00    	mov    $0xffff,%r9d
140822b56:	eb 0b                	jmp    0x140822b63
140822b58:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140822b5f:	00
140822b60:	45 33 d2             	xor    %r10d,%r10d
140822b63:	45 85 ff             	test   %r15d,%r15d
140822b66:	0f 8e 64 02 00 00    	jle    0x140822dd0
140822b6c:	49 63 cc             	movslq %r12d,%rcx
140822b6f:	48 c1 e1 05          	shl    $0x5,%rcx
140822b73:	0f b7 04 31          	movzwl (%rcx,%rsi,1),%eax
140822b77:	66 41 3b c1          	cmp    %r9w,%ax
140822b7b:	0f 84 29 02 00 00    	je     0x140822daa
140822b81:	41 8b d4             	mov    %r12d,%edx
140822b84:	2b d0                	sub    %eax,%edx
140822b86:	45 0f b7 f0          	movzwl %r8w,%r14d
140822b8a:	44 89 75 c8          	mov    %r14d,-0x38(%rbp)
140822b8e:	45 85 f6             	test   %r14d,%r14d
140822b91:	75 05                	jne    0x140822b98
140822b93:	41 8b fa             	mov    %r10d,%edi
140822b96:	eb 16                	jmp    0x140822bae
140822b98:	8b 7c 31 08          	mov    0x8(%rcx,%rsi,1),%edi
140822b9c:	b9 40 00 00 00       	mov    $0x40,%ecx
140822ba1:	49 2b ce             	sub    %r14,%rcx
140822ba4:	49 0f af fb          	imul   %r11,%rdi
140822ba8:	48 d3 e7             	shl    %cl,%rdi
140822bab:	48 d3 ef             	shr    %cl,%rdi
140822bae:	3b d7                	cmp    %edi,%edx
140822bb0:	0f 84 f4 01 00 00    	je     0x140822daa
140822bb6:	45 33 c9             	xor    %r9d,%r9d
140822bb9:	45 8b c4             	mov    %r12d,%r8d
140822bbc:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
140822bc1:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
140822bc6:	e8 75 84 d5 ff       	call   0x14057b040
140822bcb:	8b df                	mov    %edi,%ebx
140822bcd:	33 c9                	xor    %ecx,%ecx
140822bcf:	8b c1                	mov    %ecx,%eax
140822bd1:	48 85 f6             	test   %rsi,%rsi
140822bd4:	41 0f 45 c5          	cmovne %r13d,%eax
140822bd8:	4c 63 c7             	movslq %edi,%r8
140822bdb:	4c 63 c8             	movslq %eax,%r9
140822bde:	41 bb ff ff 00 00    	mov    $0xffff,%r11d
140822be4:	4d 3b c1             	cmp    %r9,%r8
140822be7:	7d 2b                	jge    0x140822c14
140822be9:	49 8b d0             	mov    %r8,%rdx
140822bec:	48 c1 e2 05          	shl    $0x5,%rdx
140822bf0:	48 03 d6             	add    %rsi,%rdx
140822bf3:	0f b7 02             	movzwl (%rdx),%eax
140822bf6:	66 41 3b c3          	cmp    %r11w,%ax
140822bfa:	74 16                	je     0x140822c12
140822bfc:	8b cb                	mov    %ebx,%ecx
140822bfe:	2b c8                	sub    %eax,%ecx
140822c00:	3b cf                	cmp    %edi,%ecx
140822c02:	7f 0e                	jg     0x140822c12
140822c04:	ff c3                	inc    %ebx
140822c06:	49 ff c0             	inc    %r8
140822c09:	48 83 c2 20          	add    $0x20,%rdx
140822c0d:	4d 3b c1             	cmp    %r9,%r8
140822c10:	7c e1                	jl     0x140822bf3
140822c12:	33 c9                	xor    %ecx,%ecx
140822c14:	0f b7 c3             	movzwl %bx,%eax
140822c17:	66 2b c7             	sub    %di,%ax
140822c1a:	66 89 44 24 40       	mov    %ax,0x40(%rsp)
140822c1f:	0f 10 74 24 50       	movups 0x50(%rsp),%xmm6
140822c24:	0f 10 7c 24 40       	movups 0x40(%rsp),%xmm7
140822c29:	8b c1                	mov    %ecx,%eax
140822c2b:	48 85 f6             	test   %rsi,%rsi
140822c2e:	41 0f 45 c5          	cmovne %r13d,%eax
140822c32:	3b d8                	cmp    %eax,%ebx
140822c34:	0f 8d a9 00 00 00    	jge    0x140822ce3
140822c3a:	48 63 d3             	movslq %ebx,%rdx
140822c3d:	4c 8b d2             	mov    %rdx,%r10
140822c40:	49 c1 e2 05          	shl    $0x5,%r10
140822c44:	4c 03 d6             	add    %rsi,%r10
140822c47:	41 0f b7 02          	movzwl (%r10),%eax
140822c4b:	66 41 3b c3          	cmp    %r11w,%ax
140822c4f:	0f 84 80 00 00 00    	je     0x140822cd5
140822c55:	41 0f 10 02          	movups (%r10),%xmm0
140822c59:	0f 11 44 24 40       	movups %xmm0,0x40(%rsp)
140822c5e:	41 0f 10 4a 10       	movups 0x10(%r10),%xmm1
140822c63:	44 8b db             	mov    %ebx,%r11d
140822c66:	44 2b d8             	sub    %eax,%r11d
140822c69:	44 8b c3             	mov    %ebx,%r8d
140822c6c:	8b c1                	mov    %ecx,%eax
140822c6e:	48 85 f6             	test   %rsi,%rsi
140822c71:	41 0f 45 c5          	cmovne %r13d,%eax
140822c75:	48 63 f8             	movslq %eax,%rdi
140822c78:	48 3b d7             	cmp    %rdi,%rdx
140822c7b:	7d 32                	jge    0x140822caf
140822c7d:	4d 8b ca             	mov    %r10,%r9
140822c80:	41 be ff ff 00 00    	mov    $0xffff,%r14d
140822c86:	41 0f b7 01          	movzwl (%r9),%eax
140822c8a:	66 41 3b c6          	cmp    %r14w,%ax
140822c8e:	74 19                	je     0x140822ca9
140822c90:	41 8b c8             	mov    %r8d,%ecx
140822c93:	2b c8                	sub    %eax,%ecx
140822c95:	41 3b cb             	cmp    %r11d,%ecx
140822c98:	75 0f                	jne    0x140822ca9
140822c9a:	41 ff c0             	inc    %r8d
140822c9d:	48 ff c2             	inc    %rdx
140822ca0:	49 83 c1 20          	add    $0x20,%r9
140822ca4:	48 3b d7             	cmp    %rdi,%rdx
140822ca7:	7c dd                	jl     0x140822c86
140822ca9:	44 8b 75 c8          	mov    -0x38(%rbp),%r14d
140822cad:	33 c9                	xor    %ecx,%ecx
140822caf:	41 0f b7 c0          	movzwl %r8w,%eax
140822cb3:	66 2b c3             	sub    %bx,%ax
140822cb6:	66 01 44 24 40       	add    %ax,0x40(%rsp)
140822cbb:	41 0f 11 3a          	movups %xmm7,(%r10)
140822cbf:	41 0f 11 72 10       	movups %xmm6,0x10(%r10)
140822cc4:	0f 10 f1             	movups %xmm1,%xmm6
140822cc7:	41 8b d8             	mov    %r8d,%ebx
140822cca:	41 bb ff ff 00 00    	mov    $0xffff,%r11d
140822cd0:	e9 4f ff ff ff       	jmp    0x140822c24
140822cd5:	41 0f 11 3a          	movups %xmm7,(%r10)
140822cd9:	41 0f 11 72 10       	movups %xmm6,0x10(%r10)
140822cde:	e9 b2 00 00 00       	jmp    0x140822d95
140822ce3:	44 8b e1             	mov    %ecx,%r12d
140822ce6:	48 85 f6             	test   %rsi,%rsi
140822ce9:	45 0f 45 e5          	cmovne %r13d,%r12d
140822ced:	41 8d 46 01          	lea    0x1(%r14),%eax
140822cf1:	0f b7 c8             	movzwl %ax,%ecx
140822cf4:	0f b7 c1             	movzwl %cx,%eax
140822cf7:	89 85 d0 00 00 00    	mov    %eax,0xd0(%rbp)
140822cfd:	66 89 4c 24 62       	mov    %cx,0x62(%rsp)
140822d02:	ba 01 00 00 00       	mov    $0x1,%edx
140822d07:	d3 e2                	shl    %cl,%edx
140822d09:	89 54 24 68          	mov    %edx,0x68(%rsp)
140822d0d:	44 8d 2c 0a          	lea    (%rdx,%rcx,1),%r13d
140822d11:	44 89 6c 24 64       	mov    %r13d,0x64(%rsp)
140822d16:	45 33 f6             	xor    %r14d,%r14d
140822d19:	41 8b c6             	mov    %r14d,%eax
140822d1c:	48 85 f6             	test   %rsi,%rsi
140822d1f:	41 0f 45 c5          	cmovne %r13d,%eax
140822d23:	48 63 f8             	movslq %eax,%rdi
140822d26:	48 8b d7             	mov    %rdi,%rdx
140822d29:	48 c1 e2 05          	shl    $0x5,%rdx
140822d2d:	48 8b ce             	mov    %rsi,%rcx
140822d30:	e8 73 e4 60 00       	call   0x140e311a8
140822d35:	48 8b f0             	mov    %rax,%rsi
140822d38:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140822d3c:	49 63 cc             	movslq %r12d,%rcx
140822d3f:	48 3b cf             	cmp    %rdi,%rcx
140822d42:	7d 1c                	jge    0x140822d60
140822d44:	48 8b c1             	mov    %rcx,%rax
140822d47:	48 c1 e0 05          	shl    $0x5,%rax
140822d4b:	48 03 c6             	add    %rsi,%rax
140822d4e:	48 2b f9             	sub    %rcx,%rdi
140822d51:	66 c7 00 ff ff       	movw   $0xffff,(%rax)
140822d56:	48 8d 40 20          	lea    0x20(%rax),%rax
140822d5a:	48 83 ef 01          	sub    $0x1,%rdi
140822d5e:	75 f1                	jne    0x140822d51
140822d60:	44 89 64 24 70       	mov    %r12d,0x70(%rsp)
140822d65:	44 8b 85 d8 00 00 00 	mov    0xd8(%rbp),%r8d
140822d6c:	66 41 ff c0          	inc    %r8w
140822d70:	44 89 85 d8 00 00 00 	mov    %r8d,0xd8(%rbp)
140822d77:	66 44 89 44 24 60    	mov    %r8w,0x60(%rsp)
140822d7d:	4c 89 75 90          	mov    %r14,-0x70(%rbp)
140822d81:	44 89 75 88          	mov    %r14d,-0x78(%rbp)
140822d85:	48 63 c3             	movslq %ebx,%rax
140822d88:	48 c1 e0 05          	shl    $0x5,%rax