140021545:	41 8b c4             	mov    %r12d,%eax
140021548:	e9 28 02 00 00       	jmp    0x140021775
14002154d:	45 33 c9             	xor    %r9d,%r9d
140021550:	48 8d 35 a9 ea fd ff 	lea    -0x21557(%rip),%rsi        # 0x140000000
140021557:	48 b8 00 00 00 00 ff 	movabs $0xffffffff00000000,%rax
14002155e:	ff ff ff
140021561:	41 bf 1f 85 eb 51    	mov    $0x51eb851f,%r15d
140021567:	4c 85 d0             	test   %r10,%rax
14002156a:	0f 84 b4 00 00 00    	je     0x140021624
140021570:	45 8b c3             	mov    %r11d,%r8d
140021573:	48 b8 fd ce 61 84 11 	movabs $0xabcc77118461cefd,%rax
14002157a:	77 cc ab
14002157d:	49 f7 e2             	mul    %r10
140021580:	48 c1 ea 1a          	shr    $0x1a,%rdx
140021584:	69 c2 00 e1 f5 05    	imul   $0x5f5e100,%edx,%eax
14002158a:	44 2b d0             	sub    %eax,%r10d
14002158d:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
140021592:	41 8b ca             	mov    %r10d,%ecx
140021595:	4c 8b d2             	mov    %rdx,%r10
140021598:	f7 e1                	mul    %ecx
14002159a:	44 8b ca             	mov    %edx,%r9d
14002159d:	41 c1 e9 0d          	shr    $0xd,%r9d
1400215a1:	41 69 c1 10 27 00 00 	imul   $0x2710,%r9d,%eax
1400215a8:	2b c8                	sub    %eax,%ecx
1400215aa:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
1400215af:	41 f7 e1             	mul    %r9d
1400215b2:	c1 ea 0d             	shr    $0xd,%edx
1400215b5:	69 c2 10 27 00 00    	imul   $0x2710,%edx,%eax
1400215bb:	44 2b c8             	sub    %eax,%r9d
1400215be:	41 8b c7             	mov    %r15d,%eax
1400215c1:	f7 e1                	mul    %ecx
1400215c3:	c1 ea 05             	shr    $0x5,%edx
1400215c6:	6b c2 64             	imul   $0x64,%edx,%eax
1400215c9:	2b c8                	sub    %eax,%ecx
1400215cb:	03 c9                	add    %ecx,%ecx
1400215cd:	0f b7 84 31 f0 fd 24 	movzwl 0x24fdf0(%rcx,%rsi,1),%eax
1400215d4:	00
1400215d5:	66 41 89 44 38 ff    	mov    %ax,-0x1(%r8,%rdi,1)
1400215db:	8d 04 12             	lea    (%rdx,%rdx,1),%eax
1400215de:	0f b7 84 30 f0 fd 24 	movzwl 0x24fdf0(%rax,%rsi,1),%eax
1400215e5:	00
1400215e6:	66 41 89 44 38 fd    	mov    %ax,-0x3(%r8,%rdi,1)
1400215ec:	41 8b c7             	mov    %r15d,%eax
1400215ef:	41 f7 e1             	mul    %r9d
1400215f2:	c1 ea 05             	shr    $0x5,%edx
1400215f5:	6b c2 64             	imul   $0x64,%edx,%eax
1400215f8:	44 2b c8             	sub    %eax,%r9d
1400215fb:	45 03 c9             	add    %r9d,%r9d
1400215fe:	41 0f b7 84 31 f0 fd 	movzwl 0x24fdf0(%r9,%rsi,1),%eax
140021605:	24 00
140021607:	41 b9 08 00 00 00    	mov    $0x8,%r9d
14002160d:	66 41 89 44 38 fb    	mov    %ax,-0x5(%r8,%rdi,1)
140021613:	8d 04 12             	lea    (%rdx,%rdx,1),%eax
140021616:	0f b7 84 30 f0 fd 24 	movzwl 0x24fdf0(%rax,%rsi,1),%eax
14002161d:	00
14002161e:	66 41 89 44 38 f9    	mov    %ax,-0x7(%r8,%rdi,1)
140021624:	41 81 fa 10 27 00 00 	cmp    $0x2710,%r10d
14002162b:	72 64                	jb     0x140021691
14002162d:	45 8b e3             	mov    %r11d,%r12d
140021630:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
140021635:	4d 8b c4             	mov    %r12,%r8
140021638:	41 f7 e2             	mul    %r10d
14002163b:	c1 ea 0d             	shr    $0xd,%edx
14002163e:	69 c2 10 27 00 00    	imul   $0x2710,%edx,%eax
140021644:	44 2b d0             	sub    %eax,%r10d
140021647:	41 8b c7             	mov    %r15d,%eax
14002164a:	41 8b ca             	mov    %r10d,%ecx
14002164d:	44 8b d2             	mov    %edx,%r10d
140021650:	f7 e1                	mul    %ecx
140021652:	41 8b c1             	mov    %r9d,%eax
140021655:	41 83 c1 04          	add    $0x4,%r9d
140021659:	4c 2b c0             	sub    %rax,%r8
14002165c:	c1 ea 05             	shr    $0x5,%edx
14002165f:	6b c2 64             	imul   $0x64,%edx,%eax
140021662:	2b c8                	sub    %eax,%ecx
140021664:	03 c9                	add    %ecx,%ecx
140021666:	0f b7 84 31 f0 fd 24 	movzwl 0x24fdf0(%rcx,%rsi,1),%eax
14002166d:	00
14002166e:	66 41 89 44 38 ff    	mov    %ax,-0x1(%r8,%rdi,1)
140021674:	8d 04 12             	lea    (%rdx,%rdx,1),%eax
140021677:	0f b7 84 30 f0 fd 24 	movzwl 0x24fdf0(%rax,%rsi,1),%eax
14002167e:	00
14002167f:	66 41 89 44 38 fd    	mov    %ax,-0x3(%r8,%rdi,1)
140021685:	41 81 fa 10 27 00 00 	cmp    $0x2710,%r10d
14002168c:	73 a2                	jae    0x140021630
14002168e:	44 8b e3             	mov    %ebx,%r12d
140021691:	41 83 fa 64          	cmp    $0x64,%r10d
140021695:	72 2f                	jb     0x1400216c6
140021697:	41 8b c7             	mov    %r15d,%eax
14002169a:	41 8b cb             	mov    %r11d,%ecx
14002169d:	41 f7 e2             	mul    %r10d
1400216a0:	c1 ea 05             	shr    $0x5,%edx
1400216a3:	6b c2 64             	imul   $0x64,%edx,%eax
1400216a6:	44 2b d0             	sub    %eax,%r10d
1400216a9:	43 8d 04 12          	lea    (%r10,%r10,1),%eax
1400216ad:	44 8b d2             	mov    %edx,%r10d
1400216b0:	48 8d 10             	lea    (%rax),%rdx
1400216b3:	41 8b c1             	mov    %r9d,%eax
1400216b6:	48 2b c8             	sub    %rax,%rcx
1400216b9:	0f b7 84 32 f0 fd 24 	movzwl 0x24fdf0(%rdx,%rsi,1),%eax
1400216c0:	00
1400216c1:	66 89 44 39 ff       	mov    %ax,-0x1(%rcx,%rdi,1)
1400216c6:	41 83 fa 0a          	cmp    $0xa,%r10d
1400216ca:	72 1b                	jb     0x1400216e7
1400216cc:	43 8d 0c 12          	lea    (%r10,%r10,1),%ecx
1400216d0:	8d 41 01             	lea    0x1(%rcx),%eax
1400216d3:	8a 84 30 f0 fd 24 00 	mov    0x24fdf0(%rax,%rsi,1),%al
1400216da:	88 47 02             	mov    %al,0x2(%rdi)
1400216dd:	44 8a 94 31 f0 fd 24 	mov    0x24fdf0(%rcx,%rsi,1),%r10b
1400216e4:	00
1400216e5:	eb 04                	jmp    0x1400216eb
1400216e7:	41 80 c2 30          	add    $0x30,%r10b
1400216eb:	44 88 17             	mov    %r10b,(%rdi)
1400216ee:	45 3b dd             	cmp    %r13d,%r11d
1400216f1:	76 08                	jbe    0x1400216fb
1400216f3:	c6 47 01 2e          	movb   $0x2e,0x1(%rdi)
1400216f7:	45 8d 6b 01          	lea    0x1(%r11),%r13d
1400216fb:	41 8b c5             	mov    %r13d,%eax
1400216fe:	41 ff c5             	inc    %r13d
140021701:	c6 04 38 65          	movb   $0x65,(%rax,%rdi,1)
140021705:	85 db                	test   %ebx,%ebx
140021707:	79 02                	jns    0x14002170b
140021709:	f7 db                	neg    %ebx
14002170b:	45 85 e4             	test   %r12d,%r12d
14002170e:	b8 2d 00 00 00       	mov    $0x2d,%eax
140021713:	8d 50 fe             	lea    -0x2(%rax),%edx
140021716:	0f 49 c2             	cmovns %edx,%eax
140021719:	42 88 04 2f          	mov    %al,(%rdi,%r13,1)
14002171d:	41 ff c5             	inc    %r13d
140021720:	83 fb 64             	cmp    $0x64,%ebx
140021723:	7c 3b                	jl     0x140021760
140021725:	b8 67 66 66 66       	mov    $0x66666667,%eax
14002172a:	f7 eb                	imul   %ebx
14002172c:	c1 fa 02             	sar    $0x2,%edx
14002172f:	8b c2                	mov    %edx,%eax
140021731:	c1 e8 1f             	shr    $0x1f,%eax
140021734:	03 d0                	add    %eax,%edx
140021736:	8d 04 12             	lea    (%rdx,%rdx,1),%eax
140021739:	48 98                	cltq
14002173b:	0f b7 84 30 f0 fd 24 	movzwl 0x24fdf0(%rax,%rsi,1),%eax
140021742:	00
140021743:	66 41 89 44 3d 00    	mov    %ax,0x0(%r13,%rdi,1)
140021749:	8a c2                	mov    %dl,%al
14002174b:	c0 e2 02             	shl    $0x2,%dl
14002174e:	02 c2                	add    %dl,%al
140021750:	02 c0                	add    %al,%al
140021752:	2a d8                	sub    %al,%bl
140021754:	41 8d 45 02          	lea    0x2(%r13),%eax
140021758:	80 c3 30             	add    $0x30,%bl
14002175b:	88 1c 38             	mov    %bl,(%rax,%rdi,1)
14002175e:	eb 13                	jmp    0x140021773
140021760:	8d 04 1b             	lea    (%rbx,%rbx,1),%eax
140021763:	48 98                	cltq
140021765:	0f b7 84 30 f0 fd 24 	movzwl 0x24fdf0(%rax,%rsi,1),%eax
14002176c:	00
14002176d:	66 41 89 44 3d 00    	mov    %ax,0x0(%r13,%rdi,1)
140021773:	8b c5                	mov    %ebp,%eax
140021775:	48 03 c7             	add    %rdi,%rax
140021778:	41 83 66 08 00       	andl   $0x0,0x8(%r14)
14002177d:	49 89 06             	mov    %rax,(%r14)
140021780:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140021785:	49 8b c6             	mov    %r14,%rax
140021788:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
14002178d:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
140021792:	48 83 c4 30          	add    $0x30,%rsp
140021796:	41 5f                	pop    %r15
140021798:	41 5e                	pop    %r14
14002179a:	41 5d                	pop    %r13
14002179c:	41 5c                	pop    %r12
14002179e:	5f                   	pop    %rdi
14002179f:	c3                   	ret
1400217a0:	48 8b c4             	mov    %rsp,%rax
1400217a3:	48 89 58 08          	mov    %rbx,0x8(%rax)
1400217a7:	48 89 70 10          	mov    %rsi,0x10(%rax)
1400217ab:	48 89 78 18          	mov    %rdi,0x18(%rax)
1400217af:	4c 89 70 20          	mov    %r14,0x20(%rax)
1400217b3:	55                   	push   %rbp
1400217b4:	48 8b ec             	mov    %rsp,%rbp
1400217b7:	48 83 ec 50          	sub    $0x50,%rsp
1400217bb:	49 8b d8             	mov    %r8,%rbx
1400217be:	48 8b fa             	mov    %rdx,%rdi
1400217c1:	66 48 0f 7e da       	movq   %xmm3,%rdx
1400217c6:	45 33 c0             	xor    %r8d,%r8d
1400217c9:	48 8b f1             	mov    %rcx,%rsi
1400217cc:	48 85 d2             	test   %rdx,%rdx
1400217cf:	75 48                	jne    0x140021819
1400217d1:	83 7d 30 01          	cmpl   $0x1,0x30(%rbp)
1400217d5:	75 31                	jne    0x140021808
1400217d7:	48 8b c3             	mov    %rbx,%rax
1400217da:	48 2b c7             	sub    %rdi,%rax
1400217dd:	48 83 f8 05          	cmp    $0x5,%rax
1400217e1:	7d 0b                	jge    0x1400217ee
1400217e3:	41 b8 84 00 00 00    	mov    $0x84,%r8d
1400217e9:	e9 2e 01 00 00       	jmp    0x14002191c
1400217ee:	8b 05 70 e3 22 00    	mov    0x22e370(%rip),%eax        # 0x14024fb64
1400217f4:	48 8d 5f 05          	lea    0x5(%rdi),%rbx
1400217f8:	89 07                	mov    %eax,(%rdi)
1400217fa:	8a 05 68 e3 22 00    	mov    0x22e368(%rip),%al        # 0x14024fb68
140021800:	88 47 04             	mov    %al,0x4(%rdi)
140021803:	e9 14 01 00 00       	jmp    0x14002191c
140021808:	48 3b fb             	cmp    %rbx,%rdi
14002180b:	74 d6                	je     0x1400217e3
14002180d:	c6 07 30             	movb   $0x30,(%rdi)
140021810:	48 8d 5f 01          	lea    0x1(%rdi),%rbx
140021814:	e9 03 01 00 00       	jmp    0x14002191c
140021819:	44 8b 75 30          	mov    0x30(%rbp),%r14d
14002181d:	4c 8b ca             	mov    %rdx,%r9
140021820:	48 c1 ea 34          	shr    $0x34,%rdx
140021824:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
14002182b:	ff 0f 00
14002182e:	4c 23 c8             	and    %rax,%r9
140021831:	8d 8a cd fb ff ff    	lea    -0x433(%rdx),%ecx
140021837:	41 83 fe 02          	cmp    $0x2,%r14d
14002183b:	75 1d                	jne    0x14002185a
14002183d:	85 c9                	test   %ecx,%ecx
14002183f:	7e 19                	jle    0x14002185a
140021841:	44 89 44 24 20       	mov    %r8d,0x20(%rsp)
140021846:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
14002184a:	4c 8b c3             	mov    %rbx,%r8
14002184d:	48 8b d7             	mov    %rdi,%rdx
140021850:	e8 8f 02 00 00       	call   0x140021ae4
140021855:	e9 ba 00 00 00       	jmp    0x140021914
14002185a:	48 b8 00 00 00 00 00 	movabs $0x10000000000000,%rax
140021861:	00 10 00
140021864:	4d 8b d1             	mov    %r9,%r10
140021867:	4c 0b d0             	or     %rax,%r10
14002186a:	0f 57 c0             	xorps  %xmm0,%xmm0
14002186d:	8d 41 34             	lea    0x34(%rcx),%eax
140021870:	0f 11 45 e0          	movups %xmm0,-0x20(%rbp)
140021874:	83 f8 34             	cmp    $0x34,%eax
140021877:	77 66                	ja     0x1400218df
140021879:	f7 d9                	neg    %ecx
14002187b:	b8 01 00 00 00       	mov    $0x1,%eax
140021880:	48 d3 e0             	shl    %cl,%rax
140021883:	48 ff c8             	dec    %rax
140021886:	49 85 c2             	test   %rax,%r10
140021889:	75 54                	jne    0x1400218df
14002188b:	49 d3 ea             	shr    %cl,%r10
14002188e:	49 bb cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r11
140021895:	cc cc cc
140021898:	49 8b c3             	mov    %r11,%rax
14002189b:	4c 89 55 e0          	mov    %r10,-0x20(%rbp)
14002189f:	49 f7 e2             	mul    %r10
1400218a2:	4c 8b ca             	mov    %rdx,%r9
1400218a5:	49 c1 e9 03          	shr    $0x3,%r9
1400218a9:	43 8d 04 89          	lea    (%r9,%r9,4),%eax
1400218ad:	03 c0                	add    %eax,%eax
1400218af:	44 3b d0             	cmp    %eax,%r10d
1400218b2:	eb 1f                	jmp    0x1400218d3
1400218b4:	49 8b c9             	mov    %r9,%rcx
1400218b7:	49 8b c3             	mov    %r11,%rax
1400218ba:	49 f7 e1             	mul    %r9
1400218bd:	41 ff c0             	inc    %r8d
1400218c0:	48 89 4d e0          	mov    %rcx,-0x20(%rbp)
1400218c4:	4c 8b ca             	mov    %rdx,%r9
1400218c7:	49 c1 e9 03          	shr    $0x3,%r9
1400218cb:	43 8d 04 89          	lea    (%r9,%r9,4),%eax
1400218cf:	03 c0                	add    %eax,%eax
1400218d1:	3b c8                	cmp    %eax,%ecx
1400218d3:	44 89 45 e8          	mov    %r8d,-0x18(%rbp)
1400218d7:	74 db                	je     0x1400218b4
1400218d9:	0f 28 45 e0          	movaps -0x20(%rbp),%xmm0
1400218dd:	eb 12                	jmp    0x1400218f1
1400218df:	44 8b c2             	mov    %edx,%r8d
1400218e2:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
1400218e6:	49 8b d1             	mov    %r9,%rdx
1400218e9:	e8 4e f3 ff ff       	call   0x140020c3c
1400218ee:	0f 10 00             	movups (%rax),%xmm0
1400218f1:	f2 0f 11 5c 24 28    	movsd  %xmm3,0x28(%rsp)
1400218f7:	4c 8d 4d f0          	lea    -0x10(%rbp),%r9
1400218fb:	4c 8b c3             	mov    %rbx,%r8
1400218fe:	44 89 74 24 20       	mov    %r14d,0x20(%rsp)
140021903:	48 8b d7             	mov    %rdi,%rdx
140021906:	66 0f 7f 45 f0       	movdqa %xmm0,-0x10(%rbp)
14002190b:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
14002190f:	e8 f4 f7 ff ff       	call   0x140021108
140021914:	44 8b 45 e8          	mov    -0x18(%rbp),%r8d
140021918:	48 8b 5d e0          	mov    -0x20(%rbp),%rbx
14002191c:	48 8b 7c 24 70       	mov    0x70(%rsp),%rdi
140021921:	33 c0                	xor    %eax,%eax
140021923:	4c 8b 74 24 78       	mov    0x78(%rsp),%r14
140021928:	48 89 1e             	mov    %rbx,(%rsi)
14002192b:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140021930:	44 89 46 08          	mov    %r8d,0x8(%rsi)
140021934:	89 46 0c             	mov    %eax,0xc(%rsi)
140021937:	48 8b c6             	mov    %rsi,%rax
14002193a:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
14002193f:	48 83 c4 50          	add    $0x50,%rsp
140021943:	5d                   	pop    %rbp
140021944:	c3                   	ret
140021945:	90                   	nop
140021946:	90                   	nop
140021947:	90                   	nop
140021948:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14002194d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140021952:	57                   	push   %rdi
140021953:	48 83 ec 30          	sub    $0x30,%rsp
140021957:	48 8b f2             	mov    %rdx,%rsi
14002195a:	48 8b d9             	mov    %rcx,%rbx
14002195d:	66 48 0f 7e d9       	movq   %xmm3,%rcx
140021962:	48 8b d1             	mov    %rcx,%rdx
140021965:	48 c1 ea 3f          	shr    $0x3f,%rdx
140021969:	84 d2                	test   %dl,%dl
14002196b:	74 2d                	je     0x14002199a
14002196d:	49 3b f0             	cmp    %r8,%rsi
140021970:	75 10                	jne    0x140021982
140021972:	4c 89 03             	mov    %r8,(%rbx)
140021975:	48 c7 43 08 84 00 00 	movq   $0x84,0x8(%rbx)
14002197c:	00
14002197d:	e9 c5 00 00 00       	jmp    0x140021a47
140021982:	c6 06 2d             	movb   $0x2d,(%rsi)
140021985:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
14002198c:	ff ff 7f
14002198f:	48 ff c6             	inc    %rsi
140021992:	48 23 c8             	and    %rax,%rcx
140021995:	66 48 0f 6e d9       	movq   %rcx,%xmm3
14002199a:	49 b9 00 00 00 00 00 	movabs $0x7ff0000000000000,%r9
1400219a1:	00 f0 7f
1400219a4:	48 8b c1             	mov    %rcx,%rax
1400219a7:	49 23 c1             	and    %r9,%rax
1400219aa:	49 3b c1             	cmp    %r9,%rax
1400219ad:	0f 85 84 00 00 00    	jne    0x140021a37
1400219b3:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
1400219ba:	ff 0f 00
1400219bd:	48 23 c8             	and    %rax,%rcx
1400219c0:	75 09                	jne    0x1400219cb
1400219c2:	48 8d 15 7b e1 22 00 	lea    0x22e17b(%rip),%rdx        # 0x14024fb44
1400219c9:	eb 2d                	jmp    0x1400219f8
1400219cb:	48 b8 00 00 00 00 00 	movabs $0x8000000000000,%rax
1400219d2:	00 08 00
1400219d5:	84 d2                	test   %dl,%dl
1400219d7:	74 13                	je     0x1400219ec
1400219d9:	48 3b c8             	cmp    %rax,%rcx
1400219dc:	75 0e                	jne    0x1400219ec
1400219de:	48 8d 15 73 e1 22 00 	lea    0x22e173(%rip),%rdx        # 0x14024fb58
1400219e5:	bf 08 00 00 00       	mov    $0x8,%edi
1400219ea:	eb 1f                	jmp    0x140021a0b
1400219ec:	48 85 c8             	test   %rcx,%rax
1400219ef:	74 0e                	je     0x1400219ff
1400219f1:	48 8d 15 18 e5 22 00 	lea    0x22e518(%rip),%rdx        # 0x14024ff10
1400219f8:	bf 03 00 00 00       	mov    $0x3,%edi
1400219fd:	eb 0c                	jmp    0x140021a0b
1400219ff:	48 8d 15 42 e1 22 00 	lea    0x22e142(%rip),%rdx        # 0x14024fb48
140021a06:	bf 09 00 00 00       	mov    $0x9,%edi
140021a0b:	49 8b c0             	mov    %r8,%rax
140021a0e:	48 2b c6             	sub    %rsi,%rax
140021a11:	48 3b c7             	cmp    %rdi,%rax
140021a14:	0f 8c 58 ff ff ff    	jl     0x140021972
140021a1a:	4c 8b c7             	mov    %rdi,%r8
140021a1d:	48 8b ce             	mov    %rsi,%rcx