14002c4c9:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
14002c4ce:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
14002c4d3:	44 89 64 24 70       	mov    %r12d,0x70(%rsp)
14002c4d8:	48 89 85 b0 03 00 00 	mov    %rax,0x3b0(%rbp)
14002c4df:	0f 57 c0             	xorps  %xmm0,%xmm0
14002c4e2:	48 8b 85 38 04 00 00 	mov    0x438(%rbp),%rax
14002c4e9:	48 89 44 24 68       	mov    %rax,0x68(%rsp)
14002c4ee:	44 88 64 24 74       	mov    %r12b,0x74(%rsp)
14002c4f3:	4c 89 64 24 78       	mov    %r12,0x78(%rsp)
14002c4f8:	44 89 65 80          	mov    %r12d,-0x80(%rbp)
14002c4fc:	44 88 65 88          	mov    %r12b,-0x78(%rbp)
14002c500:	66 44 89 65 8a       	mov    %r12w,-0x76(%rbp)
14002c505:	44 89 65 98          	mov    %r12d,-0x68(%rbp)
14002c509:	44 88 65 9c          	mov    %r12b,-0x64(%rbp)
14002c50d:	66 0f 7f 85 a0 03 00 	movdqa %xmm0,0x3a0(%rbp)
14002c514:	00
14002c515:	4c 89 7c 24 50       	mov    %r15,0x50(%rsp)
14002c51a:	4c 89 4c 24 60       	mov    %r9,0x60(%rsp)
14002c51f:	44 89 a5 b8 03 00 00 	mov    %r12d,0x3b8(%rbp)
14002c526:	e8 b5 24 00 00       	call   0x14002e9e0
14002c52b:	48 63 d8             	movslq %eax,%rbx
14002c52e:	48 85 f6             	test   %rsi,%rsi
14002c531:	74 4c                	je     0x14002c57f
14002c533:	41 f6 c7 01          	test   $0x1,%r15b
14002c537:	74 23                	je     0x14002c55c
14002c539:	48 85 ff             	test   %rdi,%rdi
14002c53c:	75 09                	jne    0x14002c547
14002c53e:	85 c0                	test   %eax,%eax
14002c540:	74 05                	je     0x14002c547
14002c542:	83 cb ff             	or     $0xffffffff,%ebx
14002c545:	eb 38                	jmp    0x14002c57f
14002c547:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
14002c54c:	48 3b c7             	cmp    %rdi,%rax
14002c54f:	75 29                	jne    0x14002c57a
14002c551:	85 db                	test   %ebx,%ebx
14002c553:	78 2a                	js     0x14002c57f
14002c555:	48 3b df             	cmp    %rdi,%rbx
14002c558:	76 25                	jbe    0x14002c57f
14002c55a:	eb e6                	jmp    0x14002c542
14002c55c:	4d 85 f6             	test   %r14,%r14
14002c55f:	74 4d                	je     0x14002c5ae
14002c561:	48 85 ff             	test   %rdi,%rdi
14002c564:	74 19                	je     0x14002c57f
14002c566:	85 c0                	test   %eax,%eax
14002c568:	79 06                	jns    0x14002c570
14002c56a:	66 44 89 26          	mov    %r12w,(%rsi)
14002c56e:	eb 0f                	jmp    0x14002c57f
14002c570:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
14002c575:	48 3b c7             	cmp    %rdi,%rax
14002c578:	74 48                	je     0x14002c5c2
14002c57a:	66 44 89 24 46       	mov    %r12w,(%rsi,%rax,2)
14002c57f:	48 8b 8d a8 03 00 00 	mov    0x3a8(%rbp),%rcx
14002c586:	e8 01 c8 00 00       	call   0x140038d8c
14002c58b:	8b c3                	mov    %ebx,%eax
14002c58d:	48 8b 8d c0 03 00 00 	mov    0x3c0(%rbp),%rcx
14002c594:	48 33 cc             	xor    %rsp,%rcx
14002c597:	e8 64 85 ff ff       	call   0x140024b00
14002c59c:	48 81 c4 d0 04 00 00 	add    $0x4d0,%rsp
14002c5a3:	41 5f                	pop    %r15
14002c5a5:	41 5e                	pop    %r14
14002c5a7:	41 5c                	pop    %r12
14002c5a9:	5f                   	pop    %rdi
14002c5aa:	5e                   	pop    %rsi
14002c5ab:	5b                   	pop    %rbx
14002c5ac:	5d                   	pop    %rbp
14002c5ad:	c3                   	ret
14002c5ae:	48 85 ff             	test   %rdi,%rdi
14002c5b1:	74 8f                	je     0x14002c542
14002c5b3:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
14002c5b8:	48 3b c7             	cmp    %rdi,%rax
14002c5bb:	75 bd                	jne    0x14002c57a
14002c5bd:	bb fe ff ff ff       	mov    $0xfffffffe,%ebx
14002c5c2:	66 44 89 64 7e fe    	mov    %r12w,-0x2(%rsi,%rdi,2)
14002c5c8:	eb b5                	jmp    0x14002c57f
14002c5ca:	cc                   	int3
14002c5cb:	cc                   	int3
14002c5cc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14002c5d1:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14002c5d6:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14002c5db:	57                   	push   %rdi
14002c5dc:	48 83 ec 20          	sub    $0x20,%rsp
14002c5e0:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
14002c5e7:	ff ff 7f
14002c5ea:	48 8b e9             	mov    %rcx,%rbp
14002c5ed:	48 3b d0             	cmp    %rax,%rdx
14002c5f0:	76 11                	jbe    0x14002c603
14002c5f2:	41 c6 40 30 01       	movb   $0x1,0x30(%r8)
14002c5f7:	32 c0                	xor    %al,%al
14002c5f9:	41 c7 40 2c 0c 00 00 	movl   $0xc,0x2c(%r8)
14002c600:	00
14002c601:	eb 5c                	jmp    0x14002c65f
14002c603:	33 ff                	xor    %edi,%edi
14002c605:	48 8d 34 12          	lea    (%rdx,%rdx,1),%rsi
14002c609:	48 39 b9 08 04 00 00 	cmp    %rdi,0x408(%rcx)
14002c610:	75 09                	jne    0x14002c61b
14002c612:	48 81 fe 00 04 00 00 	cmp    $0x400,%rsi
14002c619:	76 09                	jbe    0x14002c624
14002c61b:	48 3b b1 00 04 00 00 	cmp    0x400(%rcx),%rsi
14002c622:	77 04                	ja     0x14002c628
14002c624:	b0 01                	mov    $0x1,%al
14002c626:	eb 37                	jmp    0x14002c65f
14002c628:	48 8b ce             	mov    %rsi,%rcx
14002c62b:	e8 98 c7 00 00       	call   0x140038dc8
14002c630:	48 8b d8             	mov    %rax,%rbx
14002c633:	48 85 c0             	test   %rax,%rax
14002c636:	74 1d                	je     0x14002c655
14002c638:	48 8b 8d 08 04 00 00 	mov    0x408(%rbp),%rcx
14002c63f:	e8 48 c7 00 00       	call   0x140038d8c
14002c644:	48 89 9d 08 04 00 00 	mov    %rbx,0x408(%rbp)
14002c64b:	40 b7 01             	mov    $0x1,%dil
14002c64e:	48 89 b5 00 04 00 00 	mov    %rsi,0x400(%rbp)
14002c655:	33 c9                	xor    %ecx,%ecx
14002c657:	e8 30 c7 00 00       	call   0x140038d8c
14002c65c:	40 8a c7             	mov    %dil,%al
14002c65f:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14002c664:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
14002c669:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14002c66e:	48 83 c4 20          	add    $0x20,%rsp
14002c672:	5f                   	pop    %rdi
14002c673:	c3                   	ret
14002c674:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14002c679:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14002c67e:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14002c683:	57                   	push   %rdi
14002c684:	48 83 ec 20          	sub    $0x20,%rsp
14002c688:	48 b8 ff ff ff ff ff 	movabs $0x3fffffffffffffff,%rax
14002c68f:	ff ff 3f
14002c692:	48 8b e9             	mov    %rcx,%rbp
14002c695:	48 3b d0             	cmp    %rax,%rdx
14002c698:	76 11                	jbe    0x14002c6ab
14002c69a:	41 c6 40 30 01       	movb   $0x1,0x30(%r8)
14002c69f:	32 c0                	xor    %al,%al
14002c6a1:	41 c7 40 2c 0c 00 00 	movl   $0xc,0x2c(%r8)
14002c6a8:	00
14002c6a9:	eb 60                	jmp    0x14002c70b
14002c6ab:	33 ff                	xor    %edi,%edi
14002c6ad:	48 8d 34 95 00 00 00 	lea    0x0(,%rdx,4),%rsi
14002c6b4:	00
14002c6b5:	48 39 b9 08 04 00 00 	cmp    %rdi,0x408(%rcx)
14002c6bc:	75 09                	jne    0x14002c6c7
14002c6be:	48 81 fe 00 04 00 00 	cmp    $0x400,%rsi
14002c6c5:	76 09                	jbe    0x14002c6d0
14002c6c7:	48 3b b1 00 04 00 00 	cmp    0x400(%rcx),%rsi
14002c6ce:	77 04                	ja     0x14002c6d4
14002c6d0:	b0 01                	mov    $0x1,%al
14002c6d2:	eb 37                	jmp    0x14002c70b
14002c6d4:	48 8b ce             	mov    %rsi,%rcx
14002c6d7:	e8 ec c6 00 00       	call   0x140038dc8
14002c6dc:	48 8b d8             	mov    %rax,%rbx
14002c6df:	48 85 c0             	test   %rax,%rax
14002c6e2:	74 1d                	je     0x14002c701
14002c6e4:	48 8b 8d 08 04 00 00 	mov    0x408(%rbp),%rcx
14002c6eb:	e8 9c c6 00 00       	call   0x140038d8c
14002c6f0:	48 89 9d 08 04 00 00 	mov    %rbx,0x408(%rbp)
14002c6f7:	40 b7 01             	mov    $0x1,%dil
14002c6fa:	48 89 b5 00 04 00 00 	mov    %rsi,0x400(%rbp)
14002c701:	33 c9                	xor    %ecx,%ecx
14002c703:	e8 84 c6 00 00       	call   0x140038d8c
14002c708:	40 8a c7             	mov    %dil,%al
14002c70b:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14002c710:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
14002c715:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14002c71a:	48 83 c4 20          	add    $0x20,%rsp
14002c71e:	5f                   	pop    %rdi
14002c71f:	c3                   	ret
14002c720:	45 8b c8             	mov    %r8d,%r9d
14002c723:	41 83 e9 02          	sub    $0x2,%r9d
14002c727:	74 32                	je     0x14002c75b
14002c729:	41 83 e9 01          	sub    $0x1,%r9d
14002c72d:	74 29                	je     0x14002c758
14002c72f:	41 83 f9 09          	cmp    $0x9,%r9d
14002c733:	74 23                	je     0x14002c758
14002c735:	41 83 f8 0d          	cmp    $0xd,%r8d
14002c739:	74 1d                	je     0x14002c758
14002c73b:	83 e1 04             	and    $0x4,%ecx
14002c73e:	41 b8 ef ff 00 00    	mov    $0xffef,%r8d
14002c744:	0f 95 c0             	setne  %al
14002c747:	66 83 ea 63          	sub    $0x63,%dx
14002c74b:	66 41 85 d0          	test   %dx,%r8w
14002c74f:	74 0c                	je     0x14002c75d
14002c751:	48 85 c9             	test   %rcx,%rcx
14002c754:	0f 94 c0             	sete   %al
14002c757:	c3                   	ret
14002c758:	b0 01                	mov    $0x1,%al
14002c75a:	c3                   	ret
14002c75b:	32 c0                	xor    %al,%al
14002c75d:	c3                   	ret
14002c75e:	cc                   	int3
14002c75f:	cc                   	int3
14002c760:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14002c765:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14002c76a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14002c76f:	57                   	push   %rdi
14002c770:	41 54                	push   %r12
14002c772:	41 55                	push   %r13
14002c774:	41 56                	push   %r14
14002c776:	41 57                	push   %r15
14002c778:	48 83 ec 30          	sub    $0x30,%rsp
14002c77c:	4c 8b 22             	mov    (%rdx),%r12
14002c77f:	41 8b e8             	mov    %r8d,%ebp
14002c782:	48 8b da             	mov    %rdx,%rbx
14002c785:	4c 8b e9             	mov    %rcx,%r13
14002c788:	4d 85 e4             	test   %r12,%r12
14002c78b:	75 12                	jne    0x14002c79f
14002c78d:	e8 a6 f2 ff ff       	call   0x14002ba38
14002c792:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
14002c798:	e8 07 ee ff ff       	call   0x14002b5a4
14002c79d:	eb 32                	jmp    0x14002c7d1
14002c79f:	85 ed                	test   %ebp,%ebp
14002c7a1:	74 46                	je     0x14002c7e9
14002c7a3:	41 8d 40 fe          	lea    -0x2(%r8),%eax
14002c7a7:	83 f8 22             	cmp    $0x22,%eax
14002c7aa:	76 3d                	jbe    0x14002c7e9
14002c7ac:	c6 41 30 01          	movb   $0x1,0x30(%rcx)
14002c7b0:	45 33 c9             	xor    %r9d,%r9d
14002c7b3:	c7 41 2c 16 00 00 00 	movl   $0x16,0x2c(%rcx)
14002c7ba:	45 33 c0             	xor    %r8d,%r8d
14002c7bd:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
14002c7c2:	33 c9                	xor    %ecx,%ecx
14002c7c4:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
14002c7ca:	33 d2                	xor    %edx,%edx
14002c7cc:	e8 07 ed ff ff       	call   0x14002b4d8
14002c7d1:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
14002c7d5:	48 85 c9             	test   %rcx,%rcx
14002c7d8:	0f 84 7e 01 00 00    	je     0x14002c95c
14002c7de:	48 8b 03             	mov    (%rbx),%rax
14002c7e1:	48 89 01             	mov    %rax,(%rcx)
14002c7e4:	e9 73 01 00 00       	jmp    0x14002c95c
14002c7e9:	41 8a 34 24          	mov    (%r12),%sil
14002c7ed:	49 8d 4c 24 01       	lea    0x1(%r12),%rcx
14002c7f2:	45 33 f6             	xor    %r14d,%r14d
14002c7f5:	41 0f b6 c1          	movzbl %r9b,%eax
14002c7f9:	8b f8                	mov    %eax,%edi
14002c7fb:	48 89 0a             	mov    %rcx,(%rdx)
14002c7fe:	45 8d 7e 02          	lea    0x2(%r14),%r15d
14002c802:	41 0b ff             	or     %r15d,%edi
14002c805:	40 80 fe 2d          	cmp    $0x2d,%sil
14002c809:	0f 45 f8             	cmovne %eax,%edi
14002c80c:	74 06                	je     0x14002c814
14002c80e:	40 80 fe 2b          	cmp    $0x2b,%sil
14002c812:	75 09                	jne    0x14002c81d
14002c814:	40 8a 31             	mov    (%rcx),%sil
14002c817:	48 ff c1             	inc    %rcx
14002c81a:	48 89 0a             	mov    %rcx,(%rdx)
14002c81d:	f7 c5 ef ff ff ff    	test   $0xffffffef,%ebp
14002c823:	0f 85 88 00 00 00    	jne    0x14002c8b1
14002c829:	8d 46 d0             	lea    -0x30(%rsi),%eax
14002c82c:	3c 09                	cmp    $0x9,%al
14002c82e:	77 09                	ja     0x14002c839
14002c830:	40 0f be c6          	movsbl %sil,%eax
14002c834:	83 c0 d0             	add    $0xffffffd0,%eax
14002c837:	eb 1e                	jmp    0x14002c857
14002c839:	8d 46 9f             	lea    -0x61(%rsi),%eax
14002c83c:	3c 19                	cmp    $0x19,%al
14002c83e:	77 09                	ja     0x14002c849
14002c840:	40 0f be c6          	movsbl %sil,%eax
14002c844:	83 c0 a9             	add    $0xffffffa9,%eax
14002c847:	eb 0e                	jmp    0x14002c857
14002c849:	8d 46 bf             	lea    -0x41(%rsi),%eax
14002c84c:	3c 19                	cmp    $0x19,%al
14002c84e:	77 55                	ja     0x14002c8a5
14002c850:	40 0f be c6          	movsbl %sil,%eax
14002c854:	83 c0 c9             	add    $0xffffffc9,%eax
14002c857:	85 c0                	test   %eax,%eax
14002c859:	75 4a                	jne    0x14002c8a5
14002c85b:	8a 11                	mov    (%rcx),%dl
14002c85d:	4c 8d 41 01          	lea    0x1(%rcx),%r8
14002c861:	4c 89 03             	mov    %r8,(%rbx)
14002c864:	8d 42 a8             	lea    -0x58(%rdx),%eax
14002c867:	a8 df                	test   $0xdf,%al
14002c869:	74 29                	je     0x14002c894
14002c86b:	85 ed                	test   %ebp,%ebp
14002c86d:	48 89 0b             	mov    %rcx,(%rbx)
14002c870:	b8 08 00 00 00       	mov    $0x8,%eax
14002c875:	0f 45 c5             	cmovne %ebp,%eax
14002c878:	8b e8                	mov    %eax,%ebp
14002c87a:	84 d2                	test   %dl,%dl
14002c87c:	74 33                	je     0x14002c8b1
14002c87e:	38 11                	cmp    %dl,(%rcx)
14002c880:	74 2f                	je     0x14002c8b1
14002c882:	e8 b1 f1 ff ff       	call   0x14002ba38
14002c887:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
14002c88d:	e8 12 ed ff ff       	call   0x14002b5a4
14002c892:	eb 1d                	jmp    0x14002c8b1
14002c894:	41 8a 30             	mov    (%r8),%sil
14002c897:	49 8d 40 01          	lea    0x1(%r8),%rax
14002c89b:	48 89 03             	mov    %rax,(%rbx)
14002c89e:	b8 10 00 00 00       	mov    $0x10,%eax
14002c8a3:	eb 05                	jmp    0x14002c8aa
14002c8a5:	b8 0a 00 00 00       	mov    $0xa,%eax
14002c8aa:	85 ed                	test   %ebp,%ebp
14002c8ac:	0f 45 c5             	cmovne %ebp,%eax
14002c8af:	8b e8                	mov    %eax,%ebp
14002c8b1:	4c 8b 03             	mov    (%rbx),%r8
14002c8b4:	33 d2                	xor    %edx,%edx
14002c8b6:	83 c8 ff             	or     $0xffffffff,%eax
14002c8b9:	f7 f5                	div    %ebp
14002c8bb:	44 8b c8             	mov    %eax,%r9d
14002c8be:	8d 4e d0             	lea    -0x30(%rsi),%ecx
14002c8c1:	80 f9 09             	cmp    $0x9,%cl
14002c8c4:	77 09                	ja     0x14002c8cf
14002c8c6:	40 0f be ce          	movsbl %sil,%ecx
14002c8ca:	83 c1 d0             	add    $0xffffffd0,%ecx
14002c8cd:	eb 23                	jmp    0x14002c8f2
14002c8cf:	8d 46 9f             	lea    -0x61(%rsi),%eax
14002c8d2:	3c 19                	cmp    $0x19,%al
14002c8d4:	77 09                	ja     0x14002c8df
14002c8d6:	40 0f be ce          	movsbl %sil,%ecx
14002c8da:	83 c1 a9             	add    $0xffffffa9,%ecx
14002c8dd:	eb 13                	jmp    0x14002c8f2
14002c8df:	8d 46 bf             	lea    -0x41(%rsi),%eax
14002c8e2:	3c 19                	cmp    $0x19,%al
14002c8e4:	77 09                	ja     0x14002c8ef
14002c8e6:	40 0f be ce          	movsbl %sil,%ecx
14002c8ea:	83 c1 c9             	add    $0xffffffc9,%ecx
14002c8ed:	eb 03                	jmp    0x14002c8f2
14002c8ef:	83 c9 ff             	or     $0xffffffff,%ecx
14002c8f2:	3b cd                	cmp    %ebp,%ecx
14002c8f4:	73 30                	jae    0x14002c926
14002c8f6:	41 8a 30             	mov    (%r8),%sil
14002c8f9:	41 8b c6             	mov    %r14d,%eax
14002c8fc:	0f af c5             	imul   %ebp,%eax
14002c8ff:	8d 14 08             	lea    (%rax,%rcx,1),%edx
14002c902:	33 c9                	xor    %ecx,%ecx
14002c904:	3b d0                	cmp    %eax,%edx
14002c906:	0f 92 c1             	setb   %cl
14002c909:	33 c0                	xor    %eax,%eax
14002c90b:	45 3b f1             	cmp    %r9d,%r14d
14002c90e:	44 8b f2             	mov    %edx,%r14d
14002c911:	0f 97 c0             	seta   %al
14002c914:	0b c8                	or     %eax,%ecx
14002c916:	c1 e1 02             	shl    $0x2,%ecx
14002c919:	83 c9 08             	or     $0x8,%ecx
14002c91c:	0b f9                	or     %ecx,%edi
14002c91e:	49 ff c0             	inc    %r8
14002c921:	4c 89 03             	mov    %r8,(%rbx)
14002c924:	eb 98                	jmp    0x14002c8be
14002c926:	49 8d 40 ff          	lea    -0x1(%r8),%rax
14002c92a:	48 89 03             	mov    %rax,(%rbx)
14002c92d:	40 84 f6             	test   %sil,%sil
14002c930:	74 15                	je     0x14002c947
14002c932:	40 38 30             	cmp    %sil,(%rax)
14002c935:	74 10                	je     0x14002c947
14002c937:	e8 fc f0 ff ff       	call   0x14002ba38
14002c93c:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
14002c942:	e8 5d ec ff ff       	call   0x14002b5a4
14002c947:	40 f6 c7 08          	test   $0x8,%dil
14002c94b:	75 16                	jne    0x14002c963
14002c94d:	48 8b 43 08          	mov    0x8(%rbx),%rax
14002c951:	4c 89 23             	mov    %r12,(%rbx)