14082185b:	48 85 ff             	test   %rdi,%rdi
14082185e:	0f 95 c0             	setne  %al
140821861:	3b d8                	cmp    %eax,%ebx
140821863:	0f 8d a1 00 00 00    	jge    0x14082190a
140821869:	48 63 d3             	movslq %ebx,%rdx
14082186c:	4c 8b d2             	mov    %rdx,%r10
14082186f:	49 c1 e2 05          	shl    $0x5,%r10
140821873:	4c 03 d7             	add    %rdi,%r10
140821876:	41 0f b7 02          	movzwl (%r10),%eax
14082187a:	b9 ff ff 00 00       	mov    $0xffff,%ecx
14082187f:	66 3b c1             	cmp    %cx,%ax
140821882:	74 75                	je     0x1408218f9
140821884:	41 0f 10 02          	movups (%r10),%xmm0
140821888:	0f 11 44 24 40       	movups %xmm0,0x40(%rsp)
14082188d:	41 0f 10 4a 10       	movups 0x10(%r10),%xmm1
140821892:	8b f3                	mov    %ebx,%esi
140821894:	2b f0                	sub    %eax,%esi
140821896:	44 8b c3             	mov    %ebx,%r8d
140821899:	45 33 db             	xor    %r11d,%r11d
14082189c:	48 85 ff             	test   %rdi,%rdi
14082189f:	41 0f 95 c3          	setne  %r11b
1408218a3:	49 3b d3             	cmp    %r11,%rdx
1408218a6:	7d 31                	jge    0x1408218d9
1408218a8:	4d 8b ca             	mov    %r10,%r9
1408218ab:	44 8b e9             	mov    %ecx,%r13d
1408218ae:	66 90                	xchg   %ax,%ax
1408218b0:	41 0f b7 01          	movzwl (%r9),%eax
1408218b4:	66 41 3b c5          	cmp    %r13w,%ax
1408218b8:	74 18                	je     0x1408218d2
1408218ba:	41 8b c8             	mov    %r8d,%ecx
1408218bd:	2b c8                	sub    %eax,%ecx
1408218bf:	3b ce                	cmp    %esi,%ecx
1408218c1:	75 0f                	jne    0x1408218d2
1408218c3:	41 ff c0             	inc    %r8d
1408218c6:	48 ff c2             	inc    %rdx
1408218c9:	49 83 c1 20          	add    $0x20,%r9
1408218cd:	49 3b d3             	cmp    %r11,%rdx
1408218d0:	7c de                	jl     0x1408218b0
1408218d2:	44 8b ad 80 00 00 00 	mov    0x80(%rbp),%r13d
1408218d9:	41 0f b7 c0          	movzwl %r8w,%eax
1408218dd:	66 2b c3             	sub    %bx,%ax
1408218e0:	66 01 44 24 40       	add    %ax,0x40(%rsp)
1408218e5:	41 0f 11 3a          	movups %xmm7,(%r10)
1408218e9:	41 0f 11 72 10       	movups %xmm6,0x10(%r10)
1408218ee:	0f 10 f1             	movups %xmm1,%xmm6
1408218f1:	41 8b d8             	mov    %r8d,%ebx
1408218f4:	e9 5b ff ff ff       	jmp    0x140821854
1408218f9:	41 0f 11 3a          	movups %xmm7,(%r10)
1408218fd:	41 0f 11 72 10       	movups %xmm6,0x10(%r10)
140821902:	8b 75 70             	mov    0x70(%rbp),%esi
140821905:	e9 96 00 00 00       	jmp    0x1408219a0
14082190a:	45 33 f6             	xor    %r14d,%r14d
14082190d:	48 85 ff             	test   %rdi,%rdi
140821910:	41 0f 95 c6          	setne  %r14b
140821914:	41 bd 01 00 00 00    	mov    $0x1,%r13d
14082191a:	66 44 89 6c 24 62    	mov    %r13w,0x62(%rsp)
140821920:	c7 44 24 68 02 00 00 	movl   $0x2,0x68(%rsp)
140821927:	00
140821928:	41 bf 03 00 00 00    	mov    $0x3,%r15d
14082192e:	44 89 7c 24 64       	mov    %r15d,0x64(%rsp)
140821933:	48 8b c7             	mov    %rdi,%rax
140821936:	48 f7 d8             	neg    %rax
140821939:	48 1b f6             	sbb    %rsi,%rsi
14082193c:	41 23 f7             	and    %r15d,%esi
14082193f:	8b d6                	mov    %esi,%edx
140821941:	48 c1 e2 05          	shl    $0x5,%rdx
140821945:	48 8b cf             	mov    %rdi,%rcx
140821948:	e8 5b f8 60 00       	call   0x140e311a8
14082194d:	48 8b f8             	mov    %rax,%rdi
140821950:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140821954:	41 8b ce             	mov    %r14d,%ecx
140821957:	48 3b ce             	cmp    %rsi,%rcx
14082195a:	73 22                	jae    0x14082197e
14082195c:	8b c1                	mov    %ecx,%eax
14082195e:	48 c1 e0 05          	shl    $0x5,%rax
140821962:	48 03 c7             	add    %rdi,%rax
140821965:	48 2b f1             	sub    %rcx,%rsi
140821968:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14082196f:	00
140821970:	66 c7 00 ff ff       	movw   $0xffff,(%rax)
140821975:	48 8d 40 20          	lea    0x20(%rax),%rax
140821979:	49 2b f5             	sub    %r13,%rsi
14082197c:	75 f2                	jne    0x140821970
14082197e:	44 89 74 24 70       	mov    %r14d,0x70(%rsp)
140821983:	41 8b f5             	mov    %r13d,%esi
140821986:	44 89 6d 70          	mov    %r13d,0x70(%rbp)
14082198a:	66 44 89 6c 24 60    	mov    %r13w,0x60(%rsp)
140821990:	48 63 c3             	movslq %ebx,%rax
140821993:	48 c1 e0 05          	shl    $0x5,%rax
140821997:	0f 11 3c 38          	movups %xmm7,(%rax,%rdi,1)
14082199b:	0f 11 74 38 10       	movups %xmm6,0x10(%rax,%rdi,1)
1408219a0:	8b c3                	mov    %ebx,%eax
1408219a2:	41 2b c4             	sub    %r12d,%eax
1408219a5:	48 98                	cltq
1408219a7:	48 89 45 90          	mov    %rax,-0x70(%rbp)
1408219ab:	c7 45 88 01 00 00 00 	movl   $0x1,-0x78(%rbp)
1408219b2:	45 85 f6             	test   %r14d,%r14d
1408219b5:	78 11                	js     0x1408219c8
1408219b7:	45 3b e6             	cmp    %r14d,%r12d
1408219ba:	7f 0c                	jg     0x1408219c8
1408219bc:	44 3b f3             	cmp    %ebx,%r14d
1408219bf:	44 0f 4c f3          	cmovl  %ebx,%r14d
1408219c3:	44 89 74 24 70       	mov    %r14d,0x70(%rsp)
1408219c8:	c7 44 24 74 01 00 00 	movl   $0x1,0x74(%rsp)
1408219cf:	00
1408219d0:	48 c7 45 80 01 00 00 	movq   $0x1,-0x80(%rbp)
1408219d7:	00
1408219d8:	c7 44 24 78 01 00 00 	movl   $0x1,0x78(%rsp)
1408219df:	00
1408219e0:	45 33 e4             	xor    %r12d,%r12d
1408219e3:	41 8b d4             	mov    %r12d,%edx
1408219e6:	48 85 ff             	test   %rdi,%rdi
1408219e9:	41 0f 45 d7          	cmovne %r15d,%edx
1408219ed:	66 41 83 fd 03       	cmp    $0x3,%r13w
1408219f2:	76 14                	jbe    0x140821a08
1408219f4:	6b ca 4b             	imul   $0x4b,%edx,%ecx
1408219f7:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
1408219fc:	f7 e9                	imul   %ecx
1408219fe:	c1 fa 05             	sar    $0x5,%edx
140821a01:	8b c2                	mov    %edx,%eax
140821a03:	c1 e8 1f             	shr    $0x1f,%eax
140821a06:	03 d0                	add    %eax,%edx
140821a08:	83 fa 01             	cmp    $0x1,%edx
140821a0b:	0f 83 96 00 00 00    	jae    0x140821aa7
140821a11:	45 8b f4             	mov    %r12d,%r14d
140821a14:	48 85 ff             	test   %rdi,%rdi
140821a17:	45 0f 45 f7          	cmovne %r15d,%r14d
140821a1b:	66 41 ff c5          	inc    %r13w
140821a1f:	41 0f b7 cd          	movzwl %r13w,%ecx
140821a23:	44 0f b7 e9          	movzwl %cx,%r13d
140821a27:	66 89 4c 24 62       	mov    %cx,0x62(%rsp)
140821a2c:	ba 01 00 00 00       	mov    $0x1,%edx
140821a31:	d3 e2                	shl    %cl,%edx
140821a33:	89 54 24 68          	mov    %edx,0x68(%rsp)
140821a37:	44 8d 3c 0a          	lea    (%rdx,%rcx,1),%r15d
140821a3b:	44 89 7c 24 64       	mov    %r15d,0x64(%rsp)
140821a40:	41 8b c4             	mov    %r12d,%eax
140821a43:	48 85 ff             	test   %rdi,%rdi
140821a46:	41 0f 45 c7          	cmovne %r15d,%eax
140821a4a:	48 63 d8             	movslq %eax,%rbx
140821a4d:	48 8b d3             	mov    %rbx,%rdx
140821a50:	48 c1 e2 05          	shl    $0x5,%rdx
140821a54:	48 8b cf             	mov    %rdi,%rcx
140821a57:	e8 4c f7 60 00       	call   0x140e311a8
140821a5c:	48 8b f8             	mov    %rax,%rdi
140821a5f:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140821a63:	49 63 ce             	movslq %r14d,%rcx
140821a66:	48 3b cb             	cmp    %rbx,%rcx
140821a69:	7d 24                	jge    0x140821a8f
140821a6b:	48 8b c1             	mov    %rcx,%rax
140821a6e:	48 c1 e0 05          	shl    $0x5,%rax
140821a72:	48 03 c7             	add    %rdi,%rax
140821a75:	48 2b d9             	sub    %rcx,%rbx
140821a78:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140821a7f:	00
140821a80:	66 c7 00 ff ff       	movw   $0xffff,(%rax)
140821a85:	48 8d 40 20          	lea    0x20(%rax),%rax
140821a89:	48 83 eb 01          	sub    $0x1,%rbx
140821a8d:	75 f1                	jne    0x140821a80
140821a8f:	44 89 74 24 70       	mov    %r14d,0x70(%rsp)
140821a94:	66 ff c6             	inc    %si
140821a97:	89 75 70             	mov    %esi,0x70(%rbp)
140821a9a:	66 89 74 24 60       	mov    %si,0x60(%rsp)
140821a9f:	4c 89 65 90          	mov    %r12,-0x70(%rbp)
140821aa3:	44 89 65 88          	mov    %r12d,-0x78(%rbp)
140821aa7:	45 85 f6             	test   %r14d,%r14d
140821aaa:	0f 88 fd fc ff ff    	js     0x1408217ad
140821ab0:	b8 10 00 00 00       	mov    $0x10,%eax
140821ab5:	89 85 80 00 00 00    	mov    %eax,0x80(%rbp)
140821abb:	49 b9 15 7c 4a 7f b9 	movabs $0x9e3779b97f4a7c15,%r9
140821ac2:	79 37 9e
140821ac5:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
140821acb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140821ad0:	85 c0                	test   %eax,%eax
140821ad2:	0f 8e 6b 02 00 00    	jle    0x140821d43
140821ad8:	49 63 ce             	movslq %r14d,%rcx
140821adb:	48 c1 e1 05          	shl    $0x5,%rcx
140821adf:	0f b7 04 39          	movzwl (%rcx,%rdi,1),%eax
140821ae3:	66 41 3b c0          	cmp    %r8w,%ax
140821ae7:	0f 84 31 02 00 00    	je     0x140821d1e
140821aed:	41 8b d6             	mov    %r14d,%edx
140821af0:	2b d0                	sub    %eax,%edx
140821af2:	45 0f b7 e5          	movzwl %r13w,%r12d
140821af6:	44 89 a5 88 00 00 00 	mov    %r12d,0x88(%rbp)
140821afd:	45 85 e4             	test   %r12d,%r12d
140821b00:	75 04                	jne    0x140821b06
140821b02:	33 f6                	xor    %esi,%esi
140821b04:	eb 16                	jmp    0x140821b1c
140821b06:	8b 74 39 08          	mov    0x8(%rcx,%rdi,1),%esi
140821b0a:	b9 40 00 00 00       	mov    $0x40,%ecx
140821b0f:	49 2b cc             	sub    %r12,%rcx
140821b12:	49 0f af f1          	imul   %r9,%rsi
140821b16:	48 d3 e6             	shl    %cl,%rsi
140821b19:	48 d3 ee             	shr    %cl,%rsi
140821b1c:	3b d6                	cmp    %esi,%edx
140821b1e:	0f 84 fa 01 00 00    	je     0x140821d1e
140821b24:	45 33 c9             	xor    %r9d,%r9d
140821b27:	45 8b c6             	mov    %r14d,%r8d
140821b2a:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
140821b2f:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
140821b34:	e8 07 95 d5 ff       	call   0x14057b040
140821b39:	8b de                	mov    %esi,%ebx
140821b3b:	33 c9                	xor    %ecx,%ecx
140821b3d:	8b c1                	mov    %ecx,%eax
140821b3f:	48 85 ff             	test   %rdi,%rdi
140821b42:	41 0f 45 c7          	cmovne %r15d,%eax
140821b46:	4c 63 c6             	movslq %esi,%r8
140821b49:	4c 63 c8             	movslq %eax,%r9
140821b4c:	41 bb ff ff 00 00    	mov    $0xffff,%r11d
140821b52:	4d 3b c1             	cmp    %r9,%r8
140821b55:	7d 2b                	jge    0x140821b82
140821b57:	49 8b d0             	mov    %r8,%rdx
140821b5a:	48 c1 e2 05          	shl    $0x5,%rdx
140821b5e:	48 03 d7             	add    %rdi,%rdx
140821b61:	0f b7 02             	movzwl (%rdx),%eax
140821b64:	66 41 3b c3          	cmp    %r11w,%ax
140821b68:	74 16                	je     0x140821b80
140821b6a:	8b cb                	mov    %ebx,%ecx
140821b6c:	2b c8                	sub    %eax,%ecx
140821b6e:	3b ce                	cmp    %esi,%ecx
140821b70:	7f 0e                	jg     0x140821b80
140821b72:	ff c3                	inc    %ebx
140821b74:	49 ff c0             	inc    %r8
140821b77:	48 83 c2 20          	add    $0x20,%rdx
140821b7b:	4d 3b c1             	cmp    %r9,%r8
140821b7e:	7c e1                	jl     0x140821b61
140821b80:	33 c9                	xor    %ecx,%ecx
140821b82:	0f b7 c3             	movzwl %bx,%eax
140821b85:	66 2b c6             	sub    %si,%ax
140821b88:	66 89 44 24 40       	mov    %ax,0x40(%rsp)
140821b8d:	0f 10 74 24 50       	movups 0x50(%rsp),%xmm6
140821b92:	0f 10 7c 24 40       	movups 0x40(%rsp),%xmm7
140821b97:	8b c1                	mov    %ecx,%eax
140821b99:	48 85 ff             	test   %rdi,%rdi
140821b9c:	41 0f 45 c7          	cmovne %r15d,%eax
140821ba0:	3b d8                	cmp    %eax,%ebx
140821ba2:	0f 8d ac 00 00 00    	jge    0x140821c54
140821ba8:	48 63 d3             	movslq %ebx,%rdx
140821bab:	4c 8b d2             	mov    %rdx,%r10
140821bae:	49 c1 e2 05          	shl    $0x5,%r10
140821bb2:	4c 03 d7             	add    %rdi,%r10
140821bb5:	41 0f b7 02          	movzwl (%r10),%eax
140821bb9:	66 41 3b c3          	cmp    %r11w,%ax
140821bbd:	0f 84 83 00 00 00    	je     0x140821c46
140821bc3:	41 0f 10 02          	movups (%r10),%xmm0
140821bc7:	0f 11 44 24 40       	movups %xmm0,0x40(%rsp)
140821bcc:	41 0f 10 4a 10       	movups 0x10(%r10),%xmm1
140821bd1:	44 8b db             	mov    %ebx,%r11d
140821bd4:	44 2b d8             	sub    %eax,%r11d
140821bd7:	44 8b c3             	mov    %ebx,%r8d
140821bda:	8b c1                	mov    %ecx,%eax
140821bdc:	48 85 ff             	test   %rdi,%rdi
140821bdf:	41 0f 45 c7          	cmovne %r15d,%eax
140821be3:	48 63 f0             	movslq %eax,%rsi
140821be6:	48 3b d6             	cmp    %rsi,%rdx
140821be9:	7d 35                	jge    0x140821c20
140821beb:	4d 8b ca             	mov    %r10,%r9
140821bee:	41 bc ff ff 00 00    	mov    $0xffff,%r12d
140821bf4:	41 0f b7 01          	movzwl (%r9),%eax
140821bf8:	66 41 3b c4          	cmp    %r12w,%ax
140821bfc:	74 19                	je     0x140821c17
140821bfe:	41 8b c8             	mov    %r8d,%ecx
140821c01:	2b c8                	sub    %eax,%ecx
140821c03:	41 3b cb             	cmp    %r11d,%ecx
140821c06:	75 0f                	jne    0x140821c17
140821c08:	41 ff c0             	inc    %r8d
140821c0b:	48 ff c2             	inc    %rdx
140821c0e:	49 83 c1 20          	add    $0x20,%r9
140821c12:	48 3b d6             	cmp    %rsi,%rdx
140821c15:	7c dd                	jl     0x140821bf4
140821c17:	44 8b a5 88 00 00 00 	mov    0x88(%rbp),%r12d
140821c1e:	33 c9                	xor    %ecx,%ecx
140821c20:	41 0f b7 c0          	movzwl %r8w,%eax
140821c24:	66 2b c3             	sub    %bx,%ax
140821c27:	66 01 44 24 40       	add    %ax,0x40(%rsp)
140821c2c:	41 0f 11 3a          	movups %xmm7,(%r10)
140821c30:	41 0f 11 72 10       	movups %xmm6,0x10(%r10)
140821c35:	0f 10 f1             	movups %xmm1,%xmm6
140821c38:	41 8b d8             	mov    %r8d,%ebx
140821c3b:	41 bb ff ff 00 00    	mov    $0xffff,%r11d
140821c41:	e9 4c ff ff ff       	jmp    0x140821b92
140821c46:	41 0f 11 3a          	movups %xmm7,(%r10)
140821c4a:	41 0f 11 72 10       	movups %xmm6,0x10(%r10)
140821c4f:	e9 aa 00 00 00       	jmp    0x140821cfe
140821c54:	44 8b f1             	mov    %ecx,%r14d
140821c57:	48 85 ff             	test   %rdi,%rdi
140821c5a:	45 0f 45 f7          	cmovne %r15d,%r14d
140821c5e:	41 8d 44 24 01       	lea    0x1(%r12),%eax
140821c63:	0f b7 c8             	movzwl %ax,%ecx
140821c66:	44 0f b7 e9          	movzwl %cx,%r13d
140821c6a:	66 89 4c 24 62       	mov    %cx,0x62(%rsp)
140821c6f:	ba 01 00 00 00       	mov    $0x1,%edx
140821c74:	d3 e2                	shl    %cl,%edx
140821c76:	89 54 24 68          	mov    %edx,0x68(%rsp)
140821c7a:	44 8d 3c 0a          	lea    (%rdx,%rcx,1),%r15d
140821c7e:	44 89 7c 24 64       	mov    %r15d,0x64(%rsp)
140821c83:	45 33 e4             	xor    %r12d,%r12d
140821c86:	41 8b c4             	mov    %r12d,%eax
140821c89:	48 85 ff             	test   %rdi,%rdi
140821c8c:	41 0f 45 c7          	cmovne %r15d,%eax
140821c90:	48 63 f0             	movslq %eax,%rsi
140821c93:	48 8b d6             	mov    %rsi,%rdx
140821c96:	48 c1 e2 05          	shl    $0x5,%rdx
140821c9a:	48 8b cf             	mov    %rdi,%rcx
140821c9d:	e8 06 f5 60 00       	call   0x140e311a8
140821ca2:	48 8b f8             	mov    %rax,%rdi
140821ca5:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140821ca9:	49 63 ce             	movslq %r14d,%rcx
140821cac:	48 3b ce             	cmp    %rsi,%rcx
140821caf:	7d 1e                	jge    0x140821ccf
140821cb1:	48 8b c1             	mov    %rcx,%rax
140821cb4:	48 c1 e0 05          	shl    $0x5,%rax
140821cb8:	48 03 c7             	add    %rdi,%rax
140821cbb:	48 2b f1             	sub    %rcx,%rsi
140821cbe:	66 90                	xchg   %ax,%ax
140821cc0:	66 c7 00 ff ff       	movw   $0xffff,(%rax)
140821cc5:	48 8d 40 20          	lea    0x20(%rax),%rax
140821cc9:	48 83 ee 01          	sub    $0x1,%rsi
140821ccd:	75 f1                	jne    0x140821cc0
140821ccf:	44 89 74 24 70       	mov    %r14d,0x70(%rsp)
140821cd4:	44 8b 45 70          	mov    0x70(%rbp),%r8d
140821cd8:	66 41 ff c0          	inc    %r8w
140821cdc:	44 89 45 70          	mov    %r8d,0x70(%rbp)
140821ce0:	66 44 89 44 24 60    	mov    %r8w,0x60(%rsp)
140821ce6:	4c 89 65 90          	mov    %r12,-0x70(%rbp)
140821cea:	44 89 65 88          	mov    %r12d,-0x78(%rbp)
140821cee:	48 63 c3             	movslq %ebx,%rax
140821cf1:	48 c1 e0 05          	shl    $0x5,%rax
140821cf5:	0f 11 3c 38          	movups %xmm7,(%rax,%rdi,1)
140821cf9:	0f 11 74 38 10       	movups %xmm6,0x10(%rax,%rdi,1)
140821cfe:	8b 85 80 00 00 00    	mov    0x80(%rbp),%eax
140821d04:	ff c8                	dec    %eax
140821d06:	89 85 80 00 00 00    	mov    %eax,0x80(%rbp)
140821d0c:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
140821d12:	49 b9 15 7c 4a 7f b9 	movabs $0x9e3779b97f4a7c15,%r9
140821d19:	79 37 9e
140821d1c:	eb 0e                	jmp    0x140821d2c
140821d1e:	41 ff ce             	dec    %r14d
140821d21:	44 89 74 24 70       	mov    %r14d,0x70(%rsp)
140821d26:	8b 85 80 00 00 00    	mov    0x80(%rbp),%eax
140821d2c:	45 85 f6             	test   %r14d,%r14d
140821d2f:	0f 89 9b fd ff ff    	jns    0x140821ad0
140821d35:	45 33 e4             	xor    %r12d,%r12d
140821d38:	66 44 89 64 24 60    	mov    %r12w,0x60(%rsp)
140821d3e:	e9 6a fa ff ff       	jmp    0x1408217ad
140821d43:	45 85 f6             	test   %r14d,%r14d
140821d46:	0f 89 5e fa ff ff    	jns    0x1408217aa
140821d4c:	45 33 e4             	xor    %r12d,%r12d
140821d4f:	66 44 89 64 24 60    	mov    %r12w,0x60(%rsp)
140821d55:	e9 53 fa ff ff       	jmp    0x1408217ad