180066a42:	0f c8                	bswap  %eax
180066a44:	89 45 e0             	mov    %eax,-0x20(%rbp)
180066a47:	3d 00 00 01 00       	cmp    $0x10000,%eax
180066a4c:	74 0a                	je     0x180066a58
180066a4e:	b8 bb 00 00 c0       	mov    $0xc00000bb,%eax
180066a53:	e9 91 00 00 00       	jmp    0x180066ae9
180066a58:	0f b7 4d e4          	movzwl -0x1c(%rbp),%ecx
180066a5c:	41 8b c4             	mov    %r12d,%eax
180066a5f:	66 c1 4d e6 08       	rorw   $0x8,-0x1a(%rbp)
180066a64:	66 c1 4d e8 08       	rorw   $0x8,-0x18(%rbp)
180066a69:	66 c1 4d ea 08       	rorw   $0x8,-0x16(%rbp)
180066a6e:	66 c1 c9 08          	ror    $0x8,%cx
180066a72:	66 89 4d e4          	mov    %cx,-0x1c(%rbp)
180066a76:	85 c0                	test   %eax,%eax
180066a78:	78 6f                	js     0x180066ae9
180066a7a:	83 c7 0c             	add    $0xc,%edi
180066a7d:	41 8b dc             	mov    %r12d,%ebx
180066a80:	66 44 3b e1          	cmp    %cx,%r12w
180066a84:	73 5e                	jae    0x180066ae4
180066a86:	44 8b c7             	mov    %edi,%r8d
180066a89:	4c 8d 4d f0          	lea    -0x10(%rbp),%r9
180066a8d:	c7 44 24 28 02 00 00 	movl   $0x2,0x28(%rsp)
180066a94:	00
180066a95:	ba 10 00 00 00       	mov    $0x10,%edx
180066a9a:	41 8b ce             	mov    %r14d,%ecx
180066a9d:	4c 89 64 24 20       	mov    %r12,0x20(%rsp)
180066aa2:	e8 a9 24 00 00       	call   0x180068f50
180066aa7:	8b 4d f8             	mov    -0x8(%rbp),%ecx
180066aaa:	8b 55 f0             	mov    -0x10(%rbp),%edx
180066aad:	85 c0                	test   %eax,%eax
180066aaf:	78 38                	js     0x180066ae9
180066ab1:	8b 45 fc             	mov    -0x4(%rbp),%eax
180066ab4:	0f c8                	bswap  %eax
180066ab6:	89 45 fc             	mov    %eax,-0x4(%rbp)
180066ab9:	8b 45 f4             	mov    -0xc(%rbp),%eax
180066abc:	0f c8                	bswap  %eax
180066abe:	89 45 f4             	mov    %eax,-0xc(%rbp)
180066ac1:	41 8b c4             	mov    %r12d,%eax
180066ac4:	0f ca                	bswap  %edx
180066ac6:	89 55 f0             	mov    %edx,-0x10(%rbp)
180066ac9:	0f c9                	bswap  %ecx
180066acb:	89 4d f8             	mov    %ecx,-0x8(%rbp)
180066ace:	85 c0                	test   %eax,%eax
180066ad0:	78 17                	js     0x180066ae9
180066ad2:	41 3b d7             	cmp    %r15d,%edx
180066ad5:	74 31                	je     0x180066b08
180066ad7:	0f b7 45 e4          	movzwl -0x1c(%rbp),%eax
180066adb:	ff c3                	inc    %ebx
180066add:	83 c7 10             	add    $0x10,%edi
180066ae0:	3b d8                	cmp    %eax,%ebx
180066ae2:	72 a2                	jb     0x180066a86
180066ae4:	b8 25 02 00 c0       	mov    $0xc0000225,%eax
180066ae9:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
180066aee:	49 8b 5b 20          	mov    0x20(%r11),%rbx
180066af2:	49 8b 73 28          	mov    0x28(%r11),%rsi
180066af6:	49 8b 7b 30          	mov    0x30(%r11),%rdi
180066afa:	4d 8b 63 38          	mov    0x38(%r11),%r12
180066afe:	49 8b e3             	mov    %r11,%rsp
180066b01:	41 5f                	pop    %r15
180066b03:	41 5e                	pop    %r14
180066b05:	5d                   	pop    %rbp
180066b06:	c3                   	ret
180066b07:	cc                   	int3
180066b08:	89 0e                	mov    %ecx,(%rsi)
180066b0a:	eb dd                	jmp    0x180066ae9
180066b0c:	48 8b c4             	mov    %rsp,%rax
180066b0f:	48 89 58 08          	mov    %rbx,0x8(%rax)
180066b13:	48 89 70 10          	mov    %rsi,0x10(%rax)
180066b17:	48 89 78 18          	mov    %rdi,0x18(%rax)
180066b1b:	4c 89 70 20          	mov    %r14,0x20(%rax)
180066b1f:	45 33 d2             	xor    %r10d,%r10d
180066b22:	0f b7 da             	movzwl %dx,%ebx
180066b25:	4c 8b d9             	mov    %rcx,%r11
180066b28:	45 8b ca             	mov    %r10d,%r9d
180066b2b:	44 39 11             	cmp    %r10d,(%rcx)
180066b2e:	76 1f                	jbe    0x180066b4f
180066b30:	48 8b 51 10          	mov    0x10(%rcx),%rdx
180066b34:	41 8b c9             	mov    %r9d,%ecx
180066b37:	66 39 1c 4a          	cmp    %bx,(%rdx,%rcx,2)
180066b3b:	77 0a                	ja     0x180066b47
180066b3d:	49 8b 43 18          	mov    0x18(%r11),%rax
180066b41:	66 3b 1c 48          	cmp    (%rax,%rcx,2),%bx
180066b45:	76 08                	jbe    0x180066b4f
180066b47:	41 ff c1             	inc    %r9d
180066b4a:	45 3b 0b             	cmp    (%r11),%r9d
180066b4d:	72 e5                	jb     0x180066b34
180066b4f:	45 3b 0b             	cmp    (%r11),%r9d
180066b52:	75 08                	jne    0x180066b5c
180066b54:	41 ba 01 00 00 c0    	mov    $0xc0000001,%r10d
180066b5a:	eb 40                	jmp    0x180066b9c
180066b5c:	49 8b 73 28          	mov    0x28(%r11),%rsi
180066b60:	41 8b f9             	mov    %r9d,%edi
180066b63:	66 44 39 14 7e       	cmp    %r10w,(%rsi,%rdi,2)
180066b68:	75 0d                	jne    0x180066b77
180066b6a:	49 8b 43 20          	mov    0x20(%r11),%rax
180066b6e:	0f b7 14 78          	movzwl (%rax,%rdi,2),%edx
180066b72:	66 03 d3             	add    %bx,%dx
180066b75:	eb 21                	jmp    0x180066b98
180066b77:	0f b7 14 7e          	movzwl (%rsi,%rdi,2),%edx
180066b7b:	49 8b 43 10          	mov    0x10(%r11),%rax
180066b7f:	d1 ea                	shr    $1,%edx
180066b81:	0f b7 0c 78          	movzwl (%rax,%rdi,2),%ecx
180066b85:	2b d1                	sub    %ecx,%edx
180066b87:	49 8b 4b 20          	mov    0x20(%r11),%rcx
180066b8b:	41 03 d1             	add    %r9d,%edx
180066b8e:	03 d3                	add    %ebx,%edx
180066b90:	0f b7 14 56          	movzwl (%rsi,%rdx,2),%edx
180066b94:	66 03 14 79          	add    (%rcx,%rdi,2),%dx
180066b98:	66 41 89 10          	mov    %dx,(%r8)
180066b9c:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
180066ba1:	41 8b c2             	mov    %r10d,%eax
180066ba4:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
180066ba9:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
180066bae:	4c 8b 74 24 20       	mov    0x20(%rsp),%r14
180066bb3:	c3                   	ret
180066bb4:	cc                   	int3
180066bb5:	cc                   	int3
180066bb6:	cc                   	int3
180066bb7:	cc                   	int3
180066bb8:	48 8b c4             	mov    %rsp,%rax
180066bbb:	48 89 58 08          	mov    %rbx,0x8(%rax)
180066bbf:	48 89 68 10          	mov    %rbp,0x10(%rax)
180066bc3:	48 89 70 18          	mov    %rsi,0x18(%rax)
180066bc7:	48 89 78 20          	mov    %rdi,0x20(%rax)
180066bcb:	41 54                	push   %r12
180066bcd:	41 56                	push   %r14
180066bcf:	41 57                	push   %r15
180066bd1:	48 83 ec 30          	sub    $0x30,%rsp
180066bd5:	8b e9                	mov    %ecx,%ebp
180066bd7:	4d 8b f1             	mov    %r9,%r14
180066bda:	b9 18 00 00 00       	mov    $0x18,%ecx
180066bdf:	49 8b f0             	mov    %r8,%rsi
180066be2:	8b da                	mov    %edx,%ebx
180066be4:	e8 67 32 03 00       	call   0x180099e50
180066be9:	48 8b f8             	mov    %rax,%rdi
180066bec:	48 85 c0             	test   %rax,%rax
180066bef:	75 07                	jne    0x180066bf8
180066bf1:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180066bf6:	eb 32                	jmp    0x180066c2a
180066bf8:	33 c0                	xor    %eax,%eax
180066bfa:	0f 57 c0             	xorps  %xmm0,%xmm0
180066bfd:	0f 11 07             	movups %xmm0,(%rdi)
180066c00:	48 89 47 10          	mov    %rax,0x10(%rdi)
180066c04:	44 8d 60 02          	lea    0x2(%rax),%r12d
180066c08:	66 44 39 66 08       	cmp    %r12w,0x8(%rsi)
180066c0d:	74 3d                	je     0x180066c4c
180066c0f:	bb 02 00 00 c0       	mov    $0xc0000002,%ebx
180066c14:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
180066c18:	48 85 c9             	test   %rcx,%rcx
180066c1b:	74 05                	je     0x180066c22
180066c1d:	e8 da 33 03 00       	call   0x180099ffc
180066c22:	48 8b cf             	mov    %rdi,%rcx
180066c25:	e8 d2 33 03 00       	call   0x180099ffc
180066c2a:	8b c3                	mov    %ebx,%eax
180066c2c:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180066c31:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180066c36:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
180066c3b:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
180066c40:	48 83 c4 30          	add    $0x30,%rsp
180066c44:	41 5f                	pop    %r15
180066c46:	41 5e                	pop    %r14
180066c48:	41 5c                	pop    %r12
180066c4a:	c3                   	ret
180066c4b:	cc                   	int3
180066c4c:	44 8b 3e             	mov    (%rsi),%r15d
180066c4f:	4c 8b cf             	mov    %rdi,%r9
180066c52:	44 03 fb             	add    %ebx,%r15d
180066c55:	44 89 64 24 28       	mov    %r12d,0x28(%rsp)
180066c5a:	48 21 44 24 20       	and    %rax,0x20(%rsp)
180066c5f:	ba 05 00 00 00       	mov    $0x5,%edx
180066c64:	45 8b c7             	mov    %r15d,%r8d
180066c67:	8b cd                	mov    %ebp,%ecx
180066c69:	e8 e2 22 00 00       	call   0x180068f50
180066c6e:	8b d8                	mov    %eax,%ebx
180066c70:	85 c0                	test   %eax,%eax
180066c72:	78 a0                	js     0x180066c14
180066c74:	8b 5e 04             	mov    0x4(%rsi),%ebx
180066c77:	83 fb 05             	cmp    $0x5,%ebx
180066c7a:	73 07                	jae    0x180066c83
180066c7c:	b8 7b 00 00 c0       	mov    $0xc000007b,%eax
180066c81:	eb a9                	jmp    0x180066c2c
180066c83:	b9 04 00 00 00       	mov    $0x4,%ecx
180066c88:	83 c3 fb             	add    $0xfffffffb,%ebx
180066c8b:	74 02                	je     0x180066c8f
180066c8d:	8b cb                	mov    %ebx,%ecx
180066c8f:	e8 bc 31 03 00       	call   0x180099e50
180066c94:	4c 8b c8             	mov    %rax,%r9
180066c97:	48 85 c0             	test   %rax,%rax
180066c9a:	75 0a                	jne    0x180066ca6
180066c9c:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180066ca1:	e9 6e ff ff ff       	jmp    0x180066c14
180066ca6:	45 8d 47 05          	lea    0x5(%r15),%r8d
180066caa:	44 89 64 24 28       	mov    %r12d,0x28(%rsp)
180066caf:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180066cb5:	8b d3                	mov    %ebx,%edx
180066cb7:	8b cd                	mov    %ebp,%ecx
180066cb9:	4c 89 4f 08          	mov    %r9,0x8(%rdi)
180066cbd:	89 5f 10             	mov    %ebx,0x10(%rdi)
180066cc0:	e8 8b 22 00 00       	call   0x180068f50
180066cc5:	8b d8                	mov    %eax,%ebx
180066cc7:	85 c0                	test   %eax,%eax
180066cc9:	0f 88 45 ff ff ff    	js     0x180066c14
180066ccf:	83 4f 14 01          	orl    $0x1,0x14(%rdi)
180066cd3:	33 db                	xor    %ebx,%ebx
180066cd5:	49 89 3e             	mov    %rdi,(%r14)
180066cd8:	e9 4d ff ff ff       	jmp    0x180066c2a
180066cdd:	cc                   	int3
180066cde:	cc                   	int3
180066cdf:	cc                   	int3
180066ce0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180066ce5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180066cea:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180066cef:	57                   	push   %rdi
180066cf0:	41 54                	push   %r12
180066cf2:	41 55                	push   %r13
180066cf4:	41 56                	push   %r14
180066cf6:	41 57                	push   %r15
180066cf8:	48 83 ec 30          	sub    $0x30,%rsp
180066cfc:	44 8b e1             	mov    %ecx,%r12d
180066cff:	4d 8b e9             	mov    %r9,%r13
180066d02:	b9 18 00 00 00       	mov    $0x18,%ecx
180066d07:	49 8b d8             	mov    %r8,%rbx
180066d0a:	44 8b fa             	mov    %edx,%r15d
180066d0d:	e8 3e 31 03 00       	call   0x180099e50
180066d12:	48 8b f8             	mov    %rax,%rdi
180066d15:	48 85 c0             	test   %rax,%rax
180066d18:	75 0a                	jne    0x180066d24
180066d1a:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180066d1f:	e9 41 01 00 00       	jmp    0x180066e65
180066d24:	33 c0                	xor    %eax,%eax
180066d26:	0f 57 c0             	xorps  %xmm0,%xmm0
180066d29:	0f 11 07             	movups %xmm0,(%rdi)
180066d2c:	48 89 47 10          	mov    %rax,0x10(%rdi)
180066d30:	8b 43 04             	mov    0x4(%rbx),%eax
180066d33:	89 47 08             	mov    %eax,0x8(%rdi)
180066d36:	44 8b 73 08          	mov    0x8(%rbx),%r14d
180066d3a:	44 89 77 0c          	mov    %r14d,0xc(%rdi)
180066d3e:	8b 4b 04             	mov    0x4(%rbx),%ecx
180066d41:	e8 0a 31 03 00       	call   0x180099e50
180066d46:	48 8b f0             	mov    %rax,%rsi
180066d49:	48 85 c0             	test   %rax,%rax
180066d4c:	75 0a                	jne    0x180066d58
180066d4e:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180066d53:	e9 ea 00 00 00       	jmp    0x180066e42
180066d58:	48 89 37             	mov    %rsi,(%rdi)
180066d5b:	8b 4b 04             	mov    0x4(%rbx),%ecx
180066d5e:	48 8d 2c 08          	lea    (%rax,%rcx,1),%rbp
180066d62:	48 3b ee             	cmp    %rsi,%rbp
180066d65:	0f 82 d2 00 00 00    	jb     0x180066e3d
180066d6b:	44 8b 03             	mov    (%rbx),%r8d
180066d6e:	8b d1                	mov    %ecx,%edx
180066d70:	45 03 c7             	add    %r15d,%r8d
180066d73:	c7 44 24 28 02 00 00 	movl   $0x2,0x28(%rsp)
180066d7a:	00
180066d7b:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180066d81:	4c 8b ce             	mov    %rsi,%r9
180066d84:	41 8b cc             	mov    %r12d,%ecx
180066d87:	e8 c4 21 00 00       	call   0x180068f50
180066d8c:	8b d8                	mov    %eax,%ebx
180066d8e:	85 c0                	test   %eax,%eax
180066d90:	0f 88 ac 00 00 00    	js     0x180066e42
180066d96:	49 8b c6             	mov    %r14,%rax
180066d99:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
180066d9e:	48 c1 e0 04          	shl    $0x4,%rax
180066da2:	48 3b c1             	cmp    %rcx,%rax
180066da5:	0f 87 92 00 00 00    	ja     0x180066e3d
180066dab:	8b c8                	mov    %eax,%ecx
180066dad:	e8 9e 30 03 00       	call   0x180099e50
180066db2:	48 85 c0             	test   %rax,%rax
180066db5:	74 97                	je     0x180066d4e
180066db7:	4e 8d 24 f6          	lea    (%rsi,%r14,8),%r12
180066dbb:	48 89 47 10          	mov    %rax,0x10(%rdi)
180066dbf:	4c 8b fe             	mov    %rsi,%r15
180066dc2:	49 3b f4             	cmp    %r12,%rsi
180066dc5:	73 67                	jae    0x180066e2e
180066dc7:	4c 8d 70 02          	lea    0x2(%rax),%r14
180066dcb:	41 0f b7 07          	movzwl (%r15),%eax
180066dcf:	66 c1 c8 08          	ror    $0x8,%ax
180066dd3:	66 41 89 46 fe       	mov    %ax,-0x2(%r14)
180066dd8:	41 0f b7 47 02       	movzwl 0x2(%r15),%eax
180066ddd:	66 c1 c8 08          	ror    $0x8,%ax
180066de1:	66 41 89 06          	mov    %ax,(%r14)
180066de5:	41 8b 4f 04          	mov    0x4(%r15),%ecx
180066de9:	0f c9                	bswap  %ecx
180066deb:	8b c9                	mov    %ecx,%ecx
180066ded:	48 03 ce             	add    %rsi,%rcx
180066df0:	48 3b ce             	cmp    %rsi,%rcx
180066df3:	72 04                	jb     0x180066df9
180066df5:	33 c0                	xor    %eax,%eax
180066df7:	eb 09                	jmp    0x180066e02
180066df9:	b8 95 00 00 c0       	mov    $0xc0000095,%eax
180066dfe:	48 83 c9 ff          	or     $0xffffffffffffffff,%rcx
180066e02:	49 89 4e 06          	mov    %rcx,0x6(%r14)
180066e06:	85 c0                	test   %eax,%eax
180066e08:	78 2c                	js     0x180066e36
180066e0a:	45 0f b7 0e          	movzwl (%r14),%r9d
180066e0e:	48 8b d5             	mov    %rbp,%rdx
180066e11:	45 0f b7 46 fe       	movzwl -0x2(%r14),%r8d
180066e16:	e8 f1 fa ff ff       	call   0x18006690c
180066e1b:	8b d8                	mov    %eax,%ebx
180066e1d:	85 c0                	test   %eax,%eax
180066e1f:	78 21                	js     0x180066e42
180066e21:	49 83 c7 08          	add    $0x8,%r15
180066e25:	49 83 c6 10          	add    $0x10,%r14
180066e29:	4d 3b fc             	cmp    %r12,%r15
180066e2c:	72 9d                	jb     0x180066dcb
180066e2e:	49 89 7d 00          	mov    %rdi,0x0(%r13)
180066e32:	33 db                	xor    %ebx,%ebx
180066e34:	eb 2f                	jmp    0x180066e65
180066e36:	bb 7b 00 00 c0       	mov    $0xc000007b,%ebx
180066e3b:	eb 05                	jmp    0x180066e42
180066e3d:	bb 95 00 00 c0       	mov    $0xc0000095,%ebx
180066e42:	48 8b 0f             	mov    (%rdi),%rcx
180066e45:	48 85 c9             	test   %rcx,%rcx
180066e48:	74 05                	je     0x180066e4f
180066e4a:	e8 ad 31 03 00       	call   0x180099ffc
180066e4f:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
180066e53:	48 85 c9             	test   %rcx,%rcx
180066e56:	74 05                	je     0x180066e5d
180066e58:	e8 9f 31 03 00       	call   0x180099ffc
180066e5d:	48 8b cf             	mov    %rdi,%rcx
180066e60:	e8 97 31 03 00       	call   0x180099ffc
180066e65:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
180066e6a:	8b c3                	mov    %ebx,%eax
180066e6c:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
180066e71:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
180066e76:	48 83 c4 30          	add    $0x30,%rsp
180066e7a:	41 5f                	pop    %r15
180066e7c:	41 5e                	pop    %r14
180066e7e:	41 5d                	pop    %r13
180066e80:	41 5c                	pop    %r12
180066e82:	5f                   	pop    %rdi
180066e83:	c3                   	ret
180066e84:	cc                   	int3
180066e85:	cc                   	int3
180066e86:	cc                   	int3
180066e87:	cc                   	int3
180066e88:	48 8b c4             	mov    %rsp,%rax
180066e8b:	48 89 58 10          	mov    %rbx,0x10(%rax)
180066e8f:	4c 89 40 18          	mov    %r8,0x18(%rax)
180066e93:	89 48 08             	mov    %ecx,0x8(%rax)
180066e96:	55                   	push   %rbp
180066e97:	56                   	push   %rsi
180066e98:	57                   	push   %rdi
180066e99:	41 54                	push   %r12
180066e9b:	41 55                	push   %r13
180066e9d:	41 56                	push   %r14
180066e9f:	41 57                	push   %r15
180066ea1:	48 8b ec             	mov    %rsp,%rbp
180066ea4:	48 83 ec 50          	sub    $0x50,%rsp