18002fb85:	41 83 f8 01          	cmp    $0x1,%r8d
18002fb89:	77 12                	ja     0x18002fb9d
18002fb8b:	75 f1                	jne    0x18002fb7e
18002fb8d:	48 8b 41 08          	mov    0x8(%rcx),%rax
18002fb91:	44 0f a3 08          	bt     %r9d,(%rax)
18002fb95:	0f 93 c0             	setae  %al
18002fb98:	e9 81 00 00 00       	jmp    0x18002fc1e
18002fb9d:	41 2b c1             	sub    %r9d,%eax
18002fba0:	41 3b c0             	cmp    %r8d,%eax
18002fba3:	72 d9                	jb     0x18002fb7e
18002fba5:	48 8b 49 08          	mov    0x8(%rcx),%rcx
18002fba9:	45 8d 58 ff          	lea    -0x1(%r8),%r11d
18002fbad:	45 03 d9             	add    %r9d,%r11d
18002fbb0:	49 8b c1             	mov    %r9,%rax
18002fbb3:	48 c1 e8 05          	shr    $0x5,%rax
18002fbb7:	48 8d 14 81          	lea    (%rcx,%rax,4),%rdx
18002fbbb:	41 8b c3             	mov    %r11d,%eax
18002fbbe:	8b 1a                	mov    (%rdx),%ebx
18002fbc0:	48 c1 e8 05          	shr    $0x5,%rax
18002fbc4:	4c 8d 14 81          	lea    (%rcx,%rax,4),%r10
18002fbc8:	49 3b d2             	cmp    %r10,%rdx
18002fbcb:	75 1a                	jne    0x18002fbe7
18002fbcd:	b9 20 00 00 00       	mov    $0x20,%ecx
18002fbd2:	41 2b c8             	sub    %r8d,%ecx
18002fbd5:	41 83 c8 ff          	or     $0xffffffff,%r8d
18002fbd9:	41 d3 e8             	shr    %cl,%r8d
18002fbdc:	41 8b c9             	mov    %r9d,%ecx
18002fbdf:	41 d3 e0             	shl    %cl,%r8d
18002fbe2:	41 85 d8             	test   %ebx,%r8d
18002fbe5:	eb 34                	jmp    0x18002fc1b
18002fbe7:	41 83 c8 ff          	or     $0xffffffff,%r8d
18002fbeb:	41 8b c9             	mov    %r9d,%ecx
18002fbee:	41 8b c0             	mov    %r8d,%eax
18002fbf1:	d3 e0                	shl    %cl,%eax
18002fbf3:	85 d8                	test   %ebx,%eax
18002fbf5:	75 87                	jne    0x18002fb7e
18002fbf7:	48 83 c2 04          	add    $0x4,%rdx
18002fbfb:	49 3b d2             	cmp    %r10,%rdx
18002fbfe:	74 0f                	je     0x18002fc0f
18002fc00:	33 c0                	xor    %eax,%eax
18002fc02:	39 02                	cmp    %eax,(%rdx)
18002fc04:	75 18                	jne    0x18002fc1e
18002fc06:	48 83 c2 04          	add    $0x4,%rdx
18002fc0a:	49 3b d2             	cmp    %r10,%rdx
18002fc0d:	75 f3                	jne    0x18002fc02
18002fc0f:	41 f7 d3             	not    %r11d
18002fc12:	41 8a cb             	mov    %r11b,%cl
18002fc15:	41 d3 e8             	shr    %cl,%r8d
18002fc18:	44 85 02             	test   %r8d,(%rdx)
18002fc1b:	0f 94 c0             	sete   %al
18002fc1e:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
18002fc23:	c3                   	ret
18002fc24:	cc                   	int3
18002fc25:	cc                   	int3
18002fc26:	cc                   	int3
18002fc27:	cc                   	int3
18002fc28:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002fc2d:	8b 01                	mov    (%rcx),%eax
18002fc2f:	44 8b ca             	mov    %edx,%r9d
18002fc32:	3b d0                	cmp    %eax,%edx
18002fc34:	72 07                	jb     0x18002fc3d
18002fc36:	32 c0                	xor    %al,%al
18002fc38:	e9 a2 00 00 00       	jmp    0x18002fcdf
18002fc3d:	41 83 f8 01          	cmp    $0x1,%r8d
18002fc41:	77 12                	ja     0x18002fc55
18002fc43:	75 f1                	jne    0x18002fc36
18002fc45:	48 8b 41 08          	mov    0x8(%rcx),%rax
18002fc49:	44 0f a3 08          	bt     %r9d,(%rax)
18002fc4d:	0f 92 c0             	setb   %al
18002fc50:	e9 8a 00 00 00       	jmp    0x18002fcdf
18002fc55:	41 2b c1             	sub    %r9d,%eax
18002fc58:	41 3b c0             	cmp    %r8d,%eax
18002fc5b:	72 d9                	jb     0x18002fc36
18002fc5d:	48 8b 49 08          	mov    0x8(%rcx),%rcx
18002fc61:	41 8d 58 ff          	lea    -0x1(%r8),%ebx
18002fc65:	41 03 d9             	add    %r9d,%ebx
18002fc68:	49 8b c1             	mov    %r9,%rax
18002fc6b:	48 c1 e8 05          	shr    $0x5,%rax
18002fc6f:	48 8d 14 81          	lea    (%rcx,%rax,4),%rdx
18002fc73:	8b c3                	mov    %ebx,%eax
18002fc75:	44 8b 12             	mov    (%rdx),%r10d
18002fc78:	48 c1 e8 05          	shr    $0x5,%rax
18002fc7c:	4c 8d 1c 81          	lea    (%rcx,%rax,4),%r11
18002fc80:	49 3b d3             	cmp    %r11,%rdx
18002fc83:	75 1d                	jne    0x18002fca2
18002fc85:	b9 20 00 00 00       	mov    $0x20,%ecx
18002fc8a:	41 2b c8             	sub    %r8d,%ecx
18002fc8d:	41 83 c8 ff          	or     $0xffffffff,%r8d
18002fc91:	41 d3 e8             	shr    %cl,%r8d
18002fc94:	41 8b c9             	mov    %r9d,%ecx
18002fc97:	41 d3 e0             	shl    %cl,%r8d
18002fc9a:	45 23 d0             	and    %r8d,%r10d
18002fc9d:	45 3b d0             	cmp    %r8d,%r10d
18002fca0:	eb 3a                	jmp    0x18002fcdc
18002fca2:	41 83 c8 ff          	or     $0xffffffff,%r8d
18002fca6:	41 8b c9             	mov    %r9d,%ecx
18002fca9:	41 8b c0             	mov    %r8d,%eax
18002fcac:	d3 e0                	shl    %cl,%eax
18002fcae:	44 23 d0             	and    %eax,%r10d
18002fcb1:	44 3b d0             	cmp    %eax,%r10d
18002fcb4:	74 0e                	je     0x18002fcc4
18002fcb6:	e9 7b ff ff ff       	jmp    0x18002fc36
18002fcbb:	44 39 02             	cmp    %r8d,(%rdx)
18002fcbe:	0f 85 72 ff ff ff    	jne    0x18002fc36
18002fcc4:	48 83 c2 04          	add    $0x4,%rdx
18002fcc8:	49 3b d3             	cmp    %r11,%rdx
18002fccb:	75 ee                	jne    0x18002fcbb
18002fccd:	8b 02                	mov    (%rdx),%eax
18002fccf:	f7 d3                	not    %ebx
18002fcd1:	8a cb                	mov    %bl,%cl
18002fcd3:	41 d3 e8             	shr    %cl,%r8d
18002fcd6:	41 23 c0             	and    %r8d,%eax
18002fcd9:	41 3b c0             	cmp    %r8d,%eax
18002fcdc:	0f 94 c0             	sete   %al
18002fcdf:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
18002fce4:	c3                   	ret
18002fce5:	cc                   	int3
18002fce6:	cc                   	int3
18002fce7:	cc                   	int3
18002fce8:	48 8b c4             	mov    %rsp,%rax
18002fceb:	48 89 58 08          	mov    %rbx,0x8(%rax)
18002fcef:	48 89 68 10          	mov    %rbp,0x10(%rax)
18002fcf3:	48 89 70 18          	mov    %rsi,0x18(%rax)
18002fcf7:	48 89 78 20          	mov    %rdi,0x20(%rax)
18002fcfb:	41 57                	push   %r15
18002fcfd:	44 8b ca             	mov    %edx,%r9d
18002fd00:	49 8b f0             	mov    %r8,%rsi
18002fd03:	8b 11                	mov    (%rcx),%edx
18002fd05:	48 8b f9             	mov    %rcx,%rdi
18002fd08:	41 3b d1             	cmp    %r9d,%edx
18002fd0b:	77 0b                	ja     0x18002fd18
18002fd0d:	45 89 08             	mov    %r9d,(%r8)
18002fd10:	45 33 db             	xor    %r11d,%r11d
18002fd13:	e9 e6 00 00 00       	jmp    0x18002fdfe
18002fd18:	4c 8b 51 08          	mov    0x8(%rcx),%r10
18002fd1c:	4c 8d 3d 9d bd 11 00 	lea    0x11bd9d(%rip),%r15        # 0x18014bac0
18002fd23:	8d 4a ff             	lea    -0x1(%rdx),%ecx
18002fd26:	49 8b c1             	mov    %r9,%rax
18002fd29:	48 c1 e9 05          	shr    $0x5,%rcx
18002fd2d:	83 cd ff             	or     $0xffffffff,%ebp
18002fd30:	48 c1 e8 05          	shr    $0x5,%rax
18002fd34:	49 8d 1c 8a          	lea    (%r10,%rcx,4),%rbx
18002fd38:	4d 8d 04 82          	lea    (%r10,%rax,4),%r8
18002fd3c:	4c 3b c3             	cmp    %rbx,%r8
18002fd3f:	74 3d                	je     0x18002fd7e
18002fd41:	41 8b c1             	mov    %r9d,%eax
18002fd44:	83 e0 1f             	and    $0x1f,%eax
18002fd47:	8b c8                	mov    %eax,%ecx
18002fd49:	41 8b 04 87          	mov    (%r15,%rax,4),%eax
18002fd4d:	41 0b 00             	or     (%r8),%eax
18002fd50:	3b c5                	cmp    %ebp,%eax
18002fd52:	75 2a                	jne    0x18002fd7e
18002fd54:	44 2b c9             	sub    %ecx,%r9d
18002fd57:	41 83 c1 20          	add    $0x20,%r9d
18002fd5b:	49 83 c0 04          	add    $0x4,%r8
18002fd5f:	eb 0d                	jmp    0x18002fd6e
18002fd61:	41 39 28             	cmp    %ebp,(%r8)
18002fd64:	75 18                	jne    0x18002fd7e
18002fd66:	49 83 c0 04          	add    $0x4,%r8
18002fd6a:	41 83 c1 20          	add    $0x20,%r9d
18002fd6e:	4c 3b c3             	cmp    %rbx,%r8
18002fd71:	72 ee                	jb     0x18002fd61
18002fd73:	eb 09                	jmp    0x18002fd7e
18002fd75:	45 0f a3 0a          	bt     %r9d,(%r10)
18002fd79:	73 08                	jae    0x18002fd83
18002fd7b:	41 ff c1             	inc    %r9d
18002fd7e:	44 3b ca             	cmp    %edx,%r9d
18002fd81:	72 f2                	jb     0x18002fd75
18002fd83:	45 33 db             	xor    %r11d,%r11d
18002fd86:	45 8b d3             	mov    %r11d,%r10d
18002fd89:	4c 3b c3             	cmp    %rbx,%r8
18002fd8c:	74 42                	je     0x18002fdd0
18002fd8e:	41 8b 10             	mov    (%r8),%edx
18002fd91:	41 8b c1             	mov    %r9d,%eax
18002fd94:	83 e0 1f             	and    $0x1f,%eax
18002fd97:	41 8b 0c 87          	mov    (%r15,%rax,4),%ecx
18002fd9b:	f7 d1                	not    %ecx
18002fd9d:	85 ca                	test   %ecx,%edx
18002fd9f:	75 2f                	jne    0x18002fdd0
18002fda1:	41 8b c1             	mov    %r9d,%eax
18002fda4:	45 8d 53 20          	lea    0x20(%r11),%r10d
18002fda8:	83 e0 1f             	and    $0x1f,%eax
18002fdab:	44 2b d0             	sub    %eax,%r10d
18002fdae:	44 3b d5             	cmp    %ebp,%r10d
18002fdb1:	73 3e                	jae    0x18002fdf1
18002fdb3:	49 83 c0 04          	add    $0x4,%r8
18002fdb7:	eb 12                	jmp    0x18002fdcb
18002fdb9:	45 39 18             	cmp    %r11d,(%r8)
18002fdbc:	75 12                	jne    0x18002fdd0
18002fdbe:	49 83 c0 04          	add    $0x4,%r8
18002fdc2:	41 83 c2 20          	add    $0x20,%r10d
18002fdc6:	44 3b d5             	cmp    %ebp,%r10d
18002fdc9:	73 26                	jae    0x18002fdf1
18002fdcb:	4c 3b c3             	cmp    %rbx,%r8
18002fdce:	72 e9                	jb     0x18002fdb9
18002fdd0:	8b 0f                	mov    (%rdi),%ecx
18002fdd2:	43 8d 04 0a          	lea    (%r10,%r9,1),%eax
18002fdd6:	3b c1                	cmp    %ecx,%eax
18002fdd8:	73 17                	jae    0x18002fdf1
18002fdda:	48 8b 57 08          	mov    0x8(%rdi),%rdx
18002fdde:	0f a3 02             	bt     %eax,(%rdx)
18002fde1:	72 0e                	jb     0x18002fdf1
18002fde3:	44 3b d5             	cmp    %ebp,%r10d
18002fde6:	73 09                	jae    0x18002fdf1
18002fde8:	ff c0                	inc    %eax
18002fdea:	41 ff c2             	inc    %r10d
18002fded:	3b c1                	cmp    %ecx,%eax
18002fdef:	72 ed                	jb     0x18002fdde
18002fdf1:	44 3b d5             	cmp    %ebp,%r10d
18002fdf4:	44 89 0e             	mov    %r9d,(%rsi)
18002fdf7:	45 8b da             	mov    %r10d,%r11d
18002fdfa:	44 0f 47 dd          	cmova  %ebp,%r11d
18002fdfe:	48 8b 5c 24 10       	mov    0x10(%rsp),%rbx
18002fe03:	41 8b c3             	mov    %r11d,%eax
18002fe06:	48 8b 6c 24 18       	mov    0x18(%rsp),%rbp
18002fe0b:	48 8b 74 24 20       	mov    0x20(%rsp),%rsi
18002fe10:	48 8b 7c 24 28       	mov    0x28(%rsp),%rdi
18002fe15:	41 5f                	pop    %r15
18002fe17:	c3                   	ret
18002fe18:	cc                   	int3
18002fe19:	cc                   	int3
18002fe1a:	cc                   	int3
18002fe1b:	cc                   	int3
18002fe1c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002fe21:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18002fe26:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18002fe2b:	57                   	push   %rdi
18002fe2c:	48 83 ec 20          	sub    $0x20,%rsp
18002fe30:	8b 1a                	mov    (%rdx),%ebx
18002fe32:	48 8b f2             	mov    %rdx,%rsi
18002fe35:	8b 01                	mov    (%rcx),%eax
18002fe37:	48 8b e9             	mov    %rcx,%rbp
18002fe3a:	3b c3                	cmp    %ebx,%eax
18002fe3c:	0f 46 d8             	cmovbe %eax,%ebx
18002fe3f:	48 85 db             	test   %rbx,%rbx
18002fe42:	0f 84 a2 00 00 00    	je     0x18002feea
18002fe48:	4c 8b 4a 08          	mov    0x8(%rdx),%r9
18002fe4c:	4c 8b 51 08          	mov    0x8(%rcx),%r10
18002fe50:	4d 3b d1             	cmp    %r9,%r10
18002fe53:	77 4e                	ja     0x18002fea3
18002fe55:	48 8d 43 ff          	lea    -0x1(%rbx),%rax
18002fe59:	48 c1 e8 05          	shr    $0x5,%rax
18002fe5d:	49 8d 04 82          	lea    (%r10,%rax,4),%rax
18002fe61:	4c 3b c8             	cmp    %rax,%r9
18002fe64:	77 3d                	ja     0x18002fea3
18002fe66:	44 8b c3             	mov    %ebx,%r8d
18002fe69:	49 c1 e8 03          	shr    $0x3,%r8
18002fe6d:	83 e3 07             	and    $0x7,%ebx
18002fe70:	76 1d                	jbe    0x18002fe8f
18002fe72:	43 8a 04 02          	mov    (%r10,%r8,1),%al
18002fe76:	8b cb                	mov    %ebx,%ecx
18002fe78:	ba 01 00 00 00       	mov    $0x1,%edx
18002fe7d:	d2 e2                	shl    %cl,%dl
18002fe7f:	fe ca                	dec    %dl
18002fe81:	22 c2                	and    %dl,%al
18002fe83:	f6 d2                	not    %dl
18002fe85:	43 22 14 01          	and    (%r9,%r8,1),%dl
18002fe89:	0a d0                	or     %al,%dl
18002fe8b:	43 88 14 01          	mov    %dl,(%r9,%r8,1)
18002fe8f:	4d 85 c0             	test   %r8,%r8
18002fe92:	74 56                	je     0x18002feea
18002fe94:	48 8b 55 08          	mov    0x8(%rbp),%rdx
18002fe98:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
18002fe9c:	e8 1f 5b 10 00       	call   0x1801359c0
18002fea1:	eb 47                	jmp    0x18002feea
18002fea3:	48 8b fb             	mov    %rbx,%rdi
18002fea6:	83 e3 07             	and    $0x7,%ebx
18002fea9:	48 c1 ef 03          	shr    $0x3,%rdi
18002fead:	48 85 ff             	test   %rdi,%rdi
18002feb0:	74 0e                	je     0x18002fec0
18002feb2:	4c 8b c7             	mov    %rdi,%r8
18002feb5:	49 8b d2             	mov    %r10,%rdx
18002feb8:	49 8b c9             	mov    %r9,%rcx
18002febb:	e8 00 5b 10 00       	call   0x1801359c0
18002fec0:	48 85 db             	test   %rbx,%rbx
18002fec3:	74 25                	je     0x18002feea
18002fec5:	4c 8b 46 08          	mov    0x8(%rsi),%r8
18002fec9:	48 8b cb             	mov    %rbx,%rcx
18002fecc:	ba 01 00 00 00       	mov    $0x1,%edx
18002fed1:	d2 e2                	shl    %cl,%dl
18002fed3:	fe ca                	dec    %dl
18002fed5:	8a c2                	mov    %dl,%al
18002fed7:	f6 d0                	not    %al
18002fed9:	42 20 04 07          	and    %al,(%rdi,%r8,1)
18002fedd:	48 8b 45 08          	mov    0x8(%rbp),%rax
18002fee1:	8a 0c 07             	mov    (%rdi,%rax,1),%cl
18002fee4:	22 ca                	and    %dl,%cl
18002fee6:	42 08 0c 07          	or     %cl,(%rdi,%r8,1)
18002feea:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18002feef:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18002fef4:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18002fef9:	48 83 c4 20          	add    $0x20,%rsp
18002fefd:	5f                   	pop    %rdi
18002fefe:	c3                   	ret
18002feff:	cc                   	int3
18002ff00:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002ff05:	0f b7 41 14          	movzwl 0x14(%rcx),%eax
18002ff09:	4c 8d 51 18          	lea    0x18(%rcx),%r10
18002ff0d:	0f b7 59 06          	movzwl 0x6(%rcx),%ebx
18002ff11:	45 33 c9             	xor    %r9d,%r9d
18002ff14:	4c 03 d0             	add    %rax,%r10
18002ff17:	45 8b d9             	mov    %r9d,%r11d
18002ff1a:	85 db                	test   %ebx,%ebx
18002ff1c:	74 23                	je     0x18002ff41
18002ff1e:	41 8b 4a 0c          	mov    0xc(%r10),%ecx
18002ff22:	44 3b c1             	cmp    %ecx,%r8d
18002ff25:	72 09                	jb     0x18002ff30
18002ff27:	41 03 4a 10          	add    0x10(%r10),%ecx
18002ff2b:	44 3b c1             	cmp    %ecx,%r8d
18002ff2e:	72 0e                	jb     0x18002ff3e
18002ff30:	49 83 c2 28          	add    $0x28,%r10
18002ff34:	41 ff c3             	inc    %r11d
18002ff37:	44 3b db             	cmp    %ebx,%r11d
18002ff3a:	73 05                	jae    0x18002ff41
18002ff3c:	eb e0                	jmp    0x18002ff1e
18002ff3e:	41 b1 01             	mov    $0x1,%r9b
18002ff41:	41 f6 d9             	neg    %r9b
18002ff44:	48 1b c0             	sbb    %rax,%rax
18002ff47:	49 23 c2             	and    %r10,%rax
18002ff4a:	74 14                	je     0x18002ff60
18002ff4c:	8b 48 14             	mov    0x14(%rax),%ecx
18002ff4f:	8b 40 0c             	mov    0xc(%rax),%eax
18002ff52:	48 2b c8             	sub    %rax,%rcx
18002ff55:	41 8b c0             	mov    %r8d,%eax
18002ff58:	48 03 ca             	add    %rdx,%rcx
18002ff5b:	48 03 c1             	add    %rcx,%rax
18002ff5e:	eb 02                	jmp    0x18002ff62
18002ff60:	33 c0                	xor    %eax,%eax
18002ff62:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
18002ff67:	c3                   	ret
18002ff68:	cc                   	int3
18002ff69:	cc                   	int3
18002ff6a:	cc                   	int3
18002ff6b:	cc                   	int3
18002ff6c:	48 8b c4             	mov    %rsp,%rax
18002ff6f:	48 89 58 10          	mov    %rbx,0x10(%rax)
18002ff73:	48 89 68 18          	mov    %rbp,0x18(%rax)
18002ff77:	48 89 70 20          	mov    %rsi,0x20(%rax)
18002ff7b:	57                   	push   %rdi
18002ff7c:	41 56                	push   %r14
18002ff7e:	41 57                	push   %r15
18002ff80:	48 83 ec 20          	sub    $0x20,%rsp
18002ff84:	33 db                	xor    %ebx,%ebx
18002ff86:	41 0f b7 e8          	movzwl %r8w,%ebp
18002ff8a:	44 0f b6 f2          	movzbl %dl,%r14d
18002ff8e:	4d 8b f9             	mov    %r9,%r15
18002ff91:	48 89 58 08          	mov    %rbx,0x8(%rax)
18002ff95:	48 8b f1             	mov    %rcx,%rsi
18002ff98:	8b fb                	mov    %ebx,%edi
18002ff9a:	f6 c1 03             	test   $0x3,%cl