1405b768a:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffffff,%rax
1405b7691:	ff ff 0f
1405b7694:	48 8b f1             	mov    %rcx,%rsi
1405b7697:	48 0f bd c8          	bsr    %rax,%rcx
1405b769b:	bb 01 00 00 00       	mov    $0x1,%ebx
1405b76a0:	8b c3                	mov    %ebx,%eax
1405b76a2:	48 d3 e0             	shl    %cl,%rax
1405b76a5:	48 3b d0             	cmp    %rax,%rdx
1405b76a8:	0f 87 83 01 00 00    	ja     0x1405b7831
1405b76ae:	48 8d 42 ff          	lea    -0x1(%rdx),%rax
1405b76b2:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
1405b76b7:	48 8b 7e 08          	mov    0x8(%rsi),%rdi
1405b76bb:	48 0b c3             	or     %rbx,%rax
1405b76be:	48 0f bd c8          	bsr    %rax,%rcx
1405b76c2:	4c 8b c7             	mov    %rdi,%r8
1405b76c5:	4c 89 74 24 40       	mov    %r14,0x40(%rsp)
1405b76ca:	ff c1                	inc    %ecx
1405b76cc:	48 d3 e3             	shl    %cl,%rbx
1405b76cf:	48 8d 4e 18          	lea    0x18(%rsi),%rcx
1405b76d3:	48 8d 14 1b          	lea    (%rbx,%rbx,1),%rdx
1405b76d7:	e8 a4 53 dd ff       	call   0x14038ca80
1405b76dc:	48 89 5e 38          	mov    %rbx,0x38(%rsi)
1405b76e0:	48 8d 43 ff          	lea    -0x1(%rbx),%rax
1405b76e4:	48 89 46 30          	mov    %rax,0x30(%rsi)
1405b76e8:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
1405b76ec:	48 8b 09             	mov    (%rcx),%rcx
1405b76ef:	48 3b cf             	cmp    %rdi,%rcx
1405b76f2:	0f 84 fe 00 00 00    	je     0x1405b77f6
1405b76f8:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
1405b76fd:	48 8b c1             	mov    %rcx,%rax
1405b7700:	48 bd 25 23 22 84 e4 	movabs $0xcbf29ce484222325,%rbp
1405b7707:	9c f2 cb
1405b770a:	48 bb b3 01 00 00 00 	movabs $0x100000001b3,%rbx
1405b7711:	01 00 00
1405b7714:	0f 1f 40 00          	nopl   0x0(%rax)
1405b7718:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
1405b771f:	00
1405b7720:	0f b6 50 11          	movzbl 0x11(%rax),%edx
1405b7724:	44 0f b6 48 10       	movzbl 0x10(%rax),%r9d
1405b7729:	4c 8b 5e 30          	mov    0x30(%rsi),%r11
1405b772d:	4c 33 cd             	xor    %rbp,%r9
1405b7730:	48 8b 09             	mov    (%rcx),%rcx
1405b7733:	4c 0f af cb          	imul   %rbx,%r9
1405b7737:	4c 33 ca             	xor    %rdx,%r9
1405b773a:	0f b6 50 12          	movzbl 0x12(%rax),%edx
1405b773e:	4c 0f af cb          	imul   %rbx,%r9
1405b7742:	4c 33 ca             	xor    %rdx,%r9
1405b7745:	0f b6 50 13          	movzbl 0x13(%rax),%edx
1405b7749:	4c 0f af cb          	imul   %rbx,%r9
1405b774d:	4c 33 ca             	xor    %rdx,%r9
1405b7750:	4c 0f af cb          	imul   %rbx,%r9
1405b7754:	4d 23 d9             	and    %r9,%r11
1405b7757:	49 c1 e3 04          	shl    $0x4,%r11
1405b775b:	4c 03 5e 18          	add    0x18(%rsi),%r11
1405b775f:	4d 8b 0b             	mov    (%r11),%r9
1405b7762:	4c 3b cf             	cmp    %rdi,%r9
1405b7765:	75 09                	jne    0x1405b7770
1405b7767:	49 89 03             	mov    %rax,(%r11)
1405b776a:	49 89 43 08          	mov    %rax,0x8(%r11)
1405b776e:	eb 75                	jmp    0x1405b77e5
1405b7770:	49 8b 53 08          	mov    0x8(%r11),%rdx
1405b7774:	44 8b 40 10          	mov    0x10(%rax),%r8d
1405b7778:	44 3b 42 10          	cmp    0x10(%rdx),%r8d
1405b777c:	75 2f                	jne    0x1405b77ad
1405b777e:	4c 8b 12             	mov    (%rdx),%r10
1405b7781:	4c 3b d0             	cmp    %rax,%r10
1405b7784:	74 21                	je     0x1405b77a7
1405b7786:	4c 8b 48 08          	mov    0x8(%rax),%r9
1405b778a:	49 89 09             	mov    %rcx,(%r9)
1405b778d:	4c 8b 41 08          	mov    0x8(%rcx),%r8
1405b7791:	4d 89 10             	mov    %r10,(%r8)
1405b7794:	49 8b 52 08          	mov    0x8(%r10),%rdx
1405b7798:	48 89 02             	mov    %rax,(%rdx)
1405b779b:	4d 89 42 08          	mov    %r8,0x8(%r10)
1405b779f:	4c 89 49 08          	mov    %r9,0x8(%rcx)
1405b77a3:	48 89 50 08          	mov    %rdx,0x8(%rax)
1405b77a7:	49 89 43 08          	mov    %rax,0x8(%r11)
1405b77ab:	eb 38                	jmp    0x1405b77e5
1405b77ad:	4c 3b ca             	cmp    %rdx,%r9
1405b77b0:	74 0f                	je     0x1405b77c1
1405b77b2:	48 8b 52 08          	mov    0x8(%rdx),%rdx
1405b77b6:	44 3b 42 10          	cmp    0x10(%rdx),%r8d
1405b77ba:	74 4f                	je     0x1405b780b
1405b77bc:	4c 3b ca             	cmp    %rdx,%r9
1405b77bf:	75 f1                	jne    0x1405b77b2
1405b77c1:	4c 8b 50 08          	mov    0x8(%rax),%r10
1405b77c5:	49 89 0a             	mov    %rcx,(%r10)
1405b77c8:	4c 8b 49 08          	mov    0x8(%rcx),%r9
1405b77cc:	49 89 11             	mov    %rdx,(%r9)
1405b77cf:	4c 8b 42 08          	mov    0x8(%rdx),%r8
1405b77d3:	49 89 00             	mov    %rax,(%r8)
1405b77d6:	4c 89 4a 08          	mov    %r9,0x8(%rdx)
1405b77da:	4c 89 51 08          	mov    %r10,0x8(%rcx)
1405b77de:	4c 89 40 08          	mov    %r8,0x8(%rax)
1405b77e2:	49 89 03             	mov    %rax,(%r11)
1405b77e5:	48 8b c1             	mov    %rcx,%rax
1405b77e8:	48 3b cf             	cmp    %rdi,%rcx
1405b77eb:	0f 85 2f ff ff ff    	jne    0x1405b7720
1405b77f1:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
1405b77f6:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
1405b77fb:	4c 8b 74 24 40       	mov    0x40(%rsp),%r14
1405b7800:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
1405b7805:	48 83 c4 20          	add    $0x20,%rsp
1405b7809:	5e                   	pop    %rsi
1405b780a:	c3                   	ret
1405b780b:	4c 8b 12             	mov    (%rdx),%r10
1405b780e:	4c 8b 48 08          	mov    0x8(%rax),%r9
1405b7812:	49 89 09             	mov    %rcx,(%r9)
1405b7815:	4c 8b 41 08          	mov    0x8(%rcx),%r8
1405b7819:	4d 89 10             	mov    %r10,(%r8)
1405b781c:	49 8b 52 08          	mov    0x8(%r10),%rdx
1405b7820:	48 89 02             	mov    %rax,(%rdx)
1405b7823:	4d 89 42 08          	mov    %r8,0x8(%r10)
1405b7827:	4c 89 49 08          	mov    %r9,0x8(%rcx)
1405b782b:	48 89 50 08          	mov    %rdx,0x8(%rax)
1405b782f:	eb b4                	jmp    0x1405b77e5
1405b7831:	48 8d 0d b8 6c 9f 00 	lea    0x9f6cb8(%rip),%rcx        # 0x140fae4f0
1405b7838:	e8 77 3b 84 00       	call   0x140dfb3b4
1405b783d:	cc                   	int3
1405b783e:	cc                   	int3
1405b783f:	cc                   	int3
1405b7840:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1405b7845:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
1405b784a:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
1405b784f:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
1405b7854:	53                   	push   %rbx
1405b7855:	57                   	push   %rdi
1405b7856:	48 83 ec 38          	sub    $0x38,%rsp
1405b785a:	b9 01 00 00 00       	mov    $0x1,%ecx
1405b785f:	48 8d 7c 24 58       	lea    0x58(%rsp),%rdi
1405b7864:	e8 27 b4 87 00       	call   0x140e32c90
1405b7869:	48 8b d8             	mov    %rax,%rbx
1405b786c:	e8 6f 6c be ff       	call   0x14019e4e0
1405b7871:	4c 8b 44 24 50       	mov    0x50(%rsp),%r8
1405b7876:	45 33 c9             	xor    %r9d,%r9d
1405b7879:	48 8b d3             	mov    %rbx,%rdx
1405b787c:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
1405b7881:	48 8b 08             	mov    (%rax),%rcx
1405b7884:	e8 e3 79 87 00       	call   0x140e2f26c
1405b7889:	48 83 c4 38          	add    $0x38,%rsp
1405b788d:	5f                   	pop    %rdi
1405b788e:	5b                   	pop    %rbx
1405b788f:	c3                   	ret
1405b7890:	48 8b 02             	mov    (%rdx),%rax
1405b7893:	48 89 01             	mov    %rax,(%rcx)
1405b7896:	48 8b c1             	mov    %rcx,%rax
1405b7899:	c6 41 08 01          	movb   $0x1,0x8(%rcx)
1405b789d:	c3                   	ret
1405b789e:	cc                   	int3
1405b789f:	cc                   	int3
1405b78a0:	80 79 20 00          	cmpb   $0x0,0x20(%rcx)
1405b78a4:	4c 8b c1             	mov    %rcx,%r8
1405b78a7:	74 3c                	je     0x1405b78e5
1405b78a9:	48 3b ca             	cmp    %rdx,%rcx
1405b78ac:	74 74                	je     0x1405b7922
1405b78ae:	48 8b 01             	mov    (%rcx),%rax
1405b78b1:	48 85 c0             	test   %rax,%rax
1405b78b4:	74 09                	je     0x1405b78bf
1405b78b6:	b9 ff ff 00 00       	mov    $0xffff,%ecx
1405b78bb:	66 01 48 0c          	add    %cx,0xc(%rax)
1405b78bf:	48 8b 0a             	mov    (%rdx),%rcx
1405b78c2:	49 89 08             	mov    %rcx,(%r8)
1405b78c5:	48 8b 42 08          	mov    0x8(%rdx),%rax
1405b78c9:	49 89 40 08          	mov    %rax,0x8(%r8)
1405b78cd:	48 8b 42 10          	mov    0x10(%rdx),%rax
1405b78d1:	49 89 40 10          	mov    %rax,0x10(%r8)
1405b78d5:	48 8b 42 18          	mov    0x18(%rdx),%rax
1405b78d9:	49 89 40 18          	mov    %rax,0x18(%r8)
1405b78dd:	49 8b c0             	mov    %r8,%rax
1405b78e0:	66 ff 41 0c          	incw   0xc(%rcx)
1405b78e4:	c3                   	ret
1405b78e5:	33 c0                	xor    %eax,%eax
1405b78e7:	48 89 01             	mov    %rax,(%rcx)
1405b78ea:	48 89 41 08          	mov    %rax,0x8(%rcx)
1405b78ee:	48 89 41 10          	mov    %rax,0x10(%rcx)
1405b78f2:	48 89 41 18          	mov    %rax,0x18(%rcx)
1405b78f6:	4c 3b c2             	cmp    %rdx,%r8
1405b78f9:	74 22                	je     0x1405b791d
1405b78fb:	48 8b 0a             	mov    (%rdx),%rcx
1405b78fe:	49 89 08             	mov    %rcx,(%r8)
1405b7901:	48 8b 42 08          	mov    0x8(%rdx),%rax
1405b7905:	49 89 40 08          	mov    %rax,0x8(%r8)
1405b7909:	48 8b 42 10          	mov    0x10(%rdx),%rax
1405b790d:	49 89 40 10          	mov    %rax,0x10(%r8)
1405b7911:	48 8b 42 18          	mov    0x18(%rdx),%rax
1405b7915:	49 89 40 18          	mov    %rax,0x18(%r8)
1405b7919:	66 ff 41 0c          	incw   0xc(%rcx)
1405b791d:	41 c6 40 20 01       	movb   $0x1,0x20(%r8)
1405b7922:	49 8b c0             	mov    %r8,%rax
1405b7925:	c3                   	ret
1405b7926:	cc                   	int3
1405b7927:	cc                   	int3
1405b7928:	cc                   	int3
1405b7929:	cc                   	int3
1405b792a:	cc                   	int3
1405b792b:	cc                   	int3
1405b792c:	cc                   	int3
1405b792d:	cc                   	int3
1405b792e:	cc                   	int3
1405b792f:	cc                   	int3
1405b7930:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1405b7935:	57                   	push   %rdi
1405b7936:	48 83 ec 20          	sub    $0x20,%rsp
1405b793a:	48 8b 02             	mov    (%rdx),%rax
1405b793d:	48 8b d9             	mov    %rcx,%rbx
1405b7940:	48 c7 02 00 00 00 00 	movq   $0x0,(%rdx)
1405b7947:	48 8b 39             	mov    (%rcx),%rdi
1405b794a:	48 89 01             	mov    %rax,(%rcx)
1405b794d:	48 85 ff             	test   %rdi,%rdi
1405b7950:	74 15                	je     0x1405b7967
1405b7952:	48 8b cf             	mov    %rdi,%rcx
1405b7955:	e8 66 9c 05 00       	call   0x1406115c0
1405b795a:	ba 18 00 00 00       	mov    $0x18,%edx
1405b795f:	48 8b cf             	mov    %rdi,%rcx
1405b7962:	e8 dd 37 86 00       	call   0x140e1b144
1405b7967:	48 8b c3             	mov    %rbx,%rax
1405b796a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1405b796f:	48 83 c4 20          	add    $0x20,%rsp
1405b7973:	5f                   	pop    %rdi
1405b7974:	c3                   	ret
1405b7975:	cc                   	int3
1405b7976:	cc                   	int3
1405b7977:	cc                   	int3
1405b7978:	cc                   	int3
1405b7979:	cc                   	int3
1405b797a:	cc                   	int3
1405b797b:	cc                   	int3
1405b797c:	cc                   	int3
1405b797d:	cc                   	int3
1405b797e:	cc                   	int3
1405b797f:	cc                   	int3
1405b7980:	48 83 ec 38          	sub    $0x38,%rsp
1405b7984:	4c 8b 41 18          	mov    0x18(%rcx),%r8
1405b7988:	4d 85 c0             	test   %r8,%r8
1405b798b:	74 16                	je     0x1405b79a3
1405b798d:	41 8b 40 10          	mov    0x10(%r8),%eax
1405b7991:	ff c0                	inc    %eax
1405b7993:	41 89 40 10          	mov    %eax,0x10(%r8)
1405b7997:	83 f8 01             	cmp    $0x1,%eax
1405b799a:	7e 1d                	jle    0x1405b79b9
1405b799c:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
1405b79a1:	74 0b                	je     0x1405b79ae
1405b79a3:	4c 89 02             	mov    %r8,(%rdx)
1405b79a6:	48 8b c2             	mov    %rdx,%rax
1405b79a9:	48 83 c4 38          	add    $0x38,%rsp
1405b79ad:	c3                   	ret
1405b79ae:	b9 01 00 00 00       	mov    $0x1,%ecx
1405b79b3:	e8 48 2d 1d 00       	call   0x14078a700
1405b79b8:	cc                   	int3
1405b79b9:	33 c9                	xor    %ecx,%ecx
1405b79bb:	e8 40 2d 1d 00       	call   0x14078a700
1405b79c0:	cc                   	int3
1405b79c1:	cc                   	int3
1405b79c2:	cc                   	int3
1405b79c3:	cc                   	int3
1405b79c4:	cc                   	int3
1405b79c5:	cc                   	int3
1405b79c6:	cc                   	int3
1405b79c7:	cc                   	int3
1405b79c8:	cc                   	int3
1405b79c9:	cc                   	int3
1405b79ca:	cc                   	int3
1405b79cb:	cc                   	int3
1405b79cc:	cc                   	int3
1405b79cd:	cc                   	int3
1405b79ce:	cc                   	int3
1405b79cf:	cc                   	int3
1405b79d0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1405b79d5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1405b79da:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1405b79df:	57                   	push   %rdi
1405b79e0:	41 56                	push   %r14
1405b79e2:	41 57                	push   %r15
1405b79e4:	48 83 ec 20          	sub    $0x20,%rsp
1405b79e8:	49 8b e8             	mov    %r8,%rbp
1405b79eb:	4c 8b f1             	mov    %rcx,%r14
1405b79ee:	48 8b 09             	mov    (%rcx),%rcx
1405b79f1:	4c 8b fa             	mov    %rdx,%r15
1405b79f4:	4d 8b 46 10          	mov    0x10(%r14),%r8
1405b79f8:	4c 2b c1             	sub    %rcx,%r8
1405b79fb:	49 c1 f8 02          	sar    $0x2,%r8
1405b79ff:	49 3b e8             	cmp    %r8,%rbp
1405b7a02:	0f 86 df 00 00 00    	jbe    0x1405b7ae7
1405b7a08:	48 be ff ff ff ff ff 	movabs $0x3fffffffffffffff,%rsi
1405b7a0f:	ff ff 3f
1405b7a12:	48 3b ee             	cmp    %rsi,%rbp
1405b7a15:	0f 87 48 01 00 00    	ja     0x1405b7b63
1405b7a1b:	49 8b d0             	mov    %r8,%rdx
1405b7a1e:	48 8b c6             	mov    %rsi,%rax
1405b7a21:	48 d1 ea             	shr    $1,%rdx
1405b7a24:	48 2b c2             	sub    %rdx,%rax
1405b7a27:	4c 3b c0             	cmp    %rax,%r8
1405b7a2a:	76 05                	jbe    0x1405b7a31
1405b7a2c:	48 8b de             	mov    %rsi,%rbx
1405b7a2f:	eb 0b                	jmp    0x1405b7a3c
1405b7a31:	4a 8d 1c 02          	lea    (%rdx,%r8,1),%rbx
1405b7a35:	48 3b dd             	cmp    %rbp,%rbx
1405b7a38:	48 0f 42 dd          	cmovb  %rbp,%rbx
1405b7a3c:	33 ff                	xor    %edi,%edi
1405b7a3e:	48 85 c9             	test   %rcx,%rcx
1405b7a41:	74 3d                	je     0x1405b7a80
1405b7a43:	4a 8d 14 85 00 00 00 	lea    0x0(,%r8,4),%rdx
1405b7a4a:	00
1405b7a4b:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1405b7a52:	72 1c                	jb     0x1405b7a70
1405b7a54:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
1405b7a58:	48 83 c2 27          	add    $0x27,%rdx
1405b7a5c:	49 2b c8             	sub    %r8,%rcx
1405b7a5f:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1405b7a63:	48 83 f8 1f          	cmp    $0x1f,%rax
1405b7a67:	0f 87 fc 00 00 00    	ja     0x1405b7b69
1405b7a6d:	49 8b c8             	mov    %r8,%rcx
1405b7a70:	e8 cf 36 86 00       	call   0x140e1b144
1405b7a75:	49 89 3e             	mov    %rdi,(%r14)
1405b7a78:	49 89 7e 08          	mov    %rdi,0x8(%r14)
1405b7a7c:	49 89 7e 10          	mov    %rdi,0x10(%r14)
1405b7a80:	48 3b de             	cmp    %rsi,%rbx
1405b7a83:	0f 87 d4 00 00 00    	ja     0x1405b7b5d
1405b7a89:	48 8d 1c 9d 00 00 00 	lea    0x0(,%rbx,4),%rbx
1405b7a90:	00
1405b7a91:	48 85 db             	test   %rbx,%rbx
1405b7a94:	74 3d                	je     0x1405b7ad3
1405b7a96:	48 81 fb 00 10 00 00 	cmp    $0x1000,%rbx
1405b7a9d:	72 29                	jb     0x1405b7ac8
1405b7a9f:	48 8d 4b 27          	lea    0x27(%rbx),%rcx
1405b7aa3:	48 3b cb             	cmp    %rbx,%rcx
1405b7aa6:	0f 86 b1 00 00 00    	jbe    0x1405b7b5d
1405b7aac:	e8 57 36 86 00       	call   0x140e1b108
1405b7ab1:	48 85 c0             	test   %rax,%rax
1405b7ab4:	0f 84 af 00 00 00    	je     0x1405b7b69
1405b7aba:	48 8d 78 27          	lea    0x27(%rax),%rdi
1405b7abe:	48 83 e7 e0          	and    $0xffffffffffffffe0,%rdi
1405b7ac2:	48 89 47 f8          	mov    %rax,-0x8(%rdi)
1405b7ac6:	eb 0b                	jmp    0x1405b7ad3
1405b7ac8:	48 8b cb             	mov    %rbx,%rcx
1405b7acb:	e8 38 36 86 00       	call   0x140e1b108
1405b7ad0:	48 8b f8             	mov    %rax,%rdi
1405b7ad3:	49 89 3e             	mov    %rdi,(%r14)
1405b7ad6:	48 8d 0c 3b          	lea    (%rbx,%rdi,1),%rcx
1405b7ada:	49 89 7e 08          	mov    %rdi,0x8(%r14)
1405b7ade:	49 8b d7             	mov    %r15,%rdx
1405b7ae1:	49 89 4e 10          	mov    %rcx,0x10(%r14)
1405b7ae5:	eb 2b                	jmp    0x1405b7b12
1405b7ae7:	49 8b 76 08          	mov    0x8(%r14),%rsi
1405b7aeb:	48 2b f1             	sub    %rcx,%rsi
1405b7aee:	48 c1 fe 02          	sar    $0x2,%rsi
1405b7af2:	48 3b ee             	cmp    %rsi,%rbp
1405b7af5:	76 38                	jbe    0x1405b7b2f
1405b7af7:	48 8d 1c b5 00 00 00 	lea    0x0(,%rsi,4),%rbx
1405b7afe:	00