1408225db:	eb 04                	jmp    0x1408225e1
1408225dd:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
1408225e1:	b9 38 00 00 00       	mov    $0x38,%ecx
1408225e6:	e8 1d 8b 5f 00       	call   0x140e1b108
1408225eb:	48 89 45 d8          	mov    %rax,-0x28(%rbp)
1408225ef:	48 85 c0             	test   %rax,%rax
1408225f2:	74 13                	je     0x140822607
1408225f4:	ba 19 00 00 00       	mov    $0x19,%edx
1408225f9:	48 8b c8             	mov    %rax,%rcx
1408225fc:	e8 3f f4 f7 ff       	call   0x1407a1a40
140822601:	48 89 45 d8          	mov    %rax,-0x28(%rbp)
140822605:	eb 04                	jmp    0x14082260b
140822607:	48 89 75 d8          	mov    %rsi,-0x28(%rbp)
14082260b:	48 8b cf             	mov    %rdi,%rcx
14082260e:	e8 4d fe f7 ff       	call   0x1407a2460
140822613:	4c 8b e8             	mov    %rax,%r13
140822616:	4c 8b 77 18          	mov    0x18(%rdi),%r14
14082261a:	48 8b cf             	mov    %rdi,%rcx
14082261d:	e8 6e 02 f8 ff       	call   0x1407a2890
140822622:	4c 8b e0             	mov    %rax,%r12
140822625:	b9 20 00 00 00       	mov    $0x20,%ecx
14082262a:	e8 fd 00 61 00       	call   0x140e3272c
14082262f:	48 8b f0             	mov    %rax,%rsi
140822632:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140822636:	48 8b c8             	mov    %rax,%rcx
140822639:	48 f7 d9             	neg    %rcx
14082263c:	48 1b d2             	sbb    %rdx,%rdx
14082263f:	48 f7 da             	neg    %rdx
140822642:	48 ff ca             	dec    %rdx
140822645:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
14082264b:	48 85 c0             	test   %rax,%rax
14082264e:	74 1e                	je     0x14082266e
140822650:	48 8b c2             	mov    %rdx,%rax
140822653:	48 c1 e0 05          	shl    $0x5,%rax
140822657:	48 03 c6             	add    %rsi,%rax
14082265a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140822660:	66 44 89 00          	mov    %r8w,(%rax)
140822664:	48 8d 40 e0          	lea    -0x20(%rax),%rax
140822668:	48 83 ea 01          	sub    $0x1,%rdx
14082266c:	79 f2                	jns    0x140822660
14082266e:	bf ff ff ff ff       	mov    $0xffffffff,%edi
140822673:	4c 3b f7             	cmp    %rdi,%r14
140822676:	0f 87 88 0a 00 00    	ja     0x140823104
14082267c:	44 8b fb             	mov    %ebx,%r15d
14082267f:	48 85 f6             	test   %rsi,%rsi
140822682:	75 4d                	jne    0x1408226d1
140822684:	8b c3                	mov    %ebx,%eax
140822686:	66 89 44 24 40       	mov    %ax,0x40(%rsp)
14082268b:	44 89 74 24 44       	mov    %r14d,0x44(%rsp)
140822690:	44 89 6c 24 48       	mov    %r13d,0x48(%rsp)
140822695:	48 8d 85 e0 00 00 00 	lea    0xe0(%rbp),%rax
14082269c:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
1408226a1:	4d 85 e4             	test   %r12,%r12
1408226a4:	0f 84 fe 01 00 00    	je     0x1408228a8
1408226aa:	41 83 fe 08          	cmp    $0x8,%r14d
1408226ae:	0f 87 ef 01 00 00    	ja     0x1408228a3
1408226b4:	45 8b c6             	mov    %r14d,%r8d
1408226b7:	49 8b d4             	mov    %r12,%rdx
1408226ba:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
1408226bf:	e8 4c c9 6b 00       	call   0x140edf010
1408226c4:	49 8b cc             	mov    %r12,%rcx
1408226c7:	e8 78 8a 5f 00       	call   0x140e1b144
1408226cc:	e9 d7 01 00 00       	jmp    0x1408228a8
1408226d1:	45 33 ff             	xor    %r15d,%r15d
1408226d4:	33 ff                	xor    %edi,%edi
1408226d6:	48 8d 5e 18          	lea    0x18(%rsi),%rbx
1408226da:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1408226e0:	0f b7 43 e8          	movzwl -0x18(%rbx),%eax
1408226e4:	66 41 3b c0          	cmp    %r8w,%ax
1408226e8:	74 50                	je     0x14082273a
1408226ea:	41 8b cf             	mov    %r15d,%ecx
1408226ed:	2b c8                	sub    %eax,%ecx
1408226ef:	85 c9                	test   %ecx,%ecx
1408226f1:	7f 47                	jg     0x14082273a
1408226f3:	75 35                	jne    0x14082272a
1408226f5:	8b 43 f0             	mov    -0x10(%rbx),%eax
1408226f8:	49 33 c5             	xor    %r13,%rax
1408226fb:	8b c0                	mov    %eax,%eax
1408226fd:	48 85 c0             	test   %rax,%rax
140822700:	75 28                	jne    0x14082272a
140822702:	8b 43 ec             	mov    -0x14(%rbx),%eax
140822705:	41 3b c6             	cmp    %r14d,%eax
140822708:	75 20                	jne    0x14082272a
14082270a:	83 f8 08             	cmp    $0x8,%eax
14082270d:	48 8b cb             	mov    %rbx,%rcx
140822710:	76 03                	jbe    0x140822715
140822712:	48 8b 0b             	mov    (%rbx),%rcx
140822715:	4c 8b c0             	mov    %rax,%r8
140822718:	49 8b d4             	mov    %r12,%rdx
14082271b:	e8 30 d3 6b 00       	call   0x140edfa50
140822720:	85 c0                	test   %eax,%eax
140822722:	74 27                	je     0x14082274b
140822724:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
14082272a:	41 ff c7             	inc    %r15d
14082272d:	48 ff c7             	inc    %rdi
140822730:	48 83 c3 20          	add    $0x20,%rbx
140822734:	48 83 ff 01          	cmp    $0x1,%rdi
140822738:	7c a6                	jl     0x1408226e0
14082273a:	41 8b c7             	mov    %r15d,%eax
14082273d:	45 3b f8             	cmp    %r8d,%r15d
140822740:	0f 8d 9a 09 00 00    	jge    0x1408230e0
140822746:	e9 3b ff ff ff       	jmp    0x140822686
14082274b:	49 63 cf             	movslq %r15d,%rcx
14082274e:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
140822754:	41 8b c7             	mov    %r15d,%eax
140822757:	85 c9                	test   %ecx,%ecx
140822759:	0f 88 27 ff ff ff    	js     0x140822686
14082275f:	48 8b c1             	mov    %rcx,%rax
140822762:	48 c1 e0 05          	shl    $0x5,%rax
140822766:	48 8d 8d e0 00 00 00 	lea    0xe0(%rbp),%rcx
14082276d:	48 89 4c 30 10       	mov    %rcx,0x10(%rax,%rsi,1)
140822772:	49 8b cc             	mov    %r12,%rcx
140822775:	e8 ca 89 5f 00       	call   0x140e1b144
14082277a:	45 33 e4             	xor    %r12d,%r12d
14082277d:	48 8b 75 d8          	mov    -0x28(%rbp),%rsi
140822781:	48 8b ce             	mov    %rsi,%rcx
140822784:	e8 d7 fc f7 ff       	call   0x1407a2460
140822789:	48 8b d8             	mov    %rax,%rbx
14082278c:	48 8b 7e 18          	mov    0x18(%rsi),%rdi
140822790:	48 8b ce             	mov    %rsi,%rcx
140822793:	e8 f8 00 f8 ff       	call   0x1407a2890
140822798:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
14082279d:	c6 44 24 28 00       	movb   $0x0,0x28(%rsp)
1408227a2:	48 8d 8d e8 00 00 00 	lea    0xe8(%rbp),%rcx
1408227a9:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1408227ae:	4c 8b cb             	mov    %rbx,%r9
1408227b1:	4c 8b c7             	mov    %rdi,%r8
1408227b4:	48 8b d0             	mov    %rax,%rdx
1408227b7:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
1408227bc:	e8 6f 71 d5 ff       	call   0x140579930
1408227c1:	4c 8b 6d f8          	mov    -0x8(%rbp),%r13
1408227c5:	49 8b cd             	mov    %r13,%rcx
1408227c8:	e8 93 fc f7 ff       	call   0x1407a2460
1408227cd:	48 8b d8             	mov    %rax,%rbx
1408227d0:	49 8b 7d 18          	mov    0x18(%r13),%rdi
1408227d4:	49 8b cd             	mov    %r13,%rcx
1408227d7:	e8 b4 00 f8 ff       	call   0x1407a2890
1408227dc:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
1408227e1:	c6 44 24 28 00       	movb   $0x0,0x28(%rsp)
1408227e6:	48 8d 8d e0 00 00 00 	lea    0xe0(%rbp),%rcx
1408227ed:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1408227f2:	4c 8b cb             	mov    %rbx,%r9
1408227f5:	4c 8b c7             	mov    %rdi,%r8
1408227f8:	48 8b d0             	mov    %rax,%rdx
1408227fb:	48 8d 4d 00          	lea    0x0(%rbp),%rcx
1408227ff:	e8 2c 71 d5 ff       	call   0x140579930
140822804:	4c 8b 7d e0          	mov    -0x20(%rbp),%r15
140822808:	49 8b cf             	mov    %r15,%rcx
14082280b:	e8 50 fc f7 ff       	call   0x1407a2460
140822810:	48 8b d8             	mov    %rax,%rbx
140822813:	49 8b 7f 18          	mov    0x18(%r15),%rdi
140822817:	49 8b cf             	mov    %r15,%rcx
14082281a:	e8 71 00 f8 ff       	call   0x1407a2890
14082281f:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
140822824:	c6 44 24 28 00       	movb   $0x0,0x28(%rsp)
140822829:	48 8d 8d e8 00 00 00 	lea    0xe8(%rbp),%rcx
140822830:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140822835:	4c 8b cb             	mov    %rbx,%r9
140822838:	4c 8b c7             	mov    %rdi,%r8
14082283b:	48 8b d0             	mov    %rax,%rdx
14082283e:	48 8d 4d 00          	lea    0x0(%rbp),%rcx
140822842:	e8 e9 70 d5 ff       	call   0x140579930
140822847:	48 bb 25 49 92 24 49 	movabs $0x4924924924924925,%rbx
14082284e:	92 24 49
140822851:	4c 8b 75 b0          	mov    -0x50(%rbp),%r14
140822855:	4d 85 f6             	test   %r14,%r14
140822858:	0f 84 89 05 00 00    	je     0x140822de7
14082285e:	83 7c 24 74 00       	cmpl   $0x0,0x74(%rsp)
140822863:	0f 8e 7e 05 00 00    	jle    0x140822de7
140822869:	4d 8b 06             	mov    (%r14),%r8
14082286c:	49 8b 4e 08          	mov    0x8(%r14),%rcx
140822870:	49 2b c8             	sub    %r8,%rcx
140822873:	48 8b c3             	mov    %rbx,%rax
140822876:	48 f7 e9             	imul   %rcx
140822879:	48 c1 fa 04          	sar    $0x4,%rdx
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