18002f965:	41 8b f0             	mov    %r8d,%esi
18002f968:	8d 0c 32             	lea    (%rdx,%rsi,1),%ecx
18002f96b:	83 f9 08             	cmp    $0x8,%ecx
18002f96e:	77 0d                	ja     0x18002f97d
18002f970:	8a 84 2e 98 ba 14 00 	mov    0x14ba98(%rsi,%rbp,1),%al
18002f977:	8b ca                	mov    %edx,%ecx
18002f979:	d2 e0                	shl    %cl,%al
18002f97b:	eb 3f                	jmp    0x18002f9bc
18002f97d:	85 d2                	test   %edx,%edx
18002f97f:	74 0f                	je     0x18002f990
18002f981:	8a 84 2a a8 ba 14 00 	mov    0x14baa8(%rdx,%rbp,1),%al
18002f988:	8d 71 f8             	lea    -0x8(%rcx),%esi
18002f98b:	08 07                	or     %al,(%rdi)
18002f98d:	48 ff c7             	inc    %rdi
18002f990:	83 fe 08             	cmp    $0x8,%esi
18002f993:	76 1c                	jbe    0x18002f9b1
18002f995:	8b de                	mov    %esi,%ebx
18002f997:	ba ff 00 00 00       	mov    $0xff,%edx
18002f99c:	48 c1 eb 03          	shr    $0x3,%rbx
18002f9a0:	48 8b cf             	mov    %rdi,%rcx
18002f9a3:	4c 8b c3             	mov    %rbx,%r8
18002f9a6:	e8 d5 62 10 00       	call   0x180135c80
18002f9ab:	48 03 fb             	add    %rbx,%rdi
18002f9ae:	83 e6 07             	and    $0x7,%esi
18002f9b1:	85 f6                	test   %esi,%esi
18002f9b3:	74 09                	je     0x18002f9be
18002f9b5:	8a 84 2e 98 ba 14 00 	mov    0x14ba98(%rsi,%rbp,1),%al
18002f9bc:	08 07                	or     %al,(%rdi)
18002f9be:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18002f9c3:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18002f9c8:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18002f9cd:	48 83 c4 20          	add    $0x20,%rsp
18002f9d1:	5f                   	pop    %rdi
18002f9d2:	c3                   	ret
18002f9d3:	cc                   	int3
18002f9d4:	48 8b c4             	mov    %rsp,%rax
18002f9d7:	48 89 58 08          	mov    %rbx,0x8(%rax)
18002f9db:	48 89 68 10          	mov    %rbp,0x10(%rax)
18002f9df:	48 89 70 18          	mov    %rsi,0x18(%rax)
18002f9e3:	48 89 78 20          	mov    %rdi,0x20(%rax)
18002f9e7:	41 56                	push   %r14
18002f9e9:	41 57                	push   %r15
18002f9eb:	8b 01                	mov    (%rcx),%eax
18002f9ed:	45 33 db             	xor    %r11d,%r11d
18002f9f0:	4c 8b 51 08          	mov    0x8(%rcx),%r10
18002f9f4:	8b d0                	mov    %eax,%edx
18002f9f6:	8b f0                	mov    %eax,%esi
18002f9f8:	c1 ea 03             	shr    $0x3,%edx
18002f9fb:	44 8b f0             	mov    %eax,%r14d
18002f9fe:	83 e6 07             	and    $0x7,%esi
18002fa01:	45 8b c2             	mov    %r10d,%r8d
18002fa04:	41 0f 95 c3          	setne  %r11b
18002fa08:	33 ff                	xor    %edi,%edi
18002fa0a:	41 83 e0 07          	and    $0x7,%r8d
18002fa0e:	44 03 da             	add    %edx,%r11d
18002fa11:	41 8b c0             	mov    %r8d,%eax
18002fa14:	8d 4f 08             	lea    0x8(%rdi),%ecx
18002fa17:	48 2b c8             	sub    %rax,%rcx
18002fa1a:	41 8b c6             	mov    %r14d,%eax
18002fa1d:	48 c1 e8 03          	shr    $0x3,%rax
18002fa21:	48 3b c8             	cmp    %rax,%rcx
18002fa24:	77 1f                	ja     0x18002fa45
18002fa26:	44 8d 4f 08          	lea    0x8(%rdi),%r9d
18002fa2a:	45 2b c8             	sub    %r8d,%r9d
18002fa2d:	41 2b d1             	sub    %r9d,%edx
18002fa30:	83 e2 07             	and    $0x7,%edx
18002fa33:	85 f6                	test   %esi,%esi
18002fa35:	8d 5a 01             	lea    0x1(%rdx),%ebx
18002fa38:	0f 44 da             	cmove  %edx,%ebx
18002fa3b:	41 8b d3             	mov    %r11d,%edx
18002fa3e:	2b d3                	sub    %ebx,%edx
18002fa40:	41 2b d1             	sub    %r9d,%edx
18002fa43:	eb 07                	jmp    0x18002fa4c
18002fa45:	33 db                	xor    %ebx,%ebx
18002fa47:	45 8b cb             	mov    %r11d,%r9d
18002fa4a:	33 d2                	xor    %edx,%edx
18002fa4c:	45 33 c0             	xor    %r8d,%r8d
18002fa4f:	4c 8d 3d aa 05 fd ff 	lea    -0x2fa56(%rip),%r15        # 0x180000000
18002fa56:	45 85 c9             	test   %r9d,%r9d
18002fa59:	74 3d                	je     0x18002fa98
18002fa5b:	41 8d 6b ff          	lea    -0x1(%r11),%ebp
18002fa5f:	41 8a 0a             	mov    (%r10),%cl
18002fa62:	49 ff c2             	inc    %r10
18002fa65:	44 3b c5             	cmp    %ebp,%r8d
18002fa68:	75 12                	jne    0x18002fa7c
18002fa6a:	85 f6                	test   %esi,%esi
18002fa6c:	74 0e                	je     0x18002fa7c
18002fa6e:	49 8b c6             	mov    %r14,%rax
18002fa71:	83 e0 07             	and    $0x7,%eax
18002fa74:	42 22 8c 38 98 ba 14 	and    0x14ba98(%rax,%r15,1),%cl
18002fa7b:	00
18002fa7c:	0f b6 c1             	movzbl %cl,%eax
18002fa7f:	41 ff c0             	inc    %r8d
18002fa82:	f7 d0                	not    %eax
18002fa84:	0f b6 c8             	movzbl %al,%ecx
18002fa87:	42 0f b6 84 39 f0 c6 	movzbl 0x14c6f0(%rcx,%r15,1),%eax
18002fa8e:	14 00
18002fa90:	03 f8                	add    %eax,%edi
18002fa92:	41 83 c1 ff          	add    $0xffffffff,%r9d
18002fa96:	75 c7                	jne    0x18002fa5f
18002fa98:	85 d2                	test   %edx,%edx
18002fa9a:	74 77                	je     0x18002fb13
18002fa9c:	8d 42 ff             	lea    -0x1(%rdx),%eax
18002fa9f:	48 bd 33 33 33 33 33 	movabs $0x3333333333333333,%rbp
18002faa6:	33 33 33
18002faa9:	c1 e8 03             	shr    $0x3,%eax
18002faac:	ff c0                	inc    %eax
18002faae:	44 8b c8             	mov    %eax,%r9d
18002fab1:	45 8d 04 c0          	lea    (%r8,%rax,8),%r8d
18002fab5:	49 8b 12             	mov    (%r10),%rdx
18002fab8:	48 b9 55 55 55 55 55 	movabs $0x5555555555555555,%rcx
18002fabf:	55 55 55
18002fac2:	48 8b c2             	mov    %rdx,%rax
18002fac5:	49 83 c2 08          	add    $0x8,%r10
18002fac9:	48 d1 e8             	shr    $1,%rax
18002facc:	48 23 c1             	and    %rcx,%rax
18002facf:	48 2b d0             	sub    %rax,%rdx
18002fad2:	48 8b ca             	mov    %rdx,%rcx
18002fad5:	48 23 d5             	and    %rbp,%rdx
18002fad8:	48 c1 e9 02          	shr    $0x2,%rcx
18002fadc:	48 23 cd             	and    %rbp,%rcx
18002fadf:	48 03 ca             	add    %rdx,%rcx
18002fae2:	48 8b c1             	mov    %rcx,%rax
18002fae5:	48 c1 e8 04          	shr    $0x4,%rax
18002fae9:	48 03 c1             	add    %rcx,%rax
18002faec:	48 b9 0f 0f 0f 0f 0f 	movabs $0xf0f0f0f0f0f0f0f,%rcx
18002faf3:	0f 0f 0f
18002faf6:	48 23 c1             	and    %rcx,%rax
18002faf9:	48 b9 01 01 01 01 01 	movabs $0x101010101010101,%rcx
18002fb00:	01 01 01
18002fb03:	48 0f af c1          	imul   %rcx,%rax
18002fb07:	48 c1 e8 38          	shr    $0x38,%rax
18002fb0b:	03 f8                	add    %eax,%edi
18002fb0d:	49 83 e9 01          	sub    $0x1,%r9
18002fb11:	75 a2                	jne    0x18002fab5
18002fb13:	85 db                	test   %ebx,%ebx
18002fb15:	74 3b                	je     0x18002fb52
18002fb17:	41 ff cb             	dec    %r11d
18002fb1a:	41 8a 0a             	mov    (%r10),%cl
18002fb1d:	49 ff c2             	inc    %r10
18002fb20:	45 3b c3             	cmp    %r11d,%r8d
18002fb23:	75 12                	jne    0x18002fb37
18002fb25:	85 f6                	test   %esi,%esi
18002fb27:	74 0e                	je     0x18002fb37
18002fb29:	49 8b c6             	mov    %r14,%rax
18002fb2c:	83 e0 07             	and    $0x7,%eax
18002fb2f:	42 22 8c 38 98 ba 14 	and    0x14ba98(%rax,%r15,1),%cl
18002fb36:	00
18002fb37:	0f b6 c9             	movzbl %cl,%ecx
18002fb3a:	41 ff c0             	inc    %r8d
18002fb3d:	f7 d1                	not    %ecx
18002fb3f:	0f b6 d1             	movzbl %cl,%edx
18002fb42:	42 0f b6 8c 3a f0 c6 	movzbl 0x14c6f0(%rdx,%r15,1),%ecx
18002fb49:	14 00
18002fb4b:	03 f9                	add    %ecx,%edi
18002fb4d:	83 c3 ff             	add    $0xffffffff,%ebx
18002fb50:	75 c8                	jne    0x18002fb1a
18002fb52:	48 8b 5c 24 18       	mov    0x18(%rsp),%rbx
18002fb57:	8b c7                	mov    %edi,%eax
18002fb59:	48 8b 7c 24 30       	mov    0x30(%rsp),%rdi
18002fb5e:	48 8b 6c 24 20       	mov    0x20(%rsp),%rbp
18002fb63:	48 8b 74 24 28       	mov    0x28(%rsp),%rsi
18002fb68:	41 5f                	pop    %r15
18002fb6a:	41 5e                	pop    %r14
18002fb6c:	c3                   	ret
18002fb6d:	cc                   	int3
18002fb6e:	cc                   	int3
18002fb6f:	cc                   	int3
18002fb70:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002fb75:	8b 01                	mov    (%rcx),%eax
18002fb77:	44 8b ca             	mov    %edx,%r9d
18002fb7a:	3b d0                	cmp    %eax,%edx
18002fb7c:	72 07                	jb     0x18002fb85
18002fb7e:	33 c0                	xor    %eax,%eax
18002fb80:	e9 99 00 00 00       	jmp    0x18002fc1e
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