1408744a0:	f2 48 0f 2a 31       	cvtsi2sdq (%rcx),%xmm6
1408744a5:	eb 21                	jmp    0x1408744c8
1408744a7:	a8 12                	test   $0x12,%al
1408744a9:	74 cb                	je     0x140874476
1408744ab:	e8 30 f5 03 00       	call   0x1408b39e0
1408744b0:	44 0f b6 54 24 23    	movzbl 0x23(%rsp),%r10d
1408744b6:	0f 28 f0             	movaps %xmm0,%xmm6
1408744b9:	eb 0d                	jmp    0x1408744c8
1408744bb:	f2 0f 10 33          	movsd  (%rbx),%xmm6
1408744bf:	49 83 c3 08          	add    $0x8,%r11
1408744c3:	4c 89 5c 24 50       	mov    %r11,0x50(%rsp)
1408744c8:	45 85 e4             	test   %r12d,%r12d
1408744cb:	79 08                	jns    0x1408744d5
1408744cd:	41 bc 06 00 00 00    	mov    $0x6,%r12d
1408744d3:	eb 0c                	jmp    0x1408744e1
1408744d5:	b8 00 e1 f5 05       	mov    $0x5f5e100,%eax
1408744da:	44 3b e0             	cmp    %eax,%r12d
1408744dd:	44 0f 4f e0          	cmovg  %eax,%r12d
1408744e1:	66 44 0f 2f f6       	comisd %xmm6,%xmm14
1408744e6:	4c 89 64 24 70       	mov    %r12,0x70(%rsp)
1408744eb:	76 11                	jbe    0x1408744fe
1408744ed:	0f 57 35 ac a1 73 00 	xorps  0x73a1ac(%rip),%xmm6        # 0x140fae6a0
1408744f4:	41 b1 2d             	mov    $0x2d,%r9b
1408744f7:	44 88 4c 24 24       	mov    %r9b,0x24(%rsp)
1408744fc:	eb 06                	jmp    0x140874504
1408744fe:	44 0f b6 4c 24 24    	movzbl 0x24(%rsp),%r9d
140874504:	41 80 fa 03          	cmp    $0x3,%r10b
140874508:	75 0d                	jne    0x140874517
14087450a:	45 85 e4             	test   %r12d,%r12d
14087450d:	7e 08                	jle    0x140874517
14087450f:	41 ff cc             	dec    %r12d
140874512:	4c 89 64 24 70       	mov    %r12,0x70(%rsp)
140874517:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
14087451c:	45 8b c4             	mov    %r12d,%r8d
14087451f:	41 81 e0 ff 0f 00 00 	and    $0xfff,%r8d
140874526:	41 f7 e0             	mul    %r8d
140874529:	41 8b c0             	mov    %r8d,%eax
14087452c:	c1 ea 03             	shr    $0x3,%edx
14087452f:	8d 0c 92             	lea    (%rdx,%rdx,4),%ecx
140874532:	03 c9                	add    %ecx,%ecx
140874534:	2b c1                	sub    %ecx,%eax
140874536:	48 63 c8             	movslq %eax,%rcx
140874539:	48 8d 05 c0 ba 78 ff 	lea    -0x874540(%rip),%rax        # 0x140000000
140874540:	f2 0f 10 94 c8 80 81 	movsd  0x1048180(%rax,%rcx,8),%xmm2
140874547:	04 01
140874549:	41 83 f8 0a          	cmp    $0xa,%r8d
14087454d:	72 0d                	jb     0x14087455c
14087454f:	8b c2                	mov    %edx,%eax
140874551:	f2 41 0f 59 d3       	mulsd  %xmm11,%xmm2
140874556:	48 83 e8 01          	sub    $0x1,%rax
14087455a:	75 f5                	jne    0x140874551
14087455c:	41 80 fa 01          	cmp    $0x1,%r10b
140874560:	75 3e                	jne    0x1408745a0
140874562:	66 48 0f 7e f1       	movq   %xmm6,%rcx
140874567:	b8 56 55 55 55       	mov    $0x55555556,%eax
14087456c:	48 c1 e9 34          	shr    $0x34,%rcx
140874570:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
140874576:	81 e9 ff 03 00 00    	sub    $0x3ff,%ecx
14087457c:	f7 e9                	imul   %ecx
14087457e:	8b c2                	mov    %edx,%eax
140874580:	c1 e8 1f             	shr    $0x1f,%eax
140874583:	03 d0                	add    %eax,%edx
140874585:	41 03 d4             	add    %r12d,%edx
140874588:	83 fa 0f             	cmp    $0xf,%edx
14087458b:	7d 0f                	jge    0x14087459c
14087458d:	0f 28 c6             	movaps %xmm6,%xmm0
140874590:	f2 0f 59 05 f0 f4 7d 	mulsd  0x7df4f0(%rip),%xmm0        # 0x141053a88
140874597:	00
140874598:	f2 0f 58 d0          	addsd  %xmm0,%xmm2
14087459c:	f2 0f 58 f2          	addsd  %xmm2,%xmm6
1408745a0:	33 d2                	xor    %edx,%edx
1408745a2:	66 48 0f 7e f0       	movq   %xmm6,%rax
1408745a7:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
1408745ae:	ff 0f 00
1408745b1:	49 b8 00 00 00 00 00 	movabs $0x7ff0000000000000,%r8
1408745b8:	00 f0 7f
1408745bb:	48 85 c1             	test   %rax,%rcx
1408745be:	8b f2                	mov    %edx,%esi
1408745c0:	0f 95 c1             	setne  %cl
1408745c3:	49 23 c0             	and    %r8,%rax
1408745c6:	49 3b c0             	cmp    %r8,%rax
1408745c9:	0f 94 c0             	sete   %al
1408745cc:	84 c8                	test   %cl,%al
1408745ce:	74 11                	je     0x1408745e1
1408745d0:	48 8d 35 6d a7 7d 00 	lea    0x7da76d(%rip),%rsi        # 0x14104ed44
1408745d7:	bf 03 00 00 00       	mov    $0x3,%edi
1408745dc:	e9 f4 fd ff ff       	jmp    0x1408743d5
1408745e1:	66 41 0f 2f f6       	comisd %xmm14,%xmm6
1408745e6:	0f 86 f3 00 00 00    	jbe    0x1408746df
1408745ec:	66 41 0f 2f f0       	comisd %xmm8,%xmm6
1408745f1:	41 0f 28 c9          	movaps %xmm9,%xmm1
1408745f5:	72 1e                	jb     0x140874615
1408745f7:	81 fe 5e 01 00 00    	cmp    $0x15e,%esi
1408745fd:	7f 16                	jg     0x140874615
1408745ff:	f2 41 0f 59 c8       	mulsd  %xmm8,%xmm1
140874604:	83 c6 64             	add    $0x64,%esi
140874607:	0f 28 c1             	movaps %xmm1,%xmm0
14087460a:	f2 41 0f 59 c0       	mulsd  %xmm8,%xmm0
14087460f:	66 0f 2f f0          	comisd %xmm0,%xmm6
140874613:	73 e2                	jae    0x1408745f7
140874615:	0f 28 c1             	movaps %xmm1,%xmm0
140874618:	f2 41 0f 59 c5       	mulsd  %xmm13,%xmm0
14087461d:	66 0f 2f f0          	comisd %xmm0,%xmm6
140874621:	72 19                	jb     0x14087463c
140874623:	81 fe 5e 01 00 00    	cmp    $0x15e,%esi
140874629:	7f 11                	jg     0x14087463c
14087462b:	0f 28 c8             	movaps %xmm0,%xmm1
14087462e:	83 c6 0a             	add    $0xa,%esi
140874631:	f2 41 0f 59 c5       	mulsd  %xmm13,%xmm0
140874636:	66 0f 2f f0          	comisd %xmm0,%xmm6
14087463a:	73 e7                	jae    0x140874623
14087463c:	0f 28 c1             	movaps %xmm1,%xmm0
14087463f:	f2 0f 59 c7          	mulsd  %xmm7,%xmm0
140874643:	66 0f 2f f0          	comisd %xmm0,%xmm6
140874647:	72 1e                	jb     0x140874667
140874649:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140874650:	81 fe 5e 01 00 00    	cmp    $0x15e,%esi
140874656:	7f 0f                	jg     0x140874667
140874658:	0f 28 c8             	movaps %xmm0,%xmm1
14087465b:	ff c6                	inc    %esi
14087465d:	f2 0f 59 c7          	mulsd  %xmm7,%xmm0
140874661:	66 0f 2f f0          	comisd %xmm0,%xmm6
140874665:	73 e9                	jae    0x140874650
140874667:	f2 0f 5e f1          	divsd  %xmm1,%xmm6
14087466b:	66 44 0f 2f d6       	comisd %xmm6,%xmm10
140874670:	76 1d                	jbe    0x14087468f
140874672:	0f 1f 40 00          	nopl   0x0(%rax)
140874676:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
14087467d:	00 00 00
140874680:	f2 41 0f 59 f4       	mulsd  %xmm12,%xmm6
140874685:	83 ee 08             	sub    $0x8,%esi
140874688:	66 44 0f 2f d6       	comisd %xmm6,%xmm10
14087468d:	77 f1                	ja     0x140874680
14087468f:	66 44 0f 2f ce       	comisd %xmm6,%xmm9
140874694:	76 17                	jbe    0x1408746ad
140874696:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
14087469d:	00 00 00
1408746a0:	f2 0f 59 f7          	mulsd  %xmm7,%xmm6
1408746a4:	ff ce                	dec    %esi
1408746a6:	66 44 0f 2f ce       	comisd %xmm6,%xmm9
1408746ab:	77 f3                	ja     0x1408746a0
1408746ad:	81 fe 5e 01 00 00    	cmp    $0x15e,%esi
1408746b3:	7e 2a                	jle    0x1408746df
1408746b5:	45 84 c9             	test   %r9b,%r9b
1408746b8:	44 88 4d 80          	mov    %r9b,-0x80(%rbp)
1408746bc:	48 8b c2             	mov    %rdx,%rax
1408746bf:	48 8d 75 80          	lea    -0x80(%rbp),%rsi
1408746c3:	0f 95 c0             	setne  %al
1408746c6:	8b fa                	mov    %edx,%edi
1408746c8:	45 84 c9             	test   %r9b,%r9b
1408746cb:	40 0f 95 c7          	setne  %dil
1408746cf:	83 c7 03             	add    $0x3,%edi
1408746d2:	c7 44 05 80 49 6e 66 	movl   $0x666e49,-0x80(%rbp,%rax,1)
1408746d9:	00
1408746da:	e9 f6 fc ff ff       	jmp    0x1408743d5
1408746df:	48 8d 7d 80          	lea    -0x80(%rbp),%rdi
1408746e3:	8b c6                	mov    %esi,%eax
1408746e5:	41 80 fa 01          	cmp    $0x1,%r10b
1408746e9:	0f 84 df 00 00 00    	je     0x1408747ce
1408746ef:	f2 0f 58 f2          	addsd  %xmm2,%xmm6
1408746f3:	66 0f 2f f7          	comisd %xmm7,%xmm6
1408746f7:	0f 28 c6             	movaps %xmm6,%xmm0
1408746fa:	72 08                	jb     0x140874704
1408746fc:	f2 0f 59 35 3c f3 78 	mulsd  0x78f33c(%rip),%xmm6        # 0x141003a40
140874703:	00
140874704:	ff c6                	inc    %esi
140874706:	66 0f 2f c7          	comisd %xmm7,%xmm0
14087470a:	0f 42 f0             	cmovb  %eax,%esi
14087470d:	41 80 fa 03          	cmp    $0x3,%r10b
140874711:	0f 85 b7 00 00 00    	jne    0x1408747ce
140874717:	45 84 f6             	test   %r14b,%r14b
14087471a:	41 0f 94 c5          	sete   %r13b
14087471e:	83 fe fc             	cmp    $0xfffffffc,%esi
140874721:	0f 8c 9b 00 00 00    	jl     0x1408747c2
140874727:	41 3b f4             	cmp    %r12d,%esi
14087472a:	0f 8f 92 00 00 00    	jg     0x1408747c2
140874730:	44 2b e6             	sub    %esi,%r12d
140874733:	c6 44 24 23 01       	movb   $0x1,0x23(%rsp)
140874738:	4c 89 64 24 70       	mov    %r12,0x70(%rsp)
14087473d:	8b de                	mov    %esi,%ebx
14087473f:	4c 8b 44 24 38       	mov    0x38(%rsp),%r8
140874744:	8b c2                	mov    %edx,%eax
140874746:	85 db                	test   %ebx,%ebx
140874748:	49 63 cc             	movslq %r12d,%rcx
14087474b:	4d 63 f8             	movslq %r8d,%r15
14087474e:	0f 4f c3             	cmovg  %ebx,%eax
140874751:	48 98                	cltq
140874753:	49 03 c7             	add    %r15,%rax
140874756:	48 8d 51 0f          	lea    0xf(%rcx),%rdx
14087475a:	48 03 d0             	add    %rax,%rdx
14087475d:	48 83 fa 46          	cmp    $0x46,%rdx
140874761:	7e 1b                	jle    0x14087477e
140874763:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
140874768:	e8 c3 86 04 00       	call   0x1408bce30
14087476d:	48 89 44 24 68       	mov    %rax,0x68(%rsp)
140874772:	48 8b f8             	mov    %rax,%rdi
140874775:	48 85 c0             	test   %rax,%rax
140874778:	0f 84 63 0d 00 00    	je     0x1408754e1
14087477e:	0f b6 54 24 20       	movzbl 0x20(%rsp),%edx
140874783:	45 85 e4             	test   %r12d,%r12d
140874786:	44 0f b6 4c 24 24    	movzbl 0x24(%rsp),%r9d
14087478c:	4c 8b df             	mov    %rdi,%r11
14087478f:	41 0f 9f c4          	setg   %r12b
140874793:	48 89 7c 24 28       	mov    %rdi,0x28(%rsp)
140874798:	44 0a e2             	or     %dl,%r12b
14087479b:	44 0a 64 24 48       	or     0x48(%rsp),%r12b
1408747a0:	8d 0c 92             	lea    (%rdx,%rdx,4),%ecx
1408747a3:	44 8d 34 4d 10 00 00 	lea    0x10(,%rcx,2),%r14d
1408747aa:	00
1408747ab:	45 84 c9             	test   %r9b,%r9b
1408747ae:	74 06                	je     0x1408747b6
1408747b0:	44 88 0f             	mov    %r9b,(%rdi)
1408747b3:	48 ff c7             	inc    %rdi
1408747b6:	85 db                	test   %ebx,%ebx
1408747b8:	79 2b                	jns    0x1408747e5
1408747ba:	c6 07 30             	movb   $0x30,(%rdi)
1408747bd:	48 ff c7             	inc    %rdi
1408747c0:	eb 4f                	jmp    0x140874811
1408747c2:	c6 44 24 23 02       	movb   $0x2,0x23(%rsp)
1408747c7:	8b da                	mov    %edx,%ebx
1408747c9:	e9 71 ff ff ff       	jmp    0x14087473f
1408747ce:	44 0f b6 6c 24 20    	movzbl 0x20(%rsp),%r13d
1408747d4:	41 80 fa 02          	cmp    $0x2,%r10b
1408747d8:	0f 85 5f ff ff ff    	jne    0x14087473d
1408747de:	8b da                	mov    %edx,%ebx
1408747e0:	e9 5a ff ff ff       	jmp    0x14087473f
1408747e5:	45 85 f6             	test   %r14d,%r14d
1408747e8:	7f 04                	jg     0x1408747ee
1408747ea:	b0 30                	mov    $0x30,%al
1408747ec:	eb 19                	jmp    0x140874807
1408747ee:	f2 0f 2c c6          	cvttsd2si %xmm6,%eax
1408747f2:	41 ff ce             	dec    %r14d
1408747f5:	66 0f 6e c0          	movd   %eax,%xmm0
1408747f9:	04 30                	add    $0x30,%al
1408747fb:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
1408747ff:	f2 0f 5c f0          	subsd  %xmm0,%xmm6
140874803:	f2 0f 59 f7          	mulsd  %xmm7,%xmm6
140874807:	88 07                	mov    %al,(%rdi)
140874809:	48 ff c7             	inc    %rdi
14087480c:	83 eb 01             	sub    $0x1,%ebx
14087480f:	79 d4                	jns    0x1408747e5
140874811:	45 84 e4             	test   %r12b,%r12b
140874814:	74 06                	je     0x14087481c
140874816:	c6 07 2e             	movb   $0x2e,(%rdi)
140874819:	48 ff c7             	inc    %rdi
14087481c:	83 c3 01             	add    $0x1,%ebx
14087481f:	79 2b                	jns    0x14087484c
140874821:	f7 db                	neg    %ebx
140874823:	b2 30                	mov    $0x30,%dl
140874825:	44 8b c3             	mov    %ebx,%r8d
140874828:	48 8b cf             	mov    %rdi,%rcx
14087482b:	e8 80 ae 66 00       	call   0x140edf6b0
140874830:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
140874835:	48 03 fb             	add    %rbx,%rdi
140874838:	4c 8b 5c 24 28       	mov    0x28(%rsp),%r11
14087483d:	2b cb                	sub    %ebx,%ecx
14087483f:	44 0f b6 4c 24 24    	movzbl 0x24(%rsp),%r9d
140874845:	0f b6 54 24 20       	movzbl 0x20(%rsp),%edx
14087484a:	eb 05                	jmp    0x140874851
14087484c:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
140874851:	85 c9                	test   %ecx,%ecx
140874853:	7e 2d                	jle    0x140874882
140874855:	ff c9                	dec    %ecx
140874857:	45 85 f6             	test   %r14d,%r14d
14087485a:	7f 04                	jg     0x140874860
14087485c:	b0 30                	mov    $0x30,%al
14087485e:	eb 19                	jmp    0x140874879
140874860:	f2 0f 2c c6          	cvttsd2si %xmm6,%eax
140874864:	41 ff ce             	dec    %r14d
140874867:	66 0f 6e c0          	movd   %eax,%xmm0
14087486b:	04 30                	add    $0x30,%al
14087486d:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
140874871:	f2 0f 5c f0          	subsd  %xmm0,%xmm6
140874875:	f2 0f 59 f7          	mulsd  %xmm7,%xmm6
140874879:	88 07                	mov    %al,(%rdi)
14087487b:	48 ff c7             	inc    %rdi
14087487e:	85 c9                	test   %ecx,%ecx
140874880:	7f d3                	jg     0x140874855
140874882:	45 84 ed             	test   %r13b,%r13b
140874885:	74 33                	je     0x1408748ba
140874887:	45 84 e4             	test   %r12b,%r12b
14087488a:	74 2e                	je     0x1408748ba
14087488c:	80 7f ff 30          	cmpb   $0x30,-0x1(%rdi)
140874890:	75 0c                	jne    0x14087489e
140874892:	48 ff cf             	dec    %rdi
140874895:	c6 07 00             	movb   $0x0,(%rdi)
140874898:	80 7f ff 30          	cmpb   $0x30,-0x1(%rdi)
14087489c:	74 f4                	je     0x140874892
14087489e:	80 7f ff 2e          	cmpb   $0x2e,-0x1(%rdi)
1408748a2:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
1408748a6:	75 12                	jne    0x1408748ba
1408748a8:	84 d2                	test   %dl,%dl
1408748aa:	74 08                	je     0x1408748b4
1408748ac:	c6 07 30             	movb   $0x30,(%rdi)
1408748af:	48 ff c7             	inc    %rdi
1408748b2:	eb 06                	jmp    0x1408748ba
1408748b4:	48 8b f8             	mov    %rax,%rdi
1408748b7:	c6 00 00             	movb   $0x0,(%rax)
1408748ba:	80 7c 24 23 02       	cmpb   $0x2,0x23(%rsp)
1408748bf:	0f 85 80 00 00 00    	jne    0x140874945
1408748c5:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
1408748ca:	48 8d 0d ef 37 7d 00 	lea    0x7d37ef(%rip),%rcx        # 0x1410480c0
1408748d1:	0f b6 40 04          	movzbl 0x4(%rax),%eax
1408748d5:	0f b6 04 08          	movzbl (%rax,%rcx,1),%eax
1408748d9:	88 07                	mov    %al,(%rdi)
1408748db:	85 f6                	test   %esi,%esi
1408748dd:	79 0c                	jns    0x1408748eb
1408748df:	c6 47 01 2d          	movb   $0x2d,0x1(%rdi)
1408748e3:	48 83 c7 02          	add    $0x2,%rdi
1408748e7:	f7 de                	neg    %esi
1408748e9:	eb 08                	jmp    0x1408748f3
1408748eb:	c6 47 01 2b          	movb   $0x2b,0x1(%rdi)
1408748ef:	48 83 c7 02          	add    $0x2,%rdi
1408748f3:	83 fe 64             	cmp    $0x64,%esi
1408748f6:	7c 1e                	jl     0x140874916
1408748f8:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
1408748fd:	f7 ee                	imul   %esi
1408748ff:	c1 fa 05             	sar    $0x5,%edx
140874902:	8b c2                	mov    %edx,%eax
140874904:	c1 e8 1f             	shr    $0x1f,%eax
140874907:	03 d0                	add    %eax,%edx
140874909:	8d 42 30             	lea    0x30(%rdx),%eax
14087490c:	88 07                	mov    %al,(%rdi)
14087490e:	48 ff c7             	inc    %rdi
140874911:	6b c2 9c             	imul   $0xffffff9c,%edx,%eax
140874914:	03 f0                	add    %eax,%esi
140874916:	b8 67 66 66 66       	mov    $0x66666667,%eax
14087491b:	f7 ee                	imul   %esi
14087491d:	c1 fa 02             	sar    $0x2,%edx
140874920:	8b c2                	mov    %edx,%eax
140874922:	c1 e8 1f             	shr    $0x1f,%eax
140874925:	03 d0                	add    %eax,%edx
140874927:	8d 42 30             	lea    0x30(%rdx),%eax
14087492a:	88 07                	mov    %al,(%rdi)
14087492c:	0f b6 c2             	movzbl %dl,%eax
14087492f:	c0 e2 02             	shl    $0x2,%dl
140874932:	02 c2                	add    %dl,%al
140874934:	02 c0                	add    %al,%al
140874936:	40 2a f0             	sub    %al,%sil
140874939:	40 80 c6 30          	add    $0x30,%sil
14087493d:	40 88 77 01          	mov    %sil,0x1(%rdi)
140874941:	48 83 c7 02          	add    $0x2,%rdi
140874945:	c6 07 00             	movb   $0x0,(%rdi)
140874948:	41 2b fb             	sub    %r11d,%edi
14087494b:	80 7c 24 30 00       	cmpb   $0x0,0x30(%rsp)
140874950:	0f 84 7a fa ff ff    	je     0x1408743d0
140874956:	44 0f b6 74 24 21    	movzbl 0x21(%rsp),%r14d
14087495c:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140874961:	45 84 f6             	test   %r14b,%r14b
140874964:	75 4b                	jne    0x1408749b1