180086a58:	41 54                	push   %r12
180086a5a:	41 55                	push   %r13
180086a5c:	41 56                	push   %r14
180086a5e:	41 57                	push   %r15
180086a60:	48 83 ec 20          	sub    $0x20,%rsp
180086a64:	45 33 ed             	xor    %r13d,%r13d
180086a67:	4d 8b e1             	mov    %r9,%r12
180086a6a:	49 8b f0             	mov    %r8,%rsi
180086a6d:	48 8b fa             	mov    %rdx,%rdi
180086a70:	48 8b e9             	mov    %rcx,%rbp
180086a73:	48 85 c9             	test   %rcx,%rcx
180086a76:	75 0a                	jne    0x180086a82
180086a78:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180086a7d:	e9 bb 00 00 00       	jmp    0x180086b3d
180086a82:	b9 40 00 00 00       	mov    $0x40,%ecx
180086a87:	e8 c4 33 01 00       	call   0x180099e50
180086a8c:	48 8b d8             	mov    %rax,%rbx
180086a8f:	48 85 c0             	test   %rax,%rax
180086a92:	75 0a                	jne    0x180086a9e
180086a94:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
180086a99:	e9 9d 00 00 00       	jmp    0x180086b3b
180086a9e:	4c 8d 78 20          	lea    0x20(%rax),%r15
180086aa2:	48 8b d7             	mov    %rdi,%rdx
180086aa5:	4c 8d 70 10          	lea    0x10(%rax),%r14
180086aa9:	4d 89 6f 08          	mov    %r13,0x8(%r15)
180086aad:	45 89 2f             	mov    %r13d,(%r15)
180086ab0:	49 8b cf             	mov    %r15,%rcx
180086ab3:	4d 89 6e 08          	mov    %r13,0x8(%r14)
180086ab7:	45 89 2e             	mov    %r13d,(%r14)
180086aba:	e8 71 74 ff ff       	call   0x18007df30
180086abf:	8b f8                	mov    %eax,%edi
180086ac1:	85 c0                	test   %eax,%eax
180086ac3:	78 5e                	js     0x180086b23
180086ac5:	48 8b d5             	mov    %rbp,%rdx
180086ac8:	49 8b ce             	mov    %r14,%rcx
180086acb:	e8 60 74 ff ff       	call   0x18007df30
180086ad0:	8b f8                	mov    %eax,%edi
180086ad2:	85 c0                	test   %eax,%eax
180086ad4:	78 4d                	js     0x180086b23
180086ad6:	48 85 f6             	test   %rsi,%rsi
180086ad9:	75 0a                	jne    0x180086ae5
180086adb:	8b 44 24 70          	mov    0x70(%rsp),%eax
180086adf:	49 8b f4             	mov    %r12,%rsi
180086ae2:	89 43 38             	mov    %eax,0x38(%rbx)
180086ae5:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
180086aea:	48 89 73 30          	mov    %rsi,0x30(%rbx)
180086aee:	48 85 c0             	test   %rax,%rax
180086af1:	74 1e                	je     0x180086b11
180086af3:	48 8b 48 08          	mov    0x8(%rax),%rcx
180086af7:	48 39 01             	cmp    %rax,(%rcx)
180086afa:	74 07                	je     0x180086b03
180086afc:	b9 03 00 00 00       	mov    $0x3,%ecx
180086b01:	cd 29                	int    $0x29
180086b03:	48 89 03             	mov    %rax,(%rbx)
180086b06:	48 89 4b 08          	mov    %rcx,0x8(%rbx)
180086b0a:	48 89 19             	mov    %rbx,(%rcx)
180086b0d:	48 89 58 08          	mov    %rbx,0x8(%rax)
180086b11:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
180086b18:	00
180086b19:	48 85 c0             	test   %rax,%rax
180086b1c:	74 1d                	je     0x180086b3b
180086b1e:	48 89 18             	mov    %rbx,(%rax)
180086b21:	eb 18                	jmp    0x180086b3b
180086b23:	49 8b cf             	mov    %r15,%rcx
180086b26:	e8 f9 72 ff ff       	call   0x18007de24
180086b2b:	49 8b ce             	mov    %r14,%rcx
180086b2e:	e8 f1 72 ff ff       	call   0x18007de24
180086b33:	48 8b cb             	mov    %rbx,%rcx
180086b36:	e8 c1 34 01 00       	call   0x180099ffc
180086b3b:	8b c7                	mov    %edi,%eax
180086b3d:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180086b42:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180086b47:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
180086b4c:	48 83 c4 20          	add    $0x20,%rsp
180086b50:	41 5f                	pop    %r15
180086b52:	41 5e                	pop    %r14
180086b54:	41 5d                	pop    %r13
180086b56:	41 5c                	pop    %r12
180086b58:	5f                   	pop    %rdi
180086b59:	c3                   	ret
180086b5a:	cc                   	int3
180086b5b:	cc                   	int3
180086b5c:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
180086b61:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
180086b66:	55                   	push   %rbp
180086b67:	53                   	push   %rbx
180086b68:	56                   	push   %rsi
180086b69:	57                   	push   %rdi
180086b6a:	41 54                	push   %r12
180086b6c:	41 55                	push   %r13
180086b6e:	41 56                	push   %r14
180086b70:	41 57                	push   %r15
180086b72:	48 8b ec             	mov    %rsp,%rbp
180086b75:	48 83 ec 78          	sub    $0x78,%rsp
180086b79:	49 8b 00             	mov    (%r8),%rax
180086b7c:	45 33 ed             	xor    %r13d,%r13d
180086b7f:	48 8b 49 30          	mov    0x30(%rcx),%rcx
180086b83:	4d 8b f1             	mov    %r9,%r14
180086b86:	4c 8b 52 30          	mov    0x30(%rdx),%r10
180086b8a:	4c 8b fa             	mov    %rdx,%r15
180086b8d:	48 89 4d d8          	mov    %rcx,-0x28(%rbp)
180086b91:	48 85 c0             	test   %rax,%rax
180086b94:	79 19                	jns    0x180086baf
180086b96:	44 38 ad 80 00 00 00 	cmp    %r13b,0x80(%rbp)
180086b9d:	75 10                	jne    0x180086baf
180086b9f:	4c 8b 45 68          	mov    0x68(%rbp),%r8
180086ba3:	0f b7 c0             	movzwl %ax,%eax
180086ba6:	41 2b 40 10          	sub    0x10(%r8),%eax
180086baa:	e9 b6 00 00 00       	jmp    0x180086c65
180086baf:	4c 8b 45 68          	mov    0x68(%rbp),%r8
180086bb3:	48 8d 78 02          	lea    0x2(%rax),%rdi
180086bb7:	0f b7 14 08          	movzwl (%rax,%rcx,1),%edx
180086bbb:	48 03 f9             	add    %rcx,%rdi
180086bbe:	41 8b 70 20          	mov    0x20(%r8),%esi
180086bc2:	45 8b 70 24          	mov    0x24(%r8),%r14d
180086bc6:	49 03 f2             	add    %r10,%rsi
180086bc9:	41 8b 58 18          	mov    0x18(%r8),%ebx
180086bcd:	4d 03 f2             	add    %r10,%r14
180086bd0:	3b da                	cmp    %edx,%ebx
180086bd2:	76 27                	jbe    0x180086bfb
180086bd4:	8b 0c 96             	mov    (%rsi,%rdx,4),%ecx
180086bd7:	48 8b c7             	mov    %rdi,%rax
180086bda:	49 03 ca             	add    %r10,%rcx
180086bdd:	48 2b cf             	sub    %rdi,%rcx
180086be0:	44 0f b6 08          	movzbl (%rax),%r9d
180086be4:	44 0f b6 1c 08       	movzbl (%rax,%rcx,1),%r11d
180086be9:	45 2b cb             	sub    %r11d,%r9d
180086bec:	75 08                	jne    0x180086bf6
180086bee:	48 ff c0             	inc    %rax
180086bf1:	45 85 db             	test   %r11d,%r11d
180086bf4:	75 ea                	jne    0x180086be0
180086bf6:	45 85 c9             	test   %r9d,%r9d
180086bf9:	74 5e                	je     0x180086c59
180086bfb:	44 8d 4b ff          	lea    -0x1(%rbx),%r9d
180086bff:	45 8b dd             	mov    %r13d,%r11d
180086c02:	45 85 c9             	test   %r9d,%r9d
180086c05:	0f 88 fc 01 00 00    	js     0x180086e07
180086c0b:	43 8d 04 19          	lea    (%r9,%r11,1),%eax
180086c0f:	99                   	cltd
180086c10:	2b c2                	sub    %edx,%eax
180086c12:	d1 f8                	sar    $1,%eax
180086c14:	48 63 d0             	movslq %eax,%rdx
180086c17:	48 8b c7             	mov    %rdi,%rax
180086c1a:	8b 1c 96             	mov    (%rsi,%rdx,4),%ebx
180086c1d:	49 03 da             	add    %r10,%rbx
180086c20:	48 2b df             	sub    %rdi,%rbx
180086c23:	8a 08                	mov    (%rax),%cl
180086c25:	3a 0c 18             	cmp    (%rax,%rbx,1),%cl
180086c28:	75 0c                	jne    0x180086c36
180086c2a:	48 ff c0             	inc    %rax
180086c2d:	84 c9                	test   %cl,%cl
180086c2f:	75 f2                	jne    0x180086c23
180086c31:	41 8b c5             	mov    %r13d,%eax
180086c34:	eb 05                	jmp    0x180086c3b
180086c36:	1b c0                	sbb    %eax,%eax
180086c38:	83 c8 01             	or     $0x1,%eax
180086c3b:	85 c0                	test   %eax,%eax
180086c3d:	79 06                	jns    0x180086c45
180086c3f:	44 8d 4a ff          	lea    -0x1(%rdx),%r9d
180086c43:	eb 06                	jmp    0x180086c4b
180086c45:	7e 09                	jle    0x180086c50
180086c47:	44 8d 5a 01          	lea    0x1(%rdx),%r11d
180086c4b:	45 3b d9             	cmp    %r9d,%r11d
180086c4e:	7e bb                	jle    0x180086c0b
180086c50:	45 3b cb             	cmp    %r11d,%r9d
180086c53:	0f 8c ae 01 00 00    	jl     0x180086e07
180086c59:	48 63 c2             	movslq %edx,%rax
180086c5c:	41 0f b7 04 46       	movzwl (%r14,%rax,2),%eax
180086c61:	4c 8b 75 60          	mov    0x60(%rbp),%r14
180086c65:	41 39 40 14          	cmp    %eax,0x14(%r8)
180086c69:	0f 86 98 01 00 00    	jbe    0x180086e07
180086c6f:	41 8b 58 1c          	mov    0x1c(%r8),%ebx
180086c73:	49 03 da             	add    %r10,%rbx
180086c76:	8b f0                	mov    %eax,%esi
180086c78:	8b 3c 83             	mov    (%rbx,%rax,4),%edi
180086c7b:	49 03 fa             	add    %r10,%rdi
180086c7e:	49 89 3e             	mov    %rdi,(%r14)
180086c81:	4c 3b c7             	cmp    %rdi,%r8
180086c84:	0f 83 39 01 00 00    	jae    0x180086dc3
180086c8a:	8b 45 70             	mov    0x70(%rbp),%eax
180086c8d:	49 03 c0             	add    %r8,%rax
180086c90:	48 3b f8             	cmp    %rax,%rdi
180086c93:	0f 83 2a 01 00 00    	jae    0x180086dc3
180086c99:	ba 2e 00 00 00       	mov    $0x2e,%edx
180086c9e:	48 8b cf             	mov    %rdi,%rcx
180086ca1:	e8 6a 49 0a 00       	call   0x18012b610
180086ca6:	48 8b d8             	mov    %rax,%rbx
180086ca9:	48 85 c0             	test   %rax,%rax
180086cac:	0f 84 55 01 00 00    	je     0x180086e07
180086cb2:	48 8b d7             	mov    %rdi,%rdx
180086cb5:	44 88 28             	mov    %r13b,(%rax)
180086cb8:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
180086cbc:	4c 89 6d e8          	mov    %r13,-0x18(%rbp)
180086cc0:	44 89 6d e0          	mov    %r13d,-0x20(%rbp)
180086cc4:	e8 13 72 ff ff       	call   0x18007dedc
180086cc9:	c6 03 2e             	movb   $0x2e,(%rbx)
180086ccc:	85 c0                	test   %eax,%eax
180086cce:	0f 88 e8 00 00 00    	js     0x180086dbc
180086cd4:	4c 8b 65 78          	mov    0x78(%rbp),%r12
180086cd8:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
180086cdc:	49 8b cc             	mov    %r12,%rcx
180086cdf:	e8 0c 13 00 00       	call   0x180087ff0
180086ce4:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
180086ce8:	4c 8b f8             	mov    %rax,%r15
180086ceb:	e8 0c 33 01 00       	call   0x180099ffc
180086cf0:	4d 85 ff             	test   %r15,%r15
180086cf3:	75 0a                	jne    0x180086cff
180086cf5:	b8 02 00 00 c0       	mov    $0xc0000002,%eax
180086cfa:	e9 0d 01 00 00       	jmp    0x180086e0c
180086cff:	49 8b 4f 30          	mov    0x30(%r15),%rcx
180086d03:	4c 8d 4d 50          	lea    0x50(%rbp),%r9
180086d07:	45 33 c0             	xor    %r8d,%r8d
180086d0a:	b2 01                	mov    $0x1,%dl
180086d0c:	e8 5b 92 fa ff       	call   0x18002ff6c
180086d11:	4c 8b e8             	mov    %rax,%r13
180086d14:	33 c0                	xor    %eax,%eax
180086d16:	4d 85 ed             	test   %r13,%r13
180086d19:	0f 84 e8 00 00 00    	je     0x180086e07
180086d1f:	48 83 ce ff          	or     $0xffffffffffffffff,%rsi
180086d23:	48 8b fe             	mov    %rsi,%rdi
180086d26:	48 ff c7             	inc    %rdi
180086d29:	38 44 3b 01          	cmp    %al,0x1(%rbx,%rdi,1)
180086d2d:	75 f7                	jne    0x180086d26
180086d2f:	83 c7 03             	add    $0x3,%edi
180086d32:	8b cf                	mov    %edi,%ecx
180086d34:	e8 17 31 01 00       	call   0x180099e50
180086d39:	4c 8b f0             	mov    %rax,%r14
180086d3c:	33 c0                	xor    %eax,%eax
180086d3e:	4d 85 f6             	test   %r14,%r14
180086d41:	74 79                	je     0x180086dbc
180086d43:	66 41 89 06          	mov    %ax,(%r14)
180086d47:	48 ff c6             	inc    %rsi
180086d4a:	38 44 33 01          	cmp    %al,0x1(%rbx,%rsi,1)
180086d4e:	75 f7                	jne    0x180086d47
180086d50:	4c 8d 46 01          	lea    0x1(%rsi),%r8
180086d54:	49 8d 4e 02          	lea    0x2(%r14),%rcx
180086d58:	48 8d 53 01          	lea    0x1(%rbx),%rdx
180086d5c:	e8 5f ec 0a 00       	call   0x1801359c0
180086d61:	48 8b 4d 48          	mov    0x48(%rbp),%rcx
180086d65:	4c 8d 4d 58          	lea    0x58(%rbp),%r9
180086d69:	49 8b c6             	mov    %r14,%rax
180086d6c:	4c 8d 45 58          	lea    0x58(%rbp),%r8
180086d70:	48 2b 45 d8          	sub    -0x28(%rbp),%rax
180086d74:	49 8b d7             	mov    %r15,%rdx
180086d77:	48 89 45 58          	mov    %rax,0x58(%rbp)
180086d7b:	8a 85 88 00 00 00    	mov    0x88(%rbp),%al
180086d81:	88 44 24 40          	mov    %al,0x40(%rsp)
180086d85:	c6 44 24 38 01       	movb   $0x1,0x38(%rsp)
180086d8a:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
180086d8f:	89 7c 24 28          	mov    %edi,0x28(%rsp)
180086d93:	4c 89 6c 24 20       	mov    %r13,0x20(%rsp)
180086d98:	e8 bf fd ff ff       	call   0x180086b5c
180086d9d:	49 8b ce             	mov    %r14,%rcx
180086da0:	8b d8                	mov    %eax,%ebx
180086da2:	e8 55 32 01 00       	call   0x180099ffc
180086da7:	85 db                	test   %ebx,%ebx
180086da9:	79 04                	jns    0x180086daf
180086dab:	8b c3                	mov    %ebx,%eax
180086dad:	eb 5d                	jmp    0x180086e0c
180086daf:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
180086db3:	48 8b 45 58          	mov    0x58(%rbp),%rax
180086db7:	48 89 01             	mov    %rax,(%rcx)
180086dba:	eb 47                	jmp    0x180086e03
180086dbc:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
180086dc1:	eb 49                	jmp    0x180086e0c
180086dc3:	80 bd 88 00 00 00 01 	cmpb   $0x1,0x88(%rbp)
180086dca:	75 37                	jne    0x180086e03
180086dcc:	45 8b 47 40          	mov    0x40(%r15),%r8d
180086dd0:	4c 8d 4d 48          	lea    0x48(%rbp),%r9
180086dd4:	49 8b d2             	mov    %r10,%rdx
180086dd7:	33 c9                	xor    %ecx,%ecx
180086dd9:	e8 5a 04 fb ff       	call   0x180037238
180086dde:	85 c0                	test   %eax,%eax
180086de0:	78 2a                	js     0x180086e0c
180086de2:	48 8b 45 48          	mov    0x48(%rbp),%rax
180086de6:	b9 0b 02 00 00       	mov    $0x20b,%ecx
180086deb:	66 39 48 18          	cmp    %cx,0x18(%rax)
180086def:	75 06                	jne    0x180086df7
180086df1:	48 8b 48 30          	mov    0x30(%rax),%rcx
180086df5:	eb 03                	jmp    0x180086dfa
180086df7:	8b 48 34             	mov    0x34(%rax),%ecx
180086dfa:	8b 04 b3             	mov    (%rbx,%rsi,4),%eax
180086dfd:	48 03 c1             	add    %rcx,%rax
180086e00:	49 89 06             	mov    %rax,(%r14)
180086e03:	33 c0                	xor    %eax,%eax
180086e05:	eb 05                	jmp    0x180086e0c
180086e07:	b8 98 00 00 c0       	mov    $0xc0000098,%eax
180086e0c:	48 83 c4 78          	add    $0x78,%rsp
180086e10:	41 5f                	pop    %r15
180086e12:	41 5e                	pop    %r14
180086e14:	41 5d                	pop    %r13
180086e16:	41 5c                	pop    %r12
180086e18:	5f                   	pop    %rdi
180086e19:	5e                   	pop    %rsi
180086e1a:	5b                   	pop    %rbx
180086e1b:	5d                   	pop    %rbp
180086e1c:	c3                   	ret
180086e1d:	cc                   	int3
180086e1e:	cc                   	int3
180086e1f:	cc                   	int3
180086e20:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180086e25:	57                   	push   %rdi
180086e26:	48 83 ec 20          	sub    $0x20,%rsp
180086e2a:	33 ff                	xor    %edi,%edi
180086e2c:	48 8b d9             	mov    %rcx,%rbx
180086e2f:	48 39 7a 08          	cmp    %rdi,0x8(%rdx)
180086e33:	74 28                	je     0x180086e5d
180086e35:	48 85 c9             	test   %rcx,%rcx
180086e38:	74 23                	je     0x180086e5d
180086e3a:	e8 f1 70 ff ff       	call   0x18007df30
180086e3f:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
180086e43:	8d 57 5c             	lea    0x5c(%rdi),%edx
180086e46:	e8 79 4a 0a 00       	call   0x18012b8c4
180086e4b:	48 83 c0 02          	add    $0x2,%rax
180086e4f:	66 89 38             	mov    %di,(%rax)
180086e52:	66 2b 43 08          	sub    0x8(%rbx),%ax
180086e56:	66 89 03             	mov    %ax,(%rbx)
180086e59:	33 c0                	xor    %eax,%eax
180086e5b:	eb 05                	jmp    0x180086e62
180086e5d:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180086e62:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180086e67:	48 83 c4 20          	add    $0x20,%rsp
180086e6b:	5f                   	pop    %rdi
180086e6c:	c3                   	ret
180086e6d:	cc                   	int3
180086e6e:	cc                   	int3
180086e6f:	cc                   	int3
180086e70:	48 85 c9             	test   %rcx,%rcx
180086e73:	74 3f                	je     0x180086eb4
180086e75:	53                   	push   %rbx
180086e76:	48 83 ec 20          	sub    $0x20,%rsp
180086e7a:	48 8b d9             	mov    %rcx,%rbx
180086e7d:	84 d2                	test   %dl,%dl
180086e7f:	74 14                	je     0x180086e95
180086e81:	48 8b 49 30          	mov    0x30(%rcx),%rcx
180086e85:	48 85 c9             	test   %rcx,%rcx
180086e88:	74 0b                	je     0x180086e95
180086e8a:	8b 53 38             	mov    0x38(%rbx),%edx
180086e8d:	45 33 c0             	xor    %r8d,%r8d
180086e90:	e8 57 8f ff ff       	call   0x18007fdec
180086e95:	48 8d 4b 10          	lea    0x10(%rbx),%rcx
180086e99:	e8 86 6f ff ff       	call   0x18007de24
180086e9e:	48 8d 4b 20          	lea    0x20(%rbx),%rcx
180086ea2:	e8 7d 6f ff ff       	call   0x18007de24
180086ea7:	48 8b cb             	mov    %rbx,%rcx
180086eaa:	e8 4d 31 01 00       	call   0x180099ffc
180086eaf:	48 83 c4 20          	add    $0x20,%rsp
180086eb3:	5b                   	pop    %rbx
180086eb4:	c3                   	ret
180086eb5:	cc                   	int3