140658701:	48 33 f8             	xor    %rax,%rdi
140658704:	48 0f af f9          	imul   %rcx,%rdi
140658708:	48 8b cf             	mov    %rdi,%rcx
14065870b:	48 23 4d 30          	and    0x30(%rbp),%rcx
14065870f:	48 03 c9             	add    %rcx,%rcx
140658712:	48 8b 45 18          	mov    0x18(%rbp),%rax
140658716:	48 8b 5c c8 08       	mov    0x8(%rax,%rcx,8),%rbx
14065871b:	48 8d 55 08          	lea    0x8(%rbp),%rdx
14065871f:	4c 8b 2a             	mov    (%rdx),%r13
140658722:	49 3b dd             	cmp    %r13,%rbx
140658725:	75 08                	jne    0x14065872f
140658727:	49 8b dd             	mov    %r13,%rbx
14065872a:	4d 8b e5             	mov    %r13,%r12
14065872d:	eb 4e                	jmp    0x14065877d
14065872f:	48 8b 0c c8          	mov    (%rax,%rcx,8),%rcx
140658733:	49 8b 00             	mov    (%r8),%rax
140658736:	48 3b 43 10          	cmp    0x10(%rbx),%rax
14065873a:	74 13                	je     0x14065874f
14065873c:	0f 1f 40 00          	nopl   0x0(%rax)
140658740:	48 3b d9             	cmp    %rcx,%rbx
140658743:	74 32                	je     0x140658777
140658745:	48 8b 5b 08          	mov    0x8(%rbx),%rbx
140658749:	48 3b 43 10          	cmp    0x10(%rbx),%rax
14065874d:	75 f1                	jne    0x140658740
14065874f:	49 89 1f             	mov    %rbx,(%r15)
140658752:	41 c6 47 08 00       	movb   $0x0,0x8(%r15)
140658757:	49 8b c7             	mov    %r15,%rax
14065875a:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
14065875f:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
140658764:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
140658769:	48 83 c4 30          	add    $0x30,%rsp
14065876d:	41 5f                	pop    %r15
14065876f:	41 5e                	pop    %r14
140658771:	41 5d                	pop    %r13
140658773:	41 5c                	pop    %r12
140658775:	5f                   	pop    %rdi
140658776:	c3                   	ret
140658777:	4c 8b eb             	mov    %rbx,%r13
14065877a:	4c 8b e3             	mov    %rbx,%r12
14065877d:	48 b8 aa aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaa,%rax
140658784:	aa aa 0a
140658787:	48 39 45 10          	cmp    %rax,0x10(%rbp)
14065878b:	0f 84 b7 01 00 00    	je     0x140658948
140658791:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
140658796:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
14065879d:	00 00
14065879f:	b9 18 00 00 00       	mov    $0x18,%ecx
1406587a4:	e8 5f 29 7c 00       	call   0x140e1b108
1406587a9:	4c 8b f0             	mov    %rax,%r14
1406587ac:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
1406587b1:	48 8b 0e             	mov    (%rsi),%rcx
1406587b4:	48 89 48 10          	mov    %rcx,0x10(%rax)
1406587b8:	48 8b 4d 10          	mov    0x10(%rbp),%rcx
1406587bc:	48 83 c1 01          	add    $0x1,%rcx
1406587c0:	0f 57 c0             	xorps  %xmm0,%xmm0
1406587c3:	78 07                	js     0x1406587cc
1406587c5:	f3 48 0f 2a c1       	cvtsi2ss %rcx,%xmm0
1406587ca:	eb 15                	jmp    0x1406587e1
1406587cc:	48 8b c1             	mov    %rcx,%rax
1406587cf:	48 d1 e8             	shr    $1,%rax
1406587d2:	83 e1 01             	and    $0x1,%ecx
1406587d5:	48 0b c1             	or     %rcx,%rax
1406587d8:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
1406587dd:	f3 0f 58 c0          	addss  %xmm0,%xmm0
1406587e1:	48 8b 75 38          	mov    0x38(%rbp),%rsi
1406587e5:	f3 0f 10 5d 00       	movss  0x0(%rbp),%xmm3
1406587ea:	0f 57 d2             	xorps  %xmm2,%xmm2
1406587ed:	48 85 f6             	test   %rsi,%rsi
1406587f0:	78 07                	js     0x1406587f9
1406587f2:	f3 48 0f 2a d6       	cvtsi2ss %rsi,%xmm2
1406587f7:	eb 18                	jmp    0x140658811
1406587f9:	48 8b ce             	mov    %rsi,%rcx
1406587fc:	48 d1 e9             	shr    $1,%rcx
1406587ff:	48 8b c6             	mov    %rsi,%rax
140658802:	83 e0 01             	and    $0x1,%eax
140658805:	48 0b c8             	or     %rax,%rcx
140658808:	f3 48 0f 2a d1       	cvtsi2ss %rcx,%xmm2
14065880d:	f3 0f 58 d2          	addss  %xmm2,%xmm2
140658811:	0f 28 c8             	movaps %xmm0,%xmm1
140658814:	f3 0f 5e ca          	divss  %xmm2,%xmm1
140658818:	0f 2f cb             	comiss %xmm3,%xmm1
14065881b:	0f 86 c2 00 00 00    	jbe    0x1406588e3
140658821:	f3 0f 5e c3          	divss  %xmm3,%xmm0
140658825:	e8 f6 88 7d 00       	call   0x140e31120
14065882a:	33 c9                	xor    %ecx,%ecx
14065882c:	f3 0f 10 0d 30 5e 95 	movss  0x955e30(%rip),%xmm1        # 0x140fae664
140658833:	00
140658834:	0f 2f c1             	comiss %xmm1,%xmm0
140658837:	72 16                	jb     0x14065884f
140658839:	f3 0f 5c c1          	subss  %xmm1,%xmm0
14065883d:	0f 2f c1             	comiss %xmm1,%xmm0
140658840:	73 0d                	jae    0x14065884f
140658842:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
140658849:	00 00 80
14065884c:	48 8b c8             	mov    %rax,%rcx
14065884f:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
140658854:	48 03 c1             	add    %rcx,%rax
140658857:	b9 08 00 00 00       	mov    $0x8,%ecx
14065885c:	48 3b c1             	cmp    %rcx,%rax
14065885f:	48 0f 47 c8          	cmova  %rax,%rcx
140658863:	48 3b f1             	cmp    %rcx,%rsi
140658866:	73 19                	jae    0x140658881
140658868:	48 81 fe 00 02 00 00 	cmp    $0x200,%rsi
14065886f:	73 0d                	jae    0x14065887e
140658871:	48 8d 34 f5 00 00 00 	lea    0x0(,%rsi,8),%rsi
140658878:	00
140658879:	48 3b f1             	cmp    %rcx,%rsi
14065887c:	73 03                	jae    0x140658881
14065887e:	48 8b f1             	mov    %rcx,%rsi
140658881:	48 8b d6             	mov    %rsi,%rdx
140658884:	48 8b cd             	mov    %rbp,%rcx
140658887:	e8 d4 32 00 00       	call   0x14065bb60
14065888c:	48 8b cf             	mov    %rdi,%rcx
14065888f:	48 23 4d 30          	and    0x30(%rbp),%rcx
140658893:	48 03 c9             	add    %rcx,%rcx
140658896:	48 8b 55 18          	mov    0x18(%rbp),%rdx
14065889a:	48 8b 44 ca 08       	mov    0x8(%rdx,%rcx,8),%rax
14065889f:	48 8b 5d 08          	mov    0x8(%rbp),%rbx
1406588a3:	48 3b c3             	cmp    %rbx,%rax
1406588a6:	75 0b                	jne    0x1406588b3
1406588a8:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
1406588af:	00 00
1406588b1:	eb 23                	jmp    0x1406588d6
1406588b3:	48 8b 14 ca          	mov    (%rdx,%rcx,8),%rdx
1406588b7:	49 8b 4e 10          	mov    0x10(%r14),%rcx
1406588bb:	48 3b 48 10          	cmp    0x10(%rax),%rcx
1406588bf:	74 12                	je     0x1406588d3
1406588c1:	48 8b d8             	mov    %rax,%rbx
1406588c4:	48 3b c2             	cmp    %rdx,%rax
1406588c7:	74 4b                	je     0x140658914
1406588c9:	48 8b 40 08          	mov    0x8(%rax),%rax
1406588cd:	48 3b 48 10          	cmp    0x10(%rax),%rcx
1406588d1:	75 ee                	jne    0x1406588c1
1406588d3:	48 8b 18             	mov    (%rax),%rbx
1406588d6:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1406588db:	4c 8b e3             	mov    %rbx,%r12
1406588de:	4c 8b 6c 24 20       	mov    0x20(%rsp),%r13
1406588e3:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
1406588e7:	48 ff 45 10          	incq   0x10(%rbp)
1406588eb:	4d 89 2e             	mov    %r13,(%r14)
1406588ee:	49 89 4e 08          	mov    %rcx,0x8(%r14)
1406588f2:	4c 89 31             	mov    %r14,(%rcx)
1406588f5:	4c 89 73 08          	mov    %r14,0x8(%rbx)
1406588f9:	48 8b 45 18          	mov    0x18(%rbp),%rax
1406588fd:	48 23 7d 30          	and    0x30(%rbp),%rdi
140658901:	48 03 ff             	add    %rdi,%rdi
140658904:	48 8b 14 f8          	mov    (%rax,%rdi,8),%rdx
140658908:	48 3b 55 08          	cmp    0x8(%rbp),%rdx
14065890c:	75 16                	jne    0x140658924
14065890e:	4c 89 34 f8          	mov    %r14,(%rax,%rdi,8)
140658912:	eb 22                	jmp    0x140658936
140658914:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140658919:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
140658920:	00 00
140658922:	eb b7                	jmp    0x1406588db
140658924:	49 3b d4             	cmp    %r12,%rdx
140658927:	75 06                	jne    0x14065892f
140658929:	4c 89 34 f8          	mov    %r14,(%rax,%rdi,8)
14065892d:	eb 0c                	jmp    0x14065893b
14065892f:	48 39 4c f8 08       	cmp    %rcx,0x8(%rax,%rdi,8)
140658934:	75 05                	jne    0x14065893b
140658936:	4c 89 74 f8 08       	mov    %r14,0x8(%rax,%rdi,8)
14065893b:	4d 89 37             	mov    %r14,(%r15)
14065893e:	41 c6 47 08 01       	movb   $0x1,0x8(%r15)
140658943:	e9 0f fe ff ff       	jmp    0x140658757
140658948:	48 8d 0d 51 5b 95 00 	lea    0x955b51(%rip),%rcx        # 0x140fae4a0
14065894f:	e8 60 2a 7a 00       	call   0x140dfb3b4
140658954:	cc                   	int3
140658955:	cc                   	int3
140658956:	cc                   	int3
140658957:	cc                   	int3
140658958:	cc                   	int3
140658959:	cc                   	int3
14065895a:	cc                   	int3
14065895b:	cc                   	int3
14065895c:	cc                   	int3
14065895d:	cc                   	int3
14065895e:	cc                   	int3
14065895f:	cc                   	int3
140658960:	40 53                	rex push %rbx
140658962:	48 83 ec 20          	sub    $0x20,%rsp
140658966:	48 8b d9             	mov    %rcx,%rbx
140658969:	48 8b 49 08          	mov    0x8(%rcx),%rcx
14065896d:	48 85 c9             	test   %rcx,%rcx
140658970:	74 09                	je     0x14065897b
140658972:	48 83 c1 18          	add    $0x18,%rcx
140658976:	e8 35 1b be ff       	call   0x14023a4b0
14065897b:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
14065897f:	48 85 c9             	test   %rcx,%rcx
140658982:	74 0f                	je     0x140658993
140658984:	ba 58 00 00 00       	mov    $0x58,%edx
140658989:	48 83 c4 20          	add    $0x20,%rsp
14065898d:	5b                   	pop    %rbx
14065898e:	e9 b1 27 7c 00       	jmp    0x140e1b144
140658993:	48 83 c4 20          	add    $0x20,%rsp
140658997:	5b                   	pop    %rbx
140658998:	c3                   	ret
140658999:	cc                   	int3
14065899a:	cc                   	int3
14065899b:	cc                   	int3
14065899c:	cc                   	int3
14065899d:	cc                   	int3
14065899e:	cc                   	int3
14065899f:	cc                   	int3
1406589a0:	40 57                	rex push %rdi
1406589a2:	48 83 ec 20          	sub    $0x20,%rsp
1406589a6:	48 8b 39             	mov    (%rcx),%rdi
1406589a9:	48 85 ff             	test   %rdi,%rdi
1406589ac:	0f 84 9a 00 00 00    	je     0x140658a4c
1406589b2:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
1406589b6:	48 85 c9             	test   %rcx,%rcx
1406589b9:	0f 84 8d 00 00 00    	je     0x140658a4c
1406589bf:	48 8b 47 38          	mov    0x38(%rdi),%rax
1406589c3:	48 c1 e8 03          	shr    $0x3,%rax
1406589c7:	48 3b c1             	cmp    %rcx,%rax
1406589ca:	76 17                	jbe    0x1406589e3
1406589cc:	48 8b 57 08          	mov    0x8(%rdi),%rdx
1406589d0:	48 8b cf             	mov    %rdi,%rcx
1406589d3:	4c 8b c2             	mov    %rdx,%r8
1406589d6:	48 8b 12             	mov    (%rdx),%rdx
1406589d9:	48 83 c4 20          	add    $0x20,%rsp
1406589dd:	5f                   	pop    %rdi
1406589de:	e9 9d 39 00 00       	jmp    0x14065c380
1406589e3:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1406589e7:	48 8b 41 08          	mov    0x8(%rcx),%rax
1406589eb:	48 c7 00 00 00 00 00 	movq   $0x0,(%rax)
1406589f2:	48 8b 09             	mov    (%rcx),%rcx
1406589f5:	48 85 c9             	test   %rcx,%rcx
1406589f8:	74 20                	je     0x140658a1a
1406589fa:	48 89 5c 24 38       	mov    %rbx,0x38(%rsp)
1406589ff:	90                   	nop
140658a00:	48 8b 19             	mov    (%rcx),%rbx
140658a03:	ba 18 00 00 00       	mov    $0x18,%edx
140658a08:	e8 37 27 7c 00       	call   0x140e1b144
140658a0d:	48 8b cb             	mov    %rbx,%rcx
140658a10:	48 85 db             	test   %rbx,%rbx
140658a13:	75 eb                	jne    0x140658a00
140658a15:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140658a1a:	48 8b 47 08          	mov    0x8(%rdi),%rax
140658a1e:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
140658a23:	48 89 00             	mov    %rax,(%rax)
140658a26:	48 8b 47 08          	mov    0x8(%rdi),%rax
140658a2a:	48 89 40 08          	mov    %rax,0x8(%rax)
140658a2e:	48 c7 47 10 00 00 00 	movq   $0x0,0x10(%rdi)
140658a35:	00
140658a36:	48 8b 47 08          	mov    0x8(%rdi),%rax
140658a3a:	48 8b 57 20          	mov    0x20(%rdi),%rdx
140658a3e:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
140658a42:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140658a47:	e8 94 da bb ff       	call   0x1402164e0
140658a4c:	48 83 c4 20          	add    $0x20,%rsp
140658a50:	5f                   	pop    %rdi
140658a51:	c3                   	ret
140658a52:	cc                   	int3
140658a53:	cc                   	int3
140658a54:	cc                   	int3
140658a55:	cc                   	int3
140658a56:	cc                   	int3
140658a57:	cc                   	int3
140658a58:	cc                   	int3
140658a59:	cc                   	int3
140658a5a:	cc                   	int3
140658a5b:	cc                   	int3
140658a5c:	cc                   	int3
140658a5d:	cc                   	int3
140658a5e:	cc                   	int3
140658a5f:	cc                   	int3
140658a60:	48 8b 09             	mov    (%rcx),%rcx
140658a63:	48 85 c9             	test   %rcx,%rcx
140658a66:	0f 85 d4 3c 00 00    	jne    0x14065c740
140658a6c:	c3                   	ret
140658a6d:	cc                   	int3
140658a6e:	cc                   	int3
140658a6f:	cc                   	int3
140658a70:	48 8b c4             	mov    %rsp,%rax
140658a73:	48 89 58 10          	mov    %rbx,0x10(%rax)
140658a77:	48 89 68 18          	mov    %rbp,0x18(%rax)
140658a7b:	48 89 70 20          	mov    %rsi,0x20(%rax)
140658a7f:	57                   	push   %rdi
140658a80:	41 54                	push   %r12
140658a82:	41 55                	push   %r13
140658a84:	41 56                	push   %r14
140658a86:	41 57                	push   %r15
140658a88:	48 83 ec 50          	sub    $0x50,%rsp
140658a8c:	4c 8b e1             	mov    %rcx,%r12
140658a8f:	48 3b ca             	cmp    %rdx,%rcx
140658a92:	0f 84 86 01 00 00    	je     0x140658c1e
140658a98:	48 89 48 08          	mov    %rcx,0x8(%rax)
140658a9c:	8b 02                	mov    (%rdx),%eax
140658a9e:	89 01                	mov    %eax,(%rcx)
140658aa0:	4c 8d 69 08          	lea    0x8(%rcx),%r13
140658aa4:	48 8b 7a 08          	mov    0x8(%rdx),%rdi
140658aa8:	48 8b 1f             	mov    (%rdi),%rbx
140658aab:	49 8b 75 00          	mov    0x0(%r13),%rsi
140658aaf:	48 8b 0e             	mov    (%rsi),%rcx
140658ab2:	48 3b ce             	cmp    %rsi,%rcx
140658ab5:	74 1c                	je     0x140658ad3
140658ab7:	48 3b df             	cmp    %rdi,%rbx
140658aba:	0f 84 bd 00 00 00    	je     0x140658b7d
140658ac0:	48 8b 43 10          	mov    0x10(%rbx),%rax
140658ac4:	48 89 41 10          	mov    %rax,0x10(%rcx)
140658ac8:	48 8b 09             	mov    (%rcx),%rcx
140658acb:	48 8b 1b             	mov    (%rbx),%rbx
140658ace:	48 3b ce             	cmp    %rsi,%rcx
140658ad1:	75 e4                	jne    0x140658ab7
140658ad3:	4c 89 6c 24 30       	mov    %r13,0x30(%rsp)
140658ad8:	33 ed                	xor    %ebp,%ebp
140658ada:	44 8b fd             	mov    %ebp,%r15d
140658add:	48 89 6c 24 38       	mov    %rbp,0x38(%rsp)
140658ae2:	0f 57 c0             	xorps  %xmm0,%xmm0
140658ae5:	f3 0f 7f 44 24 40    	movdqu %xmm0,0x40(%rsp)
140658aeb:	48 3b df             	cmp    %rdi,%rbx
140658aee:	0f 84 bd 00 00 00    	je     0x140658bb1
140658af4:	4c 89 6c 24 20       	mov    %r13,0x20(%rsp)
140658af9:	48 89 6c 24 28       	mov    %rbp,0x28(%rsp)
140658afe:	b9 18 00 00 00       	mov    $0x18,%ecx
140658b03:	e8 00 26 7c 00       	call   0x140e1b108
140658b08:	48 8b f0             	mov    %rax,%rsi
140658b0b:	48 8b 43 10          	mov    0x10(%rbx),%rax
140658b0f:	48 89 46 10          	mov    %rax,0x10(%rsi)
140658b13:	48 89 6c 24 28       	mov    %rbp,0x28(%rsp)
140658b18:	48 89 74 24 48       	mov    %rsi,0x48(%rsp)
140658b1d:	4c 8b f6             	mov    %rsi,%r14
140658b20:	48 89 74 24 40       	mov    %rsi,0x40(%rsp)
140658b25:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140658b2b:	4c 89 7c 24 38       	mov    %r15,0x38(%rsp)
140658b30:	48 8b 1b             	mov    (%rbx),%rbx
140658b33:	48 3b df             	cmp    %rdi,%rbx
140658b36:	74 43                	je     0x140658b7b
140658b38:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140658b3f:	00
140658b40:	48 89 6c 24 28       	mov    %rbp,0x28(%rsp)
140658b45:	b9 18 00 00 00       	mov    $0x18,%ecx
140658b4a:	e8 b9 25 7c 00       	call   0x140e1b108
140658b4f:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
140658b53:	48 89 48 10          	mov    %rcx,0x10(%rax)
140658b57:	49 89 06             	mov    %rax,(%r14)
140658b5a:	4c 89 70 08          	mov    %r14,0x8(%rax)
140658b5e:	48 89 6c 24 28       	mov    %rbp,0x28(%rsp)
140658b63:	4c 8b f0             	mov    %rax,%r14
140658b66:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140658b6b:	49 ff c7             	inc    %r15
140658b6e:	4c 89 7c 24 38       	mov    %r15,0x38(%rsp)
140658b73:	48 8b 1b             	mov    (%rbx),%rbx
140658b76:	48 3b df             	cmp    %rdi,%rbx
140658b79:	75 c5                	jne    0x140658b40
140658b7b:	eb 3e                	jmp    0x140658bbb
140658b7d:	48 3b ce             	cmp    %rsi,%rcx
140658b80:	0f 84 7f 00 00 00    	je     0x140658c05
140658b86:	48 8b 41 08          	mov    0x8(%rcx),%rax