18003c339:	41 57                	push   %r15
18003c33b:	48 83 ec 50          	sub    $0x50,%rsp
18003c33f:	83 60 08 00          	andl   $0x0,0x8(%rax)
18003c343:	45 8a e0             	mov    %r8b,%r12b
18003c346:	44 88 40 b0          	mov    %r8b,-0x50(%rax)
18003c34a:	48 8b fa             	mov    %rdx,%rdi
18003c34d:	48 83 60 a8 00       	andq   $0x0,-0x58(%rax)
18003c352:	4c 8d 40 08          	lea    0x8(%rax),%r8
18003c356:	8b d9                	mov    %ecx,%ebx
18003c358:	89 48 c8             	mov    %ecx,-0x38(%rax)
18003c35b:	48 8d 15 6e ff ff ff 	lea    -0x92(%rip),%rdx        # 0x18003c2d0
18003c362:	c7 40 c0 01 00 00 00 	movl   $0x1,-0x40(%rax)
18003c369:	48 8d 48 c0          	lea    -0x40(%rax),%rcx
18003c36d:	45 33 c9             	xor    %r9d,%r9d
18003c370:	e8 1f fd ff ff       	call   0x18003c094
18003c375:	85 c0                	test   %eax,%eax
18003c377:	0f 88 d6 00 00 00    	js     0x18003c453
18003c37d:	8b 94 24 80 00 00 00 	mov    0x80(%rsp),%edx
18003c384:	8b 47 0c             	mov    0xc(%rdi),%eax
18003c387:	8b ca                	mov    %edx,%ecx
18003c389:	48 c1 e1 02          	shl    $0x2,%rcx
18003c38d:	48 3b c1             	cmp    %rcx,%rax
18003c390:	73 12                	jae    0x18003c3a4
18003c392:	8b c2                	mov    %edx,%eax
18003c394:	c1 e0 02             	shl    $0x2,%eax
18003c397:	89 47 0c             	mov    %eax,0xc(%rdi)
18003c39a:	b8 23 00 00 c0       	mov    $0xc0000023,%eax
18003c39f:	e9 af 00 00 00       	jmp    0x18003c453
18003c3a4:	48 8d 94 24 98 00 00 	lea    0x98(%rsp),%rdx
18003c3ab:	00
18003c3ac:	8b cb                	mov    %ebx,%ecx
18003c3ae:	e8 0d ab fe ff       	call   0x180026ec0
18003c3b3:	48 8b 84 24 98 00 00 	mov    0x98(%rsp),%rax
18003c3ba:	00
18003c3bb:	48 8d 68 10          	lea    0x10(%rax),%rbp
18003c3bf:	83 7d 00 06          	cmpl   $0x6,0x0(%rbp)
18003c3c3:	74 0a                	je     0x18003c3cf
18003c3c5:	be 48 00 00 00       	mov    $0x48,%esi
18003c3ca:	8d 5e e0             	lea    -0x20(%rsi),%ebx
18003c3cd:	eb 09                	jmp    0x18003c3d8
18003c3cf:	8b 58 08             	mov    0x8(%rax),%ebx
18003c3d2:	83 eb 10             	sub    $0x10,%ebx
18003c3d5:	8d 73 20             	lea    0x20(%rbx),%esi
18003c3d8:	8b ce                	mov    %esi,%ecx
18003c3da:	44 8b fe             	mov    %esi,%r15d
18003c3dd:	e8 6e da 05 00       	call   0x180099e50
18003c3e2:	4c 8b f0             	mov    %rax,%r14
18003c3e5:	48 85 c0             	test   %rax,%rax
18003c3e8:	75 07                	jne    0x18003c3f1
18003c3ea:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18003c3ef:	eb 60                	jmp    0x18003c451
18003c3f1:	4d 8b c7             	mov    %r15,%r8
18003c3f4:	33 d2                	xor    %edx,%edx
18003c3f6:	49 8b ce             	mov    %r14,%rcx
18003c3f9:	e8 82 98 0f 00       	call   0x180135c80
18003c3fe:	44 8b c3             	mov    %ebx,%r8d
18003c401:	49 8d 4e 20          	lea    0x20(%r14),%rcx
18003c405:	48 8b d5             	mov    %rbp,%rdx
18003c408:	41 c7 06 06 00 00 00 	movl   $0x6,(%r14)
18003c40f:	41 89 76 08          	mov    %esi,0x8(%r14)
18003c413:	e8 a8 95 0f 00       	call   0x1801359c0
18003c418:	48 8b 07             	mov    (%rdi),%rax
18003c41b:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
18003c420:	83 67 08 00          	andl   $0x0,0x8(%rdi)
18003c424:	48 8d 15 ad fe ff ff 	lea    -0x153(%rip),%rdx        # 0x18003c2d8
18003c42b:	44 88 64 24 28       	mov    %r12b,0x28(%rsp)
18003c430:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
18003c435:	4c 8b cf             	mov    %rdi,%r9
18003c438:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18003c43d:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
18003c442:	e8 4d fc ff ff       	call   0x18003c094
18003c447:	8b d8                	mov    %eax,%ebx
18003c449:	49 8b ce             	mov    %r14,%rcx
18003c44c:	e8 ab db 05 00       	call   0x180099ffc
18003c451:	8b c3                	mov    %ebx,%eax
18003c453:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
18003c458:	49 8b 5b 38          	mov    0x38(%r11),%rbx
18003c45c:	49 8b 6b 40          	mov    0x40(%r11),%rbp
18003c460:	49 8b e3             	mov    %r11,%rsp
18003c463:	41 5f                	pop    %r15
18003c465:	41 5e                	pop    %r14
18003c467:	41 5c                	pop    %r12
18003c469:	5f                   	pop    %rdi
18003c46a:	5e                   	pop    %rsi
18003c46b:	c3                   	ret
18003c46c:	cc                   	int3
18003c46d:	cc                   	int3
18003c46e:	cc                   	int3
18003c46f:	cc                   	int3
18003c470:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18003c475:	44 88 44 24 18       	mov    %r8b,0x18(%rsp)
18003c47a:	55                   	push   %rbp
18003c47b:	56                   	push   %rsi
18003c47c:	57                   	push   %rdi
18003c47d:	41 54                	push   %r12
18003c47f:	41 55                	push   %r13
18003c481:	41 56                	push   %r14
18003c483:	41 57                	push   %r15
18003c485:	48 8d ac 24 40 ff ff 	lea    -0xc0(%rsp),%rbp
18003c48c:	ff
18003c48d:	48 81 ec c0 01 00 00 	sub    $0x1c0,%rsp
18003c494:	4c 8b fa             	mov    %rdx,%r15
18003c497:	8b f9                	mov    %ecx,%edi
18003c499:	48 8d 55 a0          	lea    -0x60(%rbp),%rdx
18003c49d:	e8 86 a8 fe ff       	call   0x180026d28
18003c4a2:	85 c0                	test   %eax,%eax
18003c4a4:	0f 88 1b 02 00 00    	js     0x18003c6c5
18003c4aa:	83 65 d0 00          	andl   $0x0,-0x30(%rbp)
18003c4ae:	48 8d 55 a0          	lea    -0x60(%rbp),%rdx
18003c4b2:	8b cf                	mov    %edi,%ecx
18003c4b4:	48 c7 45 c8 01 00 00 	movq   $0x1,-0x38(%rbp)
18003c4bb:	00
18003c4bc:	e8 cf a8 fe ff       	call   0x180026d90
18003c4c1:	45 33 c9             	xor    %r9d,%r9d
18003c4c4:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
18003c4c9:	8b cf                	mov    %edi,%ecx
18003c4cb:	45 8d 41 60          	lea    0x60(%r9),%r8d
18003c4cf:	e8 24 a7 fe ff       	call   0x180026bf8
18003c4d4:	85 c0                	test   %eax,%eax
18003c4d6:	0f 88 e9 01 00 00    	js     0x18003c6c5
18003c4dc:	8b 45 90             	mov    -0x70(%rbp),%eax
18003c4df:	8b 5d 94             	mov    -0x6c(%rbp),%ebx
18003c4e2:	48 0f af d8          	imul   %rax,%rbx
18003c4e6:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
18003c4eb:	48 3b d8             	cmp    %rax,%rbx
18003c4ee:	0f 87 cc 01 00 00    	ja     0x18003c6c0
18003c4f4:	8b cb                	mov    %ebx,%ecx
18003c4f6:	e8 55 d9 05 00       	call   0x180099e50
18003c4fb:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18003c500:	4c 8b e0             	mov    %rax,%r12
18003c503:	48 85 c0             	test   %rax,%rax
18003c506:	75 0a                	jne    0x18003c512
18003c508:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
18003c50d:	e9 b3 01 00 00       	jmp    0x18003c6c5
18003c512:	48 8b 45 88          	mov    -0x78(%rbp),%rax
18003c516:	48 8d 55 a0          	lea    -0x60(%rbp),%rdx
18003c51a:	83 65 d0 00          	andl   $0x0,-0x30(%rbp)
18003c51e:	8b cf                	mov    %edi,%ecx
18003c520:	48 89 45 c8          	mov    %rax,-0x38(%rbp)
18003c524:	e8 67 a8 fe ff       	call   0x180026d90
18003c529:	45 33 c9             	xor    %r9d,%r9d
18003c52c:	44 8b c3             	mov    %ebx,%r8d
18003c52f:	49 8b d4             	mov    %r12,%rdx
18003c532:	8b cf                	mov    %edi,%ecx
18003c534:	e8 bf a6 fe ff       	call   0x180026bf8
18003c539:	8b d8                	mov    %eax,%ebx
18003c53b:	85 c0                	test   %eax,%eax
18003c53d:	0f 88 71 01 00 00    	js     0x18003c6b4
18003c543:	48 8d 95 18 01 00 00 	lea    0x118(%rbp),%rdx
18003c54a:	8b cf                	mov    %edi,%ecx
18003c54c:	e8 6f a9 fe ff       	call   0x180026ec0
18003c551:	8b d8                	mov    %eax,%ebx
18003c553:	48 8b 85 18 01 00 00 	mov    0x118(%rbp),%rax
18003c55a:	48 8d 48 10          	lea    0x10(%rax),%rcx
18003c55e:	83 39 06             	cmpl   $0x6,(%rcx)
18003c561:	48 89 8d 18 01 00 00 	mov    %rcx,0x118(%rbp)
18003c568:	74 0b                	je     0x18003c575
18003c56a:	bf 28 00 00 00       	mov    $0x28,%edi
18003c56f:	44 8d 77 20          	lea    0x20(%rdi),%r14d
18003c573:	eb 0a                	jmp    0x18003c57f
18003c575:	8b 78 08             	mov    0x8(%rax),%edi
18003c578:	83 ef 10             	sub    $0x10,%edi
18003c57b:	44 8d 77 20          	lea    0x20(%rdi),%r14d
18003c57f:	41 8b ce             	mov    %r14d,%ecx
18003c582:	45 8b ee             	mov    %r14d,%r13d
18003c585:	e8 c6 d8 05 00       	call   0x180099e50
18003c58a:	48 8b f0             	mov    %rax,%rsi
18003c58d:	48 85 c0             	test   %rax,%rax
18003c590:	75 0a                	jne    0x18003c59c
18003c592:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18003c597:	e9 18 01 00 00       	jmp    0x18003c6b4
18003c59c:	4d 8b c5             	mov    %r13,%r8
18003c59f:	33 d2                	xor    %edx,%edx
18003c5a1:	48 8b ce             	mov    %rsi,%rcx
18003c5a4:	e8 d7 96 0f 00       	call   0x180135c80
18003c5a9:	48 8b 95 18 01 00 00 	mov    0x118(%rbp),%rdx
18003c5b0:	48 8d 4e 20          	lea    0x20(%rsi),%rcx
18003c5b4:	44 8b c7             	mov    %edi,%r8d
18003c5b7:	c7 06 06 00 00 00    	movl   $0x6,(%rsi)
18003c5bd:	44 89 76 08          	mov    %r14d,0x8(%rsi)
18003c5c1:	e8 fa 93 0f 00       	call   0x1801359c0
18003c5c6:	41 8b 4f 0c          	mov    0xc(%r15),%ecx
18003c5ca:	45 33 ed             	xor    %r13d,%r13d
18003c5cd:	4d 8b 37             	mov    (%r15),%r14
18003c5d0:	0f 57 c0             	xorps  %xmm0,%xmm0
18003c5d3:	41 83 67 08 00       	andl   $0x0,0x8(%r15)
18003c5d8:	49 03 ce             	add    %r14,%rcx
18003c5db:	49 8b fc             	mov    %r12,%rdi
18003c5de:	48 89 8d 18 01 00 00 	mov    %rcx,0x118(%rbp)
18003c5e5:	0f 11 44 24 28       	movups %xmm0,0x28(%rsp)
18003c5ea:	44 39 6d 90          	cmp    %r13d,-0x70(%rbp)
18003c5ee:	0f 86 b8 00 00 00    	jbe    0x18003c6ac
18003c5f4:	4c 8b 64 24 30       	mov    0x30(%rsp),%r12
18003c5f9:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
18003c5fe:	48 3b 47 10          	cmp    0x10(%rdi),%rax
18003c602:	75 0a                	jne    0x18003c60e
18003c604:	4c 3b 67 18          	cmp    0x18(%rdi),%r12
18003c608:	0f 84 86 00 00 00    	je     0x18003c694
18003c60e:	48 8b 05 63 00 11 00 	mov    0x110063(%rip),%rax        # 0x18014c678
18003c615:	48 3b 47 10          	cmp    0x10(%rdi),%rax
18003c619:	75 0d                	jne    0x18003c628
18003c61b:	48 8b 05 5e 00 11 00 	mov    0x11005e(%rip),%rax        # 0x18014c680
18003c622:	48 3b 47 18          	cmp    0x18(%rdi),%rax
18003c626:	74 6c                	je     0x18003c694
18003c628:	48 8b 05 d9 ff 10 00 	mov    0x10ffd9(%rip),%rax        # 0x18014c608
18003c62f:	48 3b 47 10          	cmp    0x10(%rdi),%rax
18003c633:	75 0d                	jne    0x18003c642
18003c635:	48 8b 05 d4 ff 10 00 	mov    0x10ffd4(%rip),%rax        # 0x18014c610
18003c63c:	48 3b 47 18          	cmp    0x18(%rdi),%rax
18003c640:	74 52                	je     0x18003c694
18003c642:	0f 10 47 10          	movups 0x10(%rdi),%xmm0
18003c646:	f3 0f 7f 46 10       	movdqu %xmm0,0x10(%rsi)
18003c64b:	4c 3b f1             	cmp    %rcx,%r14
18003c64e:	73 3a                	jae    0x18003c68a
18003c650:	8a 85 10 01 00 00    	mov    0x110(%rbp),%al
18003c656:	4d 8b ce             	mov    %r14,%r9
18003c659:	f6 d8                	neg    %al
18003c65b:	48 8b ce             	mov    %rsi,%rcx
18003c65e:	1b d2                	sbb    %edx,%edx
18003c660:	45 33 c0             	xor    %r8d,%r8d
18003c663:	83 e2 f8             	and    $0xfffffff8,%edx
18003c666:	83 c2 09             	add    $0x9,%edx
18003c669:	e8 a2 ab fe ff       	call   0x180027210
18003c66e:	48 8b 8d 18 01 00 00 	mov    0x118(%rbp),%rcx
18003c675:	8b d8                	mov    %eax,%ebx
18003c677:	85 c0                	test   %eax,%eax
18003c679:	79 04                	jns    0x18003c67f
18003c67b:	33 db                	xor    %ebx,%ebx
18003c67d:	eb 15                	jmp    0x18003c694
18003c67f:	49 83 c6 04          	add    $0x4,%r14
18003c683:	41 83 47 08 04       	addl   $0x4,0x8(%r15)
18003c688:	eb 0a                	jmp    0x18003c694
18003c68a:	41 83 47 0c 04       	addl   $0x4,0xc(%r15)
18003c68f:	bb 23 00 00 c0       	mov    $0xc0000023,%ebx
18003c694:	8b 45 94             	mov    -0x6c(%rbp),%eax
18003c697:	41 ff c5             	inc    %r13d
18003c69a:	48 03 f8             	add    %rax,%rdi
18003c69d:	44 3b 6d 90          	cmp    -0x70(%rbp),%r13d
18003c6a1:	0f 82 52 ff ff ff    	jb     0x18003c5f9
18003c6a7:	4c 8b 64 24 20       	mov    0x20(%rsp),%r12
18003c6ac:	48 8b ce             	mov    %rsi,%rcx
18003c6af:	e8 48 d9 05 00       	call   0x180099ffc
18003c6b4:	49 8b cc             	mov    %r12,%rcx
18003c6b7:	e8 40 d9 05 00       	call   0x180099ffc
18003c6bc:	8b c3                	mov    %ebx,%eax
18003c6be:	eb 05                	jmp    0x18003c6c5
18003c6c0:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18003c6c5:	48 8b 9c 24 00 02 00 	mov    0x200(%rsp),%rbx
18003c6cc:	00
18003c6cd:	48 81 c4 c0 01 00 00 	add    $0x1c0,%rsp
18003c6d4:	41 5f                	pop    %r15
18003c6d6:	41 5e                	pop    %r14
18003c6d8:	41 5d                	pop    %r13
18003c6da:	41 5c                	pop    %r12
18003c6dc:	5f                   	pop    %rdi
18003c6dd:	5e                   	pop    %rsi
18003c6de:	5d                   	pop    %rbp
18003c6df:	c3                   	ret
18003c6e0:	cc                   	int3
18003c6e1:	cc                   	int3
18003c6e2:	cc                   	int3
18003c6e3:	cc                   	int3
18003c6e4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18003c6e9:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18003c6ee:	57                   	push   %rdi
18003c6ef:	48 83 ec 20          	sub    $0x20,%rsp
18003c6f3:	48 8b b1 80 00 00 00 	mov    0x80(%rcx),%rsi
18003c6fa:	48 8b 46 18          	mov    0x18(%rsi),%rax
18003c6fe:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
18003c702:	48 8b 40 08          	mov    0x8(%rax),%rax
18003c706:	ff d0                	call   *%rax
18003c708:	0f 1f 00             	nopl   (%rax)
18003c70b:	48 8b 5e 10          	mov    0x10(%rsi),%rbx
18003c70f:	48 83 66 08 00       	andq   $0x0,0x8(%rsi)
18003c714:	48 8b cb             	mov    %rbx,%rcx
18003c717:	48 8b 43 40          	mov    0x40(%rbx),%rax
18003c71b:	ff d0                	call   *%rax
18003c71d:	0f 1f 00             	nopl   (%rax)
18003c720:	33 ff                	xor    %edi,%edi
18003c722:	48 8b cb             	mov    %rbx,%rcx
18003c725:	85 c0                	test   %eax,%eax
18003c727:	0f 48 f8             	cmovs  %eax,%edi
18003c72a:	e8 cd d8 05 00       	call   0x180099ffc
18003c72f:	48 83 66 10 00       	andq   $0x0,0x10(%rsi)
18003c734:	48 8b ce             	mov    %rsi,%rcx
18003c737:	e8 c0 d8 05 00       	call   0x180099ffc
18003c73c:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18003c741:	8b c7                	mov    %edi,%eax
18003c743:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
18003c748:	48 83 c4 20          	add    $0x20,%rsp
18003c74c:	5f                   	pop    %rdi
18003c74d:	c3                   	ret
18003c74e:	cc                   	int3
18003c74f:	cc                   	int3
18003c750:	48 8b c4             	mov    %rsp,%rax
18003c753:	48 89 58 10          	mov    %rbx,0x10(%rax)
18003c757:	55                   	push   %rbp
18003c758:	56                   	push   %rsi
18003c759:	57                   	push   %rdi
18003c75a:	41 54                	push   %r12
18003c75c:	41 55                	push   %r13
18003c75e:	41 56                	push   %r14
18003c760:	41 57                	push   %r15
18003c762:	48 83 ec 30          	sub    $0x30,%rsp
18003c766:	45 33 ed             	xor    %r13d,%r13d
18003c769:	4c 8b fa             	mov    %rdx,%r15
18003c76c:	41 8b f5             	mov    %r13d,%esi
18003c76f:	45 8a e5             	mov    %r13b,%r12b
18003c772:	45 8b f5             	mov    %r13d,%r14d
18003c775:	41 8b fd             	mov    %r13d,%edi
18003c778:	4c 89 68 18          	mov    %r13,0x18(%rax)
18003c77c:	4c 89 68 20          	mov    %r13,0x20(%rax)
18003c780:	44 39 29             	cmp    %r13d,(%rcx)
18003c783:	0f 85 6d 02 00 00    	jne    0x18003c9f6
18003c789:	83 79 10 06          	cmpl   $0x6,0x10(%rcx)
18003c78d:	0f 85 63 02 00 00    	jne    0x18003c9f6
18003c793:	8b 41 08             	mov    0x8(%rcx),%eax
18003c796:	83 f8 3c             	cmp    $0x3c,%eax
18003c799:	77 0a                	ja     0x18003c7a5
18003c79b:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18003c7a0:	e9 bd 02 00 00       	jmp    0x18003ca62
18003c7a5:	48 8d 69 28          	lea    0x28(%rcx),%rbp
18003c7a9:	83 c0 d8             	add    $0xffffffd8,%eax
18003c7ac:	39 45 08             	cmp    %eax,0x8(%rbp)
18003c7af:	77 ea                	ja     0x18003c79b
18003c7b1:	44 39 6d 00          	cmp    %r13d,0x0(%rbp)
18003c7b5:	75 e4                	jne    0x18003c79b
18003c7b7:	83 7d 10 05          	cmpl   $0x5,0x10(%rbp)
18003c7bb:	75 de                	jne    0x18003c79b
18003c7bd:	bb 90 00 00 00       	mov    $0x90,%ebx
18003c7c2:	8b cb                	mov    %ebx,%ecx
18003c7c4:	e8 87 d6 05 00       	call   0x180099e50
18003c7c9:	48 8b f0             	mov    %rax,%rsi
18003c7cc:	48 85 c0             	test   %rax,%rax
18003c7cf:	75 0a                	jne    0x18003c7db
18003c7d1:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18003c7d6:	e9 24 02 00 00       	jmp    0x18003c9ff
18003c7db:	4c 8b c3             	mov    %rbx,%r8
18003c7de:	33 d2                	xor    %edx,%edx
18003c7e0:	48 8b ce             	mov    %rsi,%rcx
18003c7e3:	e8 98 94 0f 00       	call   0x180135c80
18003c7e8:	48 8b d6             	mov    %rsi,%rdx
18003c7eb:	48 8b cd             	mov    %rbp,%rcx
18003c7ee:	e8 d1 76 ff ff       	call   0x180033ec4
18003c7f3:	8b d8                	mov    %eax,%ebx
18003c7f5:	85 c0                	test   %eax,%eax
18003c7f7:	0f 88 02 02 00 00    	js     0x18003c9ff
18003c7fd:	48 8b 86 80 00 00 00 	mov    0x80(%rsi),%rax
18003c804:	41 b4 01             	mov    $0x1,%r12b
18003c807:	44 8b 28             	mov    (%rax),%r13d