18007fb9d:	4c 8b 74 24 50       	mov    0x50(%rsp),%r14
18007fba2:	48 83 cf ff          	or     $0xffffffffffffffff,%rdi
18007fba6:	48 ff c7             	inc    %rdi
18007fba9:	66 45 39 3c 7e       	cmp    %r15w,(%r14,%rdi,2)
18007fbae:	75 f6                	jne    0x18007fba6
18007fbb0:	0f b7 df             	movzwl %di,%ebx
18007fbb3:	48 8d 4b 01          	lea    0x1(%rbx),%rcx
18007fbb7:	e8 94 a2 01 00       	call   0x180099e50
18007fbbc:	48 89 46 08          	mov    %rax,0x8(%rsi)
18007fbc0:	48 85 c0             	test   %rax,%rax
18007fbc3:	75 2f                	jne    0x18007fbf4
18007fbc5:	bd 17 00 00 c0       	mov    $0xc0000017,%ebp
18007fbca:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
18007fbce:	48 85 c9             	test   %rcx,%rcx
18007fbd1:	74 05                	je     0x18007fbd8
18007fbd3:	e8 24 a4 01 00       	call   0x180099ffc
18007fbd8:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18007fbdd:	8b c5                	mov    %ebp,%eax
18007fbdf:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18007fbe4:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
18007fbe9:	48 83 c4 20          	add    $0x20,%rsp
18007fbed:	41 5f                	pop    %r15
18007fbef:	41 5e                	pop    %r14
18007fbf1:	5f                   	pop    %rdi
18007fbf2:	c3                   	ret
18007fbf3:	cc                   	int3
18007fbf4:	49 8b d6             	mov    %r14,%rdx
18007fbf7:	48 8b c8             	mov    %rax,%rcx
18007fbfa:	e8 91 e2 ff ff       	call   0x18007de90
18007fbff:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
18007fc03:	ba 2e 00 00 00       	mov    $0x2e,%edx
18007fc08:	66 89 3e             	mov    %di,(%rsi)
18007fc0b:	66 ff c7             	inc    %di
18007fc0e:	66 89 7e 02          	mov    %di,0x2(%rsi)
18007fc12:	e8 e9 c3 0a 00       	call   0x18012c000
18007fc17:	48 85 c0             	test   %rax,%rax
18007fc1a:	74 bc                	je     0x18007fbd8
18007fc1c:	48 2b d8             	sub    %rax,%rbx
18007fc1f:	48 03 5e 08          	add    0x8(%rsi),%rbx
18007fc23:	48 83 fb 04          	cmp    $0x4,%rbx
18007fc27:	75 af                	jne    0x18007fbd8
18007fc29:	4c 8d 05 14 16 0d 00 	lea    0xd1614(%rip),%r8        # 0x180151244
18007fc30:	48 8b c8             	mov    %rax,%rcx
18007fc33:	8d 53 01             	lea    0x1(%rbx),%edx
18007fc36:	e8 81 de 0a 00       	call   0x18012dabc
18007fc3b:	eb 9b                	jmp    0x18007fbd8
18007fc3d:	cc                   	int3
18007fc3e:	cc                   	int3
18007fc3f:	cc                   	int3
18007fc40:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18007fc45:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18007fc4a:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
18007fc4f:	55                   	push   %rbp
18007fc50:	41 54                	push   %r12
18007fc52:	41 55                	push   %r13
18007fc54:	41 56                	push   %r14
18007fc56:	41 57                	push   %r15
18007fc58:	48 8b ec             	mov    %rsp,%rbp
18007fc5b:	48 83 ec 40          	sub    $0x40,%rsp
18007fc5f:	48 8b 31             	mov    (%rcx),%rsi
18007fc62:	4c 8d 7a ff          	lea    -0x1(%rdx),%r15
18007fc66:	45 33 ed             	xor    %r13d,%r13d
18007fc69:	48 89 75 30          	mov    %rsi,0x30(%rbp)
18007fc6d:	4c 89 29             	mov    %r13,(%rcx)
18007fc70:	4c 8b e1             	mov    %rcx,%r12
18007fc73:	b9 00 00 01 00       	mov    $0x10000,%ecx
18007fc78:	45 8b f0             	mov    %r8d,%r14d
18007fc7b:	44 8b 45 58          	mov    0x58(%rbp),%r8d
18007fc7f:	41 8b d9             	mov    %r9d,%ebx
18007fc82:	0b d9                	or     %ecx,%ebx
18007fc84:	41 8b c0             	mov    %r8d,%eax
18007fc87:	24 08                	and    $0x8,%al
18007fc89:	41 0f 44 d9          	cmove  %r9d,%ebx
18007fc8d:	8b c3                	mov    %ebx,%eax
18007fc8f:	23 c1                	and    %ecx,%eax
18007fc91:	f7 d8                	neg    %eax
18007fc93:	48 1b c0             	sbb    %rax,%rax
18007fc96:	25 00 f0 1f 00       	and    $0x1ff000,%eax
18007fc9b:	48 05 00 10 00 00    	add    $0x1000,%rax
18007fca1:	4c 03 f8             	add    %rax,%r15
18007fca4:	48 ff c8             	dec    %rax
18007fca7:	48 f7 d0             	not    %rax
18007fcaa:	4c 23 f8             	and    %rax,%r15
18007fcad:	49 8b ff             	mov    %r15,%rdi
18007fcb0:	48 c1 ef 0c          	shr    $0xc,%rdi
18007fcb4:	41 0f ba e0 18       	bt     $0x18,%r8d
18007fcb9:	73 34                	jae    0x18007fcef
18007fcbb:	48 85 ff             	test   %rdi,%rdi
18007fcbe:	74 1d                	je     0x18007fcdd
18007fcc0:	45 8b ce             	mov    %r14d,%r9d
18007fcc3:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
18007fcc7:	44 8b c3             	mov    %ebx,%r8d
18007fcca:	48 8b d7             	mov    %rdi,%rdx
18007fccd:	e8 0a b2 ff ff       	call   0x18007aedc
18007fcd2:	85 c0                	test   %eax,%eax
18007fcd4:	8b f8                	mov    %eax,%edi
18007fcd6:	48 0f 49 75 30       	cmovns 0x30(%rbp),%rsi
18007fcdb:	eb 05                	jmp    0x18007fce2
18007fcdd:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
18007fce2:	85 ff                	test   %edi,%edi
18007fce4:	0f 88 de 00 00 00    	js     0x18007fdc8
18007fcea:	e9 d2 00 00 00       	jmp    0x18007fdc1
18007fcef:	8b 45 50             	mov    0x50(%rbp),%eax
18007fcf2:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
18007fcf6:	44 89 6c 24 30       	mov    %r13d,0x30(%rsp)
18007fcfb:	41 f6 c0 01          	test   $0x1,%r8b
18007fcff:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
18007fd04:	44 8b cb             	mov    %ebx,%r9d
18007fd07:	89 44 24 20          	mov    %eax,0x20(%rsp)
18007fd0b:	48 8b d7             	mov    %rdi,%rdx
18007fd0e:	45 8b c6             	mov    %r14d,%r8d
18007fd11:	74 70                	je     0x18007fd83
18007fd13:	48 89 75 30          	mov    %rsi,0x30(%rbp)
18007fd17:	e8 d0 7b 01 00       	call   0x1800978ec
18007fd1c:	85 c0                	test   %eax,%eax
18007fd1e:	79 31                	jns    0x18007fd51
18007fd20:	44 89 6c 24 30       	mov    %r13d,0x30(%rsp)
18007fd25:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
18007fd29:	81 e3 00 00 ff 00    	and    $0xff0000,%ebx
18007fd2f:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
18007fd34:	44 8b cb             	mov    %ebx,%r9d
18007fd37:	4c 89 6d 30          	mov    %r13,0x30(%rbp)
18007fd3b:	45 8b c6             	mov    %r14d,%r8d
18007fd3e:	44 89 6c 24 20       	mov    %r13d,0x20(%rsp)
18007fd43:	48 8b d7             	mov    %rdi,%rdx
18007fd46:	e8 a1 7b 01 00       	call   0x1800978ec
18007fd4b:	8b f8                	mov    %eax,%edi
18007fd4d:	85 c0                	test   %eax,%eax
18007fd4f:	78 77                	js     0x18007fdc8
18007fd51:	48 8b 5d 30          	mov    0x30(%rbp),%rbx
18007fd55:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
18007fd59:	48 8b d3             	mov    %rbx,%rdx
18007fd5c:	48 89 5d 30          	mov    %rbx,0x30(%rbp)
18007fd60:	41 b9 00 00 04 00    	mov    $0x40000,%r9d
18007fd66:	44 89 6c 24 20       	mov    %r13d,0x20(%rsp)
18007fd6b:	4d 8b c7             	mov    %r15,%r8
18007fd6e:	e8 ad a7 01 00       	call   0x18009a520
18007fd73:	8b f8                	mov    %eax,%edi
18007fd75:	85 c0                	test   %eax,%eax
18007fd77:	79 44                	jns    0x18007fdbd
18007fd79:	48 8b cb             	mov    %rbx,%rcx
18007fd7c:	e8 db 7d 01 00       	call   0x180097b5c
18007fd81:	eb 45                	jmp    0x18007fdc8
18007fd83:	e8 6c 7a 01 00       	call   0x1800977f4
18007fd88:	85 c0                	test   %eax,%eax
18007fd8a:	79 31                	jns    0x18007fdbd
18007fd8c:	44 89 6c 24 30       	mov    %r13d,0x30(%rsp)
18007fd91:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
18007fd95:	81 e3 00 00 ff 00    	and    $0xff0000,%ebx
18007fd9b:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
18007fda0:	44 8b cb             	mov    %ebx,%r9d
18007fda3:	4c 89 6d 30          	mov    %r13,0x30(%rbp)
18007fda7:	45 8b c6             	mov    %r14d,%r8d
18007fdaa:	44 89 6c 24 20       	mov    %r13d,0x20(%rsp)
18007fdaf:	48 8b d7             	mov    %rdi,%rdx
18007fdb2:	e8 3d 7a 01 00       	call   0x1800977f4
18007fdb7:	8b f8                	mov    %eax,%edi
18007fdb9:	85 c0                	test   %eax,%eax
18007fdbb:	78 0b                	js     0x18007fdc8
18007fdbd:	48 8b 75 30          	mov    0x30(%rbp),%rsi
18007fdc1:	41 8b fd             	mov    %r13d,%edi
18007fdc4:	49 89 34 24          	mov    %rsi,(%r12)
18007fdc8:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
18007fdcd:	8b c7                	mov    %edi,%eax
18007fdcf:	49 8b 5b 38          	mov    0x38(%r11),%rbx
18007fdd3:	49 8b 73 40          	mov    0x40(%r11),%rsi
18007fdd7:	49 8b 7b 48          	mov    0x48(%r11),%rdi
18007fddb:	49 8b e3             	mov    %r11,%rsp
18007fdde:	41 5f                	pop    %r15
18007fde0:	41 5e                	pop    %r14
18007fde2:	41 5d                	pop    %r13
18007fde4:	41 5c                	pop    %r12
18007fde6:	5d                   	pop    %rbp
18007fde7:	c3                   	ret
18007fde8:	cc                   	int3
18007fde9:	cc                   	int3
18007fdea:	cc                   	int3
18007fdeb:	cc                   	int3
18007fdec:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18007fdf1:	57                   	push   %rdi
18007fdf2:	48 83 ec 20          	sub    $0x20,%rsp
18007fdf6:	48 8b d9             	mov    %rcx,%rbx
18007fdf9:	48 85 c9             	test   %rcx,%rcx
18007fdfc:	74 78                	je     0x18007fe76
18007fdfe:	85 d2                	test   %edx,%edx
18007fe00:	74 74                	je     0x18007fe76
18007fe02:	8d ba ff 0f 00 00    	lea    0xfff(%rdx),%edi
18007fe08:	81 e7 00 f0 ff ff    	and    $0xfffff000,%edi
18007fe0e:	41 f6 c0 01          	test   $0x1,%r8b
18007fe12:	74 31                	je     0x18007fe45
18007fe14:	45 33 c9             	xor    %r9d,%r9d
18007fe17:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
18007fe1c:	45 33 c0             	xor    %r8d,%r8d
18007fe1f:	e8 68 d7 01 00       	call   0x18009d58c
18007fe24:	84 c0                	test   %al,%al
18007fe26:	74 4e                	je     0x18007fe76
18007fe28:	8b d7                	mov    %edi,%edx
18007fe2a:	45 33 c0             	xor    %r8d,%r8d
18007fe2d:	48 8b cb             	mov    %rbx,%rcx
18007fe30:	e8 37 aa 01 00       	call   0x18009a86c
18007fe35:	85 c0                	test   %eax,%eax
18007fe37:	78 42                	js     0x18007fe7b
18007fe39:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
18007fe3e:	e8 19 7d 01 00       	call   0x180097b5c
18007fe43:	eb 36                	jmp    0x18007fe7b
18007fe45:	41 0f ba e0 18       	bt     $0x18,%r8d
18007fe4a:	73 23                	jae    0x18007fe6f
18007fe4c:	45 33 c9             	xor    %r9d,%r9d
18007fe4f:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
18007fe54:	45 33 c0             	xor    %r8d,%r8d
18007fe57:	e8 30 d7 01 00       	call   0x18009d58c
18007fe5c:	84 c0                	test   %al,%al
18007fe5e:	74 16                	je     0x18007fe76
18007fe60:	8b d7                	mov    %edi,%edx
18007fe62:	45 33 c0             	xor    %r8d,%r8d
18007fe65:	48 8b cb             	mov    %rbx,%rcx
18007fe68:	e8 ff a9 01 00       	call   0x18009a86c
18007fe6d:	eb 0c                	jmp    0x18007fe7b
18007fe6f:	e8 bc 7c 01 00       	call   0x180097b30
18007fe74:	eb 05                	jmp    0x18007fe7b
18007fe76:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18007fe7b:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
18007fe80:	48 83 c4 20          	add    $0x20,%rsp
18007fe84:	5f                   	pop    %rdi
18007fe85:	c3                   	ret
18007fe86:	cc                   	int3
18007fe87:	cc                   	int3
18007fe88:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18007fe8d:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18007fe92:	56                   	push   %rsi
18007fe93:	57                   	push   %rdi
18007fe94:	41 56                	push   %r14
18007fe96:	48 83 ec 20          	sub    $0x20,%rsp
18007fe9a:	48 8b 69 18          	mov    0x18(%rcx),%rbp
18007fe9e:	45 33 f6             	xor    %r14d,%r14d
18007fea1:	49 8b d9             	mov    %r9,%rbx
18007fea4:	49 8b f8             	mov    %r8,%rdi
18007fea7:	48 8b f2             	mov    %rdx,%rsi
18007feaa:	48 85 d2             	test   %rdx,%rdx
18007fead:	74 23                	je     0x18007fed2
18007feaf:	4c 8d 44 24 40       	lea    0x40(%rsp),%r8
18007feb4:	ba 48 00 00 16       	mov    $0x16000048,%edx
18007feb9:	48 8b cd             	mov    %rbp,%rcx
18007febc:	e8 53 c5 ff ff       	call   0x18007c414
18007fec1:	0f b6 4c 24 40       	movzbl 0x40(%rsp),%ecx
18007fec6:	85 c0                	test   %eax,%eax
18007fec8:	41 0f 48 ce          	cmovs  %r14d,%ecx
18007fecc:	88 4c 24 40          	mov    %cl,0x40(%rsp)
18007fed0:	88 0e                	mov    %cl,(%rsi)
18007fed2:	48 85 ff             	test   %rdi,%rdi
18007fed5:	74 1f                	je     0x18007fef6
18007fed7:	4c 8d 44 24 40       	lea    0x40(%rsp),%r8
18007fedc:	ba 49 00 00 16       	mov    $0x16000049,%edx
18007fee1:	48 8b cd             	mov    %rbp,%rcx
18007fee4:	e8 2b c5 ff ff       	call   0x18007c414
18007fee9:	0f b6 4c 24 40       	movzbl 0x40(%rsp),%ecx
18007feee:	85 c0                	test   %eax,%eax
18007fef0:	41 0f 48 ce          	cmovs  %r14d,%ecx
18007fef4:	88 0f                	mov    %cl,(%rdi)
18007fef6:	48 85 db             	test   %rbx,%rbx
18007fef9:	74 57                	je     0x18007ff52
18007fefb:	48 8b 05 2e 5f 11 00 	mov    0x115f2e(%rip),%rax        # 0x180195e30
18007ff02:	48 85 c0             	test   %rax,%rax
18007ff05:	74 0b                	je     0x18007ff12
18007ff07:	8b 48 20             	mov    0x20(%rax),%ecx
18007ff0a:	c1 e9 14             	shr    $0x14,%ecx
18007ff0d:	80 e1 01             	and    $0x1,%cl
18007ff10:	eb 03                	jmp    0x18007ff15
18007ff12:	41 8a ce             	mov    %r14b,%cl
18007ff15:	88 4c 24 40          	mov    %cl,0x40(%rsp)
18007ff19:	84 c9                	test   %cl,%cl
18007ff1b:	75 33                	jne    0x18007ff50
18007ff1d:	48 85 c0             	test   %rax,%rax
18007ff20:	74 0a                	je     0x18007ff2c
18007ff22:	8b 40 20             	mov    0x20(%rax),%eax
18007ff25:	c1 e8 06             	shr    $0x6,%eax
18007ff28:	24 01                	and    $0x1,%al
18007ff2a:	eb 03                	jmp    0x18007ff2f
18007ff2c:	41 8a c6             	mov    %r14b,%al
18007ff2f:	84 c0                	test   %al,%al
18007ff31:	75 1d                	jne    0x18007ff50
18007ff33:	4c 8d 44 24 40       	lea    0x40(%rsp),%r8
18007ff38:	ba 7e 00 00 16       	mov    $0x1600007e,%edx
18007ff3d:	48 8b cd             	mov    %rbp,%rcx
18007ff40:	e8 cf c4 ff ff       	call   0x18007c414
18007ff45:	0f b6 4c 24 40       	movzbl 0x40(%rsp),%ecx
18007ff4a:	85 c0                	test   %eax,%eax
18007ff4c:	41 0f 48 ce          	cmovs  %r14d,%ecx
18007ff50:	88 0b                	mov    %cl,(%rbx)
18007ff52:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
18007ff57:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
18007ff5c:	48 83 c4 20          	add    $0x20,%rsp
18007ff60:	41 5e                	pop    %r14
18007ff62:	5f                   	pop    %rdi
18007ff63:	5e                   	pop    %rsi
18007ff64:	c3                   	ret
18007ff65:	cc                   	int3
18007ff66:	cc                   	int3
18007ff67:	cc                   	int3
18007ff68:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18007ff6d:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18007ff72:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18007ff77:	55                   	push   %rbp
18007ff78:	57                   	push   %rdi
18007ff79:	41 54                	push   %r12
18007ff7b:	41 55                	push   %r13
18007ff7d:	41 56                	push   %r14
18007ff7f:	48 8b ec             	mov    %rsp,%rbp
18007ff82:	48 83 ec 70          	sub    $0x70,%rsp
18007ff86:	48 83 65 c8 00       	andq   $0x0,-0x38(%rbp)
18007ff8b:	33 ff                	xor    %edi,%edi
18007ff8d:	83 4d c0 ff          	orl    $0xffffffff,-0x40(%rbp)
18007ff91:	49 8b f1             	mov    %r9,%rsi
18007ff94:	48 89 7d d0          	mov    %rdi,-0x30(%rbp)
18007ff98:	4d 8b e8             	mov    %r8,%r13
18007ff9b:	4c 8b f2             	mov    %rdx,%r14
18007ff9e:	44 8b e1             	mov    %ecx,%r12d
18007ffa1:	e8 4a 1e 00 00       	call   0x180081df0
18007ffa6:	8b d8                	mov    %eax,%ebx
18007ffa8:	85 c0                	test   %eax,%eax
18007ffaa:	0f 88 2c 01 00 00    	js     0x1800800dc
18007ffb0:	4c 8d 4d c0          	lea    -0x40(%rbp),%r9
18007ffb4:	48 8b d6             	mov    %rsi,%rdx
18007ffb7:	44 8d 47 01          	lea    0x1(%rdi),%r8d
18007ffbb:	41 8b cc             	mov    %r12d,%ecx
18007ffbe:	e8 59 84 fe ff       	call   0x18006841c
18007ffc3:	44 8b 75 c0          	mov    -0x40(%rbp),%r14d
18007ffc7:	85 c0                	test   %eax,%eax
18007ffc9:	79 07                	jns    0x18007ffd2
18007ffcb:	33 db                	xor    %ebx,%ebx
18007ffcd:	e9 e7 00 00 00       	jmp    0x1800800b9
18007ffd2:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
18007ffd6:	41 8b ce             	mov    %r14d,%ecx
18007ffd9:	e8 3a 8d fe ff       	call   0x180068d18
18007ffde:	8b d8                	mov    %eax,%ebx
18007ffe0:	85 c0                	test   %eax,%eax
18007ffe2:	0f 88 d1 00 00 00    	js     0x1800800b9
18007ffe8:	48 8b 75 e0          	mov    -0x20(%rbp),%rsi
18007ffec:	48 85 f6             	test   %rsi,%rsi
18007ffef:	75 0a                	jne    0x18007fffb
18007fff1:	bb 28 04 00 c0       	mov    $0xc0000428,%ebx
18007fff6:	e9 be 00 00 00       	jmp    0x1800800b9
18007fffb:	21 7c 24 28          	and    %edi,0x28(%rsp)
18007ffff:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
180080003:	21 7c 24 20          	and    %edi,0x20(%rsp)
180080007:	45 33 c9             	xor    %r9d,%r9d
18008000a:	8b d6                	mov    %esi,%edx
18008000c:	41 b8 0a 00 00 d0    	mov    $0xd000000a,%r8d
180080012:	e8 29 fc ff ff       	call   0x18007fc40
180080017:	8b d8                	mov    %eax,%ebx