140a567c8:	48 8b 12             	mov    (%rdx),%rdx
140a567cb:	48 83 41 10 08       	addq   $0x8,0x10(%rcx)
140a567d0:	b0 01                	mov    $0x1,%al
140a567d2:	84 c0                	test   %al,%al
140a567d4:	0f 84 03 02 00 00    	je     0x140a569dd
140a567da:	48 0f ca             	bswap  %rdx
140a567dd:	48 85 d2             	test   %rdx,%rdx
140a567e0:	0f 84 e3 01 00 00    	je     0x140a569c9
140a567e6:	48 b8 00 00 00 00 00 	movabs $0x7ff0000000000000,%rax
140a567ed:	00 f0 7f
140a567f0:	48 3b d0             	cmp    %rax,%rdx
140a567f3:	0f 84 b7 01 00 00    	je     0x140a569b0
140a567f9:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
140a56800:	00 00 80
140a56803:	48 3b d0             	cmp    %rax,%rdx
140a56806:	0f 84 8b 01 00 00    	je     0x140a56997
140a5680c:	48 b8 00 00 00 00 00 	movabs $0xfff0000000000000,%rax
140a56813:	00 f0 ff
140a56816:	48 3b d0             	cmp    %rax,%rdx
140a56819:	0f 84 5f 01 00 00    	je     0x140a5697e
140a5681f:	48 83 fa ff          	cmp    $0xffffffffffffffff,%rdx
140a56823:	0f 84 3c 01 00 00    	je     0x140a56965
140a56829:	48 8b ca             	mov    %rdx,%rcx
140a5682c:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
140a56833:	ff 0f 00
140a56836:	48 23 c8             	and    %rax,%rcx
140a56839:	0f 57 c9             	xorps  %xmm1,%xmm1
140a5683c:	78 07                	js     0x140a56845
140a5683e:	f2 48 0f 2a c9       	cvtsi2sd %rcx,%xmm1
140a56843:	eb 15                	jmp    0x140a5685a
140a56845:	48 8b c1             	mov    %rcx,%rax
140a56848:	48 d1 e8             	shr    $1,%rax
140a5684b:	83 e1 01             	and    $0x1,%ecx
140a5684e:	48 0b c1             	or     %rcx,%rax
140a56851:	f2 48 0f 2a c8       	cvtsi2sd %rax,%xmm1
140a56856:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a5685a:	f2 0f 59 0d d6 c9 5e 	mulsd  0x5ec9d6(%rip),%xmm1        # 0x141043238
140a56861:	00
140a56862:	f2 0f 58 0d e6 b6 55 	addsd  0x55b6e6(%rip),%xmm1        # 0x140fb1f50
140a56869:	00
140a5686a:	48 8b ca             	mov    %rdx,%rcx
140a5686d:	48 c1 f9 34          	sar    $0x34,%rcx
140a56871:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
140a56877:	48 81 e9 ff 03 00 00 	sub    $0x3ff,%rcx
140a5687e:	48 83 f9 08          	cmp    $0x8,%rcx
140a56882:	7c 42                	jl     0x140a568c6
140a56884:	4c 8d 41 f8          	lea    -0x8(%rcx),%r8
140a56888:	49 c1 e8 03          	shr    $0x3,%r8
140a5688c:	49 ff c0             	inc    %r8
140a5688f:	49 8b c0             	mov    %r8,%rax
140a56892:	48 f7 d8             	neg    %rax
140a56895:	48 8d 0c c1          	lea    (%rcx,%rax,8),%rcx
140a56899:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140a568a0:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568a4:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568a8:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568ac:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568b0:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568b4:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568b8:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568bc:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568c0:	49 83 e8 01          	sub    $0x1,%r8
140a568c4:	75 da                	jne    0x140a568a0
140a568c6:	48 85 c9             	test   %rcx,%rcx
140a568c9:	7e 0c                	jle    0x140a568d7
140a568cb:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
140a568cf:	48 ff c9             	dec    %rcx
140a568d2:	48 85 c9             	test   %rcx,%rcx
140a568d5:	7f f4                	jg     0x140a568cb
140a568d7:	48 8b c1             	mov    %rcx,%rax
140a568da:	48 f7 d8             	neg    %rax
140a568dd:	f2 0f 10 05 eb b4 58 	movsd  0x58b4eb(%rip),%xmm0        # 0x140fe1dd0
140a568e4:	00
140a568e5:	48 83 f8 08          	cmp    $0x8,%rax
140a568e9:	7c 3b                	jl     0x140a56926
140a568eb:	48 c7 c0 f8 ff ff ff 	mov    $0xfffffffffffffff8,%rax
140a568f2:	48 2b c1             	sub    %rcx,%rax
140a568f5:	48 c1 e8 03          	shr    $0x3,%rax
140a568f9:	48 ff c0             	inc    %rax
140a568fc:	48 8d 0c c1          	lea    (%rcx,%rax,8),%rcx
140a56900:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a56904:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a56908:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a5690c:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a56910:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a56914:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a56918:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a5691c:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a56920:	48 83 e8 01          	sub    $0x1,%rax
140a56924:	75 da                	jne    0x140a56900
140a56926:	48 85 c9             	test   %rcx,%rcx
140a56929:	79 0d                	jns    0x140a56938
140a5692b:	48 f7 d9             	neg    %rcx
140a5692e:	f2 0f 59 c8          	mulsd  %xmm0,%xmm1
140a56932:	48 83 e9 01          	sub    $0x1,%rcx
140a56936:	75 f6                	jne    0x140a5692e
140a56938:	b8 01 00 00 00       	mov    $0x1,%eax
140a5693d:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
140a56942:	48 85 d2             	test   %rdx,%rdx
140a56945:	0f 48 c1             	cmovs  %ecx,%eax
140a56948:	66 0f 6e c0          	movd   %eax,%xmm0
140a5694c:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
140a56950:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
140a56954:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
140a56958:	b0 01                	mov    $0x1,%al
140a5695a:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a5695f:	48 83 c4 20          	add    $0x20,%rsp
140a56963:	5f                   	pop    %rdi
140a56964:	c3                   	ret
140a56965:	f2 0f 10 05 8b b6 5c 	movsd  0x5cb68b(%rip),%xmm0        # 0x141021ff8
140a5696c:	00
140a5696d:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
140a56971:	b0 01                	mov    $0x1,%al
140a56973:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56978:	48 83 c4 20          	add    $0x20,%rsp
140a5697c:	5f                   	pop    %rdi
140a5697d:	c3                   	ret
140a5697e:	f2 0f 10 05 6a b6 5c 	movsd  0x5cb66a(%rip),%xmm0        # 0x141021ff0
140a56985:	00
140a56986:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
140a5698a:	b0 01                	mov    $0x1,%al
140a5698c:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56991:	48 83 c4 20          	add    $0x20,%rsp
140a56995:	5f                   	pop    %rdi
140a56996:	c3                   	ret
140a56997:	f2 0f 10 05 a1 d1 5f 	movsd  0x5fd1a1(%rip),%xmm0        # 0x141053b40
140a5699e:	00
140a5699f:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
140a569a3:	b0 01                	mov    $0x1,%al
140a569a5:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a569aa:	48 83 c4 20          	add    $0x20,%rsp
140a569ae:	5f                   	pop    %rdi
140a569af:	c3                   	ret
140a569b0:	f2 0f 10 05 78 87 62 	movsd  0x628778(%rip),%xmm0        # 0x14107f130
140a569b7:	00
140a569b8:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
140a569bc:	b0 01                	mov    $0x1,%al
140a569be:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a569c3:	48 83 c4 20          	add    $0x20,%rsp
140a569c7:	5f                   	pop    %rdi
140a569c8:	c3                   	ret
140a569c9:	0f 57 c0             	xorps  %xmm0,%xmm0
140a569cc:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
140a569d0:	b0 01                	mov    $0x1,%al
140a569d2:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a569d7:	48 83 c4 20          	add    $0x20,%rsp
140a569db:	5f                   	pop    %rdi
140a569dc:	c3                   	ret
140a569dd:	32 c0                	xor    %al,%al
140a569df:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a569e4:	48 83 c4 20          	add    $0x20,%rsp
140a569e8:	5f                   	pop    %rdi
140a569e9:	c3                   	ret
140a569ea:	cc                   	int3
140a569eb:	cc                   	int3
140a569ec:	cc                   	int3
140a569ed:	cc                   	int3
140a569ee:	cc                   	int3
140a569ef:	cc                   	int3
140a569f0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a569f5:	57                   	push   %rdi
140a569f6:	48 83 ec 20          	sub    $0x20,%rsp
140a569fa:	48 8b fa             	mov    %rdx,%rdi
140a569fd:	48 8b d9             	mov    %rcx,%rbx
140a56a00:	33 c0                	xor    %eax,%eax
140a56a02:	89 44 24 30          	mov    %eax,0x30(%rsp)
140a56a06:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a56a0a:	48 8d 41 04          	lea    0x4(%rcx),%rax
140a56a0e:	48 3b 43 18          	cmp    0x18(%rbx),%rax
140a56a12:	76 32                	jbe    0x140a56a46
140a56a14:	41 b8 2c 00 00 00    	mov    $0x2c,%r8d
140a56a1a:	b2 18                	mov    $0x18,%dl
140a56a1c:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
140a56a21:	e8 ba 05 fb ff       	call   0x140a06fe0
140a56a26:	48 8d 4b 08          	lea    0x8(%rbx),%rcx
140a56a2a:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
140a56a2f:	e8 bc 82 f6 ff       	call   0x1409becf0
140a56a34:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
140a56a39:	e8 b2 87 f6 ff       	call   0x1409bf1f0
140a56a3e:	32 c0                	xor    %al,%al
140a56a40:	8b 4c 24 30          	mov    0x30(%rsp),%ecx
140a56a44:	eb 09                	jmp    0x140a56a4f
140a56a46:	8b 09                	mov    (%rcx),%ecx
140a56a48:	48 83 43 10 04       	addq   $0x4,0x10(%rbx)
140a56a4d:	b0 01                	mov    $0x1,%al
140a56a4f:	84 c0                	test   %al,%al
140a56a51:	74 11                	je     0x140a56a64
140a56a53:	0f c9                	bswap  %ecx
140a56a55:	89 0f                	mov    %ecx,(%rdi)
140a56a57:	b0 01                	mov    $0x1,%al
140a56a59:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56a5e:	48 83 c4 20          	add    $0x20,%rsp
140a56a62:	5f                   	pop    %rdi
140a56a63:	c3                   	ret
140a56a64:	32 c0                	xor    %al,%al
140a56a66:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56a6b:	48 83 c4 20          	add    $0x20,%rsp
140a56a6f:	5f                   	pop    %rdi
140a56a70:	c3                   	ret
140a56a71:	cc                   	int3
140a56a72:	cc                   	int3
140a56a73:	cc                   	int3
140a56a74:	cc                   	int3
140a56a75:	cc                   	int3
140a56a76:	cc                   	int3
140a56a77:	cc                   	int3
140a56a78:	cc                   	int3
140a56a79:	cc                   	int3
140a56a7a:	cc                   	int3
140a56a7b:	cc                   	int3
140a56a7c:	cc                   	int3
140a56a7d:	cc                   	int3
140a56a7e:	cc                   	int3
140a56a7f:	cc                   	int3
140a56a80:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a56a85:	57                   	push   %rdi
140a56a86:	48 83 ec 20          	sub    $0x20,%rsp
140a56a8a:	48 8b fa             	mov    %rdx,%rdi
140a56a8d:	48 8b d9             	mov    %rcx,%rbx
140a56a90:	33 c0                	xor    %eax,%eax
140a56a92:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140a56a97:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a56a9b:	48 8d 41 08          	lea    0x8(%rcx),%rax
140a56a9f:	48 3b 43 18          	cmp    0x18(%rbx),%rax
140a56aa3:	76 33                	jbe    0x140a56ad8
140a56aa5:	41 b8 2c 00 00 00    	mov    $0x2c,%r8d
140a56aab:	b2 18                	mov    $0x18,%dl
140a56aad:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140a56ab2:	e8 29 05 fb ff       	call   0x140a06fe0
140a56ab7:	48 8d 4b 08          	lea    0x8(%rbx),%rcx
140a56abb:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140a56ac0:	e8 2b 82 f6 ff       	call   0x1409becf0
140a56ac5:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140a56aca:	e8 21 87 f6 ff       	call   0x1409bf1f0
140a56acf:	32 c0                	xor    %al,%al
140a56ad1:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
140a56ad6:	eb 0a                	jmp    0x140a56ae2
140a56ad8:	48 8b 09             	mov    (%rcx),%rcx
140a56adb:	48 83 43 10 08       	addq   $0x8,0x10(%rbx)
140a56ae0:	b0 01                	mov    $0x1,%al
140a56ae2:	84 c0                	test   %al,%al
140a56ae4:	74 13                	je     0x140a56af9
140a56ae6:	48 0f c9             	bswap  %rcx
140a56ae9:	48 89 0f             	mov    %rcx,(%rdi)
140a56aec:	b0 01                	mov    $0x1,%al
140a56aee:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56af3:	48 83 c4 20          	add    $0x20,%rsp
140a56af7:	5f                   	pop    %rdi
140a56af8:	c3                   	ret
140a56af9:	32 c0                	xor    %al,%al
140a56afb:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56b00:	48 83 c4 20          	add    $0x20,%rsp
140a56b04:	5f                   	pop    %rdi
140a56b05:	c3                   	ret
140a56b06:	cc                   	int3
140a56b07:	cc                   	int3
140a56b08:	cc                   	int3
140a56b09:	cc                   	int3
140a56b0a:	cc                   	int3
140a56b0b:	cc                   	int3
140a56b0c:	cc                   	int3
140a56b0d:	cc                   	int3
140a56b0e:	cc                   	int3
140a56b0f:	cc                   	int3
140a56b10:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a56b15:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140a56b1a:	57                   	push   %rdi
140a56b1b:	48 83 ec 20          	sub    $0x20,%rsp
140a56b1f:	49 8b f0             	mov    %r8,%rsi
140a56b22:	48 8b d9             	mov    %rcx,%rbx
140a56b25:	40 32 ff             	xor    %dil,%dil
140a56b28:	48 8b 41 10          	mov    0x10(%rcx),%rax
140a56b2c:	48 8d 48 01          	lea    0x1(%rax),%rcx
140a56b30:	48 3b 4b 18          	cmp    0x18(%rbx),%rcx
140a56b34:	77 0b                	ja     0x140a56b41
140a56b36:	0f b6 38             	movzbl (%rax),%edi
140a56b39:	48 89 4b 10          	mov    %rcx,0x10(%rbx)
140a56b3d:	b0 01                	mov    $0x1,%al
140a56b3f:	eb 2c                	jmp    0x140a56b6d
140a56b41:	41 b8 2c 00 00 00    	mov    $0x2c,%r8d
140a56b47:	b2 18                	mov    $0x18,%dl
140a56b49:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140a56b4e:	e8 8d 04 fb ff       	call   0x140a06fe0
140a56b53:	48 8d 4b 08          	lea    0x8(%rbx),%rcx
140a56b57:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140a56b5c:	e8 8f 81 f6 ff       	call   0x1409becf0
140a56b61:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140a56b66:	e8 85 86 f6 ff       	call   0x1409bf1f0
140a56b6b:	32 c0                	xor    %al,%al
140a56b6d:	84 c0                	test   %al,%al
140a56b6f:	75 10                	jne    0x140a56b81
140a56b71:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56b76:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a56b7b:	48 83 c4 20          	add    $0x20,%rsp
140a56b7f:	5f                   	pop    %rdi
140a56b80:	c3                   	ret
140a56b81:	40 84 ff             	test   %dil,%dil
140a56b84:	0f 95 c0             	setne  %al
140a56b87:	88 06                	mov    %al,(%rsi)
140a56b89:	b0 01                	mov    $0x1,%al
140a56b8b:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140a56b90:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140a56b95:	48 83 c4 20          	add    $0x20,%rsp
140a56b99:	5f                   	pop    %rdi
140a56b9a:	c3                   	ret
140a56b9b:	cc                   	int3
140a56b9c:	cc                   	int3
140a56b9d:	cc                   	int3
140a56b9e:	cc                   	int3
140a56b9f:	cc                   	int3
140a56ba0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140a56ba5:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140a56baa:	55                   	push   %rbp
140a56bab:	57                   	push   %rdi
140a56bac:	41 56                	push   %r14
140a56bae:	48 8b ec             	mov    %rsp,%rbp
140a56bb1:	48 83 ec 20          	sub    $0x20,%rsp
140a56bb5:	49 8b f8             	mov    %r8,%rdi
140a56bb8:	48 8b d9             	mov    %rcx,%rbx
140a56bbb:	49 8b 71 08          	mov    0x8(%r9),%rsi
140a56bbf:	48 83 fe 7f          	cmp    $0x7f,%rsi
140a56bc3:	73 64                	jae    0x140a56c29
140a56bc5:	45 32 f6             	xor    %r14b,%r14b
140a56bc8:	48 8b 41 10          	mov    0x10(%rcx),%rax
140a56bcc:	48 8d 48 01          	lea    0x1(%rax),%rcx
140a56bd0:	48 3b 4b 18          	cmp    0x18(%rbx),%rcx
140a56bd4:	77 0c                	ja     0x140a56be2
140a56bd6:	44 0f b6 30          	movzbl (%rax),%r14d
140a56bda:	48 89 4b 10          	mov    %rcx,0x10(%rbx)
140a56bde:	b0 01                	mov    $0x1,%al
140a56be0:	eb 29                	jmp    0x140a56c0b
140a56be2:	41 b8 2c 00 00 00    	mov    $0x2c,%r8d
140a56be8:	b2 18                	mov    $0x18,%dl
140a56bea:	48 8d 4d 20          	lea    0x20(%rbp),%rcx
140a56bee:	e8 ed 03 fb ff       	call   0x140a06fe0
140a56bf3:	48 8d 4b 08          	lea    0x8(%rbx),%rcx
140a56bf7:	48 8d 55 20          	lea    0x20(%rbp),%rdx
140a56bfb:	e8 f0 80 f6 ff       	call   0x1409becf0
140a56c00:	48 8d 4d 20          	lea    0x20(%rbp),%rcx
140a56c04:	e8 e7 85 f6 ff       	call   0x1409bf1f0
140a56c09:	32 c0                	xor    %al,%al
140a56c0b:	84 c0                	test   %al,%al
140a56c0d:	0f 84 3c 01 00 00    	je     0x140a56d4f
140a56c13:	45 84 f6             	test   %r14b,%r14b
140a56c16:	79 08                	jns    0x140a56c20
140a56c18:	c6 07 00             	movb   $0x0,(%rdi)
140a56c1b:	e9 3d 01 00 00       	jmp    0x140a56d5d
140a56c20:	49 0f be ce          	movsbq %r14b,%rcx
140a56c24:	e9 0a 01 00 00       	jmp    0x140a56d33
140a56c29:	33 c0                	xor    %eax,%eax