1800409c1:	48 85 c0             	test   %rax,%rax
1800409c4:	74 29                	je     0x1800409ef
1800409c6:	48 21 30             	and    %rsi,(%rax)
1800409c9:	48 8d 48 08          	lea    0x8(%rax),%rcx
1800409cd:	48 21 70 18          	and    %rsi,0x18(%rax)
1800409d1:	48 89 49 08          	mov    %rcx,0x8(%rcx)
1800409d5:	48 89 09             	mov    %rcx,(%rcx)
1800409d8:	8d 4d c6             	lea    -0x3a(%rbp),%ecx
1800409db:	89 48 28             	mov    %ecx,0x28(%rax)
1800409de:	89 48 38             	mov    %ecx,0x38(%rax)
1800409e1:	c7 40 20 01 00 00 00 	movl   $0x1,0x20(%rax)
1800409e8:	89 68 24             	mov    %ebp,0x24(%rax)
1800409eb:	48 89 68 30          	mov    %rbp,0x30(%rax)
1800409ef:	48 89 83 a8 00 00 00 	mov    %rax,0xa8(%rbx)
1800409f6:	48 85 c0             	test   %rax,%rax
1800409f9:	74 7b                	je     0x180040a76
1800409fb:	48 8b 97 a8 00 00 00 	mov    0xa8(%rdi),%rdx
180040a02:	48 8b c8             	mov    %rax,%rcx
180040a05:	48 8b 52 30          	mov    0x30(%rdx),%rdx
180040a09:	e8 5a 2d 00 00       	call   0x180043768
180040a0e:	85 c0                	test   %eax,%eax
180040a10:	78 64                	js     0x180040a76
180040a12:	48 8b 93 a8 00 00 00 	mov    0xa8(%rbx),%rdx
180040a19:	48 8b 8f a8 00 00 00 	mov    0xa8(%rdi),%rcx
180040a20:	e8 9b 32 00 00       	call   0x180043cc0
180040a25:	85 c0                	test   %eax,%eax
180040a27:	78 4d                	js     0x180040a76
180040a29:	48 39 b7 b8 00 00 00 	cmp    %rsi,0xb8(%rdi)
180040a30:	74 3f                	je     0x180040a71
180040a32:	8b 8f b0 00 00 00    	mov    0xb0(%rdi),%ecx
180040a38:	83 c1 1f             	add    $0x1f,%ecx
180040a3b:	c1 e9 03             	shr    $0x3,%ecx
180040a3e:	81 e1 fc ff ff 1f    	and    $0x1ffffffc,%ecx
180040a44:	e8 cb 5e 00 00       	call   0x180046914
180040a49:	48 85 c0             	test   %rax,%rax
180040a4c:	74 28                	je     0x180040a76
180040a4e:	8b 97 b0 00 00 00    	mov    0xb0(%rdi),%edx
180040a54:	4c 8d 83 b0 00 00 00 	lea    0xb0(%rbx),%r8
180040a5b:	41 89 10             	mov    %edx,(%r8)
180040a5e:	48 8d 8f b0 00 00 00 	lea    0xb0(%rdi),%rcx
180040a65:	49 8b d0             	mov    %r8,%rdx
180040a68:	49 89 40 08          	mov    %rax,0x8(%r8)
180040a6c:	e8 ab f3 fe ff       	call   0x18002fe1c
180040a71:	48 8b f3             	mov    %rbx,%rsi
180040a74:	33 db                	xor    %ebx,%ebx
180040a76:	48 85 db             	test   %rbx,%rbx
180040a79:	74 13                	je     0x180040a8e
180040a7b:	48 8b 03             	mov    (%rbx),%rax
180040a7e:	ba 01 00 00 00       	mov    $0x1,%edx
180040a83:	48 8b cb             	mov    %rbx,%rcx
180040a86:	48 8b 00             	mov    (%rax),%rax
180040a89:	ff d0                	call   *%rax
180040a8b:	0f 1f 00             	nopl   (%rax)
180040a8e:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180040a93:	48 8b c6             	mov    %rsi,%rax
180040a96:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
180040a9b:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180040aa0:	48 83 c4 20          	add    $0x20,%rsp
180040aa4:	41 5f                	pop    %r15
180040aa6:	41 5e                	pop    %r14
180040aa8:	41 5d                	pop    %r13
180040aaa:	41 5c                	pop    %r12
180040aac:	5f                   	pop    %rdi
180040aad:	c3                   	ret
180040aae:	cc                   	int3
180040aaf:	cc                   	int3
180040ab0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180040ab5:	57                   	push   %rdi
180040ab6:	48 83 ec 20          	sub    $0x20,%rsp
180040aba:	80 79 18 06          	cmpb   $0x6,0x18(%rcx)
180040abe:	48 8b fa             	mov    %rdx,%rdi
180040ac1:	48 8b d9             	mov    %rcx,%rbx
180040ac4:	73 7a                	jae    0x180040b40
180040ac6:	8b 42 68             	mov    0x68(%rdx),%eax
180040ac9:	89 41 68             	mov    %eax,0x68(%rcx)
180040acc:	0f 10 42 70          	movups 0x70(%rdx),%xmm0
180040ad0:	f3 0f 7f 41 70       	movdqu %xmm0,0x70(%rcx)
180040ad5:	0f 10 8a 80 00 00 00 	movups 0x80(%rdx),%xmm1
180040adc:	f3 0f 7f 89 80 00 00 	movdqu %xmm1,0x80(%rcx)
180040ae3:	00
180040ae4:	48 8b 4a 48          	mov    0x48(%rdx),%rcx
180040ae8:	48 85 c9             	test   %rcx,%rcx
180040aeb:	74 0e                	je     0x180040afb
180040aed:	4c 8d 43 48          	lea    0x48(%rbx),%r8
180040af1:	ba 00 01 00 00       	mov    $0x100,%edx
180040af6:	e8 dd f1 ff ff       	call   0x18003fcd8
180040afb:	48 8b 4f 50          	mov    0x50(%rdi),%rcx
180040aff:	48 85 c9             	test   %rcx,%rcx
180040b02:	74 0e                	je     0x180040b12
180040b04:	4c 8d 43 50          	lea    0x50(%rbx),%r8
180040b08:	ba 00 01 00 00       	mov    $0x100,%edx
180040b0d:	e8 c6 f1 ff ff       	call   0x18003fcd8
180040b12:	48 8b 4f 58          	mov    0x58(%rdi),%rcx
180040b16:	48 85 c9             	test   %rcx,%rcx
180040b19:	74 0e                	je     0x180040b29
180040b1b:	4c 8d 43 58          	lea    0x58(%rbx),%r8
180040b1f:	ba 00 01 00 00       	mov    $0x100,%edx
180040b24:	e8 af f1 ff ff       	call   0x18003fcd8
180040b29:	48 8b 4f 60          	mov    0x60(%rdi),%rcx
180040b2d:	48 85 c9             	test   %rcx,%rcx
180040b30:	74 0e                	je     0x180040b40
180040b32:	4c 8d 43 60          	lea    0x60(%rbx),%r8
180040b36:	ba 00 01 00 00       	mov    $0x100,%edx
180040b3b:	e8 98 f1 ff ff       	call   0x18003fcd8
180040b40:	8b 87 d0 00 00 00    	mov    0xd0(%rdi),%eax
180040b46:	89 83 d0 00 00 00    	mov    %eax,0xd0(%rbx)
180040b4c:	48 8b 87 d8 00 00 00 	mov    0xd8(%rdi),%rax
180040b53:	48 89 83 d8 00 00 00 	mov    %rax,0xd8(%rbx)
180040b5a:	8a 87 e0 00 00 00    	mov    0xe0(%rdi),%al
180040b60:	88 83 e0 00 00 00    	mov    %al,0xe0(%rbx)
180040b66:	8b 97 e4 00 00 00    	mov    0xe4(%rdi),%edx
180040b6c:	89 93 e4 00 00 00    	mov    %edx,0xe4(%rbx)
180040b72:	8a 4f 40             	mov    0x40(%rdi),%cl
180040b75:	32 4b 40             	xor    0x40(%rbx),%cl
180040b78:	f6 c1 02             	test   $0x2,%cl
180040b7b:	74 09                	je     0x180040b86
180040b7d:	83 ca 10             	or     $0x10,%edx
180040b80:	89 93 e4 00 00 00    	mov    %edx,0xe4(%rbx)
180040b86:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180040b8b:	48 83 c4 20          	add    $0x20,%rsp
180040b8f:	5f                   	pop    %rdi
180040b90:	c3                   	ret
180040b91:	cc                   	int3
180040b92:	cc                   	int3
180040b93:	cc                   	int3
180040b94:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180040b99:	57                   	push   %rdi
180040b9a:	48 83 ec 20          	sub    $0x20,%rsp
180040b9e:	0f b6 42 11          	movzbl 0x11(%rdx),%eax
180040ba2:	48 8d 3d 57 f4 fb ff 	lea    -0x40ba9(%rip),%rdi        # 0x180000000
180040ba9:	4c 8b d2             	mov    %rdx,%r10
180040bac:	88 41 18             	mov    %al,0x18(%rcx)
180040baf:	8b d0                	mov    %eax,%edx
180040bb1:	48 8b d9             	mov    %rcx,%rbx
180040bb4:	48 03 d2             	add    %rdx,%rdx
180040bb7:	4c 8b c9             	mov    %rcx,%r9
180040bba:	49 8b ca             	mov    %r10,%rcx
180040bbd:	44 8b 84 d7 20 e3 14 	mov    0x14e320(%rdi,%rdx,8),%r8d
180040bc4:	00
180040bc5:	48 8b 94 d7 28 e3 14 	mov    0x14e328(%rdi,%rdx,8),%rdx
180040bcc:	00
180040bcd:	e8 d6 6b 00 00       	call   0x1800477a8
180040bd2:	44 8b c8             	mov    %eax,%r9d
180040bd5:	85 c0                	test   %eax,%eax
180040bd7:	78 56                	js     0x180040c2f
180040bd9:	0f b6 53 18          	movzbl 0x18(%rbx),%edx
180040bdd:	44 0f b7 43 40       	movzwl 0x40(%rbx),%r8d
180040be2:	8b 8c 97 f0 e3 14 00 	mov    0x14e3f0(%rdi,%rdx,4),%ecx
180040be9:	f7 d1                	not    %ecx
180040beb:	41 85 c8             	test   %ecx,%r8d
180040bee:	74 08                	je     0x180040bf8
180040bf0:	41 b9 0d 00 00 c0    	mov    $0xc000000d,%r9d
180040bf6:	eb 37                	jmp    0x180040c2f
180040bf8:	80 fa 03             	cmp    $0x3,%dl
180040bfb:	73 0a                	jae    0x180040c07
180040bfd:	66 41 83 c8 02       	or     $0x2,%r8w
180040c02:	66 44 89 43 40       	mov    %r8w,0x40(%rbx)
180040c07:	80 fa 05             	cmp    $0x5,%dl
180040c0a:	73 0e                	jae    0x180040c1a
180040c0c:	48 8b 83 98 00 00 00 	mov    0x98(%rbx),%rax
180040c13:	48 89 83 a0 00 00 00 	mov    %rax,0xa0(%rbx)
180040c1a:	80 fa 07             	cmp    $0x7,%dl
180040c1d:	73 10                	jae    0x180040c2f
180040c1f:	48 c1 a3 98 00 00 00 	shlq   $0x1c,0x98(%rbx)
180040c26:	1c
180040c27:	48 c1 a3 a0 00 00 00 	shlq   $0x1c,0xa0(%rbx)
180040c2e:	1c
180040c2f:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180040c34:	41 8b c1             	mov    %r9d,%eax
180040c37:	48 83 c4 20          	add    $0x20,%rsp
180040c3b:	5f                   	pop    %rdi
180040c3c:	c3                   	ret
180040c3d:	cc                   	int3
180040c3e:	cc                   	int3
180040c3f:	cc                   	int3
180040c40:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180040c45:	57                   	push   %rdi
180040c46:	48 83 ec 20          	sub    $0x20,%rsp
180040c4a:	0f b7 79 40          	movzwl 0x40(%rcx),%edi
180040c4e:	48 8b d9             	mov    %rcx,%rbx
180040c51:	4c 8b d2             	mov    %rdx,%r10
180040c54:	48 8d 0d a5 f3 fb ff 	lea    -0x40c5b(%rip),%rcx        # 0x180000000
180040c5b:	0f b6 52 11          	movzbl 0x11(%rdx),%edx
180040c5f:	0f b7 84 91 f0 e3 14 	movzwl 0x14e3f0(%rcx,%rdx,4),%eax
180040c66:	00
180040c67:	66 23 c7             	and    %di,%ax
180040c6a:	80 7b 18 07          	cmpb   $0x7,0x18(%rbx)
180040c6e:	66 89 43 40          	mov    %ax,0x40(%rbx)
180040c72:	73 10                	jae    0x180040c84
180040c74:	48 c1 ab 98 00 00 00 	shrq   $0x1c,0x98(%rbx)
180040c7b:	1c
180040c7c:	48 c1 ab a0 00 00 00 	shrq   $0x1c,0xa0(%rbx)
180040c83:	1c
180040c84:	48 03 d2             	add    %rdx,%rdx
180040c87:	4c 8b cb             	mov    %rbx,%r9
180040c8a:	44 8b 84 d1 20 e3 14 	mov    0x14e320(%rcx,%rdx,8),%r8d
180040c91:	00
180040c92:	48 8b 94 d1 28 e3 14 	mov    0x14e328(%rcx,%rdx,8),%rdx
180040c99:	00
180040c9a:	49 8b ca             	mov    %r10,%rcx
180040c9d:	e8 8e 6b 00 00       	call   0x180047830
180040ca2:	80 7b 18 07          	cmpb   $0x7,0x18(%rbx)
180040ca6:	73 10                	jae    0x180040cb8
180040ca8:	48 c1 a3 98 00 00 00 	shlq   $0x1c,0x98(%rbx)
180040caf:	1c
180040cb0:	48 c1 a3 a0 00 00 00 	shlq   $0x1c,0xa0(%rbx)
180040cb7:	1c
180040cb8:	66 89 7b 40          	mov    %di,0x40(%rbx)
180040cbc:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180040cc1:	48 83 c4 20          	add    $0x20,%rsp
180040cc5:	5f                   	pop    %rdi
180040cc6:	c3                   	ret
180040cc7:	cc                   	int3
180040cc8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180040ccd:	57                   	push   %rdi
180040cce:	48 83 ec 20          	sub    $0x20,%rsp
180040cd2:	0f b6 79 18          	movzbl 0x18(%rcx),%edi
180040cd6:	48 8b d9             	mov    %rcx,%rbx
180040cd9:	40 80 ff 07          	cmp    $0x7,%dil
180040cdd:	73 10                	jae    0x180040cef
180040cdf:	48 c1 a9 98 00 00 00 	shrq   $0x1c,0x98(%rcx)
180040ce6:	1c
180040ce7:	48 c1 a9 a0 00 00 00 	shrq   $0x1c,0xa0(%rcx)
180040cee:	1c
180040cef:	48 8d 05 2a d6 10 00 	lea    0x10d62a(%rip),%rax        # 0x18014e320
180040cf6:	48 8b cf             	mov    %rdi,%rcx
180040cf9:	48 03 c9             	add    %rcx,%rcx
180040cfc:	4c 8b c3             	mov    %rbx,%r8
180040cff:	8b 14 c8             	mov    (%rax,%rcx,8),%edx
180040d02:	48 8b 4c c8 08       	mov    0x8(%rax,%rcx,8),%rcx
180040d07:	e8 c4 f3 00 00       	call   0x1800500d0
180040d0c:	0f b7 c0             	movzwl %ax,%eax
180040d0f:	40 80 ff 07          	cmp    $0x7,%dil
180040d13:	73 10                	jae    0x180040d25
180040d15:	48 c1 a3 98 00 00 00 	shlq   $0x1c,0x98(%rbx)
180040d1c:	1c
180040d1d:	48 c1 a3 a0 00 00 00 	shlq   $0x1c,0xa0(%rbx)
180040d24:	1c
180040d25:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180040d2a:	48 83 c4 20          	add    $0x20,%rsp
180040d2e:	5f                   	pop    %rdi
180040d2f:	c3                   	ret
180040d30:	cc                   	int3
180040d31:	cc                   	int3
180040d32:	cc                   	int3
180040d33:	cc                   	int3
180040d34:	8b 41 44             	mov    0x44(%rcx),%eax
180040d37:	33 d2                	xor    %edx,%edx
180040d39:	85 c0                	test   %eax,%eax
180040d3b:	74 15                	je     0x180040d52
180040d3d:	83 f8 06             	cmp    $0x6,%eax
180040d40:	7d 10                	jge    0x180040d52
180040d42:	48 8b 81 98 00 00 00 	mov    0x98(%rcx),%rax
180040d49:	48 39 81 a0 00 00 00 	cmp    %rax,0xa0(%rcx)
180040d50:	73 05                	jae    0x180040d57
180040d52:	ba 0d 00 00 c0       	mov    $0xc000000d,%edx
180040d57:	8b c2                	mov    %edx,%eax
180040d59:	c3                   	ret
180040d5a:	cc                   	int3
180040d5b:	cc                   	int3
180040d5c:	40 53                	rex push %rbx
180040d5e:	48 83 ec 20          	sub    $0x20,%rsp
180040d62:	48 8b d9             	mov    %rcx,%rbx
180040d65:	e8 ce 00 00 00       	call   0x180040e38
180040d6a:	85 c0                	test   %eax,%eax
180040d6c:	78 18                	js     0x180040d86
180040d6e:	f6 43 40 02          	testb  $0x2,0x40(%rbx)
180040d72:	74 12                	je     0x180040d86
180040d74:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
180040d78:	48 8b 51 10          	mov    0x10(%rcx),%rdx
180040d7c:	48 8b 4a 08          	mov    0x8(%rdx),%rcx
180040d80:	ff 81 0c 01 00 00    	incl   0x10c(%rcx)
180040d86:	48 83 c4 20          	add    $0x20,%rsp
180040d8a:	5b                   	pop    %rbx
180040d8b:	c3                   	ret
180040d8c:	cc                   	int3
180040d8d:	cc                   	int3
180040d8e:	cc                   	int3
180040d8f:	cc                   	int3
180040d90:	48 8b 91 90 00 00 00 	mov    0x90(%rcx),%rdx
180040d97:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
180040d9b:	48 3b d0             	cmp    %rax,%rdx
180040d9e:	74 05                	je     0x180040da5
180040da0:	48 8b c2             	mov    %rdx,%rax
180040da3:	c3                   	ret
180040da4:	cc                   	int3
180040da5:	4c 8b 81 c8 00 00 00 	mov    0xc8(%rcx),%r8
180040dac:	49 83 b8 a0 01 00 00 	cmpq   $0x0,0x1a0(%r8)
180040db3:	00
180040db4:	76 23                	jbe    0x180040dd9
180040db6:	48 8b 41 10          	mov    0x10(%rcx),%rax
180040dba:	48 8b 48 10          	mov    0x10(%rax),%rcx
180040dbe:	48 8b 41 08          	mov    0x8(%rcx),%rax
180040dc2:	8b 50 1c             	mov    0x1c(%rax),%edx
180040dc5:	0f af 50 18          	imul   0x18(%rax),%edx
180040dc9:	49 8b 80 98 01 00 00 	mov    0x198(%r8),%rax
180040dd0:	48 05 00 20 00 00    	add    $0x2000,%rax
180040dd6:	48 03 c2             	add    %rdx,%rax
180040dd9:	c3                   	ret
180040dda:	cc                   	int3
180040ddb:	cc                   	int3
180040ddc:	48 8b 81 98 00 00 00 	mov    0x98(%rcx),%rax
180040de3:	45 33 c0             	xor    %r8d,%r8d
180040de6:	48 85 c0             	test   %rax,%rax
180040de9:	74 05                	je     0x180040df0
180040deb:	4c 8b c0             	mov    %rax,%r8
180040dee:	eb 33                	jmp    0x180040e23
180040df0:	48 8b 81 c8 00 00 00 	mov    0xc8(%rcx),%rax
180040df7:	4c 8b 88 a0 01 00 00 	mov    0x1a0(%rax),%r9
180040dfe:	4d 85 c9             	test   %r9,%r9
180040e01:	74 20                	je     0x180040e23
180040e03:	48 8b 41 10          	mov    0x10(%rcx),%rax
180040e07:	4d 8b c1             	mov    %r9,%r8
180040e0a:	48 8b 48 10          	mov    0x10(%rax),%rcx
180040e0e:	48 8b 41 08          	mov    0x8(%rcx),%rax
180040e12:	8b 50 1c             	mov    0x1c(%rax),%edx
180040e15:	0f af 50 18          	imul   0x18(%rax),%edx
180040e19:	4c 2b c2             	sub    %rdx,%r8
180040e1c:	49 81 e8 00 20 00 00 	sub    $0x2000,%r8
180040e23:	49 8b c0             	mov    %r8,%rax
180040e26:	c3                   	ret
180040e27:	cc                   	int3
180040e28:	48 83 b9 90 00 00 00 	cmpq   $0xffffffffffffffff,0x90(%rcx)
180040e2f:	ff
180040e30:	0f 94 c0             	sete   %al
180040e33:	c3                   	ret
180040e34:	cc                   	int3
180040e35:	cc                   	int3
180040e36:	cc                   	int3
180040e37:	cc                   	int3
180040e38:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180040e3d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180040e42:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180040e47:	57                   	push   %rdi
180040e48:	48 83 ec 20          	sub    $0x20,%rsp
180040e4c:	48 8b 41 10          	mov    0x10(%rcx),%rax
180040e50:	48 8b f1             	mov    %rcx,%rsi
180040e53:	48 8b 48 10          	mov    0x10(%rax),%rcx
180040e57:	48 8b 89 d8 00 00 00 	mov    0xd8(%rcx),%rcx
180040e5e:	e8 0d db 0f 00       	call   0x18013e970
180040e63:	33 db                	xor    %ebx,%ebx
180040e65:	48 8b 50 58          	mov    0x58(%rax),%rdx
180040e69:	48 0f bd c2          	bsr    %rdx,%rax
180040e6d:	89 86 c0 00 00 00    	mov    %eax,0xc0(%rsi)
180040e73:	48 8b be a8 00 00 00 	mov    0xa8(%rsi),%rdi
180040e7a:	48 85 ff             	test   %rdi,%rdi
180040e7d:	74 10                	je     0x180040e8f
180040e7f:	48 8b cf             	mov    %rdi,%rcx
180040e82:	e8 95 29 00 00       	call   0x18004381c
180040e87:	48 8b cf             	mov    %rdi,%rcx