1406b436b:	48 2b d1             	sub    %rcx,%rdx
1406b436e:	48 83 e2 f0          	and    $0xfffffffffffffff0,%rdx
1406b4372:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1406b4379:	72 18                	jb     0x1406b4393
1406b437b:	48 83 c2 27          	add    $0x27,%rdx
1406b437f:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
1406b4383:	49 2b c8             	sub    %r8,%rcx
1406b4386:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1406b438a:	48 83 f8 1f          	cmp    $0x1f,%rax
1406b438e:	77 3d                	ja     0x1406b43cd
1406b4390:	49 8b c8             	mov    %r8,%rcx
1406b4393:	e8 ac 6d 76 00       	call   0x140e1b144
1406b4398:	48 89 1f             	mov    %rbx,(%rdi)
1406b439b:	49 c1 e6 04          	shl    $0x4,%r14
1406b439f:	4c 03 f3             	add    %rbx,%r14
1406b43a2:	4c 89 77 08          	mov    %r14,0x8(%rdi)
1406b43a6:	48 8d 0c 1e          	lea    (%rsi,%rbx,1),%rcx
1406b43aa:	48 89 4f 10          	mov    %rcx,0x10(%rdi)
1406b43ae:	49 8b c7             	mov    %r15,%rax
1406b43b1:	48 83 c4 30          	add    $0x30,%rsp
1406b43b5:	41 5f                	pop    %r15
1406b43b7:	41 5e                	pop    %r14
1406b43b9:	41 5d                	pop    %r13
1406b43bb:	41 5c                	pop    %r12
1406b43bd:	5f                   	pop    %rdi
1406b43be:	5e                   	pop    %rsi
1406b43bf:	5b                   	pop    %rbx
1406b43c0:	c3                   	ret
1406b43c1:	e8 ca 8d ae ff       	call   0x14019d190
1406b43c6:	cc                   	int3
1406b43c7:	e8 c4 91 ae ff       	call   0x14019d590
1406b43cc:	cc                   	int3
1406b43cd:	e8 d2 5d 77 00       	call   0x140e2a1a4
1406b43d2:	cc                   	int3
1406b43d3:	cc                   	int3
1406b43d4:	cc                   	int3
1406b43d5:	cc                   	int3
1406b43d6:	cc                   	int3
1406b43d7:	cc                   	int3
1406b43d8:	cc                   	int3
1406b43d9:	cc                   	int3
1406b43da:	cc                   	int3
1406b43db:	cc                   	int3
1406b43dc:	cc                   	int3
1406b43dd:	cc                   	int3
1406b43de:	cc                   	int3
1406b43df:	cc                   	int3
1406b43e0:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1406b43e5:	53                   	push   %rbx
1406b43e6:	56                   	push   %rsi
1406b43e7:	57                   	push   %rdi
1406b43e8:	41 54                	push   %r12
1406b43ea:	41 55                	push   %r13
1406b43ec:	41 56                	push   %r14
1406b43ee:	41 57                	push   %r15
1406b43f0:	48 83 ec 30          	sub    $0x30,%rsp
1406b43f4:	4c 8b f2             	mov    %rdx,%r14
1406b43f7:	48 8b f1             	mov    %rcx,%rsi
1406b43fa:	49 b9 aa aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaa,%r9
1406b4401:	aa aa 0a
1406b4404:	49 3b d1             	cmp    %r9,%rdx
1406b4407:	0f 87 0d 02 00 00    	ja     0x1406b461a
1406b440d:	48 8b 49 08          	mov    0x8(%rcx),%rcx
1406b4411:	48 2b 0e             	sub    (%rsi),%rcx
1406b4414:	49 bd ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r13
1406b441b:	aa aa 2a
1406b441e:	49 8b c5             	mov    %r13,%rax
1406b4421:	48 f7 e9             	imul   %rcx
1406b4424:	4c 8b e2             	mov    %rdx,%r12
1406b4427:	49 c1 fc 02          	sar    $0x2,%r12
1406b442b:	49 8b c4             	mov    %r12,%rax
1406b442e:	48 c1 e8 3f          	shr    $0x3f,%rax
1406b4432:	4c 03 e0             	add    %rax,%r12
1406b4435:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
1406b4439:	48 2b 0e             	sub    (%rsi),%rcx
1406b443c:	49 8b c5             	mov    %r13,%rax
1406b443f:	48 f7 e9             	imul   %rcx
1406b4442:	48 c1 fa 02          	sar    $0x2,%rdx
1406b4446:	48 8b c2             	mov    %rdx,%rax
1406b4449:	48 c1 e8 3f          	shr    $0x3f,%rax
1406b444d:	48 03 d0             	add    %rax,%rdx
1406b4450:	48 8b ca             	mov    %rdx,%rcx
1406b4453:	48 d1 e9             	shr    $1,%rcx
1406b4456:	49 8b c1             	mov    %r9,%rax
1406b4459:	48 2b c1             	sub    %rcx,%rax
1406b445c:	48 3b d0             	cmp    %rax,%rdx
1406b445f:	0f 87 af 01 00 00    	ja     0x1406b4614
1406b4465:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
1406b4469:	49 3b c6             	cmp    %r14,%rax
1406b446c:	73 0a                	jae    0x1406b4478
1406b446e:	49 8b c6             	mov    %r14,%rax
1406b4471:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1406b4476:	eb 0e                	jmp    0x1406b4486
1406b4478:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1406b447d:	49 3b c1             	cmp    %r9,%rax
1406b4480:	0f 87 8e 01 00 00    	ja     0x1406b4614
1406b4486:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
1406b448a:	4c 8d 3c c5 00 00 00 	lea    0x0(,%rax,8),%r15
1406b4491:	00
1406b4492:	4d 85 ff             	test   %r15,%r15
1406b4495:	75 0b                	jne    0x1406b44a2
1406b4497:	33 db                	xor    %ebx,%ebx
1406b4499:	8b fb                	mov    %ebx,%edi
1406b449b:	48 89 5c 24 78       	mov    %rbx,0x78(%rsp)
1406b44a0:	eb 49                	jmp    0x1406b44eb
1406b44a2:	49 81 ff 00 10 00 00 	cmp    $0x1000,%r15
1406b44a9:	72 2e                	jb     0x1406b44d9
1406b44ab:	49 8d 4f 27          	lea    0x27(%r15),%rcx
1406b44af:	49 3b cf             	cmp    %r15,%rcx
1406b44b2:	0f 86 5c 01 00 00    	jbe    0x1406b4614
1406b44b8:	e8 4b 6c 76 00       	call   0x140e1b108
1406b44bd:	48 85 c0             	test   %rax,%rax
1406b44c0:	0f 84 5a 01 00 00    	je     0x1406b4620
1406b44c6:	48 8d 78 27          	lea    0x27(%rax),%rdi
1406b44ca:	48 83 e7 e0          	and    $0xffffffffffffffe0,%rdi
1406b44ce:	48 89 47 f8          	mov    %rax,-0x8(%rdi)
1406b44d2:	48 89 7c 24 78       	mov    %rdi,0x78(%rsp)
1406b44d7:	eb 10                	jmp    0x1406b44e9
1406b44d9:	49 8b cf             	mov    %r15,%rcx
1406b44dc:	e8 27 6c 76 00       	call   0x140e1b108
1406b44e1:	48 8b f8             	mov    %rax,%rdi
1406b44e4:	48 89 44 24 78       	mov    %rax,0x78(%rsp)
1406b44e9:	33 db                	xor    %ebx,%ebx
1406b44eb:	4b 8d 04 64          	lea    (%r12,%r12,2),%rax
1406b44ef:	48 8d 0c c7          	lea    (%rdi,%rax,8),%rcx
1406b44f3:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
1406b44f8:	48 89 8c 24 88 00 00 	mov    %rcx,0x88(%rsp)
1406b44ff:	00
1406b4500:	49 8b c6             	mov    %r14,%rax
1406b4503:	49 2b c4             	sub    %r12,%rax
1406b4506:	74 25                	je     0x1406b452d
1406b4508:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
1406b450f:	00
1406b4510:	48 89 19             	mov    %rbx,(%rcx)
1406b4513:	48 89 59 08          	mov    %rbx,0x8(%rcx)
1406b4517:	48 89 59 10          	mov    %rbx,0x10(%rcx)
1406b451b:	48 83 c1 18          	add    $0x18,%rcx
1406b451f:	48 89 8c 24 88 00 00 	mov    %rcx,0x88(%rsp)
1406b4526:	00
1406b4527:	48 83 e8 01          	sub    $0x1,%rax
1406b452b:	75 e3                	jne    0x1406b4510
1406b452d:	4c 8b c6             	mov    %rsi,%r8
1406b4530:	48 8b d1             	mov    %rcx,%rdx
1406b4533:	e8 68 fa ff ff       	call   0x1406b3fa0
1406b4538:	4c 8b 56 08          	mov    0x8(%rsi),%r10
1406b453c:	48 8b cf             	mov    %rdi,%rcx
1406b453f:	4c 8b 0e             	mov    (%rsi),%r9
1406b4542:	4d 3b ca             	cmp    %r10,%r9
1406b4545:	74 37                	je     0x1406b457e
1406b4547:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
1406b454e:	00 00
1406b4550:	4d 8b 41 10          	mov    0x10(%r9),%r8
1406b4554:	49 89 59 10          	mov    %rbx,0x10(%r9)
1406b4558:	49 8b 51 08          	mov    0x8(%r9),%rdx
1406b455c:	49 89 59 08          	mov    %rbx,0x8(%r9)
1406b4560:	49 8b 01             	mov    (%r9),%rax
1406b4563:	49 89 19             	mov    %rbx,(%r9)
1406b4566:	48 89 01             	mov    %rax,(%rcx)
1406b4569:	48 89 51 08          	mov    %rdx,0x8(%rcx)
1406b456d:	4c 89 41 10          	mov    %r8,0x10(%rcx)
1406b4571:	48 83 c1 18          	add    $0x18,%rcx
1406b4575:	49 83 c1 18          	add    $0x18,%r9
1406b4579:	4d 3b ca             	cmp    %r10,%r9
1406b457c:	75 d2                	jne    0x1406b4550
1406b457e:	4c 8b c6             	mov    %rsi,%r8
1406b4581:	48 8b d1             	mov    %rcx,%rdx
1406b4584:	e8 17 fa ff ff       	call   0x1406b3fa0
1406b4589:	90                   	nop
1406b458a:	48 8b 0e             	mov    (%rsi),%rcx
1406b458d:	48 85 c9             	test   %rcx,%rcx
1406b4590:	74 5b                	je     0x1406b45ed
1406b4592:	4c 8b c6             	mov    %rsi,%r8
1406b4595:	48 8b 56 08          	mov    0x8(%rsi),%rdx
1406b4599:	e8 02 fa ff ff       	call   0x1406b3fa0
1406b459e:	4c 8b 06             	mov    (%rsi),%r8
1406b45a1:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
1406b45a5:	49 2b c8             	sub    %r8,%rcx
1406b45a8:	49 8b c5             	mov    %r13,%rax
1406b45ab:	48 f7 e9             	imul   %rcx
1406b45ae:	48 c1 fa 02          	sar    $0x2,%rdx
1406b45b2:	48 8b c2             	mov    %rdx,%rax
1406b45b5:	48 c1 e8 3f          	shr    $0x3f,%rax
1406b45b9:	48 03 d0             	add    %rax,%rdx
1406b45bc:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
1406b45c0:	48 c1 e2 03          	shl    $0x3,%rdx
1406b45c4:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1406b45cb:	72 18                	jb     0x1406b45e5
1406b45cd:	48 83 c2 27          	add    $0x27,%rdx
1406b45d1:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
1406b45d5:	4c 2b c1             	sub    %rcx,%r8
1406b45d8:	49 8d 40 f8          	lea    -0x8(%r8),%rax
1406b45dc:	48 83 f8 1f          	cmp    $0x1f,%rax
1406b45e0:	77 3e                	ja     0x1406b4620
1406b45e2:	4c 8b c1             	mov    %rcx,%r8
1406b45e5:	49 8b c8             	mov    %r8,%rcx
1406b45e8:	e8 57 6b 76 00       	call   0x140e1b144
1406b45ed:	48 89 3e             	mov    %rdi,(%rsi)
1406b45f0:	4b 8d 04 76          	lea    (%r14,%r14,2),%rax
1406b45f4:	48 8d 0c c7          	lea    (%rdi,%rax,8),%rcx
1406b45f8:	48 89 4e 08          	mov    %rcx,0x8(%rsi)
1406b45fc:	49 8d 04 3f          	lea    (%r15,%rdi,1),%rax
1406b4600:	48 89 46 10          	mov    %rax,0x10(%rsi)
1406b4604:	48 83 c4 30          	add    $0x30,%rsp
1406b4608:	41 5f                	pop    %r15
1406b460a:	41 5e                	pop    %r14
1406b460c:	41 5d                	pop    %r13
1406b460e:	41 5c                	pop    %r12
1406b4610:	5f                   	pop    %rdi
1406b4611:	5e                   	pop    %rsi
1406b4612:	5b                   	pop    %rbx
1406b4613:	c3                   	ret
1406b4614:	e8 77 8b ae ff       	call   0x14019d190
1406b4619:	cc                   	int3
1406b461a:	e8 71 8f ae ff       	call   0x14019d590
1406b461f:	cc                   	int3
1406b4620:	e8 7f 5b 77 00       	call   0x140e2a1a4
1406b4625:	cc                   	int3
1406b4626:	cc                   	int3
1406b4627:	cc                   	int3
1406b4628:	cc                   	int3
1406b4629:	cc                   	int3
1406b462a:	cc                   	int3
1406b462b:	cc                   	int3
1406b462c:	cc                   	int3
1406b462d:	cc                   	int3
1406b462e:	cc                   	int3
1406b462f:	cc                   	int3
1406b4630:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1406b4635:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1406b463a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1406b463f:	57                   	push   %rdi
1406b4640:	41 54                	push   %r12
1406b4642:	41 55                	push   %r13
1406b4644:	41 56                	push   %r14
1406b4646:	41 57                	push   %r15
1406b4648:	48 83 ec 40          	sub    $0x40,%rsp
1406b464c:	49 8b d8             	mov    %r8,%rbx
1406b464f:	4c 8b fa             	mov    %rdx,%r15
1406b4652:	4c 8b e9             	mov    %rcx,%r13
1406b4655:	4d 8b 48 10          	mov    0x10(%r8),%r9
1406b4659:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
1406b465e:	76 03                	jbe    0x1406b4663
1406b4660:	4d 8b 00             	mov    (%r8),%r8
1406b4663:	48 bf 25 23 22 84 e4 	movabs $0xcbf29ce484222325,%rdi
1406b466a:	9c f2 cb
1406b466d:	45 33 e4             	xor    %r12d,%r12d
1406b4670:	41 8b d4             	mov    %r12d,%edx
1406b4673:	4d 85 c9             	test   %r9,%r9
1406b4676:	74 2c                	je     0x1406b46a4
1406b4678:	48 b9 b3 01 00 00 00 	movabs $0x100000001b3,%rcx
1406b467f:	01 00 00
1406b4682:	0f 1f 40 00          	nopl   0x0(%rax)
1406b4686:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
1406b468d:	00 00 00
1406b4690:	41 0f b6 04 10       	movzbl (%r8,%rdx,1),%eax
1406b4695:	48 33 f8             	xor    %rax,%rdi
1406b4698:	48 0f af f9          	imul   %rcx,%rdi
1406b469c:	48 ff c2             	inc    %rdx
1406b469f:	49 3b d1             	cmp    %r9,%rdx
1406b46a2:	72 ec                	jb     0x1406b4690
1406b46a4:	4c 8b cf             	mov    %rdi,%r9
1406b46a7:	4c 8b c3             	mov    %rbx,%r8
1406b46aa:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1406b46af:	49 8b cd             	mov    %r13,%rcx
1406b46b2:	e8 49 fb b5 ff       	call   0x140214200
1406b46b7:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
1406b46bc:	48 85 c0             	test   %rax,%rax
1406b46bf:	74 0c                	je     0x1406b46cd
1406b46c1:	49 89 07             	mov    %rax,(%r15)
1406b46c4:	45 88 67 08          	mov    %r12b,0x8(%r15)
1406b46c8:	e9 14 02 00 00       	jmp    0x1406b48e1
1406b46cd:	48 b8 92 24 49 92 24 	movabs $0x492492492492492,%rax
1406b46d4:	49 92 04
1406b46d7:	49 39 45 10          	cmp    %rax,0x10(%r13)
1406b46db:	0f 84 23 02 00 00    	je     0x1406b4904
1406b46e1:	49 8d 6d 08          	lea    0x8(%r13),%rbp
1406b46e5:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
1406b46ea:	4c 89 64 24 38       	mov    %r12,0x38(%rsp)
1406b46ef:	b9 38 00 00 00       	mov    $0x38,%ecx
1406b46f4:	e8 0f 6a 76 00       	call   0x140e1b108
1406b46f9:	48 8b f0             	mov    %rax,%rsi
1406b46fc:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
1406b4701:	48 8b d3             	mov    %rbx,%rdx
1406b4704:	48 8d 48 10          	lea    0x10(%rax),%rcx
1406b4708:	e8 33 43 af ff       	call   0x1401a8a40
1406b470d:	44 89 66 30          	mov    %r12d,0x30(%rsi)
1406b4711:	49 8b 4d 10          	mov    0x10(%r13),%rcx
1406b4715:	f3 41 0f 10 5d 00    	movss  0x0(%r13),%xmm3
1406b471b:	48 83 c1 01          	add    $0x1,%rcx
1406b471f:	0f 57 c0             	xorps  %xmm0,%xmm0
1406b4722:	78 07                	js     0x1406b472b
1406b4724:	f3 48 0f 2a c1       	cvtsi2ss %rcx,%xmm0
1406b4729:	eb 15                	jmp    0x1406b4740
1406b472b:	48 8b c1             	mov    %rcx,%rax
1406b472e:	48 d1 e8             	shr    $1,%rax
1406b4731:	83 e1 01             	and    $0x1,%ecx
1406b4734:	48 0b c1             	or     %rcx,%rax
1406b4737:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
1406b473c:	f3 0f 58 c0          	addss  %xmm0,%xmm0
1406b4740:	49 8b 5d 38          	mov    0x38(%r13),%rbx
1406b4744:	0f 57 d2             	xorps  %xmm2,%xmm2
1406b4747:	48 85 db             	test   %rbx,%rbx
1406b474a:	78 07                	js     0x1406b4753
1406b474c:	f3 48 0f 2a d3       	cvtsi2ss %rbx,%xmm2
1406b4751:	eb 18                	jmp    0x1406b476b
1406b4753:	48 8b cb             	mov    %rbx,%rcx
1406b4756:	48 d1 e9             	shr    $1,%rcx
1406b4759:	48 8b c3             	mov    %rbx,%rax
1406b475c:	83 e0 01             	and    $0x1,%eax
1406b475f:	48 0b c8             	or     %rax,%rcx
1406b4762:	f3 48 0f 2a d1       	cvtsi2ss %rcx,%xmm2
1406b4767:	f3 0f 58 d2          	addss  %xmm2,%xmm2
1406b476b:	0f 28 c8             	movaps %xmm0,%xmm1
1406b476e:	f3 0f 5e ca          	divss  %xmm2,%xmm1
1406b4772:	0f 2f cb             	comiss %xmm3,%xmm1
1406b4775:	0f 86 0e 01 00 00    	jbe    0x1406b4889
1406b477b:	f3 0f 5e c3          	divss  %xmm3,%xmm0
1406b477f:	e8 9c c9 77 00       	call   0x140e31120
1406b4784:	33 c9                	xor    %ecx,%ecx
1406b4786:	f3 0f 10 0d d6 9e 8f 	movss  0x8f9ed6(%rip),%xmm1        # 0x140fae664
1406b478d:	00
1406b478e:	0f 2f c1             	comiss %xmm1,%xmm0
1406b4791:	72 16                	jb     0x1406b47a9
1406b4793:	f3 0f 5c c1          	subss  %xmm1,%xmm0
1406b4797:	0f 2f c1             	comiss %xmm1,%xmm0
1406b479a:	73 0d                	jae    0x1406b47a9
1406b479c:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
1406b47a3:	00 00 80
1406b47a6:	48 8b c8             	mov    %rax,%rcx
1406b47a9:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
1406b47ae:	48 03 c1             	add    %rcx,%rax
1406b47b1:	b9 08 00 00 00       	mov    $0x8,%ecx
1406b47b6:	48 3b c1             	cmp    %rcx,%rax
1406b47b9:	48 0f 47 c8          	cmova  %rax,%rcx
1406b47bd:	48 3b d9             	cmp    %rcx,%rbx
1406b47c0:	73 19                	jae    0x1406b47db
1406b47c2:	48 81 fb 00 02 00 00 	cmp    $0x200,%rbx
1406b47c9:	73 0d                	jae    0x1406b47d8
1406b47cb:	48 8d 1c dd 00 00 00 	lea    0x0(,%rbx,8),%rbx
1406b47d2:	00
1406b47d3:	48 3b d9             	cmp    %rcx,%rbx
1406b47d6:	73 03                	jae    0x1406b47db
1406b47d8:	48 8b d9             	mov    %rcx,%rbx
1406b47db:	48 8b d3             	mov    %rbx,%rdx
1406b47de:	49 8b cd             	mov    %r13,%rcx
1406b47e1:	e8 fa f9 d0 ff       	call   0x1403c41e0
1406b47e6:	49 8b 45 30          	mov    0x30(%r13),%rax
1406b47ea:	48 23 c7             	and    %rdi,%rax
1406b47ed:	48 03 c0             	add    %rax,%rax
1406b47f0:	49 8b 55 18          	mov    0x18(%r13),%rdx