18003ec13:	00
18003ec14:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
18003ec19:	48 83 c4 40          	add    $0x40,%rsp
18003ec1d:	5f                   	pop    %rdi
18003ec1e:	c3                   	ret
18003ec1f:	cc                   	int3
18003ec20:	48 8b c4             	mov    %rsp,%rax
18003ec23:	48 89 58 08          	mov    %rbx,0x8(%rax)
18003ec27:	48 89 70 10          	mov    %rsi,0x10(%rax)
18003ec2b:	48 89 78 18          	mov    %rdi,0x18(%rax)
18003ec2f:	55                   	push   %rbp
18003ec30:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
18003ec34:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
18003ec3b:	48 8b 1d 86 67 15 00 	mov    0x156786(%rip),%rbx        # 0x1801953c8
18003ec42:	49 8b f8             	mov    %r8,%rdi
18003ec45:	83 3b ff             	cmpl   $0xffffffff,(%rbx)
18003ec48:	75 0a                	jne    0x18003ec54
18003ec4a:	b8 25 02 00 c0       	mov    $0xc0000225,%eax
18003ec4f:	e9 fd 00 00 00       	jmp    0x18003ed51
18003ec54:	4c 8d 45 f7          	lea    -0x9(%rbp),%r8
18003ec58:	e8 bf 01 00 00       	call   0x18003ee1c
18003ec5d:	33 f6                	xor    %esi,%esi
18003ec5f:	85 c0                	test   %eax,%eax
18003ec61:	0f 88 ea 00 00 00    	js     0x18003ed51
18003ec67:	48 8d 45 f7          	lea    -0x9(%rbp),%rax
18003ec6b:	48 c7 45 e7 28 00 00 	movq   $0x28,-0x19(%rbp)
18003ec72:	00
18003ec73:	48 89 45 ef          	mov    %rax,-0x11(%rbp)
18003ec77:	4c 8d 45 7f          	lea    0x7f(%rbp),%r8
18003ec7b:	8b 0b                	mov    (%rbx),%ecx
18003ec7d:	48 8d 55 e7          	lea    -0x19(%rbp),%rdx
18003ec81:	e8 8e 62 05 00       	call   0x180094f14
18003ec86:	85 c0                	test   %eax,%eax
18003ec88:	75 16                	jne    0x18003eca0
18003ec8a:	48 8b 45 7f          	mov    0x7f(%rbp),%rax
18003ec8e:	48 8b 48 08          	mov    0x8(%rax),%rcx
18003ec92:	48 85 c9             	test   %rcx,%rcx
18003ec95:	74 09                	je     0x18003eca0
18003ec97:	8b 01                	mov    (%rcx),%eax
18003ec99:	89 07                	mov    %eax,(%rdi)
18003ec9b:	e9 af 00 00 00       	jmp    0x18003ed4f
18003eca0:	b9 04 00 00 00       	mov    $0x4,%ecx
18003eca5:	e8 a6 b1 05 00       	call   0x180099e50
18003ecaa:	48 8b d8             	mov    %rax,%rbx
18003ecad:	48 85 c0             	test   %rax,%rax
18003ecb0:	75 0a                	jne    0x18003ecbc
18003ecb2:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
18003ecb7:	e9 95 00 00 00       	jmp    0x18003ed51
18003ecbc:	8b 4d e7             	mov    -0x19(%rbp),%ecx
18003ecbf:	e8 8c b1 05 00       	call   0x180099e50
18003ecc4:	48 89 45 ef          	mov    %rax,-0x11(%rbp)
18003ecc8:	48 85 c0             	test   %rax,%rax
18003eccb:	74 e5                	je     0x18003ecb2
18003eccd:	44 8b 45 e7          	mov    -0x19(%rbp),%r8d
18003ecd1:	48 8d 55 f7          	lea    -0x9(%rbp),%rdx
18003ecd5:	48 8b c8             	mov    %rax,%rcx
18003ecd8:	e8 e3 6c 0f 00       	call   0x1801359c0
18003ecdd:	48 8b 0d e4 66 15 00 	mov    0x1566e4(%rip),%rcx        # 0x1801953c8
18003ece4:	48 8d 55 e7          	lea    -0x19(%rbp),%rdx
18003ece8:	41 b9 04 00 00 00    	mov    $0x4,%r9d
18003ecee:	4c 8b c3             	mov    %rbx,%r8
18003ecf1:	8b 41 04             	mov    0x4(%rcx),%eax
18003ecf4:	89 03                	mov    %eax,(%rbx)
18003ecf6:	ff 41 04             	incl   0x4(%rcx)
18003ecf9:	8b 09                	mov    (%rcx),%ecx
18003ecfb:	89 07                	mov    %eax,(%rdi)
18003ecfd:	e8 d6 62 05 00       	call   0x180094fd8
18003ed02:	85 c0                	test   %eax,%eax
18003ed04:	78 4b                	js     0x18003ed51
18003ed06:	8b 1f                	mov    (%rdi),%ebx
18003ed08:	33 c9                	xor    %ecx,%ecx
18003ed0a:	c7 45 27 03 00 00 00 	movl   $0x3,0x27(%rbp)
18003ed11:	e8 7a 23 05 00       	call   0x180091090
18003ed16:	0f 10 45 f7          	movups -0x9(%rbp),%xmm0
18003ed1a:	48 8d 4d 1f          	lea    0x1f(%rbp),%rcx
18003ed1e:	89 45 1f             	mov    %eax,0x1f(%rbp)
18003ed21:	0f 10 4d 07          	movups 0x7(%rbp),%xmm1
18003ed25:	c7 45 23 38 00 00 00 	movl   $0x38,0x23(%rbp)
18003ed2c:	0f 11 45 2b          	movups %xmm0,0x2b(%rbp)
18003ed30:	89 5d 53             	mov    %ebx,0x53(%rbp)
18003ed33:	f2 0f 10 45 17       	movsd  0x17(%rbp),%xmm0
18003ed38:	f2 0f 11 45 4b       	movsd  %xmm0,0x4b(%rbp)
18003ed3d:	0f 11 4d 3b          	movups %xmm1,0x3b(%rbp)
18003ed41:	e8 9e a2 04 00       	call   0x180088fe4
18003ed46:	85 c0                	test   %eax,%eax
18003ed48:	0f 49 c6             	cmovns %esi,%eax
18003ed4b:	85 c0                	test   %eax,%eax
18003ed4d:	78 02                	js     0x18003ed51
18003ed4f:	8b c6                	mov    %esi,%eax
18003ed51:	4c 8d 9c 24 90 00 00 	lea    0x90(%rsp),%r11
18003ed58:	00
18003ed59:	49 8b 5b 10          	mov    0x10(%r11),%rbx
18003ed5d:	49 8b 73 18          	mov    0x18(%r11),%rsi
18003ed61:	49 8b 7b 20          	mov    0x20(%r11),%rdi
18003ed65:	49 8b e3             	mov    %r11,%rsp
18003ed68:	5d                   	pop    %rbp
18003ed69:	c3                   	ret
18003ed6a:	cc                   	int3
18003ed6b:	cc                   	int3
18003ed6c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18003ed71:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18003ed76:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18003ed7b:	57                   	push   %rdi
18003ed7c:	48 83 ec 50          	sub    $0x50,%rsp
18003ed80:	f6 05 51 4b 16 00 02 	testb  $0x2,0x164b51(%rip)        # 0x1801a38d8
18003ed87:	49 8b f9             	mov    %r9,%rdi
18003ed8a:	8b 9c 24 80 00 00 00 	mov    0x80(%rsp),%ebx
18003ed91:	49 8b f0             	mov    %r8,%rsi
18003ed94:	75 0c                	jne    0x18003eda2
18003ed96:	8d 43 fe             	lea    -0x2(%rbx),%eax
18003ed99:	83 f8 01             	cmp    $0x1,%eax
18003ed9c:	76 04                	jbe    0x18003eda2
18003ed9e:	33 c0                	xor    %eax,%eax
18003eda0:	eb 61                	jmp    0x18003ee03
18003eda2:	33 ed                	xor    %ebp,%ebp
18003eda4:	48 39 2d 1d 66 15 00 	cmp    %rbp,0x15661d(%rip)        # 0x1801953c8
18003edab:	75 07                	jne    0x18003edb4
18003edad:	b8 25 02 00 c0       	mov    $0xc0000225,%eax
18003edb2:	eb 4f                	jmp    0x18003ee03
18003edb4:	48 85 c9             	test   %rcx,%rcx
18003edb7:	75 07                	jne    0x18003edc0
18003edb9:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18003edbe:	eb 43                	jmp    0x18003ee03
18003edc0:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
18003edc5:	e8 56 fe ff ff       	call   0x18003ec20
18003edca:	85 c0                	test   %eax,%eax
18003edcc:	78 35                	js     0x18003ee03
18003edce:	8b 44 24 20          	mov    0x20(%rsp),%eax
18003edd2:	48 8d 4c 24 28       	lea    0x28(%rsp),%rcx
18003edd7:	89 44 24 48          	mov    %eax,0x48(%rsp)
18003eddb:	c7 44 24 30 04 00 00 	movl   $0x4,0x30(%rsp)
18003ede2:	00
18003ede3:	c7 44 24 2c 28 00 00 	movl   $0x28,0x2c(%rsp)
18003edea:	00
18003edeb:	48 89 74 24 38       	mov    %rsi,0x38(%rsp)
18003edf0:	48 89 7c 24 40       	mov    %rdi,0x40(%rsp)
18003edf5:	89 5c 24 4c          	mov    %ebx,0x4c(%rsp)
18003edf9:	e8 e6 a1 04 00       	call   0x180088fe4
18003edfe:	85 c0                	test   %eax,%eax
18003ee00:	0f 49 c5             	cmovns %ebp,%eax
18003ee03:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
18003ee08:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
18003ee0d:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
18003ee12:	48 83 c4 50          	add    $0x50,%rsp
18003ee16:	5f                   	pop    %rdi
18003ee17:	c3                   	ret
18003ee18:	cc                   	int3
18003ee19:	cc                   	int3
18003ee1a:	cc                   	int3
18003ee1b:	cc                   	int3
18003ee1c:	40 55                	rex push %rbp
18003ee1e:	48 8b ec             	mov    %rsp,%rbp
18003ee21:	48 83 ec 30          	sub    $0x30,%rsp
18003ee25:	45 33 c9             	xor    %r9d,%r9d
18003ee28:	0f 57 c0             	xorps  %xmm0,%xmm0
18003ee2b:	41 0f 11 00          	movups %xmm0,(%r8)
18003ee2f:	33 c0                	xor    %eax,%eax
18003ee31:	4c 8b da             	mov    %rdx,%r11
18003ee34:	41 0f 11 40 10       	movups %xmm0,0x10(%r8)
18003ee39:	49 89 40 20          	mov    %rax,0x20(%r8)
18003ee3d:	45 8b d1             	mov    %r9d,%r10d
18003ee40:	41 c7 00 02 00 00 00 	movl   $0x2,(%r8)
18003ee47:	41 8b d1             	mov    %r9d,%edx
18003ee4a:	44 39 09             	cmp    %r9d,(%rcx)
18003ee4d:	0f 84 9c 00 00 00    	je     0x18003eeef
18003ee53:	83 39 02             	cmpl   $0x2,(%rcx)
18003ee56:	74 0a                	je     0x18003ee62
18003ee58:	83 39 06             	cmpl   $0x6,(%rcx)
18003ee5b:	74 10                	je     0x18003ee6d
18003ee5d:	e9 a5 00 00 00       	jmp    0x18003ef07
18003ee62:	4c 8d 51 10          	lea    0x10(%rcx),%r10
18003ee66:	41 8b 12             	mov    (%r10),%edx
18003ee69:	49 8d 42 10          	lea    0x10(%r10),%rax
18003ee6d:	4d 85 d2             	test   %r10,%r10
18003ee70:	75 0b                	jne    0x18003ee7d
18003ee72:	4c 8d 51 10          	lea    0x10(%rcx),%r10
18003ee76:	41 8b 12             	mov    (%r10),%edx
18003ee79:	49 8d 42 10          	lea    0x10(%r10),%rax
18003ee7d:	44 39 08             	cmp    %r9d,(%rax)
18003ee80:	0f 85 81 00 00 00    	jne    0x18003ef07
18003ee86:	0f 10 40 04          	movups 0x4(%rax),%xmm0
18003ee8a:	8b 40 14             	mov    0x14(%rax),%eax
18003ee8d:	89 45 e0             	mov    %eax,-0x20(%rbp)
18003ee90:	66 0f 7e c0          	movd   %xmm0,%eax
18003ee94:	0f 11 45 d0          	movups %xmm0,-0x30(%rbp)
18003ee98:	41 c7 00 01 00 00 00 	movl   $0x1,(%r8)
18003ee9f:	85 c0                	test   %eax,%eax
18003eea1:	74 32                	je     0x18003eed5
18003eea3:	83 e8 01             	sub    $0x1,%eax
18003eea6:	74 13                	je     0x18003eebb
18003eea8:	83 f8 01             	cmp    $0x1,%eax
18003eeab:	75 5a                	jne    0x18003ef07
18003eead:	41 c7 40 14 02 00 00 	movl   $0x2,0x14(%r8)
18003eeb4:	00
18003eeb5:	41 89 50 04          	mov    %edx,0x4(%r8)
18003eeb9:	eb 0c                	jmp    0x18003eec7
18003eebb:	41 c7 40 14 01 00 00 	movl   $0x1,0x14(%r8)
18003eec2:	00
18003eec3:	45 89 58 04          	mov    %r11d,0x4(%r8)
18003eec7:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
18003eecb:	48 c1 e8 20          	shr    $0x20,%rax
18003eecf:	41 89 40 18          	mov    %eax,0x18(%r8)
18003eed3:	eb 7c                	jmp    0x18003ef51
18003eed5:	0f 10 4d d4          	movups -0x2c(%rbp),%xmm1
18003eed9:	45 89 48 14          	mov    %r9d,0x14(%r8)
18003eedd:	41 0f 10 02          	movups (%r10),%xmm0
18003eee1:	f3 41 0f 7f 48 18    	movdqu %xmm1,0x18(%r8)
18003eee7:	f3 41 0f 7f 40 04    	movdqu %xmm0,0x4(%r8)
18003eeed:	eb 62                	jmp    0x18003ef51
18003eeef:	0f 10 51 10          	movups 0x10(%rcx),%xmm2
18003eef3:	0f 10 41 20          	movups 0x20(%rcx),%xmm0
18003eef7:	66 0f 7e d0          	movd   %xmm2,%eax
18003eefb:	0f 11 55 d0          	movups %xmm2,-0x30(%rbp)
18003eeff:	0f 11 45 e0          	movups %xmm0,-0x20(%rbp)
18003ef03:	85 c0                	test   %eax,%eax
18003ef05:	74 08                	je     0x18003ef0f
18003ef07:	41 b9 10 00 00 c0    	mov    $0xc0000010,%r9d
18003ef0d:	eb 42                	jmp    0x18003ef51
18003ef0f:	8b 45 d4             	mov    -0x2c(%rbp),%eax
18003ef12:	45 89 08             	mov    %r9d,(%r8)
18003ef15:	85 c0                	test   %eax,%eax
18003ef17:	74 2a                	je     0x18003ef43
18003ef19:	83 e8 01             	sub    $0x1,%eax
18003ef1c:	74 0f                	je     0x18003ef2d
18003ef1e:	83 f8 01             	cmp    $0x1,%eax
18003ef21:	75 e4                	jne    0x18003ef07
18003ef23:	41 c7 40 04 02 00 00 	movl   $0x2,0x4(%r8)
18003ef2a:	00
18003ef2b:	eb 08                	jmp    0x18003ef35
18003ef2d:	41 c7 40 04 01 00 00 	movl   $0x1,0x4(%r8)
18003ef34:	00
18003ef35:	48 8b 45 d4          	mov    -0x2c(%rbp),%rax
18003ef39:	48 c1 e8 20          	shr    $0x20,%rax
18003ef3d:	41 89 40 08          	mov    %eax,0x8(%r8)
18003ef41:	eb 0e                	jmp    0x18003ef51
18003ef43:	0f 10 45 d8          	movups -0x28(%rbp),%xmm0
18003ef47:	45 89 48 04          	mov    %r9d,0x4(%r8)
18003ef4b:	f3 41 0f 7f 40 08    	movdqu %xmm0,0x8(%r8)
18003ef51:	41 8b c1             	mov    %r9d,%eax
18003ef54:	48 83 c4 30          	add    $0x30,%rsp
18003ef58:	5d                   	pop    %rbp
18003ef59:	c3                   	ret
18003ef5a:	cc                   	int3
18003ef5b:	cc                   	int3
18003ef5c:	44 89 4c 24 20       	mov    %r9d,0x20(%rsp)
18003ef61:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18003ef66:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
18003ef6b:	55                   	push   %rbp
18003ef6c:	53                   	push   %rbx
18003ef6d:	56                   	push   %rsi
18003ef6e:	57                   	push   %rdi
18003ef6f:	41 54                	push   %r12
18003ef71:	41 55                	push   %r13
18003ef73:	41 56                	push   %r14
18003ef75:	41 57                	push   %r15
18003ef77:	48 8b ec             	mov    %rsp,%rbp
18003ef7a:	48 83 ec 48          	sub    $0x48,%rsp
18003ef7e:	44 8b 71 04          	mov    0x4(%rcx),%r14d
18003ef82:	33 ff                	xor    %edi,%edi
18003ef84:	4c 8b 49 08          	mov    0x8(%rcx),%r9
18003ef88:	4d 8b e8             	mov    %r8,%r13
18003ef8b:	48 8b 45 78          	mov    0x78(%rbp),%rax
18003ef8f:	4c 8b c2             	mov    %rdx,%r8
18003ef92:	48 8b da             	mov    %rdx,%rbx
18003ef95:	89 7d ec             	mov    %edi,-0x14(%rbp)
18003ef98:	4c 8b e1             	mov    %rcx,%r12
18003ef9b:	4c 89 4d e0          	mov    %r9,-0x20(%rbp)
18003ef9f:	45 8b fe             	mov    %r14d,%r15d
18003efa2:	48 89 7d d8          	mov    %rdi,-0x28(%rbp)
18003efa6:	41 c1 e7 03          	shl    $0x3,%r15d
18003efaa:	49 8b d5             	mov    %r13,%rdx
18003efad:	48 2b d3             	sub    %rbx,%rdx
18003efb0:	89 38                	mov    %edi,(%rax)
18003efb2:	41 8b c7             	mov    %r15d,%eax
18003efb5:	41 8b cd             	mov    %r13d,%ecx
18003efb8:	41 2b c8             	sub    %r8d,%ecx
18003efbb:	41 b2 01             	mov    $0x1,%r10b
18003efbe:	48 3b d0             	cmp    %rax,%rdx
18003efc1:	44 88 55 60          	mov    %r10b,0x60(%rbp)
18003efc5:	41 8b f6             	mov    %r14d,%esi
18003efc8:	44 0f 42 f9          	cmovb  %ecx,%r15d
18003efcc:	44 89 7d 58          	mov    %r15d,0x58(%rbp)
18003efd0:	49 3b dd             	cmp    %r13,%rbx
18003efd3:	0f 83 f5 00 00 00    	jae    0x18003f0ce
18003efd9:	4c 8b 65 70          	mov    0x70(%rbp),%r12
18003efdd:	4c 8b 7d 68          	mov    0x68(%rbp),%r15
18003efe1:	83 fe 02             	cmp    $0x2,%esi
18003efe4:	0f 82 d4 00 00 00    	jb     0x18003f0be
18003efea:	49 8b c7             	mov    %r15,%rax
18003efed:	4c 8d 4d d8          	lea    -0x28(%rbp),%r9
18003eff1:	4d 8b c4             	mov    %r12,%r8
18003eff4:	48 8b d3             	mov    %rbx,%rdx
18003eff7:	b9 01 00 00 00       	mov    $0x1,%ecx
18003effc:	ff d0                	call   *%rax
18003effe:	0f 1f 00             	nopl   (%rax)
18003f001:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
18003f005:	48 85 c0             	test   %rax,%rax
18003f008:	4c 8b 4d e0          	mov    -0x20(%rbp),%r9
18003f00c:	49 8b d5             	mov    %r13,%rdx
18003f00f:	49 0f 44 cd          	cmove  %r13,%rcx
18003f013:	4c 8b c0             	mov    %rax,%r8
18003f016:	49 3b cd             	cmp    %r13,%rcx
18003f019:	41 ba 00 80 00 00    	mov    $0x8000,%r10d
18003f01f:	48 0f 42 d1          	cmovb  %rcx,%rdx
18003f023:	48 89 55 d8          	mov    %rdx,-0x28(%rbp)
18003f027:	48 3b d3             	cmp    %rbx,%rdx
18003f02a:	76 36                	jbe    0x18003f062
18003f02c:	48 8b c2             	mov    %rdx,%rax
18003f02f:	48 2b c3             	sub    %rbx,%rax
18003f032:	49 3b c2             	cmp    %r10,%rax
18003f035:	76 0d                	jbe    0x18003f044
18003f037:	66 45 89 11          	mov    %r10w,(%r9)
18003f03b:	49 03 da             	add    %r10,%rbx
18003f03e:	48 8b 55 d8          	mov    -0x28(%rbp),%rdx
18003f042:	eb 12                	jmp    0x18003f056
18003f044:	66 2b d3             	sub    %bx,%dx
18003f047:	66 41 0b d2          	or     %r10w,%dx
18003f04b:	66 41 89 11          	mov    %dx,(%r9)
18003f04f:	48 8b 55 d8          	mov    -0x28(%rbp),%rdx
18003f053:	48 8b da             	mov    %rdx,%rbx
18003f056:	83 c6 fe             	add    $0xfffffffe,%esi
18003f059:	49 83 c1 02          	add    $0x2,%r9
18003f05d:	83 fe 02             	cmp    $0x2,%esi
18003f060:	73 c5                	jae    0x18003f027
18003f062:	4c 89 4d e0          	mov    %r9,-0x20(%rbp)
18003f066:	83 fe 02             	cmp    $0x2,%esi
18003f069:	72 4a                	jb     0x18003f0b5
18003f06b:	49 8b c8             	mov    %r8,%rcx
18003f06e:	4d 85 c0             	test   %r8,%r8
18003f071:	74 3e                	je     0x18003f0b1
18003f073:	40 88 7d 60          	mov    %dil,0x60(%rbp)
18003f077:	4d 3b c2             	cmp    %r10,%r8
18003f07a:	76 0b                	jbe    0x18003f087
18003f07c:	4d 2b c2             	sub    %r10,%r8
18003f07f:	0f b7 c7             	movzwl %di,%eax
18003f082:	49 8b ca             	mov    %r10,%rcx
18003f085:	eb 17                	jmp    0x18003f09e
18003f087:	41 0f b7 c0          	movzwl %r8w,%eax
18003f08b:	41 ba ff 7f 00 00    	mov    $0x7fff,%r10d
18003f091:	66 41 23 c2          	and    %r10w,%ax
18003f095:	4c 8b c7             	mov    %rdi,%r8
18003f098:	41 ba 00 80 00 00    	mov    $0x8000,%r10d
18003f09e:	66 41 89 01          	mov    %ax,(%r9)
18003f0a2:	48 03 d9             	add    %rcx,%rbx
18003f0a5:	49 83 c1 02          	add    $0x2,%r9
18003f0a9:	83 c6 fe             	add    $0xfffffffe,%esi
18003f0ac:	83 fe 02             	cmp    $0x2,%esi
18003f0af:	73 ba                	jae    0x18003f06b
18003f0b1:	4c 89 4d e0          	mov    %r9,-0x20(%rbp)
18003f0b5:	49 3b dd             	cmp    %r13,%rbx