180074bfc:	48 8b 44 24 58       	mov    0x58(%rsp),%rax
180074c01:	49 03 c6             	add    %r14,%rax
180074c04:	48 3b f8             	cmp    %rax,%rdi
180074c07:	75 11                	jne    0x180074c1a
180074c09:	43 8d 04 27          	lea    (%r15,%r12,1),%eax
180074c0d:	39 84 24 c0 00 00 00 	cmp    %eax,0xc0(%rsp)
180074c14:	0f 87 cf 00 00 00    	ja     0x180074ce9
180074c1a:	45 85 ff             	test   %r15d,%r15d
180074c1d:	0f 84 c6 00 00 00    	je     0x180074ce9
180074c23:	80 bc 24 d0 00 00 00 	cmpb   $0x0,0xd0(%rsp)
180074c2a:	00
180074c2b:	45 8b c7             	mov    %r15d,%r8d
180074c2e:	48 8b 84 24 b0 00 00 	mov    0xb0(%rsp),%rax
180074c35:	00
180074c36:	48 8b d6             	mov    %rsi,%rdx
180074c39:	4c 8b 8c 24 b8 00 00 	mov    0xb8(%rsp),%r9
180074c40:	00
180074c41:	8b 48 08             	mov    0x8(%rax),%ecx
180074c44:	74 12                	je     0x180074c58
180074c46:	83 64 24 28 00       	andl   $0x0,0x28(%rsp)
180074c4b:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180074c51:	e8 c6 22 fb ff       	call   0x180026f1c
180074c56:	eb 0b                	jmp    0x180074c63
180074c58:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180074c5e:	e8 85 23 fb ff       	call   0x180026fe8
180074c63:	89 44 24 30          	mov    %eax,0x30(%rsp)
180074c67:	44 8b d0             	mov    %eax,%r10d
180074c6a:	85 c0                	test   %eax,%eax
180074c6c:	0f 88 8c 00 00 00    	js     0x180074cfe
180074c72:	4c 8b 4c 24 38       	mov    0x38(%rsp),%r9
180074c77:	41 8d 4e ff          	lea    -0x1(%r14),%ecx
180074c7b:	45 8b c7             	mov    %r15d,%r8d
180074c7e:	4c 01 84 24 b8 00 00 	add    %r8,0xb8(%rsp)
180074c85:	00
180074c86:	4d 03 c8             	add    %r8,%r9
180074c89:	4d 01 45 68          	add    %r8,0x68(%r13)
180074c8d:	4c 2b 44 24 40       	sub    0x40(%rsp),%r8
180074c92:	4c 89 4c 24 38       	mov    %r9,0x38(%rsp)
180074c97:	49 8d 14 30          	lea    (%r8,%rsi,1),%rdx
180074c9b:	48 85 d1             	test   %rdx,%rcx
180074c9e:	74 13                	je     0x180074cb3
180074ca0:	49 8b c6             	mov    %r14,%rax
180074ca3:	49 8d 0c 30          	lea    (%r8,%rsi,1),%rcx
180074ca7:	48 f7 d8             	neg    %rax
180074caa:	48 23 c8             	and    %rax,%rcx
180074cad:	49 01 4d 50          	add    %rcx,0x50(%r13)
180074cb1:	eb 09                	jmp    0x180074cbc
180074cb3:	49 89 7d 50          	mov    %rdi,0x50(%r13)
180074cb7:	48 89 7c 24 40       	mov    %rdi,0x40(%rsp)
180074cbc:	45 03 e7             	add    %r15d,%r12d
180074cbf:	49 8d 46 ff          	lea    -0x1(%r14),%rax
180074cc3:	48 f7 d0             	not    %rax
180074cc6:	33 f6                	xor    %esi,%esi
180074cc8:	49 23 45 68          	and    0x68(%r13),%rax
180074ccc:	45 33 ff             	xor    %r15d,%r15d
180074ccf:	49 89 45 58          	mov    %rax,0x58(%r13)
180074cd3:	83 fb 03             	cmp    $0x3,%ebx
180074cd6:	74 26                	je     0x180074cfe
180074cd8:	44 39 a4 24 c0 00 00 	cmp    %r12d,0xc0(%rsp)
180074cdf:	00
180074ce0:	76 1c                	jbe    0x180074cfe
180074ce2:	44 8b 44 24 34       	mov    0x34(%rsp),%r8d
180074ce7:	eb 0a                	jmp    0x180074cf3
180074ce9:	44 8b 54 24 30       	mov    0x30(%rsp),%r10d
180074cee:	4c 8b 4c 24 38       	mov    0x38(%rsp),%r9
180074cf3:	49 03 ee             	add    %r14,%rbp
180074cf6:	85 db                	test   %ebx,%ebx
180074cf8:	0f 85 3c fe ff ff    	jne    0x180074b3a
180074cfe:	4c 8b 9c 24 c8 00 00 	mov    0xc8(%rsp),%r11
180074d05:	00
180074d06:	4d 85 db             	test   %r11,%r11
180074d09:	74 03                	je     0x180074d0e
180074d0b:	45 89 23             	mov    %r12d,(%r11)
180074d0e:	41 8b c2             	mov    %r10d,%eax
180074d11:	48 83 c4 68          	add    $0x68,%rsp
180074d15:	41 5f                	pop    %r15
180074d17:	41 5e                	pop    %r14
180074d19:	41 5d                	pop    %r13
180074d1b:	41 5c                	pop    %r12
180074d1d:	5f                   	pop    %rdi
180074d1e:	5e                   	pop    %rsi
180074d1f:	5d                   	pop    %rbp
180074d20:	5b                   	pop    %rbx
180074d21:	c3                   	ret
180074d22:	cc                   	int3
180074d23:	cc                   	int3
180074d24:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180074d29:	57                   	push   %rdi
180074d2a:	48 83 ec 20          	sub    $0x20,%rsp
180074d2e:	48 8b d9             	mov    %rcx,%rbx
180074d31:	8b fa                	mov    %edx,%edi
180074d33:	48 8b 89 18 08 00 00 	mov    0x818(%rcx),%rcx
180074d3a:	48 85 c9             	test   %rcx,%rcx
180074d3d:	74 0d                	je     0x180074d4c
180074d3f:	e8 b8 52 02 00       	call   0x180099ffc
180074d44:	48 83 a3 18 08 00 00 	andq   $0x0,0x818(%rbx)
180074d4b:	00
180074d4c:	48 8b cb             	mov    %rbx,%rcx
180074d4f:	e8 a8 52 02 00       	call   0x180099ffc
180074d54:	48 8b 05 7d fd 12 00 	mov    0x12fd7d(%rip),%rax        # 0x1801a4ad8
180074d5b:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180074d60:	48 83 24 f8 00       	andq   $0x0,(%rax,%rdi,8)
180074d65:	33 c0                	xor    %eax,%eax
180074d67:	48 83 c4 20          	add    $0x20,%rsp
180074d6b:	5f                   	pop    %rdi
180074d6c:	c3                   	ret
180074d6d:	cc                   	int3
180074d6e:	cc                   	int3
180074d6f:	cc                   	int3
180074d70:	44 0f b6 49 01       	movzbl 0x1(%rcx),%r9d
180074d75:	45 33 d2             	xor    %r10d,%r10d
180074d78:	66 41 ff c1          	inc    %r9w
180074d7c:	45 0f b7 c2          	movzwl %r10w,%r8d
180074d80:	66 41 c1 e1 05       	shl    $0x5,%r9w
180074d85:	66 45 3b d1          	cmp    %r9w,%r10w
180074d89:	73 37                	jae    0x180074dc2
180074d8b:	41 8d 40 fe          	lea    -0x2(%r8),%eax
180074d8f:	66 83 f8 01          	cmp    $0x1,%ax
180074d93:	76 23                	jbe    0x180074db8
180074d95:	41 0f b7 c0          	movzwl %r8w,%eax
180074d99:	0f b6 14 08          	movzbl (%rax,%rcx,1),%edx
180074d9d:	41 0f b7 c2          	movzwl %r10w,%eax
180074da1:	66 d1 e8             	shr    $1,%ax
180074da4:	66 03 d0             	add    %ax,%dx
180074da7:	45 0f b7 d2          	movzwl %r10w,%r10d
180074dab:	b8 00 80 00 00       	mov    $0x8000,%eax
180074db0:	44 0f af d0          	imul   %eax,%r10d
180074db4:	66 44 03 d2          	add    %dx,%r10w
180074db8:	66 41 ff c0          	inc    %r8w
180074dbc:	66 45 3b c1          	cmp    %r9w,%r8w
180074dc0:	72 c9                	jb     0x180074d8b
180074dc2:	41 0f b7 c2          	movzwl %r10w,%eax
180074dc6:	c3                   	ret
180074dc7:	cc                   	int3
180074dc8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180074dcd:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180074dd2:	55                   	push   %rbp
180074dd3:	57                   	push   %rdi
180074dd4:	41 56                	push   %r14
180074dd6:	48 8d 6c 24 80       	lea    -0x80(%rsp),%rbp
180074ddb:	48 81 ec 80 01 00 00 	sub    $0x180,%rsp
180074de2:	0f b7 05 ff a8 0d 00 	movzwl 0xda8ff(%rip),%eax        # 0x18014f6e8
180074de9:	0f 57 c0             	xorps  %xmm0,%xmm0
180074dec:	48 83 a5 b8 00 00 00 	andq   $0x0,0xb8(%rbp)
180074df3:	00
180074df4:	48 8b fa             	mov    %rdx,%rdi
180074df7:	0f 11 44 24 30       	movups %xmm0,0x30(%rsp)
180074dfc:	4c 8b f1             	mov    %rcx,%r14
180074dff:	33 f6                	xor    %esi,%esi
180074e01:	21 b5 b0 00 00 00    	and    %esi,0xb0(%rbp)
180074e07:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
180074e0c:	0f 11 44 24 40       	movups %xmm0,0x40(%rsp)
180074e11:	33 d2                	xor    %edx,%edx
180074e13:	41 b8 80 00 00 00    	mov    $0x80,%r8d
180074e19:	0f 10 05 b8 a8 0d 00 	movups 0xda8b8(%rip),%xmm0        # 0x18014f6d8
180074e20:	66 89 44 24 60       	mov    %ax,0x60(%rsp)
180074e25:	0f 11 44 24 50       	movups %xmm0,0x50(%rsp)
180074e2a:	e8 51 0e 0c 00       	call   0x180135c80
180074e2f:	33 d2                	xor    %edx,%edx
180074e31:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
180074e35:	41 b8 88 00 00 00    	mov    $0x88,%r8d
180074e3b:	e8 40 0e 0c 00       	call   0x180135c80
180074e40:	4c 8d 85 b8 00 00 00 	lea    0xb8(%rbp),%r8
180074e47:	48 8b cf             	mov    %rdi,%rcx
180074e4a:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
180074e4f:	e8 94 f6 ff ff       	call   0x1800744e8
180074e54:	8b d8                	mov    %eax,%ebx
180074e56:	85 c0                	test   %eax,%eax
180074e58:	0f 88 78 01 00 00    	js     0x180074fd6
180074e5e:	8a 44 24 30          	mov    0x30(%rsp),%al
180074e62:	84 c0                	test   %al,%al
180074e64:	79 da                	jns    0x180074e40
180074e66:	3c 82                	cmp    $0x82,%al
180074e68:	75 d6                	jne    0x180074e40
180074e6a:	48 8b 47 78          	mov    0x78(%rdi),%rax
180074e6e:	8b 4c 24 44          	mov    0x44(%rsp),%ecx
180074e72:	0f 28 05 87 f1 0c 00 	movaps 0xcf187(%rip),%xmm0        # 0x180144000
180074e79:	83 c1 fe             	add    $0xfffffffe,%ecx
180074e7c:	0f 28 0d 8d f1 0c 00 	movaps 0xcf18d(%rip),%xmm1        # 0x180144010
180074e83:	44 8b 88 80 00 00 00 	mov    0x80(%rax),%r9d
180074e8a:	48 8b 05 47 fc 12 00 	mov    0x12fc47(%rip),%rax        # 0x1801a4ad8
180074e91:	0f 29 45 a0          	movaps %xmm0,-0x60(%rbp)
180074e95:	0f 28 05 84 f1 0c 00 	movaps 0xcf184(%rip),%xmm0        # 0x180144020
180074e9c:	0f 29 4d b0          	movaps %xmm1,-0x50(%rbp)
180074ea0:	4a 8b 14 c8          	mov    (%rax,%r9,8),%rdx
180074ea4:	0f 28 0d 85 f1 0c 00 	movaps 0xcf185(%rip),%xmm1        # 0x180144030
180074eab:	0f 29 45 c0          	movaps %xmm0,-0x40(%rbp)
180074eaf:	f2 0f 10 05 89 f1 0c 	movsd  0xcf189(%rip),%xmm0        # 0x180144040
180074eb6:	00
180074eb7:	8b 82 00 02 00 00    	mov    0x200(%rdx),%eax
180074ebd:	0f af 42 58          	imul   0x58(%rdx),%eax
180074ec1:	44 8b 82 04 02 00 00 	mov    0x204(%rdx),%r8d
180074ec8:	48 21 75 48          	and    %rsi,0x48(%rbp)
180074ecc:	49 0f af c8          	imul   %r8,%rcx
180074ed0:	0f 29 4d d0          	movaps %xmm1,-0x30(%rbp)
180074ed4:	f2 0f 11 45 e0       	movsd  %xmm0,-0x20(%rbp)
180074ed9:	8b d0                	mov    %eax,%edx
180074edb:	48 8b 85 b8 00 00 00 	mov    0xb8(%rbp),%rax
180074ee2:	48 03 d1             	add    %rcx,%rdx
180074ee5:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
180074eea:	48 89 45 30          	mov    %rax,0x30(%rbp)
180074eee:	48 8d 05 d3 a7 0d 00 	lea    0xda7d3(%rip),%rax        # 0x18014f6c8
180074ef5:	48 89 45 60          	mov    %rax,0x60(%rbp)
180074ef9:	48 8d 44 24 50       	lea    0x50(%rsp),%rax
180074efe:	48 89 44 24 70       	mov    %rax,0x70(%rsp)
180074f03:	8b 47 08             	mov    0x8(%rdi),%eax
180074f06:	49 c1 e0 20          	shl    $0x20,%r8
180074f0a:	49 ff c8             	dec    %r8
180074f0d:	89 44 24 78          	mov    %eax,0x78(%rsp)
180074f11:	49 23 d0             	and    %r8,%rdx
180074f14:	48 89 4d 50          	mov    %rcx,0x50(%rbp)
180074f18:	48 8d 45 f0          	lea    -0x10(%rbp),%rax
180074f1c:	8b c9                	mov    %ecx,%ecx
180074f1e:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
180074f22:	48 89 55 38          	mov    %rdx,0x38(%rbp)
180074f26:	44 89 4d 70          	mov    %r9d,0x70(%rbp)
180074f2a:	48 89 55 40          	mov    %rdx,0x40(%rbp)
180074f2e:	e8 1d 4f 02 00       	call   0x180099e50
180074f33:	48 8b f0             	mov    %rax,%rsi
180074f36:	48 85 c0             	test   %rax,%rax
180074f39:	75 0a                	jne    0x180074f45
180074f3b:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180074f40:	e9 ba 00 00 00       	jmp    0x180074fff
180074f45:	44 8b 44 24 48       	mov    0x48(%rsp),%r8d
180074f4a:	4c 8d 8d b0 00 00 00 	lea    0xb0(%rbp),%r9
180074f51:	48 8b d6             	mov    %rsi,%rdx
180074f54:	c6 44 24 20 01       	movb   $0x1,0x20(%rsp)
180074f59:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
180074f5e:	e8 01 fb ff ff       	call   0x180074a64
180074f63:	8b d8                	mov    %eax,%ebx
180074f65:	85 c0                	test   %eax,%eax
180074f67:	78 6d                	js     0x180074fd6
180074f69:	48 8b 44 24 48       	mov    0x48(%rsp),%rax
180074f6e:	33 d2                	xor    %edx,%edx
180074f70:	85 c0                	test   %eax,%eax
180074f72:	74 1e                	je     0x180074f92
180074f74:	4c 8b c6             	mov    %rsi,%r8
180074f77:	44 8b c8             	mov    %eax,%r9d
180074f7a:	41 0f b6 00          	movzbl (%r8),%eax
180074f7e:	8b ca                	mov    %edx,%ecx
180074f80:	c1 e2 1f             	shl    $0x1f,%edx
180074f83:	49 ff c0             	inc    %r8
180074f86:	d1 e9                	shr    $1,%ecx
180074f88:	03 d1                	add    %ecx,%edx
180074f8a:	03 d0                	add    %eax,%edx
180074f8c:	49 83 e9 01          	sub    $0x1,%r9
180074f90:	75 e8                	jne    0x180074f7a
180074f92:	3b 54 24 34          	cmp    0x34(%rsp),%edx
180074f96:	74 07                	je     0x180074f9f
180074f98:	bb 01 00 00 c0       	mov    $0xc0000001,%ebx
180074f9d:	eb 53                	jmp    0x180074ff2
180074f9f:	b9 00 00 02 00       	mov    $0x20000,%ecx
180074fa4:	e8 a7 4e 02 00       	call   0x180099e50
180074fa9:	48 8b f8             	mov    %rax,%rdi
180074fac:	48 85 c0             	test   %rax,%rax
180074faf:	75 07                	jne    0x180074fb8
180074fb1:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180074fb6:	eb 3a                	jmp    0x180074ff2
180074fb8:	8b 54 24 48          	mov    0x48(%rsp),%edx
180074fbc:	4c 8b c7             	mov    %rdi,%r8
180074fbf:	48 8b ce             	mov    %rsi,%rcx
180074fc2:	e8 55 00 00 00       	call   0x18007501c
180074fc7:	84 c0                	test   %al,%al
180074fc9:	74 15                	je     0x180074fe0
180074fcb:	49 89 be 18 08 00 00 	mov    %rdi,0x818(%r14)
180074fd2:	33 db                	xor    %ebx,%ebx
180074fd4:	eb 1c                	jmp    0x180074ff2
180074fd6:	81 fb 0f 00 00 c0    	cmp    $0xc000000f,%ebx
180074fdc:	75 14                	jne    0x180074ff2
180074fde:	33 ff                	xor    %edi,%edi
180074fe0:	bb 01 00 00 c0       	mov    $0xc0000001,%ebx
180074fe5:	48 85 ff             	test   %rdi,%rdi
180074fe8:	74 08                	je     0x180074ff2
180074fea:	48 8b cf             	mov    %rdi,%rcx
180074fed:	e8 0a 50 02 00       	call   0x180099ffc
180074ff2:	48 85 f6             	test   %rsi,%rsi
180074ff5:	74 08                	je     0x180074fff
180074ff7:	48 8b ce             	mov    %rsi,%rcx
180074ffa:	e8 fd 4f 02 00       	call   0x180099ffc
180074fff:	4c 8d 9c 24 80 01 00 	lea    0x180(%rsp),%r11
180075006:	00
180075007:	8b c3                	mov    %ebx,%eax
180075009:	49 8b 5b 20          	mov    0x20(%r11),%rbx
18007500d:	49 8b 73 28          	mov    0x28(%r11),%rsi
180075011:	49 8b e3             	mov    %r11,%rsp
180075014:	41 5e                	pop    %r14
180075016:	5f                   	pop    %rdi
180075017:	5d                   	pop    %rbp
180075018:	c3                   	ret
180075019:	cc                   	int3
18007501a:	cc                   	int3
18007501b:	cc                   	int3
18007501c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180075021:	48 89 7c 24 10       	mov    %rdi,0x10(%rsp)
180075026:	4c 89 74 24 18       	mov    %r14,0x18(%rsp)
18007502b:	45 33 c9             	xor    %r9d,%r9d
18007502e:	44 8b da             	mov    %edx,%r11d
180075031:	45 8b d1             	mov    %r9d,%r10d
180075034:	41 d1 eb             	shr    $1,%r11d
180075037:	41 8b d1             	mov    %r9d,%edx
18007503a:	49 8b f8             	mov    %r8,%rdi
18007503d:	48 8b d9             	mov    %rcx,%rbx
180075040:	41 be ff ff 00 00    	mov    $0xffff,%r14d
180075046:	45 3b d3             	cmp    %r11d,%r10d
180075049:	0f 83 a2 00 00 00    	jae    0x1800750f1
18007504f:	41 8b c2             	mov    %r10d,%eax
180075052:	66 44 39 34 43       	cmp    %r14w,(%rbx,%rax,2)
180075057:	75 26                	jne    0x18007507f
180075059:	41 8d 42 01          	lea    0x1(%r10),%eax
18007505d:	41 3b c3             	cmp    %r11d,%eax
180075060:	74 1d                	je     0x18007507f
180075062:	0f 83 89 00 00 00    	jae    0x1800750f1
180075068:	0f b7 0c 43          	movzwl (%rbx,%rax,2),%ecx
18007506c:	03 ca                	add    %edx,%ecx
18007506e:	8b d1                	mov    %ecx,%edx
180075070:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
180075076:	77 79                	ja     0x1800750f1
180075078:	b8 02 00 00 00       	mov    $0x2,%eax
18007507d:	eb 07                	jmp    0x180075086
18007507f:	ff c2                	inc    %edx
180075081:	b8 01 00 00 00       	mov    $0x1,%eax
180075086:	44 03 d0             	add    %eax,%r10d
180075089:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
18007508f:	72 b5                	jb     0x180075046
180075091:	45 3b d3             	cmp    %r11d,%r10d
180075094:	75 5b                	jne    0x1800750f1
180075096:	41 8b d1             	mov    %r9d,%edx
180075099:	8b c2                	mov    %edx,%eax
18007509b:	44 0f b7 04 43       	movzwl (%rbx,%rax,2),%r8d
1800750a0:	66 45 3b c6          	cmp    %r14w,%r8w
1800750a4:	75 2f                	jne    0x1800750d5
1800750a6:	8d 42 01             	lea    0x1(%rdx),%eax
1800750a9:	41 3b c3             	cmp    %r11d,%eax
1800750ac:	74 27                	je     0x1800750d5
1800750ae:	0f b7 0c 43          	movzwl (%rbx,%rax,2),%ecx
1800750b2:	41 03 c9             	add    %r9d,%ecx
1800750b5:	44 3b c9             	cmp    %ecx,%r9d
1800750b8:	73 14                	jae    0x1800750ce
1800750ba:	4e 8d 04 4f          	lea    (%rdi,%r9,2),%r8
1800750be:	66 45 89 08          	mov    %r9w,(%r8)
1800750c2:	41 ff c1             	inc    %r9d
1800750c5:	4d 8d 40 02          	lea    0x2(%r8),%r8
1800750c9:	44 3b c9             	cmp    %ecx,%r9d
1800750cc:	72 f0                	jb     0x1800750be
1800750ce:	b8 02 00 00 00       	mov    $0x2,%eax
1800750d3:	eb 0d                	jmp    0x1800750e2
1800750d5:	66 46 89 04 4f       	mov    %r8w,(%rdi,%r9,2)
1800750da:	b8 01 00 00 00       	mov    $0x1,%eax
1800750df:	41 ff c1             	inc    %r9d
1800750e2:	03 d0                	add    %eax,%edx