140a58421:	48 05 ff 03 00 00    	add    $0x3ff,%rax
140a58427:	48 c1 e0 34          	shl    $0x34,%rax
140a5842b:	f2 48 0f 2c d0       	cvttsd2si %xmm0,%rdx
140a58430:	49 03 d0             	add    %r8,%rdx
140a58433:	48 0b d0             	or     %rax,%rdx
140a58436:	66 0f 2f e1          	comisd %xmm1,%xmm4
140a5843a:	49 0f 46 c9          	cmovbe %r9,%rcx
140a5843e:	48 0b d1             	or     %rcx,%rdx
140a58441:	48 8b cb             	mov    %rbx,%rcx
140a58444:	48 83 c4 20          	add    $0x20,%rsp
140a58448:	5b                   	pop    %rbx
140a58449:	e9 d2 f8 ff ff       	jmp    0x140a57d20
140a5844e:	cc                   	int3
140a5844f:	cc                   	int3
140a58450:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140a58455:	55                   	push   %rbp
140a58456:	56                   	push   %rsi
140a58457:	57                   	push   %rdi
140a58458:	48 8d 6c 24 80       	lea    -0x80(%rsp),%rbp
140a5845d:	48 81 ec 80 01 00 00 	sub    $0x180,%rsp
140a58464:	0f 29 b4 24 70 01 00 	movaps %xmm6,0x170(%rsp)
140a5846b:	00
140a5846c:	48 8b 05 8d 0a 96 00 	mov    0x960a8d(%rip),%rax        # 0x1413b8f00
140a58473:	48 33 c4             	xor    %rsp,%rax
140a58476:	48 89 45 60          	mov    %rax,0x60(%rbp)
140a5847a:	0f 28 f1             	movaps %xmm1,%xmm6
140a5847d:	48 8b f1             	mov    %rcx,%rsi
140a58480:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%rsp)
140a58487:	00
140a58488:	ba 01 00 00 00       	mov    $0x1,%edx
140a5848d:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
140a58492:	e8 d9 5a 78 ff       	call   0x1401ddf70
140a58497:	90                   	nop
140a58498:	ba 35 00 00 00       	mov    $0x35,%edx
140a5849d:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140a584a2:	e8 1d 68 3a 00       	call   0x140dfecc4
140a584a7:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
140a584ac:	48 63 51 04          	movslq 0x4(%rcx),%rdx
140a584b0:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
140a584b5:	48 03 ca             	add    %rdx,%rcx
140a584b8:	48 8b 50 08          	mov    0x8(%rax),%rdx
140a584bc:	48 8b 00             	mov    (%rax),%rax
140a584bf:	ff 15 5b b5 52 00    	call   *0x52b55b(%rip)        # 0x140f83a20
140a584c5:	0f 28 ce             	movaps %xmm6,%xmm1
140a584c8:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
140a584cd:	e8 fe 49 de ff       	call   0x14083ced0
140a584d2:	90                   	nop
140a584d3:	0f 57 c0             	xorps  %xmm0,%xmm0
140a584d6:	0f 11 45 40          	movups %xmm0,0x40(%rbp)
140a584da:	33 ff                	xor    %edi,%edi
140a584dc:	48 89 7d 50          	mov    %rdi,0x50(%rbp)
140a584e0:	41 b9 0f 00 00 00    	mov    $0xf,%r9d
140a584e6:	4c 89 4d 58          	mov    %r9,0x58(%rbp)
140a584ea:	40 88 7d 40          	mov    %dil,0x40(%rbp)
140a584ee:	c7 44 24 20 02 00 00 	movl   $0x2,0x20(%rsp)
140a584f5:	00
140a584f6:	33 c0                	xor    %eax,%eax
140a584f8:	0f 11 44 24 30       	movups %xmm0,0x30(%rsp)
140a584fd:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140a58502:	48 8b 4d c8          	mov    -0x38(%rbp),%rcx
140a58506:	8b c1                	mov    %ecx,%eax
140a58508:	24 22                	and    $0x22,%al
140a5850a:	3c 02                	cmp    $0x2,%al
140a5850c:	74 22                	je     0x140a58530
140a5850e:	48 8b 45 98          	mov    -0x68(%rbp),%rax
140a58512:	4c 8b 00             	mov    (%rax),%r8
140a58515:	4d 85 c0             	test   %r8,%r8
140a58518:	74 16                	je     0x140a58530
140a5851a:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
140a5851f:	48 8b 10             	mov    (%rax),%rdx
140a58522:	4c 3b 45 c0          	cmp    -0x40(%rbp),%r8
140a58526:	4c 0f 42 45 c0       	cmovb  -0x40(%rbp),%r8
140a5852b:	4c 2b c2             	sub    %rdx,%r8
140a5852e:	eb 32                	jmp    0x140a58562
140a58530:	f6 c1 04             	test   $0x4,%cl
140a58533:	75 23                	jne    0x140a58558
140a58535:	48 8b 45 90          	mov    -0x70(%rbp),%rax
140a58539:	48 8b 08             	mov    (%rax),%rcx
140a5853c:	48 85 c9             	test   %rcx,%rcx
140a5853f:	74 17                	je     0x140a58558
140a58541:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
140a58546:	48 8b 10             	mov    (%rax),%rdx
140a58549:	48 8b 45 a8          	mov    -0x58(%rbp),%rax
140a5854d:	4c 63 00             	movslq (%rax),%r8
140a58550:	4c 2b c2             	sub    %rdx,%r8
140a58553:	4c 03 c1             	add    %rcx,%r8
140a58556:	eb 0a                	jmp    0x140a58562
140a58558:	4c 8b 44 24 38       	mov    0x38(%rsp),%r8
140a5855d:	48 8b 54 24 30       	mov    0x30(%rsp),%rdx
140a58562:	48 85 d2             	test   %rdx,%rdx
140a58565:	74 11                	je     0x140a58578
140a58567:	48 8d 4d 40          	lea    0x40(%rbp),%rcx
140a5856b:	e8 60 6e 74 ff       	call   0x14019f3d0
140a58570:	4c 8b 4d 58          	mov    0x58(%rbp),%r9
140a58574:	48 8b 7d 50          	mov    0x50(%rbp),%rdi
140a58578:	48 8d 5d 40          	lea    0x40(%rbp),%rbx
140a5857c:	49 83 f9 0f          	cmp    $0xf,%r9
140a58580:	48 0f 47 5d 40       	cmova  0x40(%rbp),%rbx
140a58585:	48 8b d7             	mov    %rdi,%rdx
140a58588:	48 8b ce             	mov    %rsi,%rcx
140a5858b:	e8 e0 f8 ff ff       	call   0x140a57e70
140a58590:	84 c0                	test   %al,%al
140a58592:	75 04                	jne    0x140a58598
140a58594:	32 db                	xor    %bl,%bl
140a58596:	eb 24                	jmp    0x140a585bc
140a58598:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
140a5859d:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
140a585a2:	0f 28 44 24 30       	movaps 0x30(%rsp),%xmm0
140a585a7:	66 0f 7f 44 24 30    	movdqa %xmm0,0x30(%rsp)
140a585ad:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140a585b2:	48 8b ce             	mov    %rsi,%rcx
140a585b5:	e8 f6 00 00 00       	call   0x140a586b0
140a585ba:	b3 01                	mov    $0x1,%bl
140a585bc:	48 8b 55 58          	mov    0x58(%rbp),%rdx
140a585c0:	48 83 fa 0f          	cmp    $0xf,%rdx
140a585c4:	76 31                	jbe    0x140a585f7
140a585c6:	48 ff c2             	inc    %rdx
140a585c9:	48 8b 4d 40          	mov    0x40(%rbp),%rcx
140a585cd:	48 8b c1             	mov    %rcx,%rax
140a585d0:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140a585d7:	72 19                	jb     0x140a585f2
140a585d9:	48 83 c2 27          	add    $0x27,%rdx
140a585dd:	48 8b 49 f8          	mov    -0x8(%rcx),%rcx
140a585e1:	48 2b c1             	sub    %rcx,%rax
140a585e4:	48 83 c0 f8          	add    $0xfffffffffffffff8,%rax
140a585e8:	48 83 f8 1f          	cmp    $0x1f,%rax
140a585ec:	0f 87 b1 00 00 00    	ja     0x140a586a3
140a585f2:	e8 4d 2b 3c 00       	call   0x140e1b144
140a585f7:	48 c7 45 50 00 00 00 	movq   $0x0,0x50(%rbp)
140a585fe:	00
140a585ff:	48 c7 45 58 0f 00 00 	movq   $0xf,0x58(%rbp)
140a58606:	00
140a58607:	c6 45 40 00          	movb   $0x0,0x40(%rbp)
140a5860b:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
140a58610:	48 63 48 04          	movslq 0x4(%rax),%rcx
140a58614:	48 8d 05 75 12 55 00 	lea    0x551275(%rip),%rax        # 0x140fa9890
140a5861b:	48 89 44 0c 50       	mov    %rax,0x50(%rsp,%rcx,1)
140a58620:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
140a58625:	48 63 48 04          	movslq 0x4(%rax),%rcx
140a58629:	8d 91 78 ff ff ff    	lea    -0x88(%rcx),%edx
140a5862f:	89 54 0c 4c          	mov    %edx,0x4c(%rsp,%rcx,1)
140a58633:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
140a58638:	e8 b3 8c 78 ff       	call   0x1401e12f0
140a5863d:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
140a58642:	48 63 48 04          	movslq 0x4(%rax),%rcx
140a58646:	48 8d 05 2b 11 55 00 	lea    0x55112b(%rip),%rax        # 0x140fa9778
140a5864d:	48 89 44 0c 50       	mov    %rax,0x50(%rsp,%rcx,1)
140a58652:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
140a58657:	48 63 51 04          	movslq 0x4(%rcx),%rdx
140a5865b:	44 8d 42 f0          	lea    -0x10(%rdx),%r8d
140a5865f:	44 89 44 14 4c       	mov    %r8d,0x4c(%rsp,%rdx,1)
140a58664:	48 8d 05 75 10 55 00 	lea    0x551075(%rip),%rax        # 0x140fa96e0
140a5866b:	48 89 45 d8          	mov    %rax,-0x28(%rbp)
140a5866f:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
140a58673:	e8 8c 43 3a 00       	call   0x140dfca04
140a58678:	90                   	nop
140a58679:	0f b6 c3             	movzbl %bl,%eax
140a5867c:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
140a58680:	48 33 cc             	xor    %rsp,%rcx
140a58683:	e8 78 2e 3c 00       	call   0x140e1b500
140a58688:	48 8b 9c 24 b0 01 00 	mov    0x1b0(%rsp),%rbx
140a5868f:	00
140a58690:	0f 28 b4 24 70 01 00 	movaps 0x170(%rsp),%xmm6
140a58697:	00
140a58698:	48 81 c4 80 01 00 00 	add    $0x180,%rsp
140a5869f:	5f                   	pop    %rdi
140a586a0:	5e                   	pop    %rsi
140a586a1:	5d                   	pop    %rbp
140a586a2:	c3                   	ret
140a586a3:	e8 fc 1a 3d 00       	call   0x140e2a1a4
140a586a8:	90                   	nop
140a586a9:	cc                   	int3
140a586aa:	cc                   	int3
140a586ab:	cc                   	int3
140a586ac:	cc                   	int3
140a586ad:	cc                   	int3
140a586ae:	cc                   	int3
140a586af:	cc                   	int3
140a586b0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a586b5:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140a586ba:	57                   	push   %rdi
140a586bb:	48 83 ec 20          	sub    $0x20,%rsp
140a586bf:	48 8b 7a 08          	mov    0x8(%rdx),%rdi
140a586c3:	48 8b d9             	mov    %rcx,%rbx
140a586c6:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a586ca:	4c 8b 43 18          	mov    0x18(%rbx),%r8
140a586ce:	48 8b 41 08          	mov    0x8(%rcx),%rax
140a586d2:	4c 8b 09             	mov    (%rcx),%r9
140a586d5:	48 8b f0             	mov    %rax,%rsi
140a586d8:	49 2b f1             	sub    %r9,%rsi
140a586db:	4c 3b c6             	cmp    %rsi,%r8
140a586de:	75 10                	jne    0x140a586f0
140a586e0:	4c 8b 02             	mov    (%rdx),%r8
140a586e3:	4c 8b cf             	mov    %rdi,%r9
140a586e6:	48 8b d0             	mov    %rax,%rdx
140a586e9:	e8 82 8e fb ff       	call   0x140a11570
140a586ee:	eb 4c                	jmp    0x140a5873c
140a586f0:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
140a586f5:	49 8d 04 38          	lea    (%r8,%rdi,1),%rax
140a586f9:	4c 8b 32             	mov    (%rdx),%r14
140a586fc:	4b 8d 0c 08          	lea    (%r8,%r9,1),%rcx
140a58700:	49 8b d6             	mov    %r14,%rdx
140a58703:	48 3b c6             	cmp    %rsi,%rax
140a58706:	77 0a                	ja     0x140a58712
140a58708:	4c 8b c7             	mov    %rdi,%r8
140a5870b:	e8 00 69 48 00       	call   0x140edf010
140a58710:	eb 25                	jmp    0x140a58737
140a58712:	49 2b f0             	sub    %r8,%rsi
140a58715:	4c 8b c6             	mov    %rsi,%r8
140a58718:	e8 f3 68 48 00       	call   0x140edf010
140a5871d:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
140a58721:	4d 8d 04 36          	lea    (%r14,%rsi,1),%r8
140a58725:	4c 8b cf             	mov    %rdi,%r9
140a58728:	4d 2b c8             	sub    %r8,%r9
140a5872b:	4d 03 ce             	add    %r14,%r9
140a5872e:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a58732:	e8 39 8e fb ff       	call   0x140a11570
140a58737:	4c 8b 74 24 30       	mov    0x30(%rsp),%r14
140a5873c:	48 01 7b 18          	add    %rdi,0x18(%rbx)
140a58740:	b0 01                	mov    $0x1,%al
140a58742:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a58747:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a5874c:	48 83 c4 20          	add    $0x20,%rsp
140a58750:	5f                   	pop    %rdi
140a58751:	c3                   	ret
140a58752:	cc                   	int3
140a58753:	cc                   	int3
140a58754:	cc                   	int3
140a58755:	cc                   	int3
140a58756:	cc                   	int3
140a58757:	cc                   	int3
140a58758:	cc                   	int3
140a58759:	cc                   	int3
140a5875a:	cc                   	int3
140a5875b:	cc                   	int3
140a5875c:	cc                   	int3
140a5875d:	cc                   	int3
140a5875e:	cc                   	int3
140a5875f:	cc                   	int3
140a58760:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a58765:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140a5876a:	57                   	push   %rdi
140a5876b:	48 83 ec 30          	sub    $0x30,%rsp
140a5876f:	48 8b 72 08          	mov    0x8(%rdx),%rsi
140a58773:	48 8b da             	mov    %rdx,%rbx
140a58776:	48 8b d6             	mov    %rsi,%rdx
140a58779:	48 8b f9             	mov    %rcx,%rdi
140a5877c:	e8 ef f6 ff ff       	call   0x140a57e70
140a58781:	84 c0                	test   %al,%al
140a58783:	75 10                	jne    0x140a58795
140a58785:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140a5878a:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
140a5878f:	48 83 c4 30          	add    $0x30,%rsp
140a58793:	5f                   	pop    %rdi
140a58794:	c3                   	ret
140a58795:	48 8b 03             	mov    (%rbx),%rax
140a58798:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
140a5879d:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140a587a2:	48 8b cf             	mov    %rdi,%rcx
140a587a5:	48 89 74 24 28       	mov    %rsi,0x28(%rsp)
140a587aa:	0f 28 44 24 20       	movaps 0x20(%rsp),%xmm0
140a587af:	66 0f 7f 44 24 20    	movdqa %xmm0,0x20(%rsp)
140a587b5:	e8 f6 fe ff ff       	call   0x140a586b0
140a587ba:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140a587bf:	b0 01                	mov    $0x1,%al
140a587c1:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
140a587c6:	48 83 c4 30          	add    $0x30,%rsp
140a587ca:	5f                   	pop    %rdi
140a587cb:	c3                   	ret
140a587cc:	cc                   	int3
140a587cd:	cc                   	int3
140a587ce:	cc                   	int3
140a587cf:	cc                   	int3
140a587d0:	88 54 24 10          	mov    %dl,0x10(%rsp)
140a587d4:	53                   	push   %rbx
140a587d5:	48 83 ec 20          	sub    $0x20,%rsp
140a587d9:	48 8b d9             	mov    %rcx,%rbx
140a587dc:	44 0f b6 c2          	movzbl %dl,%r8d
140a587e0:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a587e4:	4c 8b 53 18          	mov    0x18(%rbx),%r10
140a587e8:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a587ec:	4c 8b 09             	mov    (%rcx),%r9
140a587ef:	48 8b c2             	mov    %rdx,%rax
140a587f2:	49 2b c1             	sub    %r9,%rax
140a587f5:	4c 3b d0             	cmp    %rax,%r10
140a587f8:	75 2f                	jne    0x140a58829
140a587fa:	48 3b 51 10          	cmp    0x10(%rcx),%rdx
140a587fe:	74 13                	je     0x140a58813
140a58800:	44 88 02             	mov    %r8b,(%rdx)
140a58803:	b0 01                	mov    $0x1,%al
140a58805:	48 ff 41 08          	incq   0x8(%rcx)
140a58809:	48 ff 43 18          	incq   0x18(%rbx)
140a5880d:	48 83 c4 20          	add    $0x20,%rsp
140a58811:	5b                   	pop    %rbx
140a58812:	c3                   	ret
140a58813:	4c 8d 44 24 38       	lea    0x38(%rsp),%r8
140a58818:	e8 63 f2 ff ff       	call   0x140a57a80
140a5881d:	48 ff 43 18          	incq   0x18(%rbx)
140a58821:	b0 01                	mov    $0x1,%al
140a58823:	48 83 c4 20          	add    $0x20,%rsp
140a58827:	5b                   	pop    %rbx
140a58828:	c3                   	ret
140a58829:	47 88 04 0a          	mov    %r8b,(%r10,%r9,1)
140a5882d:	b0 01                	mov    $0x1,%al
140a5882f:	48 ff 43 18          	incq   0x18(%rbx)
140a58833:	48 83 c4 20          	add    $0x20,%rsp
140a58837:	5b                   	pop    %rbx
140a58838:	c3                   	ret
140a58839:	cc                   	int3
140a5883a:	cc                   	int3
140a5883b:	cc                   	int3
140a5883c:	cc                   	int3
140a5883d:	cc                   	int3
140a5883e:	cc                   	int3
140a5883f:	cc                   	int3
140a58840:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a58845:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140a5884a:	57                   	push   %rdi
140a5884b:	48 83 ec 20          	sub    $0x20,%rsp
140a5884f:	48 8b d9             	mov    %rcx,%rbx
140a58852:	48 8d 7c 24 30       	lea    0x30(%rsp),%rdi
140a58857:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a5885b:	48 0f ca             	bswap  %rdx
140a5885e:	48 89 54 24 30       	mov    %rdx,0x30(%rsp)
140a58863:	4c 8b 43 18          	mov    0x18(%rbx),%r8
140a58867:	48 8b 41 08          	mov    0x8(%rcx),%rax
140a5886b:	4c 8b 09             	mov    (%rcx),%r9
140a5886e:	48 8b f0             	mov    %rax,%rsi
140a58871:	49 2b f1             	sub    %r9,%rsi
140a58874:	4c 3b c6             	cmp    %rsi,%r8
140a58877:	75 0e                	jne    0x140a58887
140a58879:	41 b9 08 00 00 00    	mov    $0x8,%r9d
140a5887f:	4c 8b c7             	mov    %rdi,%r8
140a58882:	48 8b d0             	mov    %rax,%rdx
140a58885:	eb 33                	jmp    0x140a588ba
140a58887:	49 8d 40 08          	lea    0x8(%r8),%rax
140a5888b:	4b 8d 0c 08          	lea    (%r8,%r9,1),%rcx
140a5888f:	48 3b c6             	cmp    %rsi,%rax
140a58892:	77 05                	ja     0x140a58899
140a58894:	48 89 11             	mov    %rdx,(%rcx)
140a58897:	eb 26                	jmp    0x140a588bf
140a58899:	49 2b f0             	sub    %r8,%rsi
140a5889c:	48 8b d7             	mov    %rdi,%rdx
140a5889f:	4c 8b c6             	mov    %rsi,%r8
140a588a2:	e8 69 67 48 00       	call   0x140edf010
140a588a7:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
140a588ab:	4c 8d 04 37          	lea    (%rdi,%rsi,1),%r8
140a588af:	49 2b f8             	sub    %r8,%rdi
140a588b2:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a588b6:	4c 8d 4f 08          	lea    0x8(%rdi),%r9