18006e3d0:	41 54                	push   %r12
18006e3d2:	41 55                	push   %r13
18006e3d4:	41 56                	push   %r14
18006e3d6:	41 57                	push   %r15
18006e3d8:	48 83 ec 50          	sub    $0x50,%rsp
18006e3dc:	48 8b 41 78          	mov    0x78(%rcx),%rax
18006e3e0:	4d 8b e9             	mov    %r9,%r13
18006e3e3:	33 f6                	xor    %esi,%esi
18006e3e5:	4d 8d 4b bc          	lea    -0x44(%r11),%r9
18006e3e9:	4c 8b fa             	mov    %rdx,%r15
18006e3ec:	40 88 74 24 20       	mov    %sil,0x20(%rsp)
18006e3f1:	4c 8b f1             	mov    %rcx,%r14
18006e3f4:	8b 40 30             	mov    0x30(%rax),%eax
18006e3f7:	44 8b c0             	mov    %eax,%r8d
18006e3fa:	89 44 24 3c          	mov    %eax,0x3c(%rsp)
18006e3fe:	48 8b 05 3b 67 13 00 	mov    0x13673b(%rip),%rax        # 0x1801a4b40
18006e405:	4a 8b 3c c0          	mov    (%rax,%r8,8),%rdi
18006e409:	4d 8d 43 c8          	lea    -0x38(%r11),%r8
18006e40d:	e8 06 07 00 00       	call   0x18006eb18
18006e412:	8b d8                	mov    %eax,%ebx
18006e414:	85 c0                	test   %eax,%eax
18006e416:	0f 88 a0 01 00 00    	js     0x18006e5bc
18006e41c:	48 8b 54 24 40       	mov    0x40(%rsp),%rdx
18006e421:	48 8d 84 24 80 00 00 	lea    0x80(%rsp),%rax
18006e428:	00
18006e429:	4c 8d 4c 24 38       	lea    0x38(%rsp),%r9
18006e42e:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18006e433:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
18006e438:	48 8b cf             	mov    %rdi,%rcx
18006e43b:	e8 e4 0a 00 00       	call   0x18006ef24
18006e440:	bb 80 00 00 00       	mov    $0x80,%ebx
18006e445:	8b cb                	mov    %ebx,%ecx
18006e447:	e8 04 ba 02 00       	call   0x180099e50
18006e44c:	48 8b f8             	mov    %rax,%rdi
18006e44f:	48 85 c0             	test   %rax,%rax
18006e452:	75 0a                	jne    0x18006e45e
18006e454:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18006e459:	e9 5e 01 00 00       	jmp    0x18006e5bc
18006e45e:	4c 8b c3             	mov    %rbx,%r8
18006e461:	33 d2                	xor    %edx,%edx
18006e463:	48 8b cf             	mov    %rdi,%rcx
18006e466:	e8 15 78 0c 00       	call   0x180135c80
18006e46b:	49 8b 16             	mov    (%r14),%rdx
18006e46e:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
18006e472:	48 8b c8             	mov    %rax,%rcx
18006e475:	48 ff c1             	inc    %rcx
18006e478:	66 39 34 4a          	cmp    %si,(%rdx,%rcx,2)
18006e47c:	75 f7                	jne    0x18006e475
18006e47e:	48 ff c0             	inc    %rax
18006e481:	66 41 39 34 47       	cmp    %si,(%r15,%rax,2)
18006e486:	75 f6                	jne    0x18006e47e
18006e488:	4c 8d 60 02          	lea    0x2(%rax),%r12
18006e48c:	b8 02 00 00 00       	mov    $0x2,%eax
18006e491:	4c 03 e1             	add    %rcx,%r12
18006e494:	49 f7 e4             	mul    %r12
18006e497:	48 85 d2             	test   %rdx,%rdx
18006e49a:	0f 85 f4 00 00 00    	jne    0x18006e594
18006e4a0:	48 8b c8             	mov    %rax,%rcx
18006e4a3:	8b de                	mov    %esi,%ebx
18006e4a5:	e8 a6 b9 02 00       	call   0x180099e50
18006e4aa:	48 8b e8             	mov    %rax,%rbp
18006e4ad:	48 85 c0             	test   %rax,%rax
18006e4b0:	75 0a                	jne    0x18006e4bc
18006e4b2:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18006e4b7:	e9 dd 00 00 00       	jmp    0x18006e599
18006e4bc:	b9 38 00 00 00       	mov    $0x38,%ecx
18006e4c1:	e8 8a b9 02 00       	call   0x180099e50
18006e4c6:	33 c9                	xor    %ecx,%ecx
18006e4c8:	48 8b f0             	mov    %rax,%rsi
18006e4cb:	48 85 c0             	test   %rax,%rax
18006e4ce:	74 e2                	je     0x18006e4b2
18006e4d0:	33 c0                	xor    %eax,%eax
18006e4d2:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
18006e4d7:	0f 57 c0             	xorps  %xmm0,%xmm0
18006e4da:	4c 8d 05 07 0e 0e 00 	lea    0xe0e07(%rip),%r8        # 0x18014f2e8
18006e4e1:	0f 11 06             	movups %xmm0,(%rsi)
18006e4e4:	49 8b d4             	mov    %r12,%rdx
18006e4e7:	0f 11 46 10          	movups %xmm0,0x10(%rsi)
18006e4eb:	0f 11 46 20          	movups %xmm0,0x20(%rsi)
18006e4ef:	48 89 46 30          	mov    %rax,0x30(%rsi)
18006e4f3:	41 8b 46 08          	mov    0x8(%r14),%eax
18006e4f7:	89 47 08             	mov    %eax,0x8(%rdi)
18006e4fa:	48 8d 05 d7 0d 0e 00 	lea    0xe0dd7(%rip),%rax        # 0x18014f2d8
18006e501:	4d 8b 0e             	mov    (%r14),%r9
18006e504:	66 41 39 49 02       	cmp    %cx,0x2(%r9)
18006e509:	48 8b cd             	mov    %rbp,%rcx
18006e50c:	4c 0f 44 c0          	cmove  %rax,%r8
18006e510:	e8 27 f6 0b 00       	call   0x18012db3c
18006e515:	8b 44 24 30          	mov    0x30(%rsp),%eax
18006e519:	48 89 2f             	mov    %rbp,(%rdi)
18006e51c:	0f 28 05 1d 59 0d 00 	movaps 0xd591d(%rip),%xmm0        # 0x180143e40
18006e523:	0f 11 47 30          	movups %xmm0,0x30(%rdi)
18006e527:	0f 28 0d 22 59 0d 00 	movaps 0xd5922(%rip),%xmm1        # 0x180143e50
18006e52e:	0f 11 4f 40          	movups %xmm1,0x40(%rdi)
18006e532:	0f 28 05 27 59 0d 00 	movaps 0xd5927(%rip),%xmm0        # 0x180143e60
18006e539:	0f 11 47 50          	movups %xmm0,0x50(%rdi)
18006e53d:	0f 28 0d 2c 59 0d 00 	movaps 0xd592c(%rip),%xmm1        # 0x180143e70
18006e544:	0f 11 4f 60          	movups %xmm1,0x60(%rdi)
18006e548:	f2 0f 10 05 30 59 0d 	movsd  0xd5930(%rip),%xmm0        # 0x180143e80
18006e54f:	00
18006e550:	f2 0f 11 47 70       	movsd  %xmm0,0x70(%rdi)
18006e555:	89 06                	mov    %eax,(%rsi)
18006e557:	8b 44 24 34          	mov    0x34(%rsp),%eax
18006e55b:	89 46 04             	mov    %eax,0x4(%rsi)
18006e55e:	8b 44 24 38          	mov    0x38(%rsp),%eax
18006e562:	48 89 46 10          	mov    %rax,0x10(%rsi)
18006e566:	8b 44 24 3c          	mov    0x3c(%rsp),%eax
18006e56a:	89 46 30             	mov    %eax,0x30(%rsi)
18006e56d:	38 9c 24 80 00 00 00 	cmp    %bl,0x80(%rsp)
18006e574:	74 09                	je     0x18006e57f
18006e576:	83 4e 28 01          	orl    $0x1,0x28(%rsi)
18006e57a:	0f ba 6f 10 10       	btsl   $0x10,0x10(%rdi)
18006e57f:	48 8d 05 aa 0d 0e 00 	lea    0xe0daa(%rip),%rax        # 0x18014f330
18006e586:	48 89 46 20          	mov    %rax,0x20(%rsi)
18006e58a:	48 89 77 78          	mov    %rsi,0x78(%rdi)
18006e58e:	49 89 7d 00          	mov    %rdi,0x0(%r13)
18006e592:	eb 28                	jmp    0x18006e5bc
18006e594:	bb 95 00 00 c0       	mov    $0xc0000095,%ebx
18006e599:	48 8b 0f             	mov    (%rdi),%rcx
18006e59c:	48 85 c9             	test   %rcx,%rcx
18006e59f:	74 05                	je     0x18006e5a6
18006e5a1:	e8 56 ba 02 00       	call   0x180099ffc
18006e5a6:	48 8b 4f 78          	mov    0x78(%rdi),%rcx
18006e5aa:	48 85 c9             	test   %rcx,%rcx
18006e5ad:	74 05                	je     0x18006e5b4
18006e5af:	e8 48 ba 02 00       	call   0x180099ffc
18006e5b4:	48 8b cf             	mov    %rdi,%rcx
18006e5b7:	e8 40 ba 02 00       	call   0x180099ffc
18006e5bc:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
18006e5c1:	8b c3                	mov    %ebx,%eax
18006e5c3:	49 8b 5b 38          	mov    0x38(%r11),%rbx
18006e5c7:	49 8b 6b 40          	mov    0x40(%r11),%rbp
18006e5cb:	49 8b 73 48          	mov    0x48(%r11),%rsi
18006e5cf:	49 8b e3             	mov    %r11,%rsp
18006e5d2:	41 5f                	pop    %r15
18006e5d4:	41 5e                	pop    %r14
18006e5d6:	41 5d                	pop    %r13
18006e5d8:	41 5c                	pop    %r12
18006e5da:	5f                   	pop    %rdi
18006e5db:	c3                   	ret
18006e5dc:	cc                   	int3
18006e5dd:	cc                   	int3
18006e5de:	cc                   	int3
18006e5df:	cc                   	int3
18006e5e0:	40 53                	rex push %rbx
18006e5e2:	48 83 ec 20          	sub    $0x20,%rsp
18006e5e6:	48 8b d9             	mov    %rcx,%rbx
18006e5e9:	48 8b 49 78          	mov    0x78(%rcx),%rcx
18006e5ed:	e8 0a ba 02 00       	call   0x180099ffc
18006e5f2:	48 8b 0b             	mov    (%rbx),%rcx
18006e5f5:	e8 02 ba 02 00       	call   0x180099ffc
18006e5fa:	33 c0                	xor    %eax,%eax
18006e5fc:	48 83 c4 20          	add    $0x20,%rsp
18006e600:	5b                   	pop    %rbx
18006e601:	c3                   	ret
18006e602:	cc                   	int3
18006e603:	cc                   	int3
18006e604:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18006e609:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18006e60e:	56                   	push   %rsi
18006e60f:	57                   	push   %rdi
18006e610:	41 56                	push   %r14
18006e612:	48 83 ec 30          	sub    $0x30,%rsp
18006e616:	48 8b 59 78          	mov    0x78(%rcx),%rbx
18006e61a:	33 f6                	xor    %esi,%esi
18006e61c:	41 8b e8             	mov    %r8d,%ebp
18006e61f:	49 8b f9             	mov    %r9,%rdi
18006e622:	4c 8b ca             	mov    %rdx,%r9
18006e625:	4c 8b 53 18          	mov    0x18(%rbx),%r10
18006e629:	4c 03 d5             	add    %rbp,%r10
18006e62c:	4c 3b 53 10          	cmp    0x10(%rbx),%r10
18006e630:	76 07                	jbe    0x18006e639
18006e632:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18006e637:	eb 29                	jmp    0x18006e662
18006e639:	8b 13                	mov    (%rbx),%edx
18006e63b:	48 8d 44 24 60       	lea    0x60(%rsp),%rax
18006e640:	48 03 53 18          	add    0x18(%rbx),%rdx
18006e644:	44 8b c5             	mov    %ebp,%r8d
18006e647:	21 74 24 28          	and    %esi,0x28(%rsp)
18006e64b:	8b 49 08             	mov    0x8(%rcx),%ecx
18006e64e:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18006e653:	e8 c4 88 fb ff       	call   0x180026f1c
18006e658:	85 c0                	test   %eax,%eax
18006e65a:	78 06                	js     0x18006e662
18006e65c:	48 01 6b 18          	add    %rbp,0x18(%rbx)
18006e660:	8b f5                	mov    %ebp,%esi
18006e662:	48 85 ff             	test   %rdi,%rdi
18006e665:	74 02                	je     0x18006e669
18006e667:	89 37                	mov    %esi,(%rdi)
18006e669:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
18006e66e:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
18006e673:	48 83 c4 30          	add    $0x30,%rsp
18006e677:	41 5e                	pop    %r14
18006e679:	5f                   	pop    %rdi
18006e67a:	5e                   	pop    %rsi
18006e67b:	c3                   	ret
18006e67c:	cc                   	int3
18006e67d:	cc                   	int3
18006e67e:	cc                   	int3
18006e67f:	cc                   	int3
18006e680:	48 8b c4             	mov    %rsp,%rax
18006e683:	48 89 58 18          	mov    %rbx,0x18(%rax)
18006e687:	48 89 68 20          	mov    %rbp,0x20(%rax)
18006e68b:	56                   	push   %rsi
18006e68c:	57                   	push   %rdi
18006e68d:	41 56                	push   %r14
18006e68f:	48 83 ec 30          	sub    $0x30,%rsp
18006e693:	48 8b 69 78          	mov    0x78(%rcx),%rbp
18006e697:	45 33 f6             	xor    %r14d,%r14d
18006e69a:	49 8b f8             	mov    %r8,%rdi
18006e69d:	48 8b da             	mov    %rdx,%rbx
18006e6a0:	48 8b f1             	mov    %rcx,%rsi
18006e6a3:	48 85 d2             	test   %rdx,%rdx
18006e6a6:	74 33                	je     0x18006e6db
18006e6a8:	66 44 39 32          	cmp    %r14w,(%rdx)
18006e6ac:	74 2d                	je     0x18006e6db
18006e6ae:	4c 8d 48 08          	lea    0x8(%rax),%r9
18006e6b2:	c6 40 d8 01          	movb   $0x1,-0x28(%rax)
18006e6b6:	4c 8d 40 10          	lea    0x10(%rax),%r8
18006e6ba:	e8 59 04 00 00       	call   0x18006eb18
18006e6bf:	85 c0                	test   %eax,%eax
18006e6c1:	79 0a                	jns    0x18006e6cd
18006e6c3:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18006e6c8:	e9 8a 00 00 00       	jmp    0x18006e757
18006e6cd:	48 8b 44 24 58       	mov    0x58(%rsp),%rax
18006e6d2:	0f b6 08             	movzbl (%rax),%ecx
18006e6d5:	03 4c 24 50          	add    0x50(%rsp),%ecx
18006e6d9:	eb 03                	jmp    0x18006e6de
18006e6db:	41 8b ce             	mov    %r14d,%ecx
18006e6de:	89 4c 24 50          	mov    %ecx,0x50(%rsp)
18006e6e2:	4c 8d 44 24 50       	lea    0x50(%rsp),%r8
18006e6e7:	48 8b ce             	mov    %rsi,%rcx
18006e6ea:	48 8d 54 24 58       	lea    0x58(%rsp),%rdx
18006e6ef:	e8 e8 05 00 00       	call   0x18006ecdc
18006e6f4:	85 c0                	test   %eax,%eax
18006e6f6:	79 07                	jns    0x18006e6ff
18006e6f8:	b8 25 02 00 c0       	mov    $0xc0000225,%eax
18006e6fd:	eb 58                	jmp    0x18006e757
18006e6ff:	8b 44 24 50          	mov    0x50(%rsp),%eax
18006e703:	4c 8b 5c 24 58       	mov    0x58(%rsp),%r11
18006e708:	49 8b cb             	mov    %r11,%rcx
18006e70b:	89 45 08             	mov    %eax,0x8(%rbp)
18006e70e:	e8 ad 08 00 00       	call   0x18006efc0
18006e713:	44 0f b7 d0          	movzwl %ax,%r10d
18006e717:	45 8d 42 01          	lea    0x1(%r10),%r8d
18006e71b:	44 39 07             	cmp    %r8d,(%rdi)
18006e71e:	73 0a                	jae    0x18006e72a
18006e720:	44 89 07             	mov    %r8d,(%rdi)
18006e723:	b8 23 00 00 c0       	mov    $0xc0000023,%eax
18006e728:	eb 2d                	jmp    0x18006e757
18006e72a:	49 8d 4b 21          	lea    0x21(%r11),%rcx
18006e72e:	45 85 d2             	test   %r10d,%r10d
18006e731:	74 19                	je     0x18006e74c
18006e733:	48 8b d3             	mov    %rbx,%rdx
18006e736:	4d 8b ca             	mov    %r10,%r9
18006e739:	0f be 01             	movsbl (%rcx),%eax
18006e73c:	48 ff c1             	inc    %rcx
18006e73f:	66 89 02             	mov    %ax,(%rdx)
18006e742:	48 8d 52 02          	lea    0x2(%rdx),%rdx
18006e746:	49 83 e9 01          	sub    $0x1,%r9
18006e74a:	75 ed                	jne    0x18006e739
18006e74c:	41 8d 40 ff          	lea    -0x1(%r8),%eax
18006e750:	66 44 89 34 43       	mov    %r14w,(%rbx,%rax,2)
18006e755:	33 c0                	xor    %eax,%eax
18006e757:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
18006e75c:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
18006e761:	48 83 c4 30          	add    $0x30,%rsp
18006e765:	41 5e                	pop    %r14
18006e767:	5f                   	pop    %rdi
18006e768:	5e                   	pop    %rsi
18006e769:	c3                   	ret
18006e76a:	cc                   	int3
18006e76b:	cc                   	int3
18006e76c:	48 8b 41 78          	mov    0x78(%rcx),%rax
18006e770:	0f 10 40 10          	movups 0x10(%rax),%xmm0
18006e774:	0f 11 02             	movups %xmm0,(%rdx)
18006e777:	0f 10 48 20          	movups 0x20(%rax),%xmm1
18006e77b:	33 c0                	xor    %eax,%eax
18006e77d:	0f 11 4a 10          	movups %xmm1,0x10(%rdx)
18006e781:	c3                   	ret
18006e782:	cc                   	int3
18006e783:	cc                   	int3
18006e784:	48 8b c4             	mov    %rsp,%rax
18006e787:	48 89 58 08          	mov    %rbx,0x8(%rax)
18006e78b:	48 89 70 10          	mov    %rsi,0x10(%rax)
18006e78f:	57                   	push   %rdi
18006e790:	48 83 ec 40          	sub    $0x40,%rsp
18006e794:	48 8b 59 78          	mov    0x78(%rcx),%rbx
18006e798:	48 8b fa             	mov    %rdx,%rdi
18006e79b:	0f 10 02             	movups (%rdx),%xmm0
18006e79e:	41 b8 20 00 00 00    	mov    $0x20,%r8d
18006e7a4:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18006e7a9:	0f 10 4a 10          	movups 0x10(%rdx),%xmm1
18006e7ad:	48 8d 53 10          	lea    0x10(%rbx),%rdx
18006e7b1:	0f 11 40 d8          	movups %xmm0,-0x28(%rax)
18006e7b5:	0f 11 48 e8          	movups %xmm1,-0x18(%rax)
18006e7b9:	48 8b 43 18          	mov    0x18(%rbx),%rax
18006e7bd:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18006e7c2:	e8 b9 c9 0b 00       	call   0x18012b180
18006e7c7:	85 c0                	test   %eax,%eax
18006e7c9:	75 12                	jne    0x18006e7dd
18006e7cb:	48 8b 47 08          	mov    0x8(%rdi),%rax
18006e7cf:	48 3b 43 10          	cmp    0x10(%rbx),%rax
18006e7d3:	73 08                	jae    0x18006e7dd
18006e7d5:	48 89 43 18          	mov    %rax,0x18(%rbx)
18006e7d9:	33 c0                	xor    %eax,%eax
18006e7db:	eb 05                	jmp    0x18006e7e2
18006e7dd:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18006e7e2:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
18006e7e7:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
18006e7ec:	48 83 c4 40          	add    $0x40,%rsp
18006e7f0:	5f                   	pop    %rdi
18006e7f1:	c3                   	ret
18006e7f2:	cc                   	int3
18006e7f3:	cc                   	int3
18006e7f4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18006e7f9:	57                   	push   %rdi
18006e7fa:	48 83 ec 20          	sub    $0x20,%rsp
18006e7fe:	48 8b d9             	mov    %rcx,%rbx
18006e801:	8b fa                	mov    %edx,%edi
18006e803:	48 8b 49 18          	mov    0x18(%rcx),%rcx
18006e807:	48 85 c9             	test   %rcx,%rcx
18006e80a:	74 05                	je     0x18006e811
18006e80c:	e8 eb b7 02 00       	call   0x180099ffc
18006e811:	48 8b cb             	mov    %rbx,%rcx
18006e814:	e8 e3 b7 02 00       	call   0x180099ffc
18006e819:	48 8b 05 20 63 13 00 	mov    0x136320(%rip),%rax        # 0x1801a4b40
18006e820:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18006e825:	48 83 24 f8 00       	andq   $0x0,(%rax,%rdi,8)
18006e82a:	33 c0                	xor    %eax,%eax
18006e82c:	48 83 c4 20          	add    $0x20,%rsp
18006e830:	5f                   	pop    %rdi
18006e831:	c3                   	ret
18006e832:	cc                   	int3
18006e833:	cc                   	int3
18006e834:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18006e839:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18006e83e:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
18006e843:	55                   	push   %rbp
18006e844:	41 54                	push   %r12
18006e846:	41 55                	push   %r13
18006e848:	41 56                	push   %r14
18006e84a:	41 57                	push   %r15
18006e84c:	48 8d 6c 24 80       	lea    -0x80(%rsp),%rbp
18006e851:	48 81 ec 80 01 00 00 	sub    $0x180,%rsp
18006e858:	8b f2                	mov    %edx,%esi
18006e85a:	4c 8b f1             	mov    %rcx,%r14
18006e85d:	8b ce                	mov    %esi,%ecx
18006e85f:	48 8d 54 24 60       	lea    0x60(%rsp),%rdx
18006e864:	4d 8b f9             	mov    %r9,%r15