14006561d:	49 f7 f4             	div    %r12
140065620:	48 89 d0             	mov    %rdx,%rax
140065623:	4c 39 f8             	cmp    %r15,%rax
140065626:	75 08                	jne    0x140065630
140065628:	4d 8b 36             	mov    (%r14),%r14
14006562b:	4d 85 f6             	test   %r14,%r14
14006562e:	75 d9                	jne    0x140065609
140065630:	b9 20 00 00 00       	mov    $0x20,%ecx
140065635:	e8 5a 88 00 00       	call   0x14006de94
14006563a:	48 85 c0             	test   %rax,%rax
14006563d:	0f 84 0d 02 00 00    	je     0x140065850
140065643:	49 89 c6             	mov    %rax,%r14
140065646:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
14006564d:	00
14006564e:	31 c9                	xor    %ecx,%ecx
140065650:	49 89 0e             	mov    %rcx,(%r14)
140065653:	49 89 5e 08          	mov    %rbx,0x8(%r14)
140065657:	48 8b 00             	mov    (%rax),%rax
14006565a:	48 8b 00             	mov    (%rax),%rax
14006565d:	49 89 46 10          	mov    %rax,0x10(%r14)
140065661:	49 89 4e 18          	mov    %rcx,0x18(%r14)
140065665:	48 8b 47 18          	mov    0x18(%rdi),%rax
140065669:	48 ff c0             	inc    %rax
14006566c:	78 07                	js     0x140065675
14006566e:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
140065673:	eb 15                	jmp    0x14006568a
140065675:	48 89 c1             	mov    %rax,%rcx
140065678:	48 d1 e9             	shr    $1,%rcx
14006567b:	83 e0 01             	and    $0x1,%eax
14006567e:	48 09 c8             	or     %rcx,%rax
140065681:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
140065686:	f3 0f 58 c0          	addss  %xmm0,%xmm0
14006568a:	4c 89 e1             	mov    %r12,%rcx
14006568d:	48 d1 e9             	shr    $1,%rcx
140065690:	44 89 e0             	mov    %r12d,%eax
140065693:	83 e0 01             	and    $0x1,%eax
140065696:	48 09 c8             	or     %rcx,%rax
140065699:	4d 85 e4             	test   %r12,%r12
14006569c:	79 0b                	jns    0x1400656a9
14006569e:	f3 48 0f 2a c8       	cvtsi2ss %rax,%xmm1
1400656a3:	f3 0f 58 c9          	addss  %xmm1,%xmm1
1400656a7:	eb 05                	jmp    0x1400656ae
1400656a9:	f3 49 0f 2a cc       	cvtsi2ss %r12,%xmm1
1400656ae:	f3 0f 10 57 20       	movss  0x20(%rdi),%xmm2
1400656b3:	0f 84 a7 00 00 00    	je     0x140065760
1400656b9:	f3 0f 59 ca          	mulss  %xmm2,%xmm1
1400656bd:	0f 2e c1             	ucomiss %xmm1,%xmm0
1400656c0:	0f 87 9a 00 00 00    	ja     0x140065760
1400656c6:	48 8b 07             	mov    (%rdi),%rax
1400656c9:	4a 8b 0c f8          	mov    (%rax,%r15,8),%rcx
1400656cd:	48 85 c9             	test   %rcx,%rcx
1400656d0:	74 26                	je     0x1400656f8
1400656d2:	48 8b 01             	mov    (%rcx),%rax
1400656d5:	49 89 06             	mov    %rax,(%r14)
1400656d8:	4c 89 31             	mov    %r14,(%rcx)
1400656db:	48 ff 47 18          	incq   0x18(%rdi)
1400656df:	b0 01                	mov    $0x1,%al
1400656e1:	4c 89 36             	mov    %r14,(%rsi)
1400656e4:	88 46 08             	mov    %al,0x8(%rsi)
1400656e7:	48 89 f0             	mov    %rsi,%rax
1400656ea:	48 83 c4 28          	add    $0x28,%rsp
1400656ee:	5b                   	pop    %rbx
1400656ef:	5f                   	pop    %rdi
1400656f0:	5e                   	pop    %rsi
1400656f1:	41 5c                	pop    %r12
1400656f3:	41 5e                	pop    %r14
1400656f5:	41 5f                	pop    %r15
1400656f7:	c3                   	ret
1400656f8:	48 8d 4f 10          	lea    0x10(%rdi),%rcx
1400656fc:	48 8b 57 10          	mov    0x10(%rdi),%rdx
140065700:	49 89 16             	mov    %rdx,(%r14)
140065703:	4c 89 77 10          	mov    %r14,0x10(%rdi)
140065707:	4a 89 0c f8          	mov    %rcx,(%rax,%r15,8)
14006570b:	49 8b 06             	mov    (%r14),%rax
14006570e:	48 85 c0             	test   %rax,%rax
140065711:	74 c8                	je     0x1400656db
140065713:	48 8b 40 08          	mov    0x8(%rax),%rax
140065717:	49 8d 4c 24 ff       	lea    -0x1(%r12),%rcx
14006571c:	49 85 cc             	test   %rcx,%r12
14006571f:	74 32                	je     0x140065753
140065721:	4c 39 e0             	cmp    %r12,%rax
140065724:	72 08                	jb     0x14006572e
140065726:	31 d2                	xor    %edx,%edx
140065728:	49 f7 f4             	div    %r12
14006572b:	48 89 d0             	mov    %rdx,%rax
14006572e:	48 8b 0f             	mov    (%rdi),%rcx
140065731:	4c 89 34 c1          	mov    %r14,(%rcx,%rax,8)
140065735:	eb a4                	jmp    0x1400656db
140065737:	4d 8d 7c 24 ff       	lea    -0x1(%r12),%r15
14006573c:	49 21 df             	and    %rbx,%r15
14006573f:	e9 a8 fe ff ff       	jmp    0x1400655ec
140065744:	49 bf aa aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaaa,%r15
14006574b:	aa aa aa
14006574e:	e9 dd fe ff ff       	jmp    0x140065630
140065753:	48 21 c8             	and    %rcx,%rax
140065756:	eb d6                	jmp    0x14006572e
140065758:	41 bf 01 00 00 00    	mov    $0x1,%r15d
14006575e:	eb 41                	jmp    0x1400657a1
140065760:	f3 0f 5e c2          	divss  %xmm2,%xmm0
140065764:	e8 a7 76 03 00       	call   0x14009ce10
140065769:	f3 48 0f 2c c8       	cvttss2si %xmm0,%rcx
14006576e:	48 89 ca             	mov    %rcx,%rdx
140065771:	48 c1 fa 3f          	sar    $0x3f,%rdx
140065775:	f3 0f 5c 05 63 79 08 	subss  0x87963(%rip),%xmm0        # 0x1400ed0e0
14006577c:	00
14006577d:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
140065782:	48 21 d0             	and    %rdx,%rax
140065785:	48 09 c8             	or     %rcx,%rax
140065788:	4b 8d 0c 24          	lea    (%r12,%r12,1),%rcx
14006578c:	49 83 fc 03          	cmp    $0x3,%r12
140065790:	72 c6                	jb     0x140065758
140065792:	49 8d 54 24 ff       	lea    -0x1(%r12),%rdx
140065797:	45 31 ff             	xor    %r15d,%r15d
14006579a:	49 85 d4             	test   %rdx,%r12
14006579d:	41 0f 95 c7          	setne  %r15b
1400657a1:	49 09 cf             	or     %rcx,%r15
1400657a4:	49 39 c7             	cmp    %rax,%r15
1400657a7:	4c 0f 46 f8          	cmovbe %rax,%r15
1400657ab:	49 83 ff 01          	cmp    $0x1,%r15
1400657af:	74 4f                	je     0x140065800
1400657b1:	49 8d 47 ff          	lea    -0x1(%r15),%rax
1400657b5:	49 85 c7             	test   %rax,%r15
1400657b8:	74 0f                	je     0x1400657c9
1400657ba:	4c 89 f9             	mov    %r15,%rcx
1400657bd:	e8 7e 47 ff ff       	call   0x140059f40
1400657c2:	49 89 c7             	mov    %rax,%r15
1400657c5:	4c 8b 67 08          	mov    0x8(%rdi),%r12
1400657c9:	4d 39 e7             	cmp    %r12,%r15
1400657cc:	0f 86 88 00 00 00    	jbe    0x14006585a
1400657d2:	48 89 f9             	mov    %rdi,%rcx
1400657d5:	4c 89 fa             	mov    %r15,%rdx
1400657d8:	e8 73 01 00 00       	call   0x140065950
1400657dd:	4c 8b 67 08          	mov    0x8(%rdi),%r12
1400657e1:	4d 8d 7c 24 ff       	lea    -0x1(%r12),%r15
1400657e6:	4d 85 fc             	test   %r15,%r12
1400657e9:	74 1d                	je     0x140065808
1400657eb:	4c 39 e3             	cmp    %r12,%rbx
1400657ee:	72 62                	jb     0x140065852
1400657f0:	48 89 d8             	mov    %rbx,%rax
1400657f3:	31 d2                	xor    %edx,%edx
1400657f5:	49 f7 f4             	div    %r12
1400657f8:	49 89 d7             	mov    %rdx,%r15
1400657fb:	e9 c6 fe ff ff       	jmp    0x1400656c6
140065800:	41 bf 02 00 00 00    	mov    $0x2,%r15d
140065806:	eb c1                	jmp    0x1400657c9
140065808:	49 21 df             	and    %rbx,%r15
14006580b:	e9 b6 fe ff ff       	jmp    0x1400656c6
140065810:	49 8d 44 24 ff       	lea    -0x1(%r12),%rax
140065815:	49 8b 4e 08          	mov    0x8(%r14),%rcx
140065819:	48 39 d9             	cmp    %rbx,%rcx
14006581c:	74 2a                	je     0x140065848
14006581e:	48 21 c1             	and    %rax,%rcx
140065821:	4c 39 f9             	cmp    %r15,%rcx
140065824:	0f 85 06 fe ff ff    	jne    0x140065630
14006582a:	4d 8b 36             	mov    (%r14),%r14
14006582d:	4d 85 f6             	test   %r14,%r14
140065830:	75 e3                	jne    0x140065815
140065832:	e9 f9 fd ff ff       	jmp    0x140065630
140065837:	49 39 5e 10          	cmp    %rbx,0x10(%r14)
14006583b:	0f 85 e7 fd ff ff    	jne    0x140065628
140065841:	31 c0                	xor    %eax,%eax
140065843:	e9 99 fe ff ff       	jmp    0x1400656e1
140065848:	49 39 5e 10          	cmp    %rbx,0x10(%r14)
14006584c:	74 f3                	je     0x140065841
14006584e:	eb da                	jmp    0x14006582a
140065850:	0f 0b                	ud2
140065852:	49 89 df             	mov    %rbx,%r15
140065855:	e9 6c fe ff ff       	jmp    0x1400656c6
14006585a:	73 81                	jae    0x1400657dd
14006585c:	48 8b 47 18          	mov    0x18(%rdi),%rax
140065860:	48 85 c0             	test   %rax,%rax
140065863:	79 1a                	jns    0x14006587f
140065865:	48 89 c1             	mov    %rax,%rcx
140065868:	48 d1 e9             	shr    $1,%rcx
14006586b:	83 e0 01             	and    $0x1,%eax
14006586e:	48 09 c8             	or     %rcx,%rax
140065871:	0f 57 c0             	xorps  %xmm0,%xmm0
140065874:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
140065879:	f3 0f 58 c0          	addss  %xmm0,%xmm0
14006587d:	eb 08                	jmp    0x140065887
14006587f:	0f 57 c0             	xorps  %xmm0,%xmm0
140065882:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
140065887:	f3 0f 5e 47 20       	divss  0x20(%rdi),%xmm0
14006588c:	e8 7f 75 03 00       	call   0x14009ce10
140065891:	f3 48 0f 2c c8       	cvttss2si %xmm0,%rcx
140065896:	48 89 ca             	mov    %rcx,%rdx
140065899:	f3 0f 5c 05 3f 78 08 	subss  0x8783f(%rip),%xmm0        # 0x1400ed0e0
1400658a0:	00
1400658a1:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
1400658a6:	48 c1 fa 3f          	sar    $0x3f,%rdx
1400658aa:	48 21 d0             	and    %rdx,%rax
1400658ad:	48 09 c8             	or     %rcx,%rax
1400658b0:	49 83 fc 03          	cmp    $0x3,%r12
1400658b4:	72 7d                	jb     0x140065933
1400658b6:	4c 89 e1             	mov    %r12,%rcx
1400658b9:	48 d1 e9             	shr    $1,%rcx
1400658bc:	48 ba 55 55 55 55 55 	movabs $0x5555555555555555,%rdx
1400658c3:	55 55 55
1400658c6:	48 21 ca             	and    %rcx,%rdx
1400658c9:	4c 89 e1             	mov    %r12,%rcx
1400658cc:	48 29 d1             	sub    %rdx,%rcx
1400658cf:	48 ba 33 33 33 33 33 	movabs $0x3333333333333333,%rdx
1400658d6:	33 33 33
1400658d9:	49 89 c8             	mov    %rcx,%r8
1400658dc:	49 c1 e8 02          	shr    $0x2,%r8
1400658e0:	48 21 d1             	and    %rdx,%rcx
1400658e3:	49 21 d0             	and    %rdx,%r8
1400658e6:	49 01 c8             	add    %rcx,%r8
1400658e9:	4c 89 c1             	mov    %r8,%rcx
1400658ec:	48 c1 e9 04          	shr    $0x4,%rcx
1400658f0:	4c 01 c1             	add    %r8,%rcx
1400658f3:	48 ba 0f 0f 0f 0f 0f 	movabs $0xf0f0f0f0f0f0f0f,%rdx
1400658fa:	0f 0f 0f
1400658fd:	48 21 ca             	and    %rcx,%rdx
140065900:	48 b9 01 01 01 01 01 	movabs $0x101010101010101,%rcx
140065907:	01 01 01
14006590a:	48 0f af ca          	imul   %rdx,%rcx
14006590e:	48 c1 e9 38          	shr    $0x38,%rcx
140065912:	83 f9 01             	cmp    $0x1,%ecx
140065915:	77 1c                	ja     0x140065933
140065917:	48 83 f8 02          	cmp    $0x2,%rax
14006591b:	72 1e                	jb     0x14006593b
14006591d:	48 ff c8             	dec    %rax
140065920:	48 0f bd c8          	bsr    %rax,%rcx
140065924:	83 f1 3f             	xor    $0x3f,%ecx
140065927:	f6 d9                	neg    %cl
140065929:	b8 01 00 00 00       	mov    $0x1,%eax
14006592e:	48 d3 e0             	shl    %cl,%rax
140065931:	eb 08                	jmp    0x14006593b
140065933:	48 89 c1             	mov    %rax,%rcx
140065936:	e8 05 46 ff ff       	call   0x140059f40
14006593b:	49 39 c7             	cmp    %rax,%r15
14006593e:	4c 0f 46 f8          	cmovbe %rax,%r15
140065942:	4d 39 e7             	cmp    %r12,%r15
140065945:	0f 82 87 fe ff ff    	jb     0x1400657d2
14006594b:	e9 8d fe ff ff       	jmp    0x1400657dd
140065950:	56                   	push   %rsi
140065951:	57                   	push   %rdi
140065952:	48 83 ec 28          	sub    $0x28,%rsp
140065956:	48 89 ce             	mov    %rcx,%rsi
140065959:	48 85 d2             	test   %rdx,%rdx
14006595c:	0f 84 3b 01 00 00    	je     0x140065a9d
140065962:	48 89 d7             	mov    %rdx,%rdi
140065965:	48 89 d0             	mov    %rdx,%rax
140065968:	48 c1 e8 3d          	shr    $0x3d,%rax
14006596c:	0f 85 26 01 00 00    	jne    0x140065a98
140065972:	48 8d 0c fd 00 00 00 	lea    0x0(,%rdi,8),%rcx
140065979:	00
14006597a:	e8 15 85 00 00       	call   0x14006de94
14006597f:	48 8b 0e             	mov    (%rsi),%rcx
140065982:	48 89 06             	mov    %rax,(%rsi)
140065985:	48 85 c9             	test   %rcx,%rcx
140065988:	74 05                	je     0x14006598f
14006598a:	e8 41 85 00 00       	call   0x14006ded0
14006598f:	48 89 7e 08          	mov    %rdi,0x8(%rsi)
140065993:	31 c0                	xor    %eax,%eax
140065995:	48 8b 0e             	mov    (%rsi),%rcx
140065998:	48 c7 04 c1 00 00 00 	movq   $0x0,(%rcx,%rax,8)
14006599f:	00
1400659a0:	48 ff c0             	inc    %rax
1400659a3:	48 39 c7             	cmp    %rax,%rdi
1400659a6:	75 ed                	jne    0x140065995
1400659a8:	4c 8b 46 10          	mov    0x10(%rsi),%r8
1400659ac:	4d 85 c0             	test   %r8,%r8
1400659af:	74 2d                	je     0x1400659de
1400659b1:	4c 8d 4e 10          	lea    0x10(%rsi),%r9
1400659b5:	49 8b 48 08          	mov    0x8(%r8),%rcx
1400659b9:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
1400659bd:	48 85 c7             	test   %rax,%rdi
1400659c0:	74 7a                	je     0x140065a3c
1400659c2:	48 39 f9             	cmp    %rdi,%rcx
1400659c5:	72 0b                	jb     0x1400659d2
1400659c7:	48 89 c8             	mov    %rcx,%rax
1400659ca:	31 d2                	xor    %edx,%edx
1400659cc:	48 f7 f7             	div    %rdi
1400659cf:	48 89 d1             	mov    %rdx,%rcx
1400659d2:	48 8b 06             	mov    (%rsi),%rax
1400659d5:	4c 89 0c c8          	mov    %r9,(%rax,%rcx,8)
1400659d9:	4d 8b 08             	mov    (%r8),%r9
1400659dc:	eb 14                	jmp    0x1400659f2
1400659de:	48 83 c4 28          	add    $0x28,%rsp
1400659e2:	5f                   	pop    %rdi
1400659e3:	5e                   	pop    %rsi
1400659e4:	c3                   	ret
1400659e5:	4c 89 04 c2          	mov    %r8,(%rdx,%rax,8)
1400659e9:	4d 89 c8             	mov    %r9,%r8
1400659ec:	4d 8b 09             	mov    (%r9),%r9
1400659ef:	48 89 c1             	mov    %rax,%rcx
1400659f2:	4d 85 c9             	test   %r9,%r9
1400659f5:	74 e7                	je     0x1400659de
1400659f7:	49 8b 41 08          	mov    0x8(%r9),%rax
1400659fb:	48 39 f8             	cmp    %rdi,%rax
1400659fe:	72 08                	jb     0x140065a08
140065a00:	31 d2                	xor    %edx,%edx
140065a02:	48 f7 f7             	div    %rdi
140065a05:	48 89 d0             	mov    %rdx,%rax
140065a08:	48 39 c8             	cmp    %rcx,%rax
140065a0b:	74 2a                	je     0x140065a37
140065a0d:	48 8b 16             	mov    (%rsi),%rdx
140065a10:	48 83 3c c2 00       	cmpq   $0x0,(%rdx,%rax,8)
140065a15:	74 ce                	je     0x1400659e5
140065a17:	49 8b 11             	mov    (%r9),%rdx
140065a1a:	49 89 10             	mov    %rdx,(%r8)
140065a1d:	48 8b 16             	mov    (%rsi),%rdx
140065a20:	48 8b 14 c2          	mov    (%rdx,%rax,8),%rdx
140065a24:	48 8b 12             	mov    (%rdx),%rdx
140065a27:	49 89 11             	mov    %rdx,(%r9)
140065a2a:	48 8b 16             	mov    (%rsi),%rdx
140065a2d:	48 8b 04 c2          	mov    (%rdx,%rax,8),%rax
140065a31:	4c 89 08             	mov    %r9,(%rax)
140065a34:	4d 89 c1             	mov    %r8,%r9
140065a37:	48 89 c8             	mov    %rcx,%rax
140065a3a:	eb ad                	jmp    0x1400659e9
140065a3c:	48 21 c1             	and    %rax,%rcx
140065a3f:	48 8b 16             	mov    (%rsi),%rdx
140065a42:	4c 89 0c ca          	mov    %r9,(%rdx,%rcx,8)
140065a46:	eb 0f                	jmp    0x140065a57
140065a48:	49 89 d0             	mov    %rdx,%r8
140065a4b:	eb 0a                	jmp    0x140065a57
140065a4d:	4f 89 04 ca          	mov    %r8,(%r10,%r9,8)
140065a51:	49 89 d0             	mov    %rdx,%r8
140065a54:	4c 89 c9             	mov    %r9,%rcx
140065a57:	49 8b 10             	mov    (%r8),%rdx
140065a5a:	48 85 d2             	test   %rdx,%rdx
140065a5d:	0f 84 7b ff ff ff    	je     0x1400659de
140065a63:	4c 8b 4a 08          	mov    0x8(%rdx),%r9
140065a67:	49 21 c1             	and    %rax,%r9
140065a6a:	49 39 c9             	cmp    %rcx,%r9
140065a6d:	74 d9                	je     0x140065a48
140065a6f:	4c 8b 16             	mov    (%rsi),%r10
140065a72:	4b 83 3c ca 00       	cmpq   $0x0,(%r10,%r9,8)
140065a77:	74 d4                	je     0x140065a4d
140065a79:	4c 8b 12             	mov    (%rdx),%r10
140065a7c:	4d 89 10             	mov    %r10,(%r8)
140065a7f:	4c 8b 16             	mov    (%rsi),%r10
140065a82:	4f 8b 14 ca          	mov    (%r10,%r9,8),%r10
140065a86:	4d 8b 12             	mov    (%r10),%r10
140065a89:	4c 89 12             	mov    %r10,(%rdx)
140065a8c:	4c 8b 16             	mov    (%rsi),%r10
140065a8f:	4f 8b 0c ca          	mov    (%r10,%r9,8),%r9
140065a93:	49 89 11             	mov    %rdx,(%r9)
140065a96:	eb bf                	jmp    0x140065a57
140065a98:	e8 e3 98 03 00       	call   0x14009f380
140065a9d:	48 8b 0e             	mov    (%rsi),%rcx
140065aa0:	48 c7 06 00 00 00 00 	movq   $0x0,(%rsi)
140065aa7:	48 85 c9             	test   %rcx,%rcx
140065aaa:	74 05                	je     0x140065ab1
140065aac:	e8 1f 84 00 00       	call   0x14006ded0
140065ab1:	48 c7 46 08 00 00 00 	movq   $0x0,0x8(%rsi)
140065ab8:	00