1408395aa:	4c 8b f9             	mov    %rcx,%r15
1408395ad:	4c 8b 01             	mov    (%rcx),%r8
1408395b0:	4c 8b ca             	mov    %rdx,%r9
1408395b3:	4d 2b c8             	sub    %r8,%r9
1408395b6:	49 bb 67 66 66 66 66 	movabs $0x6666666666666667,%r11
1408395bd:	66 66 66
1408395c0:	49 8b c3             	mov    %r11,%rax
1408395c3:	49 f7 e9             	imul   %r9
1408395c6:	4c 8b f2             	mov    %rdx,%r14
1408395c9:	49 c1 fe 04          	sar    $0x4,%r14
1408395cd:	49 8b c6             	mov    %r14,%rax
1408395d0:	48 c1 e8 3f          	shr    $0x3f,%rax
1408395d4:	4c 03 f0             	add    %rax,%r14
1408395d7:	48 8b 49 08          	mov    0x8(%rcx),%rcx
1408395db:	49 2b c8             	sub    %r8,%rcx
1408395de:	49 8b c3             	mov    %r11,%rax
1408395e1:	48 f7 e9             	imul   %rcx
1408395e4:	48 c1 fa 04          	sar    $0x4,%rdx
1408395e8:	48 8b c2             	mov    %rdx,%rax
1408395eb:	48 c1 e8 3f          	shr    $0x3f,%rax
1408395ef:	48 03 d0             	add    %rax,%rdx
1408395f2:	49 ba 66 66 66 66 66 	movabs $0x666666666666666,%r10
1408395f9:	66 66 06
1408395fc:	49 3b d2             	cmp    %r10,%rdx
1408395ff:	0f 84 04 02 00 00    	je     0x140839809
140839605:	4c 8d 4a 01          	lea    0x1(%rdx),%r9
140839609:	4c 89 4c 24 28       	mov    %r9,0x28(%rsp)
14083960e:	49 8b 4f 10          	mov    0x10(%r15),%rcx
140839612:	49 2b c8             	sub    %r8,%rcx
140839615:	49 8b c3             	mov    %r11,%rax
140839618:	48 f7 e9             	imul   %rcx
14083961b:	48 c1 fa 04          	sar    $0x4,%rdx
14083961f:	48 8b c2             	mov    %rdx,%rax
140839622:	48 c1 e8 3f          	shr    $0x3f,%rax
140839626:	48 03 d0             	add    %rax,%rdx
140839629:	48 8b ca             	mov    %rdx,%rcx
14083962c:	48 d1 e9             	shr    $1,%rcx
14083962f:	49 8b c2             	mov    %r10,%rax
140839632:	48 2b c1             	sub    %rcx,%rax
140839635:	48 3b d0             	cmp    %rax,%rdx
140839638:	0f 87 c5 01 00 00    	ja     0x140839803
14083963e:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140839642:	49 8b f1             	mov    %r9,%rsi
140839645:	49 3b c1             	cmp    %r9,%rax
140839648:	48 0f 43 f0          	cmovae %rax,%rsi
14083964c:	49 3b f2             	cmp    %r10,%rsi
14083964f:	0f 87 ae 01 00 00    	ja     0x140839803
140839655:	48 8d 0c b6          	lea    (%rsi,%rsi,4),%rcx
140839659:	48 c1 e1 03          	shl    $0x3,%rcx
14083965d:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140839662:	48 85 c9             	test   %rcx,%rcx
140839665:	75 09                	jne    0x140839670
140839667:	33 db                	xor    %ebx,%ebx
140839669:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14083966e:	eb 3d                	jmp    0x1408396ad
140839670:	48 81 f9 00 10 00 00 	cmp    $0x1000,%rcx
140839677:	72 2c                	jb     0x1408396a5
140839679:	48 8d 41 27          	lea    0x27(%rcx),%rax
14083967d:	48 3b c1             	cmp    %rcx,%rax
140839680:	0f 86 7d 01 00 00    	jbe    0x140839803
140839686:	48 8b c8             	mov    %rax,%rcx
140839689:	e8 7a 1a 5e 00       	call   0x140e1b108
14083968e:	48 85 c0             	test   %rax,%rax
140839691:	0f 84 78 01 00 00    	je     0x14083980f
140839697:	48 8d 58 27          	lea    0x27(%rax),%rbx
14083969b:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
14083969f:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
1408396a3:	eb 08                	jmp    0x1408396ad
1408396a5:	e8 5e 1a 5e 00       	call   0x140e1b108
1408396aa:	48 8b d8             	mov    %rax,%rbx
1408396ad:	48 89 9c 24 98 00 00 	mov    %rbx,0x98(%rsp)
1408396b4:	00
1408396b5:	4b 8d 0c b6          	lea    (%r14,%r14,4),%rcx
1408396b9:	4c 8d 24 cd 00 00 00 	lea    0x0(,%rcx,8),%r12
1408396c0:	00
1408396c1:	4d 8d 34 1c          	lea    (%r12,%rbx,1),%r14
1408396c5:	49 8d 4e 28          	lea    0x28(%r14),%rcx
1408396c9:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
1408396ce:	48 89 8c 24 88 00 00 	mov    %rcx,0x88(%rsp)
1408396d5:	00
1408396d6:	49 8b d5             	mov    %r13,%rdx
1408396d9:	49 8b ce             	mov    %r14,%rcx
1408396dc:	e8 7f 5e 00 00       	call   0x14083f560
1408396e1:	49 8b 45 18          	mov    0x18(%r13),%rax
1408396e5:	49 89 46 18          	mov    %rax,0x18(%r14)
1408396e9:	41 8b 45 20          	mov    0x20(%r13),%eax
1408396ed:	41 89 46 20          	mov    %eax,0x20(%r14)
1408396f1:	4c 89 b4 24 88 00 00 	mov    %r14,0x88(%rsp)
1408396f8:	00
1408396f9:	4d 8b 47 08          	mov    0x8(%r15),%r8
1408396fd:	49 8b 07             	mov    (%r15),%rax
140839700:	49 3b f8             	cmp    %r8,%rdi
140839703:	75 44                	jne    0x140839749
140839705:	49 3b c0             	cmp    %r8,%rax
140839708:	0f 84 cf 00 00 00    	je     0x1408397dd
14083970e:	48 8d 53 20          	lea    0x20(%rbx),%rdx
140839712:	0f 10 00             	movups (%rax),%xmm0
140839715:	0f 11 42 e0          	movups %xmm0,-0x20(%rdx)
140839719:	f2 0f 10 48 10       	movsd  0x10(%rax),%xmm1
14083971e:	f2 0f 11 4a f0       	movsd  %xmm1,-0x10(%rdx)
140839723:	c6 00 00             	movb   $0x0,(%rax)
140839726:	c6 40 17 17          	movb   $0x17,0x17(%rax)
14083972a:	48 8b 48 18          	mov    0x18(%rax),%rcx
14083972e:	48 89 4a f8          	mov    %rcx,-0x8(%rdx)
140839732:	8b 48 20             	mov    0x20(%rax),%ecx
140839735:	89 0a                	mov    %ecx,(%rdx)
140839737:	48 8d 52 28          	lea    0x28(%rdx),%rdx
14083973b:	48 83 c0 28          	add    $0x28,%rax
14083973f:	49 3b c0             	cmp    %r8,%rax
140839742:	75 ce                	jne    0x140839712
140839744:	e9 94 00 00 00       	jmp    0x1408397dd
140839749:	48 3b c7             	cmp    %rdi,%rax
14083974c:	74 36                	je     0x140839784
14083974e:	48 8d 53 20          	lea    0x20(%rbx),%rdx
140839752:	0f 10 00             	movups (%rax),%xmm0
140839755:	0f 11 42 e0          	movups %xmm0,-0x20(%rdx)
140839759:	f2 0f 10 48 10       	movsd  0x10(%rax),%xmm1
14083975e:	f2 0f 11 4a f0       	movsd  %xmm1,-0x10(%rdx)
140839763:	c6 00 00             	movb   $0x0,(%rax)
140839766:	c6 40 17 17          	movb   $0x17,0x17(%rax)
14083976a:	48 8b 48 18          	mov    0x18(%rax),%rcx
14083976e:	48 89 4a f8          	mov    %rcx,-0x8(%rdx)
140839772:	8b 48 20             	mov    0x20(%rax),%ecx
140839775:	89 0a                	mov    %ecx,(%rdx)
140839777:	48 8d 52 28          	lea    0x28(%rdx),%rdx
14083977b:	48 83 c0 28          	add    $0x28,%rax
14083977f:	48 3b c7             	cmp    %rdi,%rax
140839782:	75 ce                	jne    0x140839752
140839784:	48 89 9c 24 88 00 00 	mov    %rbx,0x88(%rsp)
14083978b:	00
14083978c:	49 8b 57 08          	mov    0x8(%r15),%rdx
140839790:	48 3b fa             	cmp    %rdx,%rdi
140839793:	74 48                	je     0x1408397dd
140839795:	49 8d 4e 48          	lea    0x48(%r14),%rcx
140839799:	49 2b fc             	sub    %r12,%rdi
14083979c:	48 2b fb             	sub    %rbx,%rdi
14083979f:	90                   	nop
1408397a0:	0f 10 44 0f b8       	movups -0x48(%rdi,%rcx,1),%xmm0
1408397a5:	0f 11 41 e0          	movups %xmm0,-0x20(%rcx)
1408397a9:	f2 0f 10 4c 0f c8    	movsd  -0x38(%rdi,%rcx,1),%xmm1
1408397af:	f2 0f 11 49 f0       	movsd  %xmm1,-0x10(%rcx)
1408397b4:	c6 44 0f b8 00       	movb   $0x0,-0x48(%rdi,%rcx,1)
1408397b9:	c6 44 0f cf 17       	movb   $0x17,-0x31(%rdi,%rcx,1)
1408397be:	48 8b 44 0f d0       	mov    -0x30(%rdi,%rcx,1),%rax
1408397c3:	48 89 41 f8          	mov    %rax,-0x8(%rcx)
1408397c7:	8b 44 0f d8          	mov    -0x28(%rdi,%rcx,1),%eax
1408397cb:	89 01                	mov    %eax,(%rcx)
1408397cd:	48 83 c1 28          	add    $0x28,%rcx
1408397d1:	48 8d 47 b8          	lea    -0x48(%rdi),%rax
1408397d5:	48 03 c1             	add    %rcx,%rax
1408397d8:	48 3b c2             	cmp    %rdx,%rax
1408397db:	75 c3                	jne    0x1408397a0
1408397dd:	4c 8b ce             	mov    %rsi,%r9
1408397e0:	4c 8b 44 24 28       	mov    0x28(%rsp),%r8
1408397e5:	48 8b d3             	mov    %rbx,%rdx
1408397e8:	49 8b cf             	mov    %r15,%rcx
1408397eb:	e8 90 4d 00 00       	call   0x14083e580
1408397f0:	49 8b c6             	mov    %r14,%rax
1408397f3:	48 83 c4 40          	add    $0x40,%rsp
1408397f7:	41 5f                	pop    %r15
1408397f9:	41 5e                	pop    %r14
1408397fb:	41 5d                	pop    %r13
1408397fd:	41 5c                	pop    %r12
1408397ff:	5f                   	pop    %rdi
140839800:	5e                   	pop    %rsi
140839801:	5b                   	pop    %rbx
140839802:	c3                   	ret
140839803:	e8 88 39 96 ff       	call   0x14019d190
140839808:	cc                   	int3
140839809:	e8 82 3d 96 ff       	call   0x14019d590
14083980e:	cc                   	int3
14083980f:	e8 90 09 5f 00       	call   0x140e2a1a4
140839814:	cc                   	int3
140839815:	cc                   	int3
140839816:	cc                   	int3
140839817:	cc                   	int3
140839818:	cc                   	int3
140839819:	cc                   	int3
14083981a:	cc                   	int3
14083981b:	cc                   	int3
14083981c:	cc                   	int3
14083981d:	cc                   	int3
14083981e:	cc                   	int3
14083981f:	cc                   	int3
140839820:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
140839825:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
14083982a:	53                   	push   %rbx
14083982b:	56                   	push   %rsi
14083982c:	57                   	push   %rdi
14083982d:	41 54                	push   %r12
14083982f:	41 55                	push   %r13
140839831:	41 56                	push   %r14
140839833:	41 57                	push   %r15
140839835:	48 83 ec 60          	sub    $0x60,%rsp
140839839:	4c 8b e2             	mov    %rdx,%r12
14083983c:	48 8b f1             	mov    %rcx,%rsi
14083983f:	4c 8b 11             	mov    (%rcx),%r10
140839842:	4c 8b ca             	mov    %rdx,%r9
140839845:	4d 2b ca             	sub    %r10,%r9
140839848:	49 bb ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r11
14083984f:	aa aa 2a
140839852:	49 8b c3             	mov    %r11,%rax
140839855:	49 f7 e9             	imul   %r9
140839858:	4c 8b f2             	mov    %rdx,%r14
14083985b:	49 c1 fe 04          	sar    $0x4,%r14
14083985f:	49 8b c6             	mov    %r14,%rax
140839862:	48 c1 e8 3f          	shr    $0x3f,%rax
140839866:	4c 03 f0             	add    %rax,%r14
140839869:	48 8b 49 08          	mov    0x8(%rcx),%rcx
14083986d:	49 2b ca             	sub    %r10,%rcx
140839870:	49 8b c3             	mov    %r11,%rax
140839873:	48 f7 e9             	imul   %rcx
140839876:	48 c1 fa 04          	sar    $0x4,%rdx
14083987a:	48 8b c2             	mov    %rdx,%rax
14083987d:	48 c1 e8 3f          	shr    $0x3f,%rax
140839881:	48 03 d0             	add    %rax,%rdx
140839884:	48 bf aa aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaa,%rdi
14083988b:	aa aa 02
14083988e:	48 3b d7             	cmp    %rdi,%rdx
140839891:	0f 84 6a 01 00 00    	je     0x140839a01
140839897:	4c 8d 6a 01          	lea    0x1(%rdx),%r13
14083989b:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
14083989f:	49 2b ca             	sub    %r10,%rcx
1408398a2:	49 8b c3             	mov    %r11,%rax
1408398a5:	48 f7 e9             	imul   %rcx
1408398a8:	48 c1 fa 04          	sar    $0x4,%rdx
1408398ac:	48 8b c2             	mov    %rdx,%rax
1408398af:	48 c1 e8 3f          	shr    $0x3f,%rax
1408398b3:	48 03 d0             	add    %rax,%rdx
1408398b6:	48 8b ca             	mov    %rdx,%rcx
1408398b9:	48 d1 e9             	shr    $1,%rcx
1408398bc:	48 8b c7             	mov    %rdi,%rax
1408398bf:	48 2b c1             	sub    %rcx,%rax
1408398c2:	48 3b d0             	cmp    %rax,%rdx
1408398c5:	76 15                	jbe    0x1408398dc
1408398c7:	48 89 bc 24 b8 00 00 	mov    %rdi,0xb8(%rsp)
1408398ce:	00
1408398cf:	48 c7 c0 c0 ff ff ff 	mov    $0xffffffffffffffc0,%rax
1408398d6:	48 83 c0 27          	add    $0x27,%rax
1408398da:	eb 51                	jmp    0x14083992d
1408398dc:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
1408398e0:	49 8b d5             	mov    %r13,%rdx
1408398e3:	49 3b c5             	cmp    %r13,%rax
1408398e6:	48 0f 43 d0          	cmovae %rax,%rdx
1408398ea:	48 3b d7             	cmp    %rdi,%rdx
1408398ed:	0f 87 08 01 00 00    	ja     0x1408399fb
1408398f3:	48 8d 0c 52          	lea    (%rdx,%rdx,2),%rcx
1408398f7:	48 c1 e1 05          	shl    $0x5,%rcx
1408398fb:	48 8b fa             	mov    %rdx,%rdi
1408398fe:	48 89 94 24 b8 00 00 	mov    %rdx,0xb8(%rsp)
140839905:	00
140839906:	48 85 c9             	test   %rcx,%rcx
140839909:	75 0c                	jne    0x140839917
14083990b:	33 db                	xor    %ebx,%ebx
14083990d:	48 89 94 24 b8 00 00 	mov    %rdx,0xb8(%rsp)
140839914:	00
140839915:	eb 45                	jmp    0x14083995c
140839917:	48 81 f9 00 10 00 00 	cmp    $0x1000,%rcx
14083991e:	72 2c                	jb     0x14083994c
140839920:	48 8d 41 27          	lea    0x27(%rcx),%rax
140839924:	48 3b c1             	cmp    %rcx,%rax
140839927:	0f 86 ce 00 00 00    	jbe    0x1408399fb
14083992d:	48 8b c8             	mov    %rax,%rcx
140839930:	e8 d3 17 5e 00       	call   0x140e1b108
140839935:	48 85 c0             	test   %rax,%rax
140839938:	0f 84 c9 00 00 00    	je     0x140839a07
14083993e:	48 8d 58 27          	lea    0x27(%rax),%rbx
140839942:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
140839946:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
14083994a:	eb 08                	jmp    0x140839954
14083994c:	e8 b7 17 5e 00       	call   0x140e1b108
140839951:	48 8b d8             	mov    %rax,%rbx
140839954:	4c 8b 84 24 b0 00 00 	mov    0xb0(%rsp),%r8
14083995b:	00
14083995c:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140839961:	4f 8d 34 76          	lea    (%r14,%r14,2),%r14
140839965:	49 c1 e6 05          	shl    $0x5,%r14
140839969:	4c 03 f3             	add    %rbx,%r14
14083996c:	4d 8d 7e 60          	lea    0x60(%r14),%r15
140839970:	4c 89 7c 24 28       	mov    %r15,0x28(%rsp)
140839975:	4c 89 bc 24 a8 00 00 	mov    %r15,0xa8(%rsp)
14083997c:	00
14083997d:	49 8b d0             	mov    %r8,%rdx
140839980:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140839985:	e8 b6 f0 96 ff       	call   0x1401a8a40
14083998a:	48 8b d0             	mov    %rax,%rdx
14083998d:	49 8b ce             	mov    %r14,%rcx
140839990:	e8 db 42 f3 ff       	call   0x14076dc70
140839995:	4c 89 b4 24 a8 00 00 	mov    %r14,0xa8(%rsp)
14083999c:	00
14083999d:	48 8b 56 08          	mov    0x8(%rsi),%rdx
1408399a1:	48 8b 0e             	mov    (%rsi),%rcx
1408399a4:	4c 3b e2             	cmp    %rdx,%r12
1408399a7:	75 05                	jne    0x1408399ae
1408399a9:	4c 8b fb             	mov    %rbx,%r15
1408399ac:	eb 1d                	jmp    0x1408399cb
1408399ae:	4c 8b ce             	mov    %rsi,%r9
1408399b1:	4c 8b c3             	mov    %rbx,%r8
1408399b4:	49 8b d4             	mov    %r12,%rdx
1408399b7:	e8 84 16 00 00       	call   0x14083b040
1408399bc:	48 89 9c 24 a8 00 00 	mov    %rbx,0xa8(%rsp)
1408399c3:	00
1408399c4:	49 8b cc             	mov    %r12,%rcx
1408399c7:	48 8b 56 08          	mov    0x8(%rsi),%rdx
1408399cb:	4c 8b ce             	mov    %rsi,%r9
1408399ce:	4d 8b c7             	mov    %r15,%r8
1408399d1:	e8 6a 16 00 00       	call   0x14083b040
1408399d6:	90                   	nop
1408399d7:	4c 8b cf             	mov    %rdi,%r9
1408399da:	4d 8b c5             	mov    %r13,%r8
1408399dd:	48 8b d3             	mov    %rbx,%rdx
1408399e0:	48 8b ce             	mov    %rsi,%rcx
1408399e3:	e8 c8 4a 00 00       	call   0x14083e4b0
1408399e8:	49 8b c6             	mov    %r14,%rax
1408399eb:	48 83 c4 60          	add    $0x60,%rsp
1408399ef:	41 5f                	pop    %r15
1408399f1:	41 5e                	pop    %r14
1408399f3:	41 5d                	pop    %r13
1408399f5:	41 5c                	pop    %r12
1408399f7:	5f                   	pop    %rdi
1408399f8:	5e                   	pop    %rsi
1408399f9:	5b                   	pop    %rbx
1408399fa:	c3                   	ret
1408399fb:	e8 90 37 96 ff       	call   0x14019d190
140839a00:	cc                   	int3
140839a01:	e8 8a 3b 96 ff       	call   0x14019d590
140839a06:	cc                   	int3
140839a07:	e8 98 07 5f 00       	call   0x140e2a1a4
140839a0c:	cc                   	int3
140839a0d:	cc                   	int3
140839a0e:	cc                   	int3
140839a0f:	cc                   	int3
140839a10:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
140839a15:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
140839a1a:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140839a1f:	53                   	push   %rbx
140839a20:	56                   	push   %rsi
140839a21:	57                   	push   %rdi
140839a22:	41 54                	push   %r12
140839a24:	41 55                	push   %r13
140839a26:	41 56                	push   %r14
140839a28:	41 57                	push   %r15
140839a2a:	48 83 ec 50          	sub    $0x50,%rsp
140839a2e:	4d 8b c8             	mov    %r8,%r9
140839a31:	4c 8b ea             	mov    %rdx,%r13
140839a34:	48 8b f9             	mov    %rcx,%rdi
140839a37:	4c 8b 19             	mov    (%rcx),%r11
140839a3a:	4c 8b d2             	mov    %rdx,%r10
140839a3d:	4d 2b d3             	sub    %r11,%r10
140839a40:	48 bb 89 88 88 88 88 	movabs $0x8888888888888889,%rbx