180006a4c:	0f b7 31             	movzwl (%rcx),%esi
180006a4f:	8b fa                	mov    %edx,%edi
180006a51:	49 8b 51 08          	mov    0x8(%r9),%rdx
180006a55:	48 8b d9             	mov    %rcx,%rbx
180006a58:	41 8b e8             	mov    %r8d,%ebp
180006a5b:	e8 84 75 07 00       	call   0x18007dfe4
180006a60:	45 33 ed             	xor    %r13d,%r13d
180006a63:	84 c0                	test   %al,%al
180006a65:	75 0a                	jne    0x180006a71
180006a67:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
180006a6c:	e9 3a 02 00 00       	jmp    0x180006cab
180006a71:	4c 8b b4 24 b8 00 00 	mov    0xb8(%rsp),%r14
180006a78:	00
180006a79:	8b cf                	mov    %edi,%ecx
180006a7b:	48 8b 53 08          	mov    0x8(%rbx),%rdx
180006a7f:	4d 8b c6             	mov    %r14,%r8
180006a82:	e8 c1 85 07 00       	call   0x18007f048
180006a87:	48 63 f8             	movslq %eax,%rdi
180006a8a:	85 c0                	test   %eax,%eax
180006a8c:	79 18                	jns    0x180006aa6
180006a8e:	48 8b 53 08          	mov    0x8(%rbx),%rdx
180006a92:	45 33 c9             	xor    %r9d,%r9d
180006a95:	4c 8b c7             	mov    %rdi,%r8
180006a98:	41 8d 49 06          	lea    0x6(%r9),%ecx
180006a9c:	e8 7b 56 00 00       	call   0x18000c11c
180006aa1:	e9 05 02 00 00       	jmp    0x180006cab
180006aa6:	48 8b 43 08          	mov    0x8(%rbx),%rax
180006aaa:	48 8b ce             	mov    %rsi,%rcx
180006aad:	48 d1 e9             	shr    $1,%rcx
180006ab0:	66 44 89 2c 48       	mov    %r13w,(%rax,%rcx,2)
180006ab5:	48 8b 84 24 c8 00 00 	mov    0xc8(%rsp),%rax
180006abc:	00
180006abd:	66 89 33             	mov    %si,(%rbx)
180006ac0:	44 89 28             	mov    %r13d,(%rax)
180006ac3:	48 8b 05 8e e8 19 00 	mov    0x19e88e(%rip),%rax        # 0x1801a5358
180006aca:	48 8b 0c e8          	mov    (%rax,%rbp,8),%rcx
180006ace:	8b 91 f8 12 00 00    	mov    0x12f8(%rcx),%edx
180006ad4:	83 fa ff             	cmp    $0xffffffff,%edx
180006ad7:	74 28                	je     0x180006b01
180006ad9:	48 83 c1 10          	add    $0x10,%rcx
180006add:	44 88 6c 24 20       	mov    %r13b,0x20(%rsp)
180006ae2:	4c 8d 8c 24 80 00 00 	lea    0x80(%rsp),%r9
180006ae9:	00
180006aea:	4c 8d 05 cf 54 15 00 	lea    0x1554cf(%rip),%r8        # 0x18015bfc0
180006af1:	e8 ba 77 0f 00       	call   0x1800fe2b0
180006af6:	84 c0                	test   %al,%al
180006af8:	8b 84 24 80 00 00 00 	mov    0x80(%rsp),%eax
180006aff:	75 05                	jne    0x180006b06
180006b01:	b8 00 00 08 00       	mov    $0x80000,%eax
180006b06:	48 8b 0d a3 59 16 00 	mov    0x1659a3(%rip),%rcx        # 0x18016c4b0
180006b0d:	48 39 41 28          	cmp    %rax,0x28(%rcx)
180006b11:	77 05                	ja     0x180006b18
180006b13:	41 8a ed             	mov    %r13b,%bpl
180006b16:	eb 11                	jmp    0x180006b29
180006b18:	8a 41 61             	mov    0x61(%rcx),%al
180006b1b:	a8 01                	test   $0x1,%al
180006b1d:	74 07                	je     0x180006b26
180006b1f:	41 8a ed             	mov    %r13b,%bpl
180006b22:	a8 02                	test   $0x2,%al
180006b24:	74 03                	je     0x180006b29
180006b26:	40 b5 01             	mov    $0x1,%bpl
180006b29:	45 8b 06             	mov    (%r14),%r8d
180006b2c:	40 8a c5             	mov    %bpl,%al
180006b2f:	4c 8b a4 24 a8 00 00 	mov    0xa8(%rsp),%r12
180006b36:	00
180006b37:	f6 d8                	neg    %al
180006b39:	40 8a c5             	mov    %bpl,%al
180006b3c:	1b c9                	sbb    %ecx,%ecx
180006b3e:	81 e1 00 f0 1f 00    	and    $0x1ff000,%ecx
180006b44:	81 c1 00 10 00 00    	add    $0x1000,%ecx
180006b4a:	f6 d8                	neg    %al
180006b4c:	44 8b f9             	mov    %ecx,%r15d
180006b4f:	1b db                	sbb    %ebx,%ebx
180006b51:	41 ff c8             	dec    %r8d
180006b54:	33 d2                	xor    %edx,%edx
180006b56:	44 03 c1             	add    %ecx,%r8d
180006b59:	41 8b c0             	mov    %r8d,%eax
180006b5c:	4d 8d 77 ff          	lea    -0x1(%r15),%r14
180006b60:	f7 f1                	div    %ecx
180006b62:	8b 0d b8 e6 19 00    	mov    0x19e6b8(%rip),%ecx        # 0x1801a5220
180006b68:	81 e3 ff 01 00 00    	and    $0x1ff,%ebx
180006b6e:	44 2b c2             	sub    %edx,%r8d
180006b71:	ff c9                	dec    %ecx
180006b73:	33 d2                	xor    %edx,%edx
180006b75:	41 03 cf             	add    %r15d,%ecx
180006b78:	8b c1                	mov    %ecx,%eax
180006b7a:	ff c3                	inc    %ebx
180006b7c:	41 f7 f7             	div    %r15d
180006b7f:	49 f7 d6             	not    %r14
180006b82:	45 33 c9             	xor    %r9d,%r9d
180006b85:	2b ca                	sub    %edx,%ecx
180006b87:	49 8b c6             	mov    %r14,%rax
180006b8a:	48 c1 e8 0c          	shr    $0xc,%rax
180006b8e:	69 d3 00 10 02 00    	imul   $0x21000,%ebx,%edx
180006b94:	42 8d 34 01          	lea    (%rcx,%r8,1),%esi
180006b98:	41 b8 00 00 03 00    	mov    $0x30000,%r8d
180006b9e:	49 8b cc             	mov    %r12,%rcx
180006ba1:	48 ff ca             	dec    %rdx
180006ba4:	49 03 d7             	add    %r15,%rdx
180006ba7:	48 03 d6             	add    %rsi,%rdx
180006baa:	48 c1 ea 0c          	shr    $0xc,%rdx
180006bae:	48 23 d0             	and    %rax,%rdx
180006bb1:	e8 92 40 09 00       	call   0x18009ac48
180006bb6:	8b f8                	mov    %eax,%edi
180006bb8:	85 c0                	test   %eax,%eax
180006bba:	0f 88 eb 00 00 00    	js     0x180006cab
180006bc0:	41 b8 08 00 00 00    	mov    $0x8,%r8d
180006bc6:	48 8d 94 24 80 00 00 	lea    0x80(%rsp),%rdx
180006bcd:	00
180006bce:	48 8d 0d fb 5f 16 00 	lea    0x165ffb(%rip),%rcx        # 0x18016cbd0
180006bd5:	e8 12 a1 0d 00       	call   0x1800e0cec
180006bda:	8b 84 24 80 00 00 00 	mov    0x80(%rsp),%eax
180006be1:	33 d2                	xor    %edx,%edx
180006be3:	8b cb                	mov    %ebx,%ecx
180006be5:	c1 e1 05             	shl    $0x5,%ecx
180006be8:	f7 f1                	div    %ecx
180006bea:	8d 4a ff             	lea    -0x1(%rdx),%ecx
180006bed:	03 cb                	add    %ebx,%ecx
180006bef:	40 84 ed             	test   %bpl,%bpl
180006bf2:	74 08                	je     0x180006bfc
180006bf4:	33 d2                	xor    %edx,%edx
180006bf6:	8b c1                	mov    %ecx,%eax
180006bf8:	f7 f3                	div    %ebx
180006bfa:	2b ca                	sub    %edx,%ecx
180006bfc:	48 8b 84 24 b0 00 00 	mov    0xb0(%rsp),%rax
180006c03:	00
180006c04:	48 c1 e1 0c          	shl    $0xc,%rcx
180006c08:	49 03 0c 24          	add    (%r12),%rcx
180006c0c:	48 89 8c 24 80 00 00 	mov    %rcx,0x80(%rsp)
180006c13:	00
180006c14:	48 89 08             	mov    %rcx,(%rax)
180006c17:	48 8b 84 24 c0 00 00 	mov    0xc0(%rsp),%rax
180006c1e:	00
180006c1f:	48 8d 1c 0e          	lea    (%rsi,%rcx,1),%rbx
180006c23:	41 8b f5             	mov    %r13d,%esi
180006c26:	4c 89 28             	mov    %r13,(%rax)
180006c29:	40 84 ed             	test   %bpl,%bpl
180006c2c:	74 19                	je     0x180006c47
180006c2e:	48 ff cb             	dec    %rbx
180006c31:	49 23 ce             	and    %r14,%rcx
180006c34:	49 03 df             	add    %r15,%rbx
180006c37:	48 89 8c 24 80 00 00 	mov    %rcx,0x80(%rsp)
180006c3e:	00
180006c3f:	49 23 de             	and    %r14,%rbx
180006c42:	be 00 00 01 00       	mov    $0x10000,%esi
180006c47:	48 2b d9             	sub    %rcx,%rbx
180006c4a:	44 89 6c 24 30       	mov    %r13d,0x30(%rsp)
180006c4f:	48 c1 eb 0c          	shr    $0xc,%rbx
180006c53:	48 8d 8c 24 98 00 00 	lea    0x98(%rsp),%rcx
180006c5a:	00
180006c5b:	48 8b d3             	mov    %rbx,%rdx
180006c5e:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
180006c63:	44 8b ce             	mov    %esi,%r9d
180006c66:	44 89 6c 24 20       	mov    %r13d,0x20(%rsp)
180006c6b:	41 b8 28 00 00 e0    	mov    $0xe0000028,%r8d
180006c71:	e8 76 0c 09 00       	call   0x1800978ec
180006c76:	8b f8                	mov    %eax,%edi
180006c78:	85 c0                	test   %eax,%eax
180006c7a:	78 2f                	js     0x180006cab
180006c7c:	48 8b 94 24 98 00 00 	mov    0x98(%rsp),%rdx
180006c83:	00
180006c84:	48 8d 8c 24 80 00 00 	lea    0x80(%rsp),%rcx
180006c8b:	00
180006c8c:	81 ce 00 40 04 00    	or     $0x44000,%esi
180006c92:	48 c1 e3 0c          	shl    $0xc,%rbx
180006c96:	44 8b ce             	mov    %esi,%r9d
180006c99:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%rsp)
180006ca0:	00
180006ca1:	4c 8b c3             	mov    %rbx,%r8
180006ca4:	e8 77 38 09 00       	call   0x18009a520
180006ca9:	8b f8                	mov    %eax,%edi
180006cab:	48 8b 9c 24 88 00 00 	mov    0x88(%rsp),%rbx
180006cb2:	00
180006cb3:	8b c7                	mov    %edi,%eax
180006cb5:	48 83 c4 40          	add    $0x40,%rsp
180006cb9:	41 5f                	pop    %r15
180006cbb:	41 5e                	pop    %r14
180006cbd:	41 5d                	pop    %r13
180006cbf:	41 5c                	pop    %r12
180006cc1:	5f                   	pop    %rdi
180006cc2:	5e                   	pop    %rsi
180006cc3:	5d                   	pop    %rbp
180006cc4:	c3                   	ret
180006cc5:	cc                   	int3
180006cc6:	cc                   	int3
180006cc7:	cc                   	int3
180006cc8:	48 8b c4             	mov    %rsp,%rax
180006ccb:	48 89 58 18          	mov    %rbx,0x18(%rax)
180006ccf:	44 89 48 20          	mov    %r9d,0x20(%rax)
180006cd3:	48 89 48 08          	mov    %rcx,0x8(%rax)
180006cd7:	55                   	push   %rbp
180006cd8:	56                   	push   %rsi
180006cd9:	57                   	push   %rdi
180006cda:	41 54                	push   %r12
180006cdc:	41 55                	push   %r13
180006cde:	41 56                	push   %r14
180006ce0:	41 57                	push   %r15
180006ce2:	48 8d 68 b8          	lea    -0x48(%rax),%rbp
180006ce6:	48 81 ec 10 01 00 00 	sub    $0x110,%rsp
180006ced:	0f b7 02             	movzwl (%rdx),%eax
180006cf0:	33 f6                	xor    %esi,%esi
180006cf2:	44 8b 35 db 57 16 00 	mov    0x1657db(%rip),%r14d        # 0x18016c4d4
180006cf9:	48 8b fa             	mov    %rdx,%rdi
180006cfc:	44 8b 2d b5 57 16 00 	mov    0x1657b5(%rip),%r13d        # 0x18016c4b8
180006d03:	4c 8b f9             	mov    %rcx,%r15
180006d06:	ba 69 42 46 54       	mov    $0x54464269,%edx
180006d0b:	89 75 90             	mov    %esi,-0x70(%rbp)
180006d0e:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
180006d12:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
180006d16:	66 89 45 70          	mov    %ax,0x70(%rbp)
180006d1a:	45 8b e0             	mov    %r8d,%r12d
180006d1d:	48 89 75 e8          	mov    %rsi,-0x18(%rbp)
180006d21:	48 89 75 d8          	mov    %rsi,-0x28(%rbp)
180006d25:	89 75 b0             	mov    %esi,-0x50(%rbp)
180006d28:	48 89 75 b8          	mov    %rsi,-0x48(%rbp)
180006d2c:	89 74 24 70          	mov    %esi,0x70(%rsp)
180006d30:	44 89 75 58          	mov    %r14d,0x58(%rbp)
180006d34:	e8 df c2 08 00       	call   0x180093018
180006d39:	85 c0                	test   %eax,%eax
180006d3b:	0f 89 86 00 00 00    	jns    0x180006dc7
180006d41:	48 8d 55 98          	lea    -0x68(%rbp),%rdx
180006d45:	48 89 74 24 78       	mov    %rsi,0x78(%rsp)
180006d4a:	8d 4e 04             	lea    0x4(%rsi),%ecx
180006d4d:	8b de                	mov    %esi,%ebx
180006d4f:	e8 68 ee 01 00       	call   0x180025bbc
180006d54:	85 c0                	test   %eax,%eax
180006d56:	78 6f                	js     0x180006dc7
180006d58:	48 8b 55 98          	mov    -0x68(%rbp),%rdx
180006d5c:	44 8d 46 43          	lea    0x43(%rsi),%r8d
180006d60:	33 c0                	xor    %eax,%eax
180006d62:	48 8d 4c 24 78       	lea    0x78(%rsp),%rcx
180006d67:	45 33 c9             	xor    %r9d,%r9d
180006d6a:	89 44 24 20          	mov    %eax,0x20(%rsp)
180006d6e:	e8 ad 37 09 00       	call   0x18009a520
180006d73:	85 c0                	test   %eax,%eax
180006d75:	78 50                	js     0x180006dc7
180006d77:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
180006d7c:	8d 56 43             	lea    0x43(%rsi),%edx
180006d7f:	45 33 c0             	xor    %r8d,%r8d
180006d82:	44 8b 71 04          	mov    0x4(%rcx),%r14d
180006d86:	e8 e1 3a 09 00       	call   0x18009a86c
180006d8b:	48 8b 55 98          	mov    -0x68(%rbp),%rdx
180006d8f:	48 8d 4c 24 78       	lea    0x78(%rsp),%rcx
180006d94:	33 c0                	xor    %eax,%eax
180006d96:	45 8b c6             	mov    %r14d,%r8d
180006d99:	45 33 c9             	xor    %r9d,%r9d
180006d9c:	89 44 24 20          	mov    %eax,0x20(%rsp)
180006da0:	e8 7b 37 09 00       	call   0x18009a520
180006da5:	85 c0                	test   %eax,%eax
180006da7:	78 08                	js     0x180006db1
180006da9:	48 8b 5c 24 78       	mov    0x78(%rsp),%rbx
180006dae:	41 8b f6             	mov    %r14d,%esi
180006db1:	44 8b 75 58          	mov    0x58(%rbp),%r14d
180006db5:	85 c0                	test   %eax,%eax
180006db7:	78 0e                	js     0x180006dc7
180006db9:	44 8b c6             	mov    %esi,%r8d
180006dbc:	48 8b d3             	mov    %rbx,%rdx
180006dbf:	49 8b cf             	mov    %r15,%rcx
180006dc2:	e8 f1 29 00 00       	call   0x1800097b8
180006dc7:	44 8b 4d 78          	mov    0x78(%rbp),%r9d
180006dcb:	48 8d 45 90          	lea    -0x70(%rbp),%rax
180006dcf:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180006dd4:	45 8b c5             	mov    %r13d,%r8d
180006dd7:	41 8b d6             	mov    %r14d,%edx
180006dda:	44 89 64 24 20       	mov    %r12d,0x20(%rsp)
180006ddf:	49 8b cf             	mov    %r15,%rcx
180006de2:	e8 81 1a 00 00       	call   0x180008868
180006de7:	45 33 ed             	xor    %r13d,%r13d
180006dea:	48 8d 15 97 ea 13 00 	lea    0x13ea97(%rip),%rdx        # 0x180145888
180006df1:	48 8d 4d c8          	lea    -0x38(%rbp),%rcx
180006df5:	4c 89 6d a8          	mov    %r13,-0x58(%rbp)
180006df9:	44 89 6d a0          	mov    %r13d,-0x60(%rbp)
180006dfd:	41 8b f5             	mov    %r13d,%esi
180006e00:	4c 89 6d d0          	mov    %r13,-0x30(%rbp)
180006e04:	44 89 6d c8          	mov    %r13d,-0x38(%rbp)
180006e08:	4c 89 6d 88          	mov    %r13,-0x78(%rbp)
180006e0c:	44 89 6d 80          	mov    %r13d,-0x80(%rbp)
180006e10:	e8 cf 71 07 00       	call   0x18007dfe4
180006e15:	41 be 17 00 00 c0    	mov    $0xc0000017,%r14d
180006e1b:	84 c0                	test   %al,%al
180006e1d:	75 08                	jne    0x180006e27
180006e1f:	41 8b de             	mov    %r14d,%ebx
180006e22:	e9 da 00 00 00       	jmp    0x180006f01
180006e27:	ba 41 50 49 43       	mov    $0x43495041,%edx
180006e2c:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
180006e30:	e8 e3 c1 08 00       	call   0x180093018
180006e35:	8b d8                	mov    %eax,%ebx
180006e37:	85 c0                	test   %eax,%eax
180006e39:	78 29                	js     0x180006e64
180006e3b:	e8 f4 dc 01 00       	call   0x180024b34
180006e40:	84 c0                	test   %al,%al
180006e42:	48 8d 0d 07 16 14 00 	lea    0x141607(%rip),%rcx        # 0x180148450
180006e49:	48 8d 15 08 ea 13 00 	lea    0x13ea08(%rip),%rdx        # 0x180145858
180006e50:	48 0f 45 d1          	cmovne %rcx,%rdx
180006e54:	48 8d 4d a0          	lea    -0x60(%rbp),%rcx
180006e58:	e8 87 71 07 00       	call   0x18007dfe4
180006e5d:	84 c0                	test   %al,%al
180006e5f:	74 be                	je     0x180006e1f
180006e61:	41 8b dd             	mov    %r13d,%ebx
180006e64:	85 db                	test   %ebx,%ebx
180006e66:	0f 88 5e 0a 00 00    	js     0x1800078ca
180006e6c:	48 8b 0d 65 db 19 00 	mov    0x19db65(%rip),%rcx        # 0x1801a49d8
180006e73:	4c 8d 44 24 78       	lea    0x78(%rsp),%r8
180006e78:	ba 11 00 00 22       	mov    $0x22000011,%edx
180006e7d:	e8 d6 56 07 00       	call   0x18007c558
180006e82:	85 c0                	test   %eax,%eax
180006e84:	78 2f                	js     0x180006eb5
180006e86:	48 8d 4d a0          	lea    -0x60(%rbp),%rcx
180006e8a:	e8 95 6f 07 00       	call   0x18007de24
180006e8f:	48 8b 54 24 78       	mov    0x78(%rsp),%rdx
180006e94:	48 8d 4d a0          	lea    -0x60(%rbp),%rcx
180006e98:	4c 89 6d a8          	mov    %r13,-0x58(%rbp)
180006e9c:	44 89 6d a0          	mov    %r13d,-0x60(%rbp)
180006ea0:	e8 3f 71 07 00       	call   0x18007dfe4
180006ea5:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
180006eaa:	8a d8                	mov    %al,%bl
180006eac:	e8 4b 31 09 00       	call   0x180099ffc
180006eb1:	84 db                	test   %bl,%bl
180006eb3:	74 67                	je     0x180006f1c
180006eb5:	48 8b 0d 1c db 19 00 	mov    0x19db1c(%rip),%rcx        # 0x1801a49d8
180006ebc:	4c 8d 44 24 78       	lea    0x78(%rsp),%r8
180006ec1:	ba 12 00 00 22       	mov    $0x22000012,%edx
180006ec6:	e8 8d 56 07 00       	call   0x18007c558
180006ecb:	85 c0                	test   %eax,%eax
180006ecd:	78 2f                	js     0x180006efe
180006ecf:	48 8d 4d c8          	lea    -0x38(%rbp),%rcx
180006ed3:	e8 4c 6f 07 00       	call   0x18007de24
180006ed8:	48 8b 54 24 78       	mov    0x78(%rsp),%rdx
180006edd:	48 8d 4d c8          	lea    -0x38(%rbp),%rcx
180006ee1:	4c 89 6d d0          	mov    %r13,-0x30(%rbp)
180006ee5:	44 89 6d c8          	mov    %r13d,-0x38(%rbp)
180006ee9:	e8 f6 70 07 00       	call   0x18007dfe4
180006eee:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
180006ef3:	8a d8                	mov    %al,%bl
180006ef5:	e8 02 31 09 00       	call   0x180099ffc
180006efa:	84 db                	test   %bl,%bl
180006efc:	74 1e                	je     0x180006f1c
180006efe:	41 8b dd             	mov    %r13d,%ebx
180006f01:	85 db                	test   %ebx,%ebx
180006f03:	0f 88 c1 09 00 00    	js     0x1800078ca
180006f09:	48 8d 15 30 e9 13 00 	lea    0x13e930(%rip),%rdx        # 0x180145840
180006f10:	48 8b cf             	mov    %rdi,%rcx
180006f13:	e8 cc 70 07 00       	call   0x18007dfe4
180006f18:	84 c0                	test   %al,%al
180006f1a:	75 08                	jne    0x180006f24
180006f1c:	41 8b de             	mov    %r14d,%ebx
180006f1f:	e9 a6 09 00 00       	jmp    0x1800078ca
180006f24:	0f b7 07             	movzwl (%rdi),%eax
180006f27:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
180006f2b:	44 8b 45 58          	mov    0x58(%rbp),%r8d