1400187d2:	66 0f 2f c3          	comisd %xmm3,%xmm0
1400187d6:	73 08                	jae    0x1400187e0
1400187d8:	41 03 cf             	add    %r15d,%ecx
1400187db:	83 f9 10             	cmp    $0x10,%ecx
1400187de:	7c 90                	jl     0x140018770
1400187e0:	83 f9 0f             	cmp    $0xf,%ecx
1400187e3:	75 15                	jne    0x1400187fa
1400187e5:	0f 28 c2             	movaps %xmm2,%xmm0
1400187e8:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
1400187ec:	66 0f 2f d8          	comisd %xmm0,%xmm3
1400187f0:	76 08                	jbe    0x1400187fa
1400187f2:	8d 42 fb             	lea    -0x5(%rdx),%eax
1400187f5:	83 f8 04             	cmp    $0x4,%eax
1400187f8:	76 20                	jbe    0x14001881a
1400187fa:	83 f9 0e             	cmp    $0xe,%ecx
1400187fd:	0f 85 f3 00 00 00    	jne    0x1400188f6
140018803:	f2 0f 59 d1          	mulsd  %xmm1,%xmm2
140018807:	66 0f 2f d3          	comisd %xmm3,%xmm2
14001880b:	0f 82 e5 00 00 00    	jb     0x1400188f6
140018811:	41 3b d4             	cmp    %r12d,%edx
140018814:	0f 85 dc 00 00 00    	jne    0x1400188f6
14001881a:	41 83 c9 ff          	or     $0xffffffff,%r9d
14001881e:	41 2b df             	sub    %r15d,%ebx
140018821:	48 63 c3             	movslq %ebx,%rax
140018824:	45 8d 61 2e          	lea    0x2e(%r9),%r12d
140018828:	4c 8d 04 46          	lea    (%rsi,%rax,2),%r8
14001882c:	41 0f b7 08          	movzwl (%r8),%ecx
140018830:	83 e9 2f             	sub    $0x2f,%ecx
140018833:	b8 67 66 66 66       	mov    $0x66666667,%eax
140018838:	f7 e9                	imul   %ecx
14001883a:	c1 fa 02             	sar    $0x2,%edx
14001883d:	8b c2                	mov    %edx,%eax
14001883f:	c1 e8 1f             	shr    $0x1f,%eax
140018842:	03 d0                	add    %eax,%edx
140018844:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
140018847:	03 c0                	add    %eax,%eax
140018849:	2b c8                	sub    %eax,%ecx
14001884b:	66 41 03 ce          	add    %r14w,%cx
14001884f:	66 41 89 08          	mov    %cx,(%r8)
140018853:	66 41 3b ce          	cmp    %r14w,%cx
140018857:	74 0a                	je     0x140018863
140018859:	66 41 3b cc          	cmp    %r12w,%cx
14001885d:	0f 85 86 00 00 00    	jne    0x1400188e9
140018863:	49 83 e8 02          	sub    $0x2,%r8
140018867:	85 db                	test   %ebx,%ebx
140018869:	7e 32                	jle    0x14001889d
14001886b:	41 0f b7 10          	movzwl (%r8),%edx
14001886f:	0f b7 ca             	movzwl %dx,%ecx
140018872:	66 41 3b d5          	cmp    %r13w,%dx
140018876:	75 0c                	jne    0x140018884
140018878:	49 83 e8 02          	sub    $0x2,%r8
14001887c:	44 8d 4b ff          	lea    -0x1(%rbx),%r9d
140018880:	41 0f b7 08          	movzwl (%r8),%ecx
140018884:	66 41 3b d5          	cmp    %r13w,%dx
140018888:	8b c7                	mov    %edi,%eax
14001888a:	0f 94 c0             	sete   %al
14001888d:	41 03 c7             	add    %r15d,%eax
140018890:	2b d8                	sub    %eax,%ebx
140018892:	66 41 3b cc          	cmp    %r12w,%cx
140018896:	74 bb                	je     0x140018853
140018898:	0f b7 c9             	movzwl %cx,%ecx
14001889b:	eb 93                	jmp    0x140018830
14001889d:	45 8b c2             	mov    %r10d,%r8d
1400188a0:	41 83 c9 ff          	or     $0xffffffff,%r9d
1400188a4:	41 8b da             	mov    %r10d,%ebx
1400188a7:	4a 8d 14 46          	lea    (%rsi,%r8,2),%rdx
1400188ab:	66 44 39 32          	cmp    %r14w,(%rdx)
1400188af:	75 10                	jne    0x1400188c1
1400188b1:	48 8b c2             	mov    %rdx,%rax
1400188b4:	41 03 df             	add    %r15d,%ebx
1400188b7:	48 8d 40 02          	lea    0x2(%rax),%rax
1400188bb:	66 44 39 30          	cmp    %r14w,(%rax)
1400188bf:	74 f3                	je     0x1400188b4
1400188c1:	41 03 df             	add    %r15d,%ebx
1400188c4:	45 85 db             	test   %r11d,%r11d
1400188c7:	75 18                	jne    0x1400188e1
1400188c9:	48 63 cb             	movslq %ebx,%rcx
1400188cc:	eb 0c                	jmp    0x1400188da
1400188ce:	0f b7 04 4e          	movzwl (%rsi,%rcx,2),%eax
1400188d2:	66 89 44 4e 02       	mov    %ax,0x2(%rsi,%rcx,2)
1400188d7:	49 2b cf             	sub    %r15,%rcx
1400188da:	49 3b c8             	cmp    %r8,%rcx
1400188dd:	7d ef                	jge    0x1400188ce
1400188df:	eb 03                	jmp    0x1400188e4
1400188e1:	45 03 df             	add    %r15d,%r11d
1400188e4:	66 c7 02 31 00       	movw   $0x31,(%rdx)
1400188e9:	45 85 c9             	test   %r9d,%r9d
1400188ec:	44 0f 48 cb          	cmovs  %ebx,%r9d
1400188f0:	43 8d 1c 0f          	lea    (%r15,%r9,1),%ebx
1400188f4:	eb 06                	jmp    0x1400188fc
1400188f6:	41 bc 2d 00 00 00    	mov    $0x2d,%r12d
1400188fc:	48 63 c3             	movslq %ebx,%rax
1400188ff:	66 44 39 74 46 fe    	cmp    %r14w,-0x2(%rsi,%rax,2)
140018905:	75 14                	jne    0x14001891b
140018907:	48 ff c8             	dec    %rax
14001890a:	48 8d 04 46          	lea    (%rsi,%rax,2),%rax
14001890e:	41 2b df             	sub    %r15d,%ebx
140018911:	48 8d 40 fe          	lea    -0x2(%rax),%rax
140018915:	66 44 39 30          	cmp    %r14w,(%rax)
140018919:	74 f3                	je     0x14001890e
14001891b:	48 63 c3             	movslq %ebx,%rax
14001891e:	44 8d 53 01          	lea    0x1(%rbx),%r10d
140018922:	66 44 39 6c 46 fe    	cmp    %r13w,-0x2(%rsi,%rax,2)
140018928:	44 0f 45 d3          	cmovne %ebx,%r10d
14001892c:	45 85 db             	test   %r11d,%r11d
14001892f:	0f 84 1f 01 00 00    	je     0x140018a54
140018935:	44 3b d5             	cmp    %ebp,%r10d
140018938:	0f 8d 2a 01 00 00    	jge    0x140018a68
14001893e:	49 63 c2             	movslq %r10d,%rax
140018941:	41 ff c2             	inc    %r10d
140018944:	66 c7 04 46 45 00    	movw   $0x45,(%rsi,%rax,2)
14001894a:	45 85 db             	test   %r11d,%r11d
14001894d:	79 17                	jns    0x140018966
14001894f:	44 3b d5             	cmp    %ebp,%r10d
140018952:	0f 8d 10 01 00 00    	jge    0x140018a68
140018958:	49 63 c2             	movslq %r10d,%rax
14001895b:	45 03 d7             	add    %r15d,%r10d
14001895e:	41 f7 db             	neg    %r11d
140018961:	66 44 89 24 46       	mov    %r12w,(%rsi,%rax,2)
140018966:	41 83 fb 64          	cmp    $0x64,%r11d
14001896a:	0f 8c 85 00 00 00    	jl     0x1400189f5
140018970:	41 8d 42 02          	lea    0x2(%r10),%eax
140018974:	3b c5                	cmp    %ebp,%eax
140018976:	0f 8d ec 00 00 00    	jge    0x140018a68
14001897c:	49 63 ca             	movslq %r10d,%rcx
14001897f:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140018984:	41 f7 eb             	imul   %r11d
140018987:	45 03 d7             	add    %r15d,%r10d
14001898a:	c1 fa 05             	sar    $0x5,%edx
14001898d:	8b c2                	mov    %edx,%eax
14001898f:	4d 63 c2             	movslq %r10d,%r8
140018992:	c1 e8 1f             	shr    $0x1f,%eax
140018995:	45 03 d7             	add    %r15d,%r10d
140018998:	03 d0                	add    %eax,%edx
14001899a:	b8 67 66 66 66       	mov    $0x66666667,%eax
14001899f:	66 41 03 d6          	add    %r14w,%dx
1400189a3:	66 89 14 4e          	mov    %dx,(%rsi,%rcx,2)
1400189a7:	41 f7 eb             	imul   %r11d
1400189aa:	b8 67 66 66 66       	mov    $0x66666667,%eax
1400189af:	44 8b ca             	mov    %edx,%r9d
1400189b2:	41 c1 f9 02          	sar    $0x2,%r9d
1400189b6:	41 8b c9             	mov    %r9d,%ecx
1400189b9:	c1 e9 1f             	shr    $0x1f,%ecx
1400189bc:	44 03 c9             	add    %ecx,%r9d
1400189bf:	41 f7 e9             	imul   %r9d
1400189c2:	41 8b c9             	mov    %r9d,%ecx
1400189c5:	c1 fa 02             	sar    $0x2,%edx
1400189c8:	8b c2                	mov    %edx,%eax
1400189ca:	c1 e8 1f             	shr    $0x1f,%eax
1400189cd:	03 d0                	add    %eax,%edx
1400189cf:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
1400189d2:	03 c0                	add    %eax,%eax
1400189d4:	2b c8                	sub    %eax,%ecx
1400189d6:	41 0f b7 c1          	movzwl %r9w,%eax
1400189da:	66 41 c1 e1 02       	shl    $0x2,%r9w
1400189df:	66 41 03 ce          	add    %r14w,%cx
1400189e3:	66 41 03 c1          	add    %r9w,%ax
1400189e7:	66 42 89 0c 46       	mov    %cx,(%rsi,%r8,2)
1400189ec:	66 03 c0             	add    %ax,%ax
1400189ef:	66 44 2b d8          	sub    %ax,%r11w
1400189f3:	eb 50                	jmp    0x140018a45
1400189f5:	41 83 fb 0a          	cmp    $0xa,%r11d
1400189f9:	7c 45                	jl     0x140018a40
1400189fb:	45 8d 42 01          	lea    0x1(%r10),%r8d
1400189ff:	44 3b c5             	cmp    %ebp,%r8d
140018a02:	7d 64                	jge    0x140018a68
140018a04:	49 63 ca             	movslq %r10d,%rcx
140018a07:	b8 67 66 66 66       	mov    $0x66666667,%eax
140018a0c:	41 f7 eb             	imul   %r11d
140018a0f:	4d 63 d0             	movslq %r8d,%r10
140018a12:	c1 fa 02             	sar    $0x2,%edx
140018a15:	8b c2                	mov    %edx,%eax
140018a17:	c1 e8 1f             	shr    $0x1f,%eax
140018a1a:	03 d0                	add    %eax,%edx
140018a1c:	41 8d 04 16          	lea    (%r14,%rdx,1),%eax
140018a20:	66 89 04 4e          	mov    %ax,(%rsi,%rcx,2)
140018a24:	0f b7 c2             	movzwl %dx,%eax
140018a27:	66 c1 e2 02          	shl    $0x2,%dx
140018a2b:	66 03 c2             	add    %dx,%ax
140018a2e:	66 03 c0             	add    %ax,%ax
140018a31:	66 44 2b d8          	sub    %ax,%r11w
140018a35:	66 45 03 de          	add    %r14w,%r11w
140018a39:	66 46 89 1c 56       	mov    %r11w,(%rsi,%r10,2)
140018a3e:	eb 11                	jmp    0x140018a51
140018a40:	44 3b d5             	cmp    %ebp,%r10d
140018a43:	7d 23                	jge    0x140018a68
140018a45:	49 63 ca             	movslq %r10d,%rcx
140018a48:	66 45 03 de          	add    %r14w,%r11w
140018a4c:	66 44 89 1c 4e       	mov    %r11w,(%rsi,%rcx,2)
140018a51:	45 03 d7             	add    %r15d,%r10d
140018a54:	44 3b d5             	cmp    %ebp,%r10d
140018a57:	7d 0f                	jge    0x140018a68
140018a59:	0f ae e8             	lfence
140018a5c:	49 63 ca             	movslq %r10d,%rcx
140018a5f:	41 8b c2             	mov    %r10d,%eax
140018a62:	66 89 3c 4e          	mov    %di,(%rsi,%rcx,2)
140018a66:	eb 05                	jmp    0x140018a6d
140018a68:	66 89 3e             	mov    %di,(%rsi)
140018a6b:	33 c0                	xor    %eax,%eax
140018a6d:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140018a72:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
140018a77:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
140018a7c:	0f 28 74 24 20       	movaps 0x20(%rsp),%xmm6
140018a81:	48 83 c4 30          	add    $0x30,%rsp
140018a85:	41 5f                	pop    %r15
140018a87:	41 5e                	pop    %r14
140018a89:	41 5d                	pop    %r13
140018a8b:	41 5c                	pop    %r12
140018a8d:	5f                   	pop    %rdi
140018a8e:	c3                   	ret
140018a8f:	90                   	nop
140018a90:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140018a95:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140018a9a:	55                   	push   %rbp
140018a9b:	57                   	push   %rdi
140018a9c:	41 54                	push   %r12
140018a9e:	41 56                	push   %r14
140018aa0:	41 57                	push   %r15
140018aa2:	48 8b ec             	mov    %rsp,%rbp
140018aa5:	48 83 ec 50          	sub    $0x50,%rsp
140018aa9:	48 8b 05 d0 86 2e 00 	mov    0x2e86d0(%rip),%rax        # 0x140301180
140018ab0:	48 33 c4             	xor    %rsp,%rax
140018ab3:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
140018ab7:	0f 57 c0             	xorps  %xmm0,%xmm0
140018aba:	48 8b fa             	mov    %rdx,%rdi
140018abd:	0f 11 02             	movups %xmm0,(%rdx)
140018ac0:	45 33 e4             	xor    %r12d,%r12d
140018ac3:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140018ac7:	48 8b d9             	mov    %rcx,%rbx
140018aca:	44 89 65 d0          	mov    %r12d,-0x30(%rbp)
140018ace:	41 8b f4             	mov    %r12d,%esi
140018ad1:	e8 b6 f9 ff ff       	call   0x14001848c
140018ad6:	85 c0                	test   %eax,%eax
140018ad8:	0f 84 be 03 00 00    	je     0x140018e9c
140018ade:	48 63 c8             	movslq %eax,%rcx
140018ae1:	41 8d 54 24 01       	lea    0x1(%r12),%edx
140018ae6:	41 ba 1f 85 eb 51    	mov    $0x51eb851f,%r10d
140018aec:	66 83 3c 4b 3a       	cmpw   $0x3a,(%rbx,%rcx,2)
140018af1:	0f 85 af 00 00 00    	jne    0x140018ba6
140018af7:	0f 57 c0             	xorps  %xmm0,%xmm0
140018afa:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
140018afe:	0f 11 45 e0          	movups %xmm0,-0x20(%rbp)
140018b02:	ff 15 f0 95 1f 00    	call   *0x1f95f0(%rip)        # 0x1402120f8
140018b08:	0f b7 45 e0          	movzwl -0x20(%rbp),%eax
140018b0c:	66 89 07             	mov    %ax,(%rdi)
140018b0f:	0f b7 45 e2          	movzwl -0x1e(%rbp),%eax
140018b13:	66 89 47 02          	mov    %ax,0x2(%rdi)
140018b17:	0f b7 45 e6          	movzwl -0x1a(%rbp),%eax
140018b1b:	66 89 47 06          	mov    %ax,0x6(%rdi)
140018b1f:	44 8b f6             	mov    %esi,%r14d
140018b22:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140018b26:	4a 8d 0c 73          	lea    (%rbx,%r14,2),%rcx
140018b2a:	e8 5d f9 ff ff       	call   0x14001848c
140018b2f:	83 f8 02             	cmp    $0x2,%eax
140018b32:	0f 85 29 01 00 00    	jne    0x140018c61
140018b38:	0f b7 45 d0          	movzwl -0x30(%rbp),%eax
140018b3c:	66 89 47 08          	mov    %ax,0x8(%rdi)
140018b40:	8d 46 02             	lea    0x2(%rsi),%eax
140018b43:	49 63 ce             	movslq %r14d,%rcx
140018b46:	8d 70 01             	lea    0x1(%rax),%esi
140018b49:	66 83 7c 4b 04 3a    	cmpw   $0x3a,0x4(%rbx,%rcx,2)
140018b4f:	0f 85 49 03 00 00    	jne    0x140018e9e
140018b55:	48 8d 0c 73          	lea    (%rbx,%rsi,2),%rcx
140018b59:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140018b5d:	e8 2a f9 ff ff       	call   0x14001848c
140018b62:	83 f8 02             	cmp    $0x2,%eax
140018b65:	0f 85 f6 00 00 00    	jne    0x140018c61
140018b6b:	0f b7 45 d0          	movzwl -0x30(%rbp),%eax
140018b6f:	41 8d 76 05          	lea    0x5(%r14),%esi
140018b73:	66 89 47 0a          	mov    %ax,0xa(%rdi)
140018b77:	44 8d 7e 01          	lea    0x1(%rsi),%r15d
140018b7b:	66 42 83 7c 73 0a 3a 	cmpw   $0x3a,0xa(%rbx,%r14,2)
140018b82:	0f 85 d9 00 00 00    	jne    0x140018c61
140018b88:	4a 8d 0c 7b          	lea    (%rbx,%r15,2),%rcx
140018b8c:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140018b90:	e8 f7 f8 ff ff       	call   0x14001848c
140018b95:	83 f8 02             	cmp    $0x2,%eax
140018b98:	0f 84 19 01 00 00    	je     0x140018cb7
140018b9e:	41 8b c7             	mov    %r15d,%eax
140018ba1:	e9 f8 02 00 00       	jmp    0x140018e9e
140018ba6:	41 be 08 00 00 00    	mov    $0x8,%r14d
140018bac:	41 3b c6             	cmp    %r14d,%eax
140018baf:	75 48                	jne    0x140018bf9
140018bb1:	44 8b 45 d0          	mov    -0x30(%rbp),%r8d
140018bb5:	41 8d 76 01          	lea    0x1(%r14),%esi
140018bb9:	41 8b c2             	mov    %r10d,%eax
140018bbc:	41 f7 e0             	mul    %r8d
140018bbf:	44 8b ca             	mov    %edx,%r9d
140018bc2:	41 c1 e9 05          	shr    $0x5,%r9d
140018bc6:	41 0f b7 c1          	movzwl %r9w,%eax
140018bca:	6b c8 64             	imul   $0x64,%eax,%ecx
140018bcd:	41 8b c2             	mov    %r10d,%eax
140018bd0:	41 f7 e1             	mul    %r9d
140018bd3:	66 44 2b c1          	sub    %cx,%r8w
140018bd7:	c1 ea 05             	shr    $0x5,%edx
140018bda:	0f b7 c2             	movzwl %dx,%eax
140018bdd:	6b c8 64             	imul   $0x64,%eax,%ecx
140018be0:	66 44 89 47 06       	mov    %r8w,0x6(%rdi)
140018be5:	89 55 d0             	mov    %edx,-0x30(%rbp)
140018be8:	66 89 17             	mov    %dx,(%rdi)
140018beb:	66 44 2b c9          	sub    %cx,%r9w
140018bef:	66 44 89 4f 02       	mov    %r9w,0x2(%rdi)
140018bf4:	e9 a8 00 00 00       	jmp    0x140018ca1
140018bf9:	83 f8 06             	cmp    $0x6,%eax
140018bfc:	75 2d                	jne    0x140018c2b
140018bfe:	44 8b 45 d0          	mov    -0x30(%rbp),%r8d
140018c02:	41 8b c2             	mov    %r10d,%eax
140018c05:	66 89 57 06          	mov    %dx,0x6(%rdi)
140018c09:	be 07 00 00 00       	mov    $0x7,%esi
140018c0e:	41 f7 e0             	mul    %r8d
140018c11:	c1 ea 05             	shr    $0x5,%edx
140018c14:	0f b7 c2             	movzwl %dx,%eax
140018c17:	6b c8 64             	imul   $0x64,%eax,%ecx
140018c1a:	89 55 d0             	mov    %edx,-0x30(%rbp)
140018c1d:	66 89 17             	mov    %dx,(%rdi)
140018c20:	66 44 2b c1          	sub    %cx,%r8w
140018c24:	66 44 89 47 02       	mov    %r8w,0x2(%rdi)
140018c29:	eb 76                	jmp    0x140018ca1
140018c2b:	83 f8 04             	cmp    $0x4,%eax
140018c2e:	0f 85 68 02 00 00    	jne    0x140018e9c
140018c34:	0f b7 45 d0          	movzwl -0x30(%rbp),%eax
140018c38:	be 05 00 00 00       	mov    $0x5,%esi
140018c3d:	66 89 07             	mov    %ax,(%rdi)
140018c40:	66 89 57 02          	mov    %dx,0x2(%rdi)
140018c44:	66 89 57 06          	mov    %dx,0x6(%rdi)
140018c48:	66 83 3c 4b 2d       	cmpw   $0x2d,(%rbx,%rcx,2)
140018c4d:	75 52                	jne    0x140018ca1
140018c4f:	48 8d 4b 0a          	lea    0xa(%rbx),%rcx
140018c53:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140018c57:	e8 30 f8 ff ff       	call   0x14001848c
140018c5c:	83 f8 02             	cmp    $0x2,%eax
140018c5f:	74 07                	je     0x140018c68
140018c61:	8b c6                	mov    %esi,%eax
140018c63:	e9 36 02 00 00       	jmp    0x140018e9e
140018c68:	0f b7 45 d0          	movzwl -0x30(%rbp),%eax
140018c6c:	41 8b f6             	mov    %r14d,%esi
140018c6f:	66 89 47 02          	mov    %ax,0x2(%rdi)
140018c73:	66 83 7b 0e 2d       	cmpw   $0x2d,0xe(%rbx)
140018c78:	75 27                	jne    0x140018ca1
140018c7a:	48 8d 4b 10          	lea    0x10(%rbx),%rcx
140018c7e:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140018c82:	e8 05 f8 ff ff       	call   0x14001848c
140018c87:	83 f8 02             	cmp    $0x2,%eax
140018c8a:	74 08                	je     0x140018c94
140018c8c:	41 8b c6             	mov    %r14d,%eax
140018c8f:	e9 0a 02 00 00       	jmp    0x140018e9e
140018c94:	0f b7 45 d0          	movzwl -0x30(%rbp),%eax
140018c98:	be 0b 00 00 00       	mov    $0xb,%esi
140018c9d:	66 89 47 06          	mov    %ax,0x6(%rdi)
140018ca1:	8b c6                	mov    %esi,%eax