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
140874966:	3b fb                	cmp    %ebx,%edi
140874968:	7d 47                	jge    0x1408749b1
14087496a:	44 8b c3             	mov    %ebx,%r8d
14087496d:	44 2b c7             	sub    %edi,%r8d
140874970:	49 63 d0             	movslq %r8d,%rdx
140874973:	4c 3b fa             	cmp    %rdx,%r15
140874976:	7c 1e                	jl     0x140874996
140874978:	4b 8d 0c 1f          	lea    (%r15,%r11,1),%rcx
14087497c:	4c 2b fa             	sub    %rdx,%r15
14087497f:	49 ff c7             	inc    %r15
140874982:	48 8b c1             	mov    %rcx,%rax
140874985:	48 2b c2             	sub    %rdx,%rax
140874988:	0f b6 00             	movzbl (%rax),%eax
14087498b:	88 01                	mov    %al,(%rcx)
14087498d:	48 ff c9             	dec    %rcx
140874990:	49 83 ef 01          	sub    $0x1,%r15
140874994:	75 ec                	jne    0x140874982
140874996:	45 85 c0             	test   %r8d,%r8d
140874999:	74 14                	je     0x1408749af
14087499b:	33 c0                	xor    %eax,%eax
14087499d:	b2 30                	mov    $0x30,%dl
14087499f:	8b c8                	mov    %eax,%ecx
1408749a1:	45 84 c9             	test   %r9b,%r9b
1408749a4:	0f 95 c1             	setne  %cl
1408749a7:	49 03 cb             	add    %r11,%rcx
1408749aa:	e8 01 ad 66 00       	call   0x140edf6b0
1408749af:	8b fb                	mov    %ebx,%edi
1408749b1:	48 8b 74 24 28       	mov    0x28(%rsp),%rsi
1408749b6:	e9 25 fa ff ff       	jmp    0x1408743e0
1408749bb:	80 7c 24 22 00       	cmpb   $0x0,0x22(%rsp)
1408749c0:	75 16                	jne    0x1408749d8
1408749c2:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
1408749c7:	49 83 c3 08          	add    $0x8,%r11
1408749cb:	48 8b 0b             	mov    (%rbx),%rcx
1408749ce:	4c 89 5c 24 50       	mov    %r11,0x50(%rsp)
1408749d3:	8b 40 18             	mov    0x18(%rax),%eax
1408749d6:	89 01                	mov    %eax,(%rcx)
1408749d8:	4c 8b 64 24 40       	mov    0x40(%rsp),%r12
1408749dd:	e9 fb 09 00 00       	jmp    0x1408753dd
1408749e2:	c6 45 80 25          	movb   $0x25,-0x80(%rbp)
1408749e6:	48 8d 75 80          	lea    -0x80(%rbp),%rsi
1408749ea:	bf 01 00 00 00       	mov    $0x1,%edi
1408749ef:	e9 e1 f9 ff ff       	jmp    0x1408743d5
1408749f4:	80 7c 24 22 00       	cmpb   $0x0,0x22(%rsp)
1408749f9:	0f 84 c1 00 00 00    	je     0x140874ac0
1408749ff:	4c 8b 4c 24 60       	mov    0x60(%rsp),%r9
140874a04:	49 63 51 04          	movslq 0x4(%r9),%rdx
140874a08:	41 39 11             	cmp    %edx,(%r9)
140874a0b:	7f 0e                	jg     0x140874a1b
140874a0d:	bf 01 00 00 00       	mov    $0x1,%edi
140874a12:	c6 45 80 00          	movb   $0x0,-0x80(%rbp)
140874a16:	e9 39 01 00 00       	jmp    0x140874b54
140874a1b:	49 8b 41 08          	mov    0x8(%r9),%rax
140874a1f:	48 8b 0c d0          	mov    (%rax,%rdx,8),%rcx
140874a23:	8d 42 01             	lea    0x1(%rdx),%eax
140874a26:	41 89 41 04          	mov    %eax,0x4(%r9)
140874a2a:	48 85 c9             	test   %rcx,%rcx
140874a2d:	75 04                	jne    0x140874a33
140874a2f:	33 c0                	xor    %eax,%eax
140874a31:	eb 33                	jmp    0x140874a66
140874a33:	0f b7 51 14          	movzwl 0x14(%rcx),%edx
140874a37:	41 b8 02 02 00 00    	mov    $0x202,%r8d
140874a3d:	0f b7 c2             	movzwl %dx,%eax
140874a40:	66 41 23 c0          	and    %r8w,%ax
140874a44:	66 41 3b c0          	cmp    %r8w,%ax
140874a48:	75 0c                	jne    0x140874a56
140874a4a:	80 79 16 01          	cmpb   $0x1,0x16(%rcx)
140874a4e:	75 06                	jne    0x140874a56
140874a50:	4c 8b 49 08          	mov    0x8(%rcx),%r9
140874a54:	eb 13                	jmp    0x140874a69
140874a56:	f6 c2 01             	test   $0x1,%dl
140874a59:	74 04                	je     0x140874a5f
140874a5b:	33 c0                	xor    %eax,%eax
140874a5d:	eb 07                	jmp    0x140874a66
140874a5f:	b2 01                	mov    $0x1,%dl
140874a61:	e8 ea 32 0b 00       	call   0x140927d50
140874a66:	4c 8b c8             	mov    %rax,%r9
140874a69:	bf 01 00 00 00       	mov    $0x1,%edi
140874a6e:	8b d7                	mov    %edi,%edx
140874a70:	4d 85 c9             	test   %r9,%r9
140874a73:	74 9d                	je     0x140874a12
140874a75:	41 0f b6 09          	movzbl (%r9),%ecx
140874a79:	88 4d 80             	mov    %cl,-0x80(%rbp)
140874a7c:	81 e1 c0 00 00 00    	and    $0xc0,%ecx
140874a82:	80 f9 c0             	cmp    $0xc0,%cl
140874a85:	0f 85 c9 00 00 00    	jne    0x140874b54
140874a8b:	48 8d 45 81          	lea    -0x7f(%rbp),%rax
140874a8f:	4c 2b c8             	sub    %rax,%r9
140874a92:	48 8d 4d 80          	lea    -0x80(%rbp),%rcx
140874a96:	48 03 ca             	add    %rdx,%rcx
140874a99:	45 0f b6 44 09 01    	movzbl 0x1(%r9,%rcx,1),%r8d
140874a9f:	41 0f b6 c0          	movzbl %r8b,%eax
140874aa3:	24 c0                	and    $0xc0,%al
140874aa5:	3c 80                	cmp    $0x80,%al
140874aa7:	0f 85 a7 00 00 00    	jne    0x140874b54
140874aad:	ff c7                	inc    %edi
140874aaf:	44 88 01             	mov    %r8b,(%rcx)
140874ab2:	48 ff c2             	inc    %rdx
140874ab5:	48 83 fa 04          	cmp    $0x4,%rdx
140874ab9:	7c d7                	jl     0x140874a92
140874abb:	e9 94 00 00 00       	jmp    0x140874b54
140874ac0:	8b 0b                	mov    (%rbx),%ecx
140874ac2:	49 83 c3 08          	add    $0x8,%r11
140874ac6:	4c 89 5c 24 50       	mov    %r11,0x50(%rsp)
140874acb:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
140874ad1:	73 07                	jae    0x140874ada
140874ad3:	bf 01 00 00 00       	mov    $0x1,%edi
140874ad8:	eb 77                	jmp    0x140874b51
140874ada:	8b c1                	mov    %ecx,%eax
140874adc:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
140874ae2:	73 1a                	jae    0x140874afe
140874ae4:	c1 e8 06             	shr    $0x6,%eax
140874ae7:	80 e1 3f             	and    $0x3f,%cl
140874aea:	24 1f                	and    $0x1f,%al
140874aec:	bf 02 00 00 00       	mov    $0x2,%edi
140874af1:	2c 40                	sub    $0x40,%al
140874af3:	80 c1 80             	add    $0x80,%cl
140874af6:	88 45 80             	mov    %al,-0x80(%rbp)
140874af9:	88 4d 81             	mov    %cl,-0x7f(%rbp)
140874afc:	eb 56                	jmp    0x140874b54
140874afe:	8b d1                	mov    %ecx,%edx
140874b00:	c1 e8 0c             	shr    $0xc,%eax
140874b03:	c1 ea 06             	shr    $0x6,%edx
140874b06:	44 0f b6 c1          	movzbl %cl,%r8d
140874b0a:	80 e2 3f             	and    $0x3f,%dl
140874b0d:	41 80 e0 3f          	and    $0x3f,%r8b
140874b11:	80 c2 80             	add    $0x80,%dl
140874b14:	41 80 c0 80          	add    $0x80,%r8b
140874b18:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
140874b1e:	73 15                	jae    0x140874b35
140874b20:	24 0f                	and    $0xf,%al
140874b22:	88 55 81             	mov    %dl,-0x7f(%rbp)
140874b25:	2c 20                	sub    $0x20,%al
140874b27:	44 88 45 82          	mov    %r8b,-0x7e(%rbp)
140874b2b:	88 45 80             	mov    %al,-0x80(%rbp)
140874b2e:	bf 03 00 00 00       	mov    $0x3,%edi
140874b33:	eb 1f                	jmp    0x140874b54
140874b35:	c1 e9 12             	shr    $0x12,%ecx
140874b38:	24 3f                	and    $0x3f,%al
140874b3a:	80 e1 07             	and    $0x7,%cl
140874b3d:	88 55 82             	mov    %dl,-0x7e(%rbp)
140874b40:	80 e9 10             	sub    $0x10,%cl
140874b43:	44 88 45 83          	mov    %r8b,-0x7d(%rbp)
140874b47:	04 80                	add    $0x80,%al
140874b49:	bf 04 00 00 00       	mov    $0x4,%edi
140874b4e:	88 45 81             	mov    %al,-0x7f(%rbp)
140874b51:	88 4d 80             	mov    %cl,-0x80(%rbp)
140874b54:	44 0f b6 74 24 21    	movzbl 0x21(%rsp),%r14d
140874b5a:	41 83 fc 01          	cmp    $0x1,%r12d
140874b5e:	0f 8e ab 00 00 00    	jle    0x140874c0f
140874b64:	4c 8b 44 24 38       	mov    0x38(%rsp),%r8
140874b69:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140874b6e:	45 2b c4             	sub    %r12d,%r8d
140874b71:	49 63 d0             	movslq %r8d,%rdx
140874b74:	41 ff c0             	inc    %r8d
140874b77:	4c 89 44 24 38       	mov    %r8,0x38(%rsp)
140874b7c:	41 83 f8 01          	cmp    $0x1,%r8d
140874b80:	7e 4c                	jle    0x140874bce
140874b82:	45 84 f6             	test   %r14b,%r14b
140874b85:	75 47                	jne    0x140874bce
140874b87:	8b 4e 18             	mov    0x18(%rsi),%ecx
140874b8a:	8b 46 10             	mov    0x10(%rsi),%eax
140874b8d:	48 03 ca             	add    %rdx,%rcx
140874b90:	48 3b c8             	cmp    %rax,%rcx
140874b93:	7c 1b                	jl     0x140874bb0
140874b95:	48 8b ce             	mov    %rsi,%rcx
140874b98:	e8 33 c9 08 00       	call   0x1409014d0
140874b9d:	8b d0                	mov    %eax,%edx
140874b9f:	85 c0                	test   %eax,%eax
140874ba1:	7e 21                	jle    0x140874bc4
140874ba3:	0f 1f 40 00          	nopl   0x0(%rax)
140874ba7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140874bae:	00 00
140874bb0:	8b 4e 18             	mov    0x18(%rsi),%ecx
140874bb3:	ff ca                	dec    %edx