1400178b8:	48 8b fa             	mov    %rdx,%rdi
1400178bb:	45 3b d7             	cmp    %r15d,%r10d
1400178be:	75 d0                	jne    0x140017890
1400178c0:	45 33 c9             	xor    %r9d,%r9d
1400178c3:	89 6c 24 40          	mov    %ebp,0x40(%rsp)
1400178c7:	4c 8d 44 24 44       	lea    0x44(%rsp),%r8
1400178cc:	89 2e                	mov    %ebp,(%rsi)
1400178ce:	ba cc 01 00 00       	mov    $0x1cc,%edx
1400178d3:	48 8d 4e 04          	lea    0x4(%rsi),%rcx
1400178d7:	e8 10 16 00 00       	call   0x140018eec
1400178dc:	48 8b cf             	mov    %rdi,%rcx
1400178df:	89 7e 04             	mov    %edi,0x4(%rsi)
1400178e2:	48 c1 e9 20          	shr    $0x20,%rcx
1400178e6:	49 8b c6             	mov    %r14,%rax
1400178e9:	85 c9                	test   %ecx,%ecx
1400178eb:	89 4e 08             	mov    %ecx,0x8(%rsi)
1400178ee:	40 0f 95 c5          	setne  %bpl
1400178f2:	ff c5                	inc    %ebp
1400178f4:	89 2e                	mov    %ebp,(%rsi)
1400178f6:	e9 4f 03 00 00       	jmp    0x140017c4a
1400178fb:	41 3b ea             	cmp    %r10d,%ebp
1400178fe:	0f 87 44 03 00 00    	ja     0x140017c48
140017904:	45 8b c2             	mov    %r10d,%r8d
140017907:	49 63 d2             	movslq %r10d,%rdx
14001790a:	44 2b c5             	sub    %ebp,%r8d
14001790d:	45 8b ca             	mov    %r10d,%r9d
140017910:	49 63 d8             	movslq %r8d,%rbx
140017913:	48 3b d3             	cmp    %rbx,%rdx
140017916:	7c 49                	jl     0x140017961
140017918:	48 83 c1 04          	add    $0x4,%rcx
14001791c:	48 8d 04 9d 00 00 00 	lea    0x0(,%rbx,4),%rax
140017923:	00
140017924:	4d 8b df             	mov    %r15,%r11
140017927:	4c 2b d8             	sub    %rax,%r11
14001792a:	4c 2b de             	sub    %rsi,%r11
14001792d:	48 8d 0c 91          	lea    (%rcx,%rdx,4),%rcx
140017931:	8b 01                	mov    (%rcx),%eax
140017933:	41 39 04 0b          	cmp    %eax,(%r11,%rcx,1)
140017937:	75 11                	jne    0x14001794a
140017939:	41 ff c9             	dec    %r9d
14001793c:	48 ff ca             	dec    %rdx
14001793f:	48 83 e9 04          	sub    $0x4,%rcx
140017943:	48 3b d3             	cmp    %rbx,%rdx
140017946:	7d e9                	jge    0x140017931
140017948:	eb 17                	jmp    0x140017961
14001794a:	41 8b c1             	mov    %r9d,%eax
14001794d:	41 2b c0             	sub    %r8d,%eax
140017950:	48 63 d0             	movslq %eax,%rdx
140017953:	49 63 c1             	movslq %r9d,%rax
140017956:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
14001795a:	41 39 4c 97 04       	cmp    %ecx,0x4(%r15,%rdx,4)
14001795f:	73 03                	jae    0x140017964
140017961:	41 ff c0             	inc    %r8d
140017964:	45 85 c0             	test   %r8d,%r8d
140017967:	0f 84 db 02 00 00    	je     0x140017c48
14001796d:	45 8b 4c af 04       	mov    0x4(%r15,%rbp,4),%r9d
140017972:	8d 47 fe             	lea    -0x2(%rdi),%eax
140017975:	45 8b 5c 87 04       	mov    0x4(%r15,%rax,4),%r11d
14001797a:	33 ed                	xor    %ebp,%ebp
14001797c:	41 0f bd c1          	bsr    %r9d,%eax
140017980:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
140017987:	00
140017988:	74 1e                	je     0x1400179a8
14001798a:	bb 1f 00 00 00       	mov    $0x1f,%ebx
14001798f:	41 be 20 00 00 00    	mov    $0x20,%r14d
140017995:	2b d8                	sub    %eax,%ebx
140017997:	44 2b f3             	sub    %ebx,%r14d
14001799a:	44 89 b4 24 60 02 00 	mov    %r14d,0x260(%rsp)
1400179a1:	00
1400179a2:	85 db                	test   %ebx,%ebx
1400179a4:	74 4e                	je     0x1400179f4
1400179a6:	eb 0f                	jmp    0x1400179b7
1400179a8:	bb 20 00 00 00       	mov    $0x20,%ebx
1400179ad:	89 ac 24 60 02 00 00 	mov    %ebp,0x260(%rsp)
1400179b4:	44 8b f5             	mov    %ebp,%r14d
1400179b7:	41 8b c1             	mov    %r9d,%eax
1400179ba:	41 8b d3             	mov    %r11d,%edx
1400179bd:	41 8b ce             	mov    %r14d,%ecx
1400179c0:	d3 ea                	shr    %cl,%edx
1400179c2:	8b cb                	mov    %ebx,%ecx
1400179c4:	d3 e0                	shl    %cl,%eax
1400179c6:	44 8b ca             	mov    %edx,%r9d
1400179c9:	41 d3 e3             	shl    %cl,%r11d
1400179cc:	44 0b c8             	or     %eax,%r9d
1400179cf:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
1400179d6:	00
1400179d7:	83 ff 02             	cmp    $0x2,%edi
1400179da:	76 18                	jbe    0x1400179f4
1400179dc:	8d 47 fd             	lea    -0x3(%rdi),%eax
1400179df:	41 8b ce             	mov    %r14d,%ecx
1400179e2:	41 8b 44 87 04       	mov    0x4(%r15,%rax,4),%eax
1400179e7:	d3 e8                	shr    %cl,%eax
1400179e9:	44 0b d8             	or     %eax,%r11d
1400179ec:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
1400179f3:	00
1400179f4:	45 8d 60 ff          	lea    -0x1(%r8),%r12d
1400179f8:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
1400179fd:	4c 8b dd             	mov    %rbp,%r11
140017a00:	45 85 e4             	test   %r12d,%r12d
140017a03:	0f 88 00 02 00 00    	js     0x140017c09
140017a09:	41 8b c6             	mov    %r14d,%eax
140017a0c:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
140017a12:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140017a17:	41 8b c1             	mov    %r9d,%eax
140017a1a:	4c 89 ac 24 18 02 00 	mov    %r13,0x218(%rsp)
140017a21:	00
140017a22:	45 8d 2c 3c          	lea    (%r12,%rdi,1),%r13d
140017a26:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140017a2b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140017a30:	45 3b ea             	cmp    %r10d,%r13d
140017a33:	77 07                	ja     0x140017a3c
140017a35:	42 8b 54 ae 04       	mov    0x4(%rsi,%r13,4),%edx
140017a3a:	eb 02                	jmp    0x140017a3e
140017a3c:	8b d5                	mov    %ebp,%edx
140017a3e:	89 94 24 78 02 00 00 	mov    %edx,0x278(%rsp)
140017a45:	41 8d 45 ff          	lea    -0x1(%r13),%eax
140017a49:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
140017a4d:	41 8d 45 fe          	lea    -0x2(%r13),%eax
140017a51:	44 8b 5c 86 04       	mov    0x4(%rsi,%rax,4),%r11d
140017a56:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140017a5b:	89 54 24 24          	mov    %edx,0x24(%rsp)
140017a5f:	85 db                	test   %ebx,%ebx
140017a61:	74 33                	je     0x140017a96
140017a63:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
140017a68:	45 8b c3             	mov    %r11d,%r8d
140017a6b:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
140017a70:	49 d3 e8             	shr    %cl,%r8
140017a73:	8b cb                	mov    %ebx,%ecx
140017a75:	48 d3 e0             	shl    %cl,%rax
140017a78:	4c 0b c0             	or     %rax,%r8
140017a7b:	41 d3 e3             	shl    %cl,%r11d
140017a7e:	41 83 fd 03          	cmp    $0x3,%r13d
140017a82:	72 17                	jb     0x140017a9b
140017a84:	41 8d 45 fd          	lea    -0x3(%r13),%eax
140017a88:	41 8b ce             	mov    %r14d,%ecx
140017a8b:	8b 44 86 04          	mov    0x4(%rsi,%rax,4),%eax
140017a8f:	d3 e8                	shr    %cl,%eax
140017a91:	44 0b d8             	or     %eax,%r11d
140017a94:	eb 05                	jmp    0x140017a9b
140017a96:	4c 8b 44 24 20       	mov    0x20(%rsp),%r8
140017a9b:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
140017aa0:	33 d2                	xor    %edx,%edx
140017aa2:	49 8b c0             	mov    %r8,%rax
140017aa5:	48 f7 f1             	div    %rcx
140017aa8:	33 d2                	xor    %edx,%edx
140017aaa:	4c 8b c8             	mov    %rax,%r9
140017aad:	49 8b c0             	mov    %r8,%rax
140017ab0:	48 f7 f1             	div    %rcx
140017ab3:	44 8b c2             	mov    %edx,%r8d
140017ab6:	4d 3b cf             	cmp    %r15,%r9
140017ab9:	76 17                	jbe    0x140017ad2
140017abb:	48 b8 01 00 00 00 ff 	movabs $0xffffffff00000001,%rax
140017ac2:	ff ff ff
140017ac5:	49 03 c1             	add    %r9,%rax
140017ac8:	4d 8b cf             	mov    %r15,%r9
140017acb:	48 0f af c1          	imul   %rcx,%rax
140017acf:	4c 03 c0             	add    %rax,%r8
140017ad2:	4d 3b c7             	cmp    %r15,%r8
140017ad5:	77 3e                	ja     0x140017b15
140017ad7:	8b 94 24 70 02 00 00 	mov    0x270(%rsp),%edx
140017ade:	4c 8b f1             	mov    %rcx,%r14
140017ae1:	8b c2                	mov    %edx,%eax
140017ae3:	49 0f af c1          	imul   %r9,%rax
140017ae7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140017aee:	00 00
140017af0:	49 8b c8             	mov    %r8,%rcx
140017af3:	48 c1 e1 20          	shl    $0x20,%rcx
140017af7:	49 0b cb             	or     %r11,%rcx
140017afa:	48 3b c1             	cmp    %rcx,%rax
140017afd:	76 0e                	jbe    0x140017b0d
140017aff:	49 ff c9             	dec    %r9
140017b02:	48 2b c2             	sub    %rdx,%rax
140017b05:	4d 03 c6             	add    %r14,%r8
140017b08:	4d 3b c7             	cmp    %r15,%r8
140017b0b:	76 e3                	jbe    0x140017af0
140017b0d:	44 8b b4 24 60 02 00 	mov    0x260(%rsp),%r14d
140017b14:	00
140017b15:	4d 85 c9             	test   %r9,%r9
140017b18:	0f 84 c2 00 00 00    	je     0x140017be0
140017b1e:	4c 8b d5             	mov    %rbp,%r10
140017b21:	44 8b dd             	mov    %ebp,%r11d
140017b24:	85 ff                	test   %edi,%edi
140017b26:	74 64                	je     0x140017b8c
140017b28:	4c 8b b4 24 68 02 00 	mov    0x268(%rsp),%r14
140017b2f:	00
140017b30:	44 8b bc 24 60 02 00 	mov    0x260(%rsp),%r15d
140017b37:	00
140017b38:	49 83 c6 04          	add    $0x4,%r14
140017b3c:	0f 1f 40 00          	nopl   0x0(%rax)
140017b40:	41 8b 06             	mov    (%r14),%eax
140017b43:	4d 8d 76 04          	lea    0x4(%r14),%r14
140017b47:	49 0f af c1          	imul   %r9,%rax
140017b4b:	4c 03 d0             	add    %rax,%r10
140017b4e:	43 8d 04 23          	lea    (%r11,%r12,1),%eax
140017b52:	45 8b c2             	mov    %r10d,%r8d
140017b55:	8b c8                	mov    %eax,%ecx
140017b57:	49 c1 ea 20          	shr    $0x20,%r10
140017b5b:	8b 44 86 04          	mov    0x4(%rsi,%rax,4),%eax
140017b5f:	49 8b d2             	mov    %r10,%rdx
140017b62:	49 ff c2             	inc    %r10
140017b65:	41 3b c0             	cmp    %r8d,%eax
140017b68:	4c 0f 43 d2          	cmovae %rdx,%r10
140017b6c:	41 2b c0             	sub    %r8d,%eax
140017b6f:	41 ff c3             	inc    %r11d
140017b72:	89 44 8e 04          	mov    %eax,0x4(%rsi,%rcx,4)
140017b76:	44 3b df             	cmp    %edi,%r11d
140017b79:	72 c5                	jb     0x140017b40
140017b7b:	45 8b f7             	mov    %r15d,%r14d
140017b7e:	44 89 bc 24 60 02 00 	mov    %r15d,0x260(%rsp)
140017b85:	00
140017b86:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
140017b8c:	4c 8b 9c 24 68 02 00 	mov    0x268(%rsp),%r11
140017b93:	00
140017b94:	8b 84 24 78 02 00 00 	mov    0x278(%rsp),%eax
140017b9b:	49 83 c3 04          	add    $0x4,%r11
140017b9f:	49 3b c2             	cmp    %r10,%rax
140017ba2:	73 38                	jae    0x140017bdc
140017ba4:	44 8b d5             	mov    %ebp,%r10d
140017ba7:	85 ff                	test   %edi,%edi
140017ba9:	74 2e                	je     0x140017bd9
140017bab:	4c 8b c5             	mov    %rbp,%r8
140017bae:	66 90                	xchg   %ax,%ax
140017bb0:	43 8d 04 22          	lea    (%r10,%r12,1),%eax
140017bb4:	41 ff c2             	inc    %r10d
140017bb7:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
140017bbb:	48 8d 14 86          	lea    (%rsi,%rax,4),%rdx
140017bbf:	41 8b 03             	mov    (%r11),%eax
140017bc2:	4d 8d 5b 04          	lea    0x4(%r11),%r11
140017bc6:	4c 03 c0             	add    %rax,%r8
140017bc9:	4c 03 c1             	add    %rcx,%r8
140017bcc:	44 89 42 04          	mov    %r8d,0x4(%rdx)
140017bd0:	49 c1 e8 20          	shr    $0x20,%r8
140017bd4:	44 3b d7             	cmp    %edi,%r10d
140017bd7:	72 d7                	jb     0x140017bb0
140017bd9:	49 ff c9             	dec    %r9
140017bdc:	45 8d 55 ff          	lea    -0x1(%r13),%r10d
140017be0:	4c 8b 5c 24 30       	mov    0x30(%rsp),%r11
140017be5:	41 ff cd             	dec    %r13d
140017be8:	49 c1 e3 20          	shl    $0x20,%r11
140017bec:	41 8b c1             	mov    %r9d,%eax
140017bef:	4c 03 d8             	add    %rax,%r11
140017bf2:	41 83 ec 01          	sub    $0x1,%r12d
140017bf6:	4c 89 5c 24 30       	mov    %r11,0x30(%rsp)
140017bfb:	0f 89 2f fe ff ff    	jns    0x140017a30
140017c01:	4c 8b ac 24 18 02 00 	mov    0x218(%rsp),%r13
140017c08:	00
140017c09:	41 ff c2             	inc    %r10d
140017c0c:	41 8b ca             	mov    %r10d,%ecx
140017c0f:	44 3b 16             	cmp    (%rsi),%r10d
140017c12:	73 0c                	jae    0x140017c20
140017c14:	8b c1                	mov    %ecx,%eax
140017c16:	ff c1                	inc    %ecx
140017c18:	89 6c 86 04          	mov    %ebp,0x4(%rsi,%rax,4)
140017c1c:	3b 0e                	cmp    (%rsi),%ecx
140017c1e:	72 f4                	jb     0x140017c14
140017c20:	44 89 16             	mov    %r10d,(%rsi)
140017c23:	45 85 d2             	test   %r10d,%r10d
140017c26:	74 1b                	je     0x140017c43
140017c28:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140017c2f:	00
140017c30:	41 8d 52 ff          	lea    -0x1(%r10),%edx
140017c34:	44 8b d2             	mov    %edx,%r10d
140017c37:	39 6c 96 04          	cmp    %ebp,0x4(%rsi,%rdx,4)
140017c3b:	75 06                	jne    0x140017c43
140017c3d:	89 16                	mov    %edx,(%rsi)
140017c3f:	85 d2                	test   %edx,%edx
140017c41:	75 ed                	jne    0x140017c30
140017c43:	49 8b c3             	mov    %r11,%rax
140017c46:	eb 02                	jmp    0x140017c4a
140017c48:	33 c0                	xor    %eax,%eax
140017c4a:	48 81 c4 20 02 00 00 	add    $0x220,%rsp
140017c51:	41 5f                	pop    %r15
140017c53:	41 5e                	pop    %r14
140017c55:	41 5c                	pop    %r12
140017c57:	5f                   	pop    %rdi
140017c58:	5e                   	pop    %rsi
140017c59:	5d                   	pop    %rbp
140017c5a:	5b                   	pop    %rbx
140017c5b:	c3                   	ret
140017c5c:	40 55                	rex push %rbp
140017c5e:	53                   	push   %rbx
140017c5f:	56                   	push   %rsi
140017c60:	57                   	push   %rdi
140017c61:	41 54                	push   %r12
140017c63:	41 56                	push   %r14
140017c65:	41 57                	push   %r15
140017c67:	48 8d ac 24 10 f9 ff 	lea    -0x6f0(%rsp),%rbp
140017c6e:	ff
140017c6f:	48 81 ec f0 07 00 00 	sub    $0x7f0,%rsp
140017c76:	48 8b 05 43 79 01 00 	mov    0x17943(%rip),%rax        # 0x14002f5c0
140017c7d:	48 33 c4             	xor    %rsp,%rax
140017c80:	48 89 85 e0 06 00 00 	mov    %rax,0x6e0(%rbp)
140017c87:	4c 8b b5 50 07 00 00 	mov    0x750(%rbp),%r14
140017c8e:	4d 8b e1             	mov    %r9,%r12
140017c91:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
140017c96:	8b f2                	mov    %edx,%esi
140017c98:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
140017c9d:	4c 89 75 88          	mov    %r14,-0x78(%rbp)
140017ca1:	4c 89 4d 98          	mov    %r9,-0x68(%rbp)
140017ca5:	44 89 44 24 64       	mov    %r8d,0x64(%rsp)
140017caa:	e8 fd 2c 00 00       	call   0x14001a9ac
140017caf:	8b 44 24 70          	mov    0x70(%rsp),%eax
140017cb3:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140017cb9:	83 e0 1f             	and    $0x1f,%eax
140017cbc:	3c 1f                	cmp    $0x1f,%al
140017cbe:	75 07                	jne    0x140017cc7
140017cc0:	c6 44 24 78 00       	movb   $0x0,0x78(%rsp)
140017cc5:	eb 0f                	jmp    0x140017cd6
140017cc7:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
140017ccc:	e8 53 2d 00 00       	call   0x14001aa24
140017cd1:	44 88 7c 24 78       	mov    %r15b,0x78(%rsp)
140017cd6:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
140017cdb:	bf 20 00 00 00       	mov    $0x20,%edi
140017ce0:	8b c7                	mov    %edi,%eax
140017ce2:	4d 89 74 24 08       	mov    %r14,0x8(%r12)
140017ce7:	48 85 db             	test   %rbx,%rbx
140017cea:	8d 4f 0d             	lea    0xd(%rdi),%ecx
140017ced:	0f 48 c1             	cmovs  %ecx,%eax
140017cf0:	45 33 c0             	xor    %r8d,%r8d
140017cf3:	33 d2                	xor    %edx,%edx
140017cf5:	41 89 04 24          	mov    %eax,(%r12)
140017cf9:	48 8d 4d 80          	lea    -0x80(%rbp),%rcx
140017cfd:	e8 46 2c 00 00       	call   0x14001a948
140017d02:	48 8b c3             	mov    %rbx,%rax
140017d05:	ba ff 07 00 00       	mov    $0x7ff,%edx
140017d0a:	48 c1 e8 34          	shr    $0x34,%rax
140017d0e:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
140017d15:	ff 0f 00
140017d18:	48 23 c2             	and    %rdx,%rax
140017d1b:	75 21                	jne    0x140017d3e
140017d1d:	48 85 d9             	test   %rbx,%rcx
140017d20:	74 0d                	je     0x140017d2f
140017d22:	f7 45 80 00 00 00 01 	testl  $0x1000000,-0x80(%rbp)
140017d29:	0f 84 c3 00 00 00    	je     0x140017df2
140017d2f:	41 83 64 24 04 00    	andl   $0x0,0x4(%r12)
140017d35:	4c 8d 05 b0 20 01 00 	lea    0x120b0(%rip),%r8        # 0x140029dec
140017d3c:	eb 60                	jmp    0x140017d9e
140017d3e:	48 3b c2             	cmp    %rdx,%rax
140017d41:	0f 85 ab 00 00 00    	jne    0x140017df2
140017d47:	48 8b c3             	mov    %rbx,%rax
140017d4a:	48 23 c1             	and    %rcx,%rax
140017d4d:	75 05                	jne    0x140017d54
140017d4f:	41 8b c7             	mov    %r15d,%eax
140017d52:	eb 2a                	jmp    0x140017d7e
140017d54:	48 85 db             	test   %rbx,%rbx
140017d57:	79 16                	jns    0x140017d6f
140017d59:	48 b9 00 00 00 00 00 	movabs $0x8000000000000,%rcx
140017d60:	00 08 00
140017d63:	48 3b c1             	cmp    %rcx,%rax
140017d66:	75 07                	jne    0x140017d6f