140e60568:	48 83 ec 30          	sub    $0x30,%rsp
140e6056c:	49 8b f9             	mov    %r9,%rdi
140e6056f:	48 8b f1             	mov    %rcx,%rsi
140e60572:	48 85 c9             	test   %rcx,%rcx
140e60575:	75 32                	jne    0x140e605a9
140e60577:	bb 16 00 00 00       	mov    $0x16,%ebx
140e6057c:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
140e60581:	45 33 c9             	xor    %r9d,%r9d
140e60584:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140e60589:	45 33 c0             	xor    %r8d,%r8d
140e6058c:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
140e60592:	33 d2                	xor    %edx,%edx
140e60594:	33 c9                	xor    %ecx,%ecx
140e60596:	89 58 2c             	mov    %ebx,0x2c(%rax)
140e60599:	c6 40 30 01          	movb   $0x1,0x30(%rax)
140e6059d:	e8 16 9b fc ff       	call   0x140e2a0b8
140e605a2:	8b c3                	mov    %ebx,%eax
140e605a4:	e9 aa 00 00 00       	jmp    0x140e60653
140e605a9:	48 85 d2             	test   %rdx,%rdx
140e605ac:	74 c9                	je     0x140e60577
140e605ae:	33 c0                	xor    %eax,%eax
140e605b0:	c6 01 00             	movb   $0x0,(%rcx)
140e605b3:	45 85 c0             	test   %r8d,%r8d
140e605b6:	41 0f 4f c0          	cmovg  %r8d,%eax
140e605ba:	ff c0                	inc    %eax
140e605bc:	48 98                	cltq
140e605be:	48 3b d0             	cmp    %rax,%rdx
140e605c1:	77 07                	ja     0x140e605ca
140e605c3:	bb 22 00 00 00       	mov    $0x22,%ebx
140e605c8:	eb b2                	jmp    0x140e6057c
140e605ca:	48 85 ff             	test   %rdi,%rdi
140e605cd:	74 a8                	je     0x140e60577
140e605cf:	49 8b 49 08          	mov    0x8(%r9),%rcx
140e605d3:	48 8d 5e 01          	lea    0x1(%rsi),%rbx
140e605d7:	48 8b d1             	mov    %rcx,%rdx
140e605da:	c6 06 30             	movb   $0x30,(%rsi)
140e605dd:	eb 15                	jmp    0x140e605f4
140e605df:	8a 02                	mov    (%rdx),%al
140e605e1:	84 c0                	test   %al,%al
140e605e3:	74 05                	je     0x140e605ea
140e605e5:	48 ff c2             	inc    %rdx
140e605e8:	eb 02                	jmp    0x140e605ec
140e605ea:	b0 30                	mov    $0x30,%al
140e605ec:	88 03                	mov    %al,(%rbx)
140e605ee:	48 ff c3             	inc    %rbx
140e605f1:	41 ff c8             	dec    %r8d
140e605f4:	45 85 c0             	test   %r8d,%r8d
140e605f7:	7f e6                	jg     0x140e605df
140e605f9:	c6 03 00             	movb   $0x0,(%rbx)
140e605fc:	78 2b                	js     0x140e60629
140e605fe:	8b 44 24 68          	mov    0x68(%rsp),%eax
140e60602:	44 8b 4c 24 60       	mov    0x60(%rsp),%r9d
140e60607:	44 8b 07             	mov    (%rdi),%r8d
140e6060a:	89 44 24 20          	mov    %eax,0x20(%rsp)
140e6060e:	e8 75 fe ff ff       	call   0x140e60488
140e60613:	84 c0                	test   %al,%al
140e60615:	74 12                	je     0x140e60629
140e60617:	eb 03                	jmp    0x140e6061c
140e60619:	c6 03 30             	movb   $0x30,(%rbx)
140e6061c:	48 ff cb             	dec    %rbx
140e6061f:	8a 03                	mov    (%rbx),%al
140e60621:	3c 39                	cmp    $0x39,%al
140e60623:	74 f4                	je     0x140e60619
140e60625:	fe c0                	inc    %al
140e60627:	88 03                	mov    %al,(%rbx)
140e60629:	80 3e 31             	cmpb   $0x31,(%rsi)
140e6062c:	75 05                	jne    0x140e60633
140e6062e:	ff 47 04             	incl   0x4(%rdi)
140e60631:	eb 1e                	jmp    0x140e60651
140e60633:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
140e60637:	49 ff c0             	inc    %r8
140e6063a:	41 80 7c 30 01 00    	cmpb   $0x0,0x1(%r8,%rsi,1)
140e60640:	75 f5                	jne    0x140e60637
140e60642:	49 ff c0             	inc    %r8
140e60645:	48 8d 56 01          	lea    0x1(%rsi),%rdx
140e60649:	48 8b ce             	mov    %rsi,%rcx
140e6064c:	e8 bf e9 07 00       	call   0x140edf010
140e60651:	33 c0                	xor    %eax,%eax
140e60653:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140e60658:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140e6065d:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140e60662:	48 83 c4 30          	add    $0x30,%rsp
140e60666:	5f                   	pop    %rdi
140e60667:	c3                   	ret
140e60668:	40 55                	rex push %rbp
140e6066a:	53                   	push   %rbx
140e6066b:	56                   	push   %rsi
140e6066c:	57                   	push   %rdi
140e6066d:	41 54                	push   %r12
140e6066f:	41 56                	push   %r14
140e60671:	41 57                	push   %r15
140e60673:	48 8d ac 24 10 f9 ff 	lea    -0x6f0(%rsp),%rbp
140e6067a:	ff
140e6067b:	48 81 ec f0 07 00 00 	sub    $0x7f0,%rsp
140e60682:	48 8b 05 77 88 55 00 	mov    0x558877(%rip),%rax        # 0x1413b8f00
140e60689:	48 33 c4             	xor    %rsp,%rax
140e6068c:	48 89 85 e0 06 00 00 	mov    %rax,0x6e0(%rbp)
140e60693:	4c 8b b5 50 07 00 00 	mov    0x750(%rbp),%r14
140e6069a:	4d 8b e1             	mov    %r9,%r12
140e6069d:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
140e606a2:	8b f2                	mov    %edx,%esi
140e606a4:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
140e606a9:	4c 89 75 88          	mov    %r14,-0x78(%rbp)
140e606ad:	4c 89 4d 98          	mov    %r9,-0x68(%rbp)
140e606b1:	44 89 44 24 64       	mov    %r8d,0x64(%rsp)
140e606b6:	e8 c5 26 00 00       	call   0x140e62d80
140e606bb:	8b 44 24 70          	mov    0x70(%rsp),%eax
140e606bf:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140e606c5:	83 e0 1f             	and    $0x1f,%eax
140e606c8:	3c 1f                	cmp    $0x1f,%al
140e606ca:	75 07                	jne    0x140e606d3
140e606cc:	c6 44 24 78 00       	movb   $0x0,0x78(%rsp)
140e606d1:	eb 0f                	jmp    0x140e606e2
140e606d3:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
140e606d8:	e8 1b 27 00 00       	call   0x140e62df8
140e606dd:	44 88 7c 24 78       	mov    %r15b,0x78(%rsp)
140e606e2:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
140e606e7:	bf 20 00 00 00       	mov    $0x20,%edi
140e606ec:	8b c7                	mov    %edi,%eax
140e606ee:	4d 89 74 24 08       	mov    %r14,0x8(%r12)
140e606f3:	48 85 db             	test   %rbx,%rbx
140e606f6:	8d 4f 0d             	lea    0xd(%rdi),%ecx
140e606f9:	0f 48 c1             	cmovs  %ecx,%eax
140e606fc:	45 33 c0             	xor    %r8d,%r8d
140e606ff:	33 d2                	xor    %edx,%edx
140e60701:	41 89 04 24          	mov    %eax,(%r12)
140e60705:	48 8d 4d 80          	lea    -0x80(%rbp),%rcx
140e60709:	e8 0e 26 00 00       	call   0x140e62d1c
140e6070e:	48 8b c3             	mov    %rbx,%rax
140e60711:	ba ff 07 00 00       	mov    $0x7ff,%edx
140e60716:	48 c1 e8 34          	shr    $0x34,%rax
140e6071a:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
140e60721:	ff 0f 00
140e60724:	48 23 c2             	and    %rdx,%rax
140e60727:	75 21                	jne    0x140e6074a
140e60729:	48 85 d9             	test   %rbx,%rcx
140e6072c:	74 0d                	je     0x140e6073b
140e6072e:	f7 45 80 00 00 00 01 	testl  $0x1000000,-0x80(%rbp)
140e60735:	0f 84 c3 00 00 00    	je     0x140e607fe
140e6073b:	41 83 64 24 04 00    	andl   $0x0,0x4(%r12)
140e60741:	4c 8d 05 84 17 15 00 	lea    0x151784(%rip),%r8        # 0x140fb1ecc
140e60748:	eb 60                	jmp    0x140e607aa
140e6074a:	48 3b c2             	cmp    %rdx,%rax
140e6074d:	0f 85 ab 00 00 00    	jne    0x140e607fe
140e60753:	48 8b c3             	mov    %rbx,%rax
140e60756:	48 23 c1             	and    %rcx,%rax
140e60759:	75 05                	jne    0x140e60760
140e6075b:	41 8b c7             	mov    %r15d,%eax
140e6075e:	eb 2a                	jmp    0x140e6078a
140e60760:	48 85 db             	test   %rbx,%rbx
140e60763:	79 16                	jns    0x140e6077b
140e60765:	48 b9 00 00 00 00 00 	movabs $0x8000000000000,%rcx
140e6076c:	00 08 00
140e6076f:	48 3b c1             	cmp    %rcx,%rax
140e60772:	75 07                	jne    0x140e6077b
140e60774:	b8 04 00 00 00       	mov    $0x4,%eax
140e60779:	eb 0f                	jmp    0x140e6078a
140e6077b:	48 8b c3             	mov    %rbx,%rax
140e6077e:	48 c1 e8 33          	shr    $0x33,%rax
140e60782:	f7 d0                	not    %eax
140e60784:	41 23 c7             	and    %r15d,%eax
140e60787:	83 c8 02             	or     $0x2,%eax
140e6078a:	45 89 7c 24 04       	mov    %r15d,0x4(%r12)
140e6078f:	41 2b c7             	sub    %r15d,%eax
140e60792:	74 44                	je     0x140e607d8
140e60794:	41 2b c7             	sub    %r15d,%eax
140e60797:	74 36                	je     0x140e607cf
140e60799:	41 2b c7             	sub    %r15d,%eax
140e6079c:	74 28                	je     0x140e607c6
140e6079e:	41 3b c7             	cmp    %r15d,%eax
140e607a1:	75 5b                	jne    0x140e607fe
140e607a3:	4c 8d 05 6e b4 38 00 	lea    0x38b46e(%rip),%r8        # 0x1411ebc18
140e607aa:	48 8b 95 58 07 00 00 	mov    0x758(%rbp),%rdx
140e607b1:	49 8b ce             	mov    %r14,%rcx
140e607b4:	e8 4b 6c fe ff       	call   0x140e47404
140e607b9:	85 c0                	test   %eax,%eax
140e607bb:	0f 85 1f 11 00 00    	jne    0x140e618e0
140e607c1:	e9 e5 10 00 00       	jmp    0x140e618ab
140e607c6:	4c 8d 05 43 b4 38 00 	lea    0x38b443(%rip),%r8        # 0x1411ebc10
140e607cd:	eb db                	jmp    0x140e607aa
140e607cf:	4c 8d 05 32 b4 38 00 	lea    0x38b432(%rip),%r8        # 0x1411ebc08
140e607d6:	eb d2                	jmp    0x140e607aa
140e607d8:	48 8b 95 58 07 00 00 	mov    0x758(%rbp),%rdx
140e607df:	4c 8d 05 1a b4 38 00 	lea    0x38b41a(%rip),%r8        # 0x1411ebc00
140e607e6:	49 8b ce             	mov    %r14,%rcx
140e607e9:	e8 16 6c fe ff       	call   0x140e47404
140e607ee:	85 c0                	test   %eax,%eax
140e607f0:	0f 85 ea 10 00 00    	jne    0x140e618e0
140e607f6:	45 33 ff             	xor    %r15d,%r15d
140e607f9:	e9 ad 10 00 00       	jmp    0x140e618ab
140e607fe:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
140e60805:	ff ff 7f
140e60808:	48 8d 4c 24 68       	lea    0x68(%rsp),%rcx
140e6080d:	48 23 d8             	and    %rax,%rbx
140e60810:	45 33 c0             	xor    %r8d,%r8d
140e60813:	48 89 5c 24 50       	mov    %rbx,0x50(%rsp)
140e60818:	33 d2                	xor    %edx,%edx
140e6081a:	bb 1f 00 08 00       	mov    $0x8001f,%ebx
140e6081f:	89 5c 24 6c          	mov    %ebx,0x6c(%rsp)
140e60823:	e8 f4 24 00 00       	call   0x140e62d1c
140e60828:	44 8b 44 24 6c       	mov    0x6c(%rsp),%r8d
140e6082d:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
140e60832:	8b d3                	mov    %ebx,%edx
140e60834:	e8 e3 24 00 00       	call   0x140e62d1c
140e60839:	f2 0f 10 44 24 50    	movsd  0x50(%rsp),%xmm0
140e6083f:	ff c6                	inc    %esi
140e60841:	41 b9 ff 07 00 00    	mov    $0x7ff,%r9d
140e60847:	f2 0f 11 44 24 58    	movsd  %xmm0,0x58(%rsp)
140e6084d:	48 8b 54 24 58       	mov    0x58(%rsp),%rdx
140e60852:	4c 8b c2             	mov    %rdx,%r8
140e60855:	89 74 24 60          	mov    %esi,0x60(%rsp)
140e60859:	49 c1 e8 34          	shr    $0x34,%r8
140e6085d:	be 02 00 00 00       	mov    $0x2,%esi
140e60862:	49 8b c8             	mov    %r8,%rcx
140e60865:	49 23 c9             	and    %r9,%rcx
140e60868:	48 8b c1             	mov    %rcx,%rax
140e6086b:	48 f7 d8             	neg    %rax
140e6086e:	48 b8 00 00 00 00 00 	movabs $0x10000000000000,%rax
140e60875:	00 10 00
140e60878:	48 1b db             	sbb    %rbx,%rbx
140e6087b:	48 23 d8             	and    %rax,%rbx
140e6087e:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
140e60885:	ff 0f 00
140e60888:	48 23 d0             	and    %rax,%rdx
140e6088b:	48 03 da             	add    %rdx,%rbx
140e6088e:	48 f7 d9             	neg    %rcx
140e60891:	1b c0                	sbb    %eax,%eax
140e60893:	45 23 c1             	and    %r9d,%r8d
140e60896:	44 8d 24 06          	lea    (%rsi,%rax,1),%r12d
140e6089a:	45 03 e0             	add    %r8d,%r12d
140e6089d:	e8 ae 2d fe ff       	call   0x140e43650
140e608a2:	e8 e1 09 fe ff       	call   0x140e41288
140e608a7:	f2 0f 2c c8          	cvttsd2si %xmm0,%ecx
140e608ab:	89 5d a4             	mov    %ebx,-0x5c(%rbp)
140e608ae:	8d 81 01 00 00 80    	lea    -0x7fffffff(%rcx),%eax
140e608b4:	83 e0 fe             	and    $0xfffffffe,%eax
140e608b7:	f7 d8                	neg    %eax
140e608b9:	1b c0                	sbb    %eax,%eax
140e608bb:	48 c1 eb 20          	shr    $0x20,%rbx
140e608bf:	23 c1                	and    %ecx,%eax
140e608c1:	89 5d a8             	mov    %ebx,-0x58(%rbp)
140e608c4:	89 44 24 30          	mov    %eax,0x30(%rsp)
140e608c8:	8b c3                	mov    %ebx,%eax
140e608ca:	f7 d8                	neg    %eax
140e608cc:	1b d2                	sbb    %edx,%edx
140e608ce:	f7 da                	neg    %edx
140e608d0:	41 03 d7             	add    %r15d,%edx
140e608d3:	89 55 a0             	mov    %edx,-0x60(%rbp)
140e608d6:	41 81 fc 34 04 00 00 	cmp    $0x434,%r12d
140e608dd:	0f 82 1a 02 00 00    	jb     0x140e60afd
140e608e3:	33 c0                	xor    %eax,%eax
140e608e5:	c7 85 48 03 00 00 00 	movl   $0x100000,0x348(%rbp)
140e608ec:	00 10 00
140e608ef:	89 85 44 03 00 00    	mov    %eax,0x344(%rbp)
140e608f5:	89 b5 40 03 00 00    	mov    %esi,0x340(%rbp)
140e608fb:	85 db                	test   %ebx,%ebx
140e608fd:	0f 84 0c 01 00 00    	je     0x140e60a0f
140e60903:	45 33 c0             	xor    %r8d,%r8d
140e60906:	42 8b 44 85 a4       	mov    -0x5c(%rbp,%r8,4),%eax
140e6090b:	42 39 84 85 44 03 00 	cmp    %eax,0x344(%rbp,%r8,4)
140e60912:	00
140e60913:	0f 85 f6 00 00 00    	jne    0x140e60a0f
140e60919:	45 03 c7             	add    %r15d,%r8d
140e6091c:	44 3b c6             	cmp    %esi,%r8d
140e6091f:	75 e5                	jne    0x140e60906
140e60921:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
140e60926:	45 8d 9c 24 ce fb ff 	lea    -0x432(%r12),%r11d
140e6092d:	ff
140e6092e:	45 8b c3             	mov    %r11d,%r8d
140e60931:	8d 42 ff             	lea    -0x1(%rdx),%eax
140e60934:	41 83 e3 1f          	and    $0x1f,%r11d
140e60938:	41 c1 e8 05          	shr    $0x5,%r8d
140e6093c:	8b f7                	mov    %edi,%esi
140e6093e:	49 8b df             	mov    %r15,%rbx
140e60941:	41 2b f3             	sub    %r11d,%esi
140e60944:	8b ce                	mov    %esi,%ecx
140e60946:	48 d3 e3             	shl    %cl,%rbx
140e60949:	41 2b df             	sub    %r15d,%ebx
140e6094c:	0f bd 44 85 a4       	bsr    -0x5c(%rbp,%rax,4),%eax
140e60951:	44 8b e3             	mov    %ebx,%r12d
140e60954:	41 f7 d4             	not    %r12d
140e60957:	74 04                	je     0x140e6095d
140e60959:	ff c0                	inc    %eax
140e6095b:	eb 02                	jmp    0x140e6095f
140e6095d:	33 c0                	xor    %eax,%eax
140e6095f:	2b f8                	sub    %eax,%edi
140e60961:	42 8d 04 02          	lea    (%rdx,%r8,1),%eax
140e60965:	83 f8 73             	cmp    $0x73,%eax
140e60968:	0f 87 81 00 00 00    	ja     0x140e609ef
140e6096e:	45 33 f6             	xor    %r14d,%r14d
140e60971:	44 3b df             	cmp    %edi,%r11d
140e60974:	41 0f 97 c6          	seta   %r14b
140e60978:	44 03 f2             	add    %edx,%r14d
140e6097b:	45 03 f0             	add    %r8d,%r14d
140e6097e:	41 83 fe 73          	cmp    $0x73,%r14d
140e60982:	77 6b                	ja     0x140e609ef
140e60984:	41 8d 78 ff          	lea    -0x1(%r8),%edi
140e60988:	45 8d 56 ff          	lea    -0x1(%r14),%r10d
140e6098c:	44 3b d7             	cmp    %edi,%r10d
140e6098f:	74 48                	je     0x140e609d9
140e60991:	41 8b c2             	mov    %r10d,%eax
140e60994:	41 2b c0             	sub    %r8d,%eax
140e60997:	8d 48 ff             	lea    -0x1(%rax),%ecx
140e6099a:	3b c2                	cmp    %edx,%eax
140e6099c:	73 07                	jae    0x140e609a5
140e6099e:	44 8b 4c 85 a4       	mov    -0x5c(%rbp,%rax,4),%r9d
140e609a3:	eb 03                	jmp    0x140e609a8
140e609a5:	45 33 c9             	xor    %r9d,%r9d
140e609a8:	3b ca                	cmp    %edx,%ecx
140e609aa:	73 06                	jae    0x140e609b2
140e609ac:	8b 54 8d a4          	mov    -0x5c(%rbp,%rcx,4),%edx
140e609b0:	eb 02                	jmp    0x140e609b4
140e609b2:	33 d2                	xor    %edx,%edx
140e609b4:	41 23 d4             	and    %r12d,%edx
140e609b7:	8b ce                	mov    %esi,%ecx
140e609b9:	d3 ea                	shr    %cl,%edx
140e609bb:	44 23 cb             	and    %ebx,%r9d
140e609be:	41 8b cb             	mov    %r11d,%ecx
140e609c1:	41 d3 e1             	shl    %cl,%r9d
140e609c4:	41 0b d1             	or     %r9d,%edx
140e609c7:	42 89 54 95 a4       	mov    %edx,-0x5c(%rbp,%r10,4)
140e609cc:	41 ff ca             	dec    %r10d
140e609cf:	44 3b d7             	cmp    %edi,%r10d
140e609d2:	74 05                	je     0x140e609d9
140e609d4:	8b 55 a0             	mov    -0x60(%rbp),%edx
140e609d7:	eb b8                	jmp    0x140e60991
140e609d9:	33 c9                	xor    %ecx,%ecx
140e609db:	45 85 c0             	test   %r8d,%r8d
140e609de:	74 12                	je     0x140e609f2
140e609e0:	83 64 8d a4 00       	andl   $0x0,-0x5c(%rbp,%rcx,4)
140e609e5:	41 03 cf             	add    %r15d,%ecx
140e609e8:	41 3b c8             	cmp    %r8d,%ecx
140e609eb:	75 f3                	jne    0x140e609e0
140e609ed:	eb 03                	jmp    0x140e609f2
140e609ef:	45 33 f6             	xor    %r14d,%r14d
140e609f2:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
140e609f6:	45 8b e7             	mov    %r15d,%r12d
140e609f9:	44 89 bd 70 01 00 00 	mov    %r15d,0x170(%rbp)
140e60a00:	c7 85 74 01 00 00 04 	movl   $0x4,0x174(%rbp)
140e60a07:	00 00 00
140e60a0a:	e9 1f 03 00 00       	jmp    0x140e60d2e
140e60a0f:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
140e60a14:	45 8d 9c 24 cd fb ff 	lea    -0x433(%r12),%r11d
140e60a1b:	ff
140e60a1c:	45 8b c3             	mov    %r11d,%r8d
140e60a1f:	8d 42 ff             	lea    -0x1(%rdx),%eax
140e60a22:	41 83 e3 1f          	and    $0x1f,%r11d
140e60a26:	41 c1 e8 05          	shr    $0x5,%r8d
140e60a2a:	8b f7                	mov    %edi,%esi
140e60a2c:	49 8b df             	mov    %r15,%rbx