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
18002ff9d:	74 10                	je     0x18002ffaf
18002ff9f:	48 83 e6 fc          	and    $0xfffffffffffffffc,%rsi
18002ffa3:	8b d3                	mov    %ebx,%edx
18002ffa5:	f6 c1 01             	test   $0x1,%cl
18002ffa8:	41 0f 44 d6          	cmove  %r14d,%edx
18002ffac:	44 8a f2             	mov    %dl,%r14b
18002ffaf:	45 33 c0             	xor    %r8d,%r8d
18002ffb2:	4c 8d 4c 24 40       	lea    0x40(%rsp),%r9
18002ffb7:	48 8b d6             	mov    %rsi,%rdx
18002ffba:	41 8d 48 01          	lea    0x1(%r8),%ecx
18002ffbe:	e8 75 72 00 00       	call   0x180037238
18002ffc3:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
18002ffc8:	48 85 c9             	test   %rcx,%rcx
18002ffcb:	0f 84 af 00 00 00    	je     0x180030080
18002ffd1:	b8 0b 01 00 00       	mov    $0x10b,%eax
18002ffd6:	66 39 41 18          	cmp    %ax,0x18(%rcx)
18002ffda:	75 4a                	jne    0x180030026
18002ffdc:	3b 69 74             	cmp    0x74(%rcx),%ebp
18002ffdf:	0f 83 96 00 00 00    	jae    0x18003007b
18002ffe5:	44 8b 44 e9 78       	mov    0x78(%rcx,%rbp,8),%r8d
18002ffea:	45 85 c0             	test   %r8d,%r8d
18002ffed:	75 0a                	jne    0x18002fff9
18002ffef:	b8 02 00 00 c0       	mov    $0xc0000002,%eax
18002fff4:	e9 87 00 00 00       	jmp    0x180030080
18002fff9:	8b 44 e9 7c          	mov    0x7c(%rcx,%rbp,8),%eax
18002fffd:	41 89 07             	mov    %eax,(%r15)
180030000:	45 84 f6             	test   %r14b,%r14b
180030003:	75 6e                	jne    0x180030073
180030005:	44 3b 41 54          	cmp    0x54(%rcx),%r8d
180030009:	72 68                	jb     0x180030073
18003000b:	e8 f0 fe ff ff       	call   0x18002ff00
180030010:	48 8b c8             	mov    %rax,%rcx
180030013:	48 8b f8             	mov    %rax,%rdi
180030016:	48 f7 d9             	neg    %rcx
180030019:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18003001e:	1b d2                	sbb    %edx,%edx
180030020:	f7 d2                	not    %edx
180030022:	23 c2                	and    %edx,%eax
180030024:	eb 5a                	jmp    0x180030080
180030026:	b8 0b 02 00 00       	mov    $0x20b,%eax
18003002b:	66 39 41 18          	cmp    %ax,0x18(%rcx)
18003002f:	75 4a                	jne    0x18003007b
180030031:	3b a9 84 00 00 00    	cmp    0x84(%rcx),%ebp
180030037:	73 42                	jae    0x18003007b
180030039:	44 8b 84 e9 88 00 00 	mov    0x88(%rcx,%rbp,8),%r8d
180030040:	00
180030041:	45 85 c0             	test   %r8d,%r8d
180030044:	74 a9                	je     0x18002ffef
180030046:	8b 84 e9 8c 00 00 00 	mov    0x8c(%rcx,%rbp,8),%eax
18003004d:	41 89 07             	mov    %eax,(%r15)
180030050:	45 84 f6             	test   %r14b,%r14b
180030053:	75 1e                	jne    0x180030073
180030055:	44 3b 41 54          	cmp    0x54(%rcx),%r8d
180030059:	72 18                	jb     0x180030073
18003005b:	e8 a0 fe ff ff       	call   0x18002ff00
180030060:	48 8b f8             	mov    %rax,%rdi
180030063:	48 f7 d8             	neg    %rax
180030066:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18003006b:	1b c9                	sbb    %ecx,%ecx
18003006d:	f7 d1                	not    %ecx
18003006f:	23 c1                	and    %ecx,%eax
180030071:	eb 0d                	jmp    0x180030080
180030073:	4a 8d 3c 06          	lea    (%rsi,%r8,1),%rdi
180030077:	8b c3                	mov    %ebx,%eax
180030079:	eb 05                	jmp    0x180030080
18003007b:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180030080:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
180030085:	85 c0                	test   %eax,%eax
180030087:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
18003008c:	48 0f 49 df          	cmovns %rdi,%rbx
180030090:	48 8b c3             	mov    %rbx,%rax
180030093:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
180030098:	48 83 c4 20          	add    $0x20,%rsp
18003009c:	41 5f                	pop    %r15
18003009e:	41 5e                	pop    %r14
1800300a0:	5f                   	pop    %rdi
1800300a1:	c3                   	ret
1800300a2:	cc                   	int3
1800300a3:	cc                   	int3
1800300a4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800300a9:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1800300ae:	56                   	push   %rsi
1800300af:	57                   	push   %rdi
1800300b0:	41 54                	push   %r12
1800300b2:	41 56                	push   %r14
1800300b4:	41 57                	push   %r15
1800300b6:	48 83 ec 20          	sub    $0x20,%rsp
1800300ba:	4c 8b fa             	mov    %rdx,%r15
1800300bd:	4c 8d 4c 24 60       	lea    0x60(%rsp),%r9
1800300c2:	b2 01                	mov    $0x1,%dl
1800300c4:	45 33 c0             	xor    %r8d,%r8d
1800300c7:	48 8b d9             	mov    %rcx,%rbx
1800300ca:	e8 9d fe ff ff       	call   0x18002ff6c
1800300cf:	45 33 e4             	xor    %r12d,%r12d
1800300d2:	4c 8b c8             	mov    %rax,%r9
1800300d5:	45 8b c4             	mov    %r12d,%r8d
1800300d8:	48 85 c0             	test   %rax,%rax
1800300db:	0f 84 9b 00 00 00    	je     0x18003017c
1800300e1:	8b 68 20             	mov    0x20(%rax),%ebp
1800300e4:	45 8b d4             	mov    %r12d,%r10d
1800300e7:	8b 70 24             	mov    0x24(%rax),%esi
1800300ea:	48 03 eb             	add    %rbx,%rbp
1800300ed:	8b 48 18             	mov    0x18(%rax),%ecx
1800300f0:	48 03 f3             	add    %rbx,%rsi
1800300f3:	83 e9 01             	sub    $0x1,%ecx
1800300f6:	0f 88 80 00 00 00    	js     0x18003017c
1800300fc:	42 8d 14 11          	lea    (%rcx,%r10,1),%edx
180030100:	49 8b c7             	mov    %r15,%rax
180030103:	d1 fa                	sar    $1,%edx
180030105:	4c 63 f2             	movslq %edx,%r14
180030108:	42 8b 7c b5 00       	mov    0x0(%rbp,%r14,4),%edi
18003010d:	48 03 fb             	add    %rbx,%rdi
180030110:	49 2b ff             	sub    %r15,%rdi
180030113:	44 8a 18             	mov    (%rax),%r11b
180030116:	44 3a 1c 38          	cmp    (%rax,%rdi,1),%r11b
18003011a:	75 0d                	jne    0x180030129
18003011c:	48 ff c0             	inc    %rax
18003011f:	45 84 db             	test   %r11b,%r11b
180030122:	75 ef                	jne    0x180030113
180030124:	41 8b c4             	mov    %r12d,%eax
180030127:	eb 05                	jmp    0x18003012e
180030129:	1b c0                	sbb    %eax,%eax
18003012b:	83 c8 01             	or     $0x1,%eax
18003012e:	85 c0                	test   %eax,%eax
180030130:	79 09                	jns    0x18003013b
180030132:	85 d2                	test   %edx,%edx
180030134:	74 46                	je     0x18003017c
180030136:	8d 4a ff             	lea    -0x1(%rdx),%ecx
180030139:	eb 06                	jmp    0x180030141
18003013b:	7e 09                	jle    0x180030146
18003013d:	44 8d 52 01          	lea    0x1(%rdx),%r10d
180030141:	41 3b ca             	cmp    %r10d,%ecx
180030144:	7d b6                	jge    0x1800300fc
180030146:	41 3b ca             	cmp    %r10d,%ecx
180030149:	7c 31                	jl     0x18003017c
18003014b:	42 0f b7 04 76       	movzwl (%rsi,%r14,2),%eax
180030150:	41 3b 41 14          	cmp    0x14(%r9),%eax
180030154:	73 26                	jae    0x18003017c
180030156:	41 8b 49 1c          	mov    0x1c(%r9),%ecx
18003015a:	42 0f b7 14 76       	movzwl (%rsi,%r14,2),%edx
18003015f:	48 03 cb             	add    %rbx,%rcx
180030162:	44 8b 04 91          	mov    (%rcx,%rdx,4),%r8d
180030166:	4c 03 c3             	add    %rbx,%r8
180030169:	4d 3b c1             	cmp    %r9,%r8
18003016c:	76 0e                	jbe    0x18003017c
18003016e:	8b 4c 24 60          	mov    0x60(%rsp),%ecx
180030172:	49 03 c9             	add    %r9,%rcx
180030175:	4c 3b c1             	cmp    %rcx,%r8
180030178:	4d 0f 42 c4          	cmovb  %r12,%r8
18003017c:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180030181:	49 8b c0             	mov    %r8,%rax
180030184:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180030189:	48 83 c4 20          	add    $0x20,%rsp
18003018d:	41 5f                	pop    %r15
18003018f:	41 5e                	pop    %r14
180030191:	41 5c                	pop    %r12
180030193:	5f                   	pop    %rdi
180030194:	5e                   	pop    %rsi
180030195:	c3                   	ret
180030196:	cc                   	int3
180030197:	cc                   	int3
180030198:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18003019d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1800301a2:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1800301a7:	57                   	push   %rdi
1800301a8:	41 54                	push   %r12
1800301aa:	41 55                	push   %r13
1800301ac:	41 56                	push   %r14
1800301ae:	41 57                	push   %r15
1800301b0:	48 83 ec 70          	sub    $0x70,%rsp
1800301b4:	4c 8b f9             	mov    %rcx,%r15
1800301b7:	4c 8b e2             	mov    %rdx,%r12
1800301ba:	b9 4e 00 00 00       	mov    $0x4e,%ecx
1800301bf:	66 89 4a 02          	mov    %cx,0x2(%rdx)
1800301c3:	e8 88 9c 06 00       	call   0x180099e50