140821594:	0f b7 c3             	movzwl %bx,%eax
140821597:	89 45 70             	mov    %eax,0x70(%rbp)
14082159a:	66 89 5c 24 60       	mov    %bx,0x60(%rsp)
14082159f:	44 0f b7 eb          	movzwl %bx,%r13d
1408215a3:	44 89 ad 80 00 00 00 	mov    %r13d,0x80(%rbp)
1408215aa:	66 89 5c 24 62       	mov    %bx,0x62(%rsp)
1408215af:	41 bf 01 00 00 00    	mov    $0x1,%r15d
1408215b5:	44 89 7c 24 64       	mov    %r15d,0x64(%rsp)
1408215ba:	44 89 7c 24 68       	mov    %r15d,0x68(%rsp)
1408215bf:	66 89 5c 24 6c       	mov    %bx,0x6c(%rsp)
1408215c4:	41 be ff ff ff ff    	mov    $0xffffffff,%r14d
1408215ca:	44 89 74 24 70       	mov    %r14d,0x70(%rsp)
1408215cf:	48 89 5c 24 74       	mov    %rbx,0x74(%rsp)
1408215d4:	48 89 5d 80          	mov    %rbx,-0x80(%rbp)
1408215d8:	89 5d 88             	mov    %ebx,-0x78(%rbp)
1408215db:	48 89 5d 90          	mov    %rbx,-0x70(%rbp)
1408215df:	48 89 5d 98          	mov    %rbx,-0x68(%rbp)
1408215e3:	0f 57 c0             	xorps  %xmm0,%xmm0
1408215e6:	66 0f 7f 45 a0       	movdqa %xmm0,-0x60(%rbp)
1408215eb:	48 89 5d b0          	mov    %rbx,-0x50(%rbp)
1408215ef:	c7 45 78 0a 00 00 00 	movl   $0xa,0x78(%rbp)
1408215f6:	b9 38 00 00 00       	mov    $0x38,%ecx
1408215fb:	e8 08 9b 5f 00       	call   0x140e1b108
140821600:	48 89 85 88 00 00 00 	mov    %rax,0x88(%rbp)
140821607:	48 85 c0             	test   %rax,%rax
14082160a:	74 10                	je     0x14082161c
14082160c:	ba 05 00 00 00       	mov    $0x5,%edx
140821611:	48 8b c8             	mov    %rax,%rcx
140821614:	e8 27 04 f8 ff       	call   0x1407a1a40
140821619:	48 8b d8             	mov    %rax,%rbx
14082161c:	48 89 5d d8          	mov    %rbx,-0x28(%rbp)
140821620:	48 8b cb             	mov    %rbx,%rcx
140821623:	e8 38 0e f8 ff       	call   0x1407a2460
140821628:	48 89 45 c0          	mov    %rax,-0x40(%rbp)
14082162c:	48 8b 73 18          	mov    0x18(%rbx),%rsi
140821630:	48 8b cb             	mov    %rbx,%rcx
140821633:	e8 58 12 f8 ff       	call   0x1407a2890
140821638:	48 8b d8             	mov    %rax,%rbx
14082163b:	48 89 85 88 00 00 00 	mov    %rax,0x88(%rbp)
140821642:	b9 20 00 00 00       	mov    $0x20,%ecx
140821647:	e8 e0 10 61 00       	call   0x140e3272c
14082164c:	48 8b f8             	mov    %rax,%rdi
14082164f:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140821653:	48 8b c8             	mov    %rax,%rcx
140821656:	48 f7 d9             	neg    %rcx
140821659:	48 1b d2             	sbb    %rdx,%rdx
14082165c:	48 f7 da             	neg    %rdx
14082165f:	48 ff ca             	dec    %rdx
140821662:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
140821668:	48 85 c0             	test   %rax,%rax
14082166b:	74 21                	je     0x14082168e
14082166d:	48 8b c2             	mov    %rdx,%rax
140821670:	48 c1 e0 05          	shl    $0x5,%rax
140821674:	48 03 c7             	add    %rdi,%rax
140821677:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14082167e:	00 00
140821680:	66 44 89 00          	mov    %r8w,(%rax)
140821684:	48 8d 40 e0          	lea    -0x20(%rax),%rax
140821688:	48 83 ea 01          	sub    $0x1,%rdx
14082168c:	79 f2                	jns    0x140821680
14082168e:	41 bc ff ff ff ff    	mov    $0xffffffff,%r12d
140821694:	49 3b f4             	cmp    %r12,%rsi
140821697:	0f 87 f2 0d 00 00    	ja     0x14082248f
14082169d:	45 8b e6             	mov    %r14d,%r12d
1408216a0:	48 85 ff             	test   %rdi,%rdi
1408216a3:	75 08                	jne    0x1408216ad
1408216a5:	41 8b c6             	mov    %r14d,%eax
1408216a8:	e9 8b 00 00 00       	jmp    0x140821738
1408216ad:	45 33 e4             	xor    %r12d,%r12d
1408216b0:	45 33 ed             	xor    %r13d,%r13d
1408216b3:	48 8d 5f 18          	lea    0x18(%rdi),%rbx
1408216b7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
1408216be:	00 00
1408216c0:	0f b7 43 e8          	movzwl -0x18(%rbx),%eax
1408216c4:	66 41 3b c0          	cmp    %r8w,%ax
1408216c8:	74 54                	je     0x14082171e
1408216ca:	41 8b cc             	mov    %r12d,%ecx
1408216cd:	2b c8                	sub    %eax,%ecx
1408216cf:	85 c9                	test   %ecx,%ecx
1408216d1:	7f 4b                	jg     0x14082171e
1408216d3:	75 39                	jne    0x14082170e
1408216d5:	8b 43 f0             	mov    -0x10(%rbx),%eax
1408216d8:	48 33 45 c0          	xor    -0x40(%rbp),%rax
1408216dc:	8b c0                	mov    %eax,%eax
1408216de:	48 85 c0             	test   %rax,%rax
1408216e1:	75 2b                	jne    0x14082170e
1408216e3:	8b 43 ec             	mov    -0x14(%rbx),%eax
1408216e6:	3b c6                	cmp    %esi,%eax
1408216e8:	75 24                	jne    0x14082170e
1408216ea:	83 f8 08             	cmp    $0x8,%eax
1408216ed:	48 8b cb             	mov    %rbx,%rcx
1408216f0:	76 03                	jbe    0x1408216f5
1408216f2:	48 8b 0b             	mov    (%rbx),%rcx
1408216f5:	4c 8b c0             	mov    %rax,%r8
1408216f8:	48 8b 95 88 00 00 00 	mov    0x88(%rbp),%rdx
1408216ff:	e8 4c e3 6b 00       	call   0x140edfa50
140821704:	85 c0                	test   %eax,%eax
140821706:	74 79                	je     0x140821781
140821708:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
14082170e:	41 ff c4             	inc    %r12d
140821711:	49 ff c5             	inc    %r13
140821714:	48 83 c3 20          	add    $0x20,%rbx
140821718:	49 83 fd 01          	cmp    $0x1,%r13
14082171c:	7c a2                	jl     0x1408216c0
14082171e:	41 8b c4             	mov    %r12d,%eax
140821721:	45 3b e0             	cmp    %r8d,%r12d
140821724:	0f 8d 41 0d 00 00    	jge    0x14082246b
14082172a:	48 8b 9d 88 00 00 00 	mov    0x88(%rbp),%rbx
140821731:	44 8b ad 80 00 00 00 	mov    0x80(%rbp),%r13d
140821738:	66 89 44 24 40       	mov    %ax,0x40(%rsp)
14082173d:	89 74 24 44          	mov    %esi,0x44(%rsp)
140821741:	48 8b 45 c0          	mov    -0x40(%rbp),%rax
140821745:	89 44 24 48          	mov    %eax,0x48(%rsp)
140821749:	48 8d 45 78          	lea    0x78(%rbp),%rax
14082174d:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
140821752:	48 85 db             	test   %rbx,%rbx
140821755:	0f 84 f1 00 00 00    	je     0x14082184c
14082175b:	83 fe 08             	cmp    $0x8,%esi
14082175e:	0f 87 e3 00 00 00    	ja     0x140821847
140821764:	44 8b c6             	mov    %esi,%r8d
140821767:	48 8b d3             	mov    %rbx,%rdx
14082176a:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
14082176f:	e8 9c d8 6b 00       	call   0x140edf010
140821774:	48 8b cb             	mov    %rbx,%rcx
140821777:	e8 c8 99 5f 00       	call   0x140e1b144
14082177c:	e9 cb 00 00 00       	jmp    0x14082184c
140821781:	49 63 cc             	movslq %r12d,%rcx
140821784:	41 8b c6             	mov    %r14d,%eax
140821787:	45 8b e6             	mov    %r14d,%r12d
14082178a:	85 c9                	test   %ecx,%ecx
14082178c:	78 9c                	js     0x14082172a
14082178e:	48 8b c1             	mov    %rcx,%rax
140821791:	48 c1 e0 05          	shl    $0x5,%rax
140821795:	48 8d 4d 78          	lea    0x78(%rbp),%rcx
140821799:	48 89 4c 38 10       	mov    %rcx,0x10(%rax,%rdi,1)
14082179e:	48 8b 8d 88 00 00 00 	mov    0x88(%rbp),%rcx
1408217a5:	e8 9a 99 5f 00       	call   0x140e1b144
1408217aa:	45 33 e4             	xor    %r12d,%r12d
1408217ad:	ba 0a 00 00 00       	mov    $0xa,%edx
1408217b2:	48 8d 8d 80 00 00 00 	lea    0x80(%rbp),%rcx
1408217b9:	e8 22 a4 01 00       	call   0x14083bbe0
1408217be:	8b 08                	mov    (%rax),%ecx
1408217c0:	8b 44 24 74          	mov    0x74(%rsp),%eax
1408217c4:	89 85 88 00 00 00    	mov    %eax,0x88(%rbp)
1408217ca:	89 8d 8c 00 00 00    	mov    %ecx,0x8c(%rbp)
1408217d0:	c7 45 70 01 00 00 00 	movl   $0x1,0x70(%rbp)
1408217d7:	4c 8d 45 70          	lea    0x70(%rbp),%r8
1408217db:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
1408217e0:	48 8d 8d 88 00 00 00 	lea    0x88(%rbp),%rcx
1408217e7:	e8 b4 7d f5 ff       	call   0x1407795a0
1408217ec:	90                   	nop
1408217ed:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1408217f2:	4c 8d 0d 4f c7 81 00 	lea    0x81c74f(%rip),%r9        # 0x14103df48
1408217f9:	41 b8 23 00 00 00    	mov    $0x23,%r8d
1408217ff:	48 8d 15 0a c6 81 00 	lea    0x81c60a(%rip),%rdx        # 0x14103de10
140821806:	b9 0a 00 00 00       	mov    $0xa,%ecx
14082180b:	e8 a0 de 01 00       	call   0x14083f6b0
140821810:	90                   	nop
140821811:	48 8d 4c 24 48       	lea    0x48(%rsp),%rcx
140821816:	e8 05 b0 01 00       	call   0x14083c820
14082181b:	b9 38 00 00 00       	mov    $0x38,%ecx
140821820:	e8 e3 98 5f 00       	call   0x140e1b108
140821825:	48 89 45 70          	mov    %rax,0x70(%rbp)
140821829:	48 85 c0             	test   %rax,%rax
14082182c:	0f 84 28 05 00 00    	je     0x140821d5a
140821832:	ba 05 00 00 00       	mov    $0x5,%edx
140821837:	48 8b c8             	mov    %rax,%rcx
14082183a:	e8 01 02 f8 ff       	call   0x1407a1a40
14082183f:	48 8b f8             	mov    %rax,%rdi
140821842:	e9 16 05 00 00       	jmp    0x140821d5d
140821847:	48 89 5c 24 58       	mov    %rbx,0x58(%rsp)
14082184c:	41 8b dc             	mov    %r12d,%ebx
14082184f:	0f 10 74 24 50       	movups 0x50(%rsp),%xmm6
140821854:	0f 10 7c 24 40       	movups 0x40(%rsp),%xmm7
140821859:	33 c0                	xor    %eax,%eax
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