180089ee6:	4c 8b ea             	mov    %rdx,%r13
180089ee9:	4d 85 c9             	test   %r9,%r9
180089eec:	0f 84 9e 01 00 00    	je     0x18008a090
180089ef2:	49 39 39             	cmp    %rdi,(%r9)
180089ef5:	0f 84 95 01 00 00    	je     0x18008a090
180089efb:	41 8b 41 08          	mov    0x8(%r9),%eax
180089eff:	85 c0                	test   %eax,%eax
180089f01:	0f 84 89 01 00 00    	je     0x18008a090
180089f07:	48 85 d2             	test   %rdx,%rdx
180089f0a:	0f 84 80 01 00 00    	je     0x18008a090
180089f10:	41 83 f8 02          	cmp    $0x2,%r8d
180089f14:	8d 4f 2c             	lea    0x2c(%rdi),%ecx
180089f17:	44 8d 77 44          	lea    0x44(%rdi),%r14d
180089f1b:	44 0f 45 f1          	cmovne %ecx,%r14d
180089f1f:	41 8d 2c 06          	lea    (%r14,%rax,1),%ebp
180089f23:	3b e8                	cmp    %eax,%ebp
180089f25:	0f 82 5e 01 00 00    	jb     0x18008a089
180089f2b:	8d 85 ff 0f 00 00    	lea    0xfff(%rbp),%eax
180089f31:	44 8b fd             	mov    %ebp,%r15d
180089f34:	8b d0                	mov    %eax,%edx
180089f36:	48 25 00 f0 ff ff    	and    $0xfffffffffffff000,%rax
180089f3c:	49 3b c7             	cmp    %r15,%rax
180089f3f:	0f 82 44 01 00 00    	jb     0x18008a089
180089f45:	89 7c 24 30          	mov    %edi,0x30(%rsp)
180089f49:	49 8d 4b 20          	lea    0x20(%r11),%rcx
180089f4d:	49 89 7b b0          	mov    %rdi,-0x50(%r11)
180089f51:	41 b9 00 00 00 10    	mov    $0x10000000,%r9d
180089f57:	48 c1 ea 0c          	shr    $0xc,%rdx
180089f5b:	41 b8 04 00 00 e0    	mov    $0xe0000004,%r8d
180089f61:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%rsp)
180089f68:	00
180089f69:	e8 7e d9 00 00       	call   0x1800978ec
180089f6e:	85 c0                	test   %eax,%eax
180089f70:	0f 88 1f 01 00 00    	js     0x18008a095
180089f76:	48 8b 9c 24 98 00 00 	mov    0x98(%rsp),%rbx
180089f7d:	00
180089f7e:	48 8d 8c 24 98 00 00 	lea    0x98(%rsp),%rcx
180089f85:	00
180089f86:	48 8b d3             	mov    %rbx,%rdx
180089f89:	48 89 9c 24 98 00 00 	mov    %rbx,0x98(%rsp)
180089f90:	00
180089f91:	41 b9 00 00 04 00    	mov    $0x40000,%r9d
180089f97:	89 7c 24 20          	mov    %edi,0x20(%rsp)
180089f9b:	45 8b c7             	mov    %r15d,%r8d
180089f9e:	e8 7d 05 01 00       	call   0x18009a520
180089fa3:	8b f8                	mov    %eax,%edi
180089fa5:	85 c0                	test   %eax,%eax
180089fa7:	0f 88 9a 00 00 00    	js     0x18008a047
180089fad:	48 8b bc 24 98 00 00 	mov    0x98(%rsp),%rdi
180089fb4:	00
180089fb5:	45 8b c7             	mov    %r15d,%r8d
180089fb8:	48 8b cf             	mov    %rdi,%rcx
180089fbb:	33 d2                	xor    %edx,%edx
180089fbd:	e8 be bc 0a 00       	call   0x180135c80
180089fc2:	8b 46 08             	mov    0x8(%rsi),%eax
180089fc5:	89 47 24             	mov    %eax,0x24(%rdi)
180089fc8:	44 89 67 20          	mov    %r12d,0x20(%rdi)
180089fcc:	44 89 77 28          	mov    %r14d,0x28(%rdi)
180089fd0:	41 0f 10 45 00       	movups 0x0(%r13),%xmm0
180089fd5:	f3 0f 7f 47 10       	movdqu %xmm0,0x10(%rdi)
180089fda:	8b 4f 28             	mov    0x28(%rdi),%ecx
180089fdd:	44 8b 47 24          	mov    0x24(%rdi),%r8d
180089fe1:	48 03 cf             	add    %rdi,%rcx
180089fe4:	48 8b 16             	mov    (%rsi),%rdx
180089fe7:	e8 d4 b9 0a 00       	call   0x1801359c0
180089fec:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
180089ff3:	00
180089ff4:	48 85 c0             	test   %rax,%rax
180089ff7:	74 07                	je     0x18008a000
180089ff9:	0f 10 00             	movups (%rax),%xmm0
180089ffc:	f3 0f 7f 07          	movdqu %xmm0,(%rdi)
18008a000:	41 83 fc 02          	cmp    $0x2,%r12d
18008a004:	72 1f                	jb     0x18008a025
18008a006:	33 d2                	xor    %edx,%edx
18008a008:	48 8d 4f 2c          	lea    0x2c(%rdi),%rcx
18008a00c:	e8 3f 6e 00 00       	call   0x180090e50
18008a011:	85 c0                	test   %eax,%eax
18008a013:	79 07                	jns    0x18008a01c
18008a015:	0f 57 c0             	xorps  %xmm0,%xmm0
18008a018:	0f 11 47 2c          	movups %xmm0,0x2c(%rdi)
18008a01c:	e8 f3 a9 f9 ff       	call   0x180024a14
18008a021:	48 89 47 3c          	mov    %rax,0x3c(%rdi)
18008a025:	45 33 c0             	xor    %r8d,%r8d
18008a028:	49 8b d7             	mov    %r15,%rdx
18008a02b:	48 8b cf             	mov    %rdi,%rcx
18008a02e:	e8 39 08 01 00       	call   0x18009a86c
18008a033:	b9 1c 00 00 00       	mov    $0x1c,%ecx
18008a038:	e8 13 fe 00 00       	call   0x180099e50
18008a03d:	48 85 c0             	test   %rax,%rax
18008a040:	75 11                	jne    0x18008a053
18008a042:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
18008a047:	48 8b cb             	mov    %rbx,%rcx
18008a04a:	e8 0d db 00 00       	call   0x180097b5c
18008a04f:	8b c7                	mov    %edi,%eax
18008a051:	eb 42                	jmp    0x18008a095
18008a053:	48 89 58 10          	mov    %rbx,0x10(%rax)
18008a057:	48 8d 15 f2 28 0e 00 	lea    0xe28f2(%rip),%rdx        # 0x18016c950
18008a05e:	89 68 18             	mov    %ebp,0x18(%rax)
18008a061:	48 8b 0d f0 28 0e 00 	mov    0xe28f0(%rip),%rcx        # 0x18016c958
18008a068:	48 39 11             	cmp    %rdx,(%rcx)
18008a06b:	74 07                	je     0x18008a074
18008a06d:	b9 03 00 00 00       	mov    $0x3,%ecx
18008a072:	cd 29                	int    $0x29
18008a074:	48 89 10             	mov    %rdx,(%rax)
18008a077:	48 89 48 08          	mov    %rcx,0x8(%rax)
18008a07b:	48 89 01             	mov    %rax,(%rcx)
18008a07e:	48 89 05 d3 28 0e 00 	mov    %rax,0xe28d3(%rip)        # 0x18016c958
18008a085:	33 c0                	xor    %eax,%eax
18008a087:	eb 0c                	jmp    0x18008a095
18008a089:	b8 95 00 00 c0       	mov    $0xc0000095,%eax
18008a08e:	eb 05                	jmp    0x18008a095
18008a090:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18008a095:	48 8b 9c 24 88 00 00 	mov    0x88(%rsp),%rbx
18008a09c:	00
18008a09d:	48 83 c4 40          	add    $0x40,%rsp
18008a0a1:	41 5f                	pop    %r15
18008a0a3:	41 5e                	pop    %r14
18008a0a5:	41 5d                	pop    %r13
18008a0a7:	41 5c                	pop    %r12
18008a0a9:	5f                   	pop    %rdi
18008a0aa:	5e                   	pop    %rsi
18008a0ab:	5d                   	pop    %rbp
18008a0ac:	c3                   	ret
18008a0ad:	cc                   	int3
18008a0ae:	cc                   	int3
18008a0af:	cc                   	int3
18008a0b0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18008a0b5:	57                   	push   %rdi
18008a0b6:	48 83 ec 30          	sub    $0x30,%rsp
18008a0ba:	48 8b f9             	mov    %rcx,%rdi
18008a0bd:	48 85 c9             	test   %rcx,%rcx
18008a0c0:	75 07                	jne    0x18008a0c9
18008a0c2:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18008a0c7:	eb 43                	jmp    0x18008a10c
18008a0c9:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18008a0ce:	e8 45 00 00 00       	call   0x18008a118
18008a0d3:	8b d8                	mov    %eax,%ebx
18008a0d5:	85 c0                	test   %eax,%eax
18008a0d7:	78 33                	js     0x18008a10c
18008a0d9:	48 8b 4c 24 20       	mov    0x20(%rsp),%rcx
18008a0de:	48 3b 4c 24 28       	cmp    0x28(%rsp),%rcx
18008a0e3:	74 11                	je     0x18008a0f6
18008a0e5:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18008a0ea:	bb bd 00 00 c0       	mov    $0xc00000bd,%ebx
18008a0ef:	e8 6c fd ff ff       	call   0x180089e60
18008a0f4:	eb 14                	jmp    0x18008a10a
18008a0f6:	f2 0f 10 41 10       	movsd  0x10(%rcx),%xmm0
18008a0fb:	f2 0f 11 07          	movsd  %xmm0,(%rdi)
18008a0ff:	8b 41 18             	mov    0x18(%rcx),%eax
18008a102:	89 47 08             	mov    %eax,0x8(%rdi)
18008a105:	e8 f2 fe 00 00       	call   0x180099ffc
18008a10a:	8b c3                	mov    %ebx,%eax
18008a10c:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18008a111:	48 83 c4 30          	add    $0x30,%rsp
18008a115:	5f                   	pop    %rdi
18008a116:	c3                   	ret
18008a117:	cc                   	int3
18008a118:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18008a11d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18008a122:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
18008a127:	55                   	push   %rbp
18008a128:	41 54                	push   %r12
18008a12a:	41 55                	push   %r13
18008a12c:	41 56                	push   %r14
18008a12e:	41 57                	push   %r15
18008a130:	48 8b ec             	mov    %rsp,%rbp
18008a133:	48 83 ec 60          	sub    $0x60,%rsp
18008a137:	4d 8b e0             	mov    %r8,%r12
18008a13a:	4c 8b ea             	mov    %rdx,%r13
18008a13d:	48 8b d9             	mov    %rcx,%rbx
18008a140:	4d 85 c0             	test   %r8,%r8
18008a143:	75 0a                	jne    0x18008a14f
18008a145:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18008a14a:	e9 a3 01 00 00       	jmp    0x18008a2f2
18008a14f:	83 65 f8 00          	andl   $0x0,-0x8(%rbp)
18008a153:	48 8d 45 e8          	lea    -0x18(%rbp),%rax
18008a157:	48 83 65 e8 00       	andq   $0x0,-0x18(%rbp)
18008a15c:	4c 8d 45 e0          	lea    -0x20(%rbp),%r8
18008a160:	83 65 f4 00          	andl   $0x0,-0xc(%rbp)
18008a164:	ba 04 00 00 e0       	mov    $0xe0000004,%edx
18008a169:	83 65 f0 00          	andl   $0x0,-0x10(%rbp)
18008a16d:	48 89 59 08          	mov    %rbx,0x8(%rcx)
18008a171:	48 89 19             	mov    %rbx,(%rcx)
18008a174:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
18008a178:	48 89 45 e0          	mov    %rax,-0x20(%rbp)
18008a17c:	e8 4b df 00 00       	call   0x1800980cc
18008a181:	8b f8                	mov    %eax,%edi
18008a183:	85 c0                	test   %eax,%eax
18008a185:	0f 88 49 01 00 00    	js     0x18008a2d4
18008a18b:	4c 8b 7d d0          	mov    -0x30(%rbp),%r15
18008a18f:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
18008a193:	4c 3b f8             	cmp    %rax,%r15
18008a196:	0f 84 2b 01 00 00    	je     0x18008a2c7
18008a19c:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
18008a1a1:	49 8d 07             	lea    (%r15),%rax
18008a1a4:	4c 8b 70 20          	mov    0x20(%rax),%r14
18008a1a8:	48 8d 4d 40          	lea    0x40(%rbp),%rcx
18008a1ac:	48 8b 50 10          	mov    0x10(%rax),%rdx
18008a1b0:	45 33 c9             	xor    %r9d,%r9d
18008a1b3:	4d 8b 3f             	mov    (%r15),%r15
18008a1b6:	49 c1 e6 0c          	shl    $0xc,%r14
18008a1ba:	4d 8b c6             	mov    %r14,%r8
18008a1bd:	48 c1 e2 0c          	shl    $0xc,%rdx
18008a1c1:	e8 5a 03 01 00       	call   0x18009a520
18008a1c6:	8b f8                	mov    %eax,%edi
18008a1c8:	85 c0                	test   %eax,%eax
18008a1ca:	0f 88 04 01 00 00    	js     0x18008a2d4
18008a1d0:	48 8b 75 40          	mov    0x40(%rbp),%rsi
18008a1d4:	8b 46 20             	mov    0x20(%rsi),%eax
18008a1d7:	ff c8                	dec    %eax
18008a1d9:	83 f8 01             	cmp    $0x1,%eax
18008a1dc:	0f 87 b6 00 00 00    	ja     0x18008a298
18008a1e2:	49 8b 04 24          	mov    (%r12),%rax
18008a1e6:	48 3b 46 10          	cmp    0x10(%rsi),%rax
18008a1ea:	0f 85 a8 00 00 00    	jne    0x18008a298
18008a1f0:	49 8b 44 24 08       	mov    0x8(%r12),%rax
18008a1f5:	48 3b 46 18          	cmp    0x18(%rsi),%rax
18008a1f9:	0f 85 99 00 00 00    	jne    0x18008a298
18008a1ff:	4d 85 ed             	test   %r13,%r13
18008a202:	74 17                	je     0x18008a21b
18008a204:	49 8b 45 00          	mov    0x0(%r13),%rax
18008a208:	48 3b 06             	cmp    (%rsi),%rax
18008a20b:	0f 85 87 00 00 00    	jne    0x18008a298
18008a211:	49 8b 45 08          	mov    0x8(%r13),%rax
18008a215:	48 3b 46 08          	cmp    0x8(%rsi),%rax
18008a219:	75 7d                	jne    0x18008a298
18008a21b:	b9 1c 00 00 00       	mov    $0x1c,%ecx
18008a220:	e8 2b fc 00 00       	call   0x180099e50
18008a225:	48 8b c8             	mov    %rax,%rcx
18008a228:	48 85 c0             	test   %rax,%rax
18008a22b:	0f 84 81 00 00 00    	je     0x18008a2b2
18008a231:	44 89 70 18          	mov    %r14d,0x18(%rax)
18008a235:	48 89 70 10          	mov    %rsi,0x10(%rax)
18008a239:	83 7e 20 01          	cmpl   $0x1,0x20(%rsi)
18008a23d:	74 22                	je     0x18008a261
18008a23f:	48 8b 13             	mov    (%rbx),%rdx
18008a242:	eb 18                	jmp    0x18008a25c
18008a244:	4c 8b 42 10          	mov    0x10(%rdx),%r8
18008a248:	41 83 78 20 01       	cmpl   $0x1,0x20(%r8)
18008a24d:	74 2e                	je     0x18008a27d
18008a24f:	48 8b 46 3c          	mov    0x3c(%rsi),%rax
18008a253:	49 39 40 3c          	cmp    %rax,0x3c(%r8)
18008a257:	77 24                	ja     0x18008a27d
18008a259:	48 8b 12             	mov    (%rdx),%rdx
18008a25c:	48 3b d3             	cmp    %rbx,%rdx
18008a25f:	75 e3                	jne    0x18008a244
18008a261:	48 8b 43 08          	mov    0x8(%rbx),%rax
18008a265:	48 39 18             	cmp    %rbx,(%rax)
18008a268:	75 41                	jne    0x18008a2ab
18008a26a:	48 89 19             	mov    %rbx,(%rcx)
18008a26d:	48 89 41 08          	mov    %rax,0x8(%rcx)
18008a271:	48 89 08             	mov    %rcx,(%rax)
18008a274:	48 89 4b 08          	mov    %rcx,0x8(%rbx)
18008a278:	e9 12 ff ff ff       	jmp    0x18008a18f
18008a27d:	48 89 11             	mov    %rdx,(%rcx)
18008a280:	48 8b 42 08          	mov    0x8(%rdx),%rax
18008a284:	48 89 41 08          	mov    %rax,0x8(%rcx)
18008a288:	48 8b 42 08          	mov    0x8(%rdx),%rax
18008a28c:	48 89 08             	mov    %rcx,(%rax)
18008a28f:	48 89 4a 08          	mov    %rcx,0x8(%rdx)
18008a293:	e9 f7 fe ff ff       	jmp    0x18008a18f
18008a298:	45 33 c0             	xor    %r8d,%r8d
18008a29b:	49 8b d6             	mov    %r14,%rdx
18008a29e:	48 8b ce             	mov    %rsi,%rcx
18008a2a1:	e8 c6 05 01 00       	call   0x18009a86c
18008a2a6:	e9 e4 fe ff ff       	jmp    0x18008a18f
18008a2ab:	b9 03 00 00 00       	mov    $0x3,%ecx
18008a2b0:	cd 29                	int    $0x29
18008a2b2:	45 33 c0             	xor    %r8d,%r8d
18008a2b5:	49 8b d6             	mov    %r14,%rdx
18008a2b8:	48 8b ce             	mov    %rsi,%rcx
18008a2bb:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
18008a2c0:	e8 a7 05 01 00       	call   0x18009a86c
18008a2c5:	eb 0d                	jmp    0x18008a2d4
18008a2c7:	33 ff                	xor    %edi,%edi
18008a2c9:	b8 25 02 00 c0       	mov    $0xc0000225,%eax
18008a2ce:	48 39 1b             	cmp    %rbx,(%rbx)
18008a2d1:	0f 44 f8             	cmove  %eax,%edi
18008a2d4:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
18008a2d8:	e8 6f de 00 00       	call   0x18009814c
18008a2dd:	85 ff                	test   %edi,%edi
18008a2df:	79 0f                	jns    0x18008a2f0
18008a2e1:	48 8b cb             	mov    %rbx,%rcx
18008a2e4:	e8 77 fb ff ff       	call   0x180089e60
18008a2e9:	48 89 5b 08          	mov    %rbx,0x8(%rbx)
18008a2ed:	48 89 1b             	mov    %rbx,(%rbx)
18008a2f0:	8b c7                	mov    %edi,%eax
18008a2f2:	4c 8d 5c 24 60       	lea    0x60(%rsp),%r11
18008a2f7:	49 8b 5b 30          	mov    0x30(%r11),%rbx
18008a2fb:	49 8b 73 38          	mov    0x38(%r11),%rsi
18008a2ff:	49 8b 7b 48          	mov    0x48(%r11),%rdi
18008a303:	49 8b e3             	mov    %r11,%rsp
18008a306:	41 5f                	pop    %r15
18008a308:	41 5e                	pop    %r14
18008a30a:	41 5d                	pop    %r13
18008a30c:	41 5c                	pop    %r12
18008a30e:	5d                   	pop    %rbp
18008a30f:	c3                   	ret
18008a310:	cc                   	int3
18008a311:	cc                   	int3
18008a312:	cc                   	int3
18008a313:	cc                   	int3
18008a314:	40 53                	rex push %rbx
18008a316:	48 83 ec 30          	sub    $0x30,%rsp
18008a31a:	48 8b d9             	mov    %rcx,%rbx
18008a31d:	48 85 c9             	test   %rcx,%rcx
18008a320:	75 07                	jne    0x18008a329
18008a322:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18008a327:	eb 70                	jmp    0x18008a399
18008a329:	b9 1c 00 00 00       	mov    $0x1c,%ecx
18008a32e:	e8 1d fb 00 00       	call   0x180099e50
18008a333:	48 8b c8             	mov    %rax,%rcx
18008a336:	48 85 c0             	test   %rax,%rax
18008a339:	75 07                	jne    0x18008a342
18008a33b:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
18008a340:	eb 57                	jmp    0x18008a399
18008a342:	f2 0f 10 03          	movsd  (%rbx),%xmm0
18008a346:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
18008a34b:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18008a350:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
18008a355:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
18008a35a:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18008a35f:	f2 0f 11 41 10       	movsd  %xmm0,0x10(%rcx)
18008a364:	8b 43 08             	mov    0x8(%rbx),%eax
18008a367:	89 41 18             	mov    %eax,0x18(%rcx)
18008a36a:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
18008a36f:	48 39 10             	cmp    %rdx,(%rax)
18008a372:	74 07                	je     0x18008a37b
18008a374:	b9 03 00 00 00       	mov    $0x3,%ecx
18008a379:	cd 29                	int    $0x29
18008a37b:	48 89 41 08          	mov    %rax,0x8(%rcx)
18008a37f:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
18008a384:	48 89 11             	mov    %rdx,(%rcx)
18008a387:	48 89 08             	mov    %rcx,(%rax)
18008a38a:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
18008a38f:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18008a394:	e8 c7 fa ff ff       	call   0x180089e60
18008a399:	48 83 c4 30          	add    $0x30,%rsp
18008a39d:	5b                   	pop    %rbx
18008a39e:	c3                   	ret
18008a39f:	cc                   	int3
18008a3a0:	4c 8b dc             	mov    %rsp,%r11
18008a3a3:	49 89 5b 08          	mov    %rbx,0x8(%r11)
18008a3a7:	49 89 6b 10          	mov    %rbp,0x10(%r11)
18008a3ab:	56                   	push   %rsi
18008a3ac:	57                   	push   %rdi
18008a3ad:	41 54                	push   %r12
18008a3af:	41 56                	push   %r14
18008a3b1:	41 57                	push   %r15
18008a3b3:	48 83 ec 40          	sub    $0x40,%rsp