14009a501:	85 ff                	test   %edi,%edi
14009a503:	75 07                	jne    0x14009a50c
14009a505:	8a c1                	mov    %cl,%al
14009a507:	eb 6a                	jmp    0x14009a573
14009a509:	48 03 c1             	add    %rcx,%rax
14009a50c:	8a 10                	mov    (%rax),%dl
14009a50e:	80 fa 30             	cmp    $0x30,%dl
14009a511:	74 f6                	je     0x14009a509
14009a513:	84 d2                	test   %dl,%dl
14009a515:	75 ee                	jne    0x14009a505
14009a517:	48 3b dd             	cmp    %rbp,%rbx
14009a51a:	74 55                	je     0x14009a571
14009a51c:	8a 43 ff             	mov    -0x1(%rbx),%al
14009a51f:	22 c1                	and    %cl,%al
14009a521:	eb 50                	jmp    0x14009a573
14009a523:	3d 00 02 00 00       	cmp    $0x200,%eax
14009a528:	75 21                	jne    0x14009a54b
14009a52a:	b9 01 00 00 00       	mov    $0x1,%ecx
14009a52f:	85 ff                	test   %edi,%edi
14009a531:	74 0f                	je     0x14009a542
14009a533:	eb 03                	jmp    0x14009a538
14009a535:	48 03 d9             	add    %rcx,%rbx
14009a538:	8a 03                	mov    (%rbx),%al
14009a53a:	3c 30                	cmp    $0x30,%al
14009a53c:	74 f7                	je     0x14009a535
14009a53e:	84 c0                	test   %al,%al
14009a540:	74 05                	je     0x14009a547
14009a542:	83 fe 2d             	cmp    $0x2d,%esi
14009a545:	75 be                	jne    0x14009a505
14009a547:	32 c9                	xor    %cl,%cl
14009a549:	eb ba                	jmp    0x14009a505
14009a54b:	3d 00 01 00 00       	cmp    $0x100,%eax
14009a550:	75 1f                	jne    0x14009a571
14009a552:	b9 01 00 00 00       	mov    $0x1,%ecx
14009a557:	85 ff                	test   %edi,%edi
14009a559:	74 0f                	je     0x14009a56a
14009a55b:	eb 03                	jmp    0x14009a560
14009a55d:	48 03 d9             	add    %rcx,%rbx
14009a560:	8a 03                	mov    (%rbx),%al
14009a562:	3c 30                	cmp    $0x30,%al
14009a564:	74 f7                	je     0x14009a55d
14009a566:	84 c0                	test   %al,%al
14009a568:	74 dd                	je     0x14009a547
14009a56a:	83 fe 2d             	cmp    $0x2d,%esi
14009a56d:	74 96                	je     0x14009a505
14009a56f:	eb d6                	jmp    0x14009a547
14009a571:	32 c0                	xor    %al,%al
14009a573:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14009a578:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
14009a57d:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14009a582:	48 83 c4 20          	add    $0x20,%rsp
14009a586:	5f                   	pop    %rdi
14009a587:	c3                   	ret
14009a588:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14009a58d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14009a592:	57                   	push   %rdi
14009a593:	48 83 ec 20          	sub    $0x20,%rsp
14009a597:	49 8b d9             	mov    %r9,%rbx
14009a59a:	49 8b f0             	mov    %r8,%rsi
14009a59d:	48 8b fa             	mov    %rdx,%rdi
14009a5a0:	4d 85 c9             	test   %r9,%r9
14009a5a3:	75 04                	jne    0x14009a5a9
14009a5a5:	33 c0                	xor    %eax,%eax
14009a5a7:	eb 56                	jmp    0x14009a5ff
14009a5a9:	48 85 c9             	test   %rcx,%rcx
14009a5ac:	75 15                	jne    0x14009a5c3
14009a5ae:	e8 11 3c fe ff       	call   0x14007e1c4
14009a5b3:	bb 16 00 00 00       	mov    $0x16,%ebx
14009a5b8:	89 18                	mov    %ebx,(%rax)
14009a5ba:	e8 25 42 ff ff       	call   0x14008e7e4
14009a5bf:	8b c3                	mov    %ebx,%eax
14009a5c1:	eb 3c                	jmp    0x14009a5ff
14009a5c3:	48 85 f6             	test   %rsi,%rsi
14009a5c6:	74 12                	je     0x14009a5da
14009a5c8:	48 3b fb             	cmp    %rbx,%rdi
14009a5cb:	72 0d                	jb     0x14009a5da
14009a5cd:	4c 8b c3             	mov    %rbx,%r8
14009a5d0:	48 8b d6             	mov    %rsi,%rdx
14009a5d3:	e8 98 35 00 00       	call   0x14009db70
14009a5d8:	eb cb                	jmp    0x14009a5a5
14009a5da:	4c 8b c7             	mov    %rdi,%r8
14009a5dd:	33 d2                	xor    %edx,%edx
14009a5df:	e8 2c 3c 00 00       	call   0x14009e210
14009a5e4:	48 85 f6             	test   %rsi,%rsi
14009a5e7:	74 c5                	je     0x14009a5ae
14009a5e9:	48 3b fb             	cmp    %rbx,%rdi
14009a5ec:	73 0c                	jae    0x14009a5fa
14009a5ee:	e8 d1 3b fe ff       	call   0x14007e1c4
14009a5f3:	bb 22 00 00 00       	mov    $0x22,%ebx
14009a5f8:	eb be                	jmp    0x14009a5b8
14009a5fa:	b8 16 00 00 00       	mov    $0x16,%eax
14009a5ff:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14009a604:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
14009a609:	48 83 c4 20          	add    $0x20,%rsp
14009a60d:	5f                   	pop    %rdi
14009a60e:	c3                   	ret
14009a60f:	cc                   	int3
14009a610:	40 55                	rex push %rbp
14009a612:	53                   	push   %rbx
14009a613:	56                   	push   %rsi
14009a614:	57                   	push   %rdi
14009a615:	41 54                	push   %r12
14009a617:	41 56                	push   %r14
14009a619:	41 57                	push   %r15
14009a61b:	48 8d ac 24 10 f9 ff 	lea    -0x6f0(%rsp),%rbp
14009a622:	ff
14009a623:	48 81 ec f0 07 00 00 	sub    $0x7f0,%rsp
14009a62a:	48 8b 05 0f 6a 06 00 	mov    0x66a0f(%rip),%rax        # 0x140101040
14009a631:	48 33 c4             	xor    %rsp,%rax
14009a634:	48 89 85 e0 06 00 00 	mov    %rax,0x6e0(%rbp)
14009a63b:	4c 8b b5 50 07 00 00 	mov    0x750(%rbp),%r14
14009a642:	4d 8b e1             	mov    %r9,%r12
14009a645:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
14009a64a:	8b f2                	mov    %edx,%esi
14009a64c:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
14009a651:	4c 89 75 88          	mov    %r14,-0x78(%rbp)
14009a655:	4c 89 4d 98          	mov    %r9,-0x68(%rbp)
14009a659:	44 89 44 24 64       	mov    %r8d,0x64(%rsp)
14009a65e:	e8 91 19 00 00       	call   0x14009bff4
14009a663:	8b 44 24 70          	mov    0x70(%rsp),%eax
14009a667:	41 bf 01 00 00 00    	mov    $0x1,%r15d
14009a66d:	83 e0 1f             	and    $0x1f,%eax
14009a670:	3c 1f                	cmp    $0x1f,%al
14009a672:	75 07                	jne    0x14009a67b
14009a674:	c6 44 24 78 00       	movb   $0x0,0x78(%rsp)
14009a679:	eb 0f                	jmp    0x14009a68a
14009a67b:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
14009a680:	e8 e7 19 00 00       	call   0x14009c06c
14009a685:	44 88 7c 24 78       	mov    %r15b,0x78(%rsp)
14009a68a:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
14009a68f:	bf 20 00 00 00       	mov    $0x20,%edi
14009a694:	8b c7                	mov    %edi,%eax
14009a696:	4d 89 74 24 08       	mov    %r14,0x8(%r12)
14009a69b:	48 85 db             	test   %rbx,%rbx
14009a69e:	8d 4f 0d             	lea    0xd(%rdi),%ecx
14009a6a1:	0f 48 c1             	cmovs  %ecx,%eax
14009a6a4:	45 33 c0             	xor    %r8d,%r8d
14009a6a7:	33 d2                	xor    %edx,%edx
14009a6a9:	41 89 04 24          	mov    %eax,(%r12)
14009a6ad:	48 8d 4d 80          	lea    -0x80(%rbp),%rcx
14009a6b1:	e8 da 18 00 00       	call   0x14009bf90
14009a6b6:	48 8b c3             	mov    %rbx,%rax
14009a6b9:	ba ff 07 00 00       	mov    $0x7ff,%edx
14009a6be:	48 c1 e8 34          	shr    $0x34,%rax
14009a6c2:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
14009a6c9:	ff 0f 00
14009a6cc:	48 23 c2             	and    %rdx,%rax
14009a6cf:	75 21                	jne    0x14009a6f2
14009a6d1:	48 85 d9             	test   %rbx,%rcx
14009a6d4:	74 0d                	je     0x14009a6e3
14009a6d6:	f7 45 80 00 00 00 01 	testl  $0x1000000,-0x80(%rbp)
14009a6dd:	0f 84 c3 00 00 00    	je     0x14009a7a6
14009a6e3:	41 83 64 24 04 00    	andl   $0x0,0x4(%r12)
14009a6e9:	4c 8d 05 54 47 04 00 	lea    0x44754(%rip),%r8        # 0x1400dee44
14009a6f0:	eb 60                	jmp    0x14009a752
14009a6f2:	48 3b c2             	cmp    %rdx,%rax
14009a6f5:	0f 85 ab 00 00 00    	jne    0x14009a7a6
14009a6fb:	48 8b c3             	mov    %rbx,%rax
14009a6fe:	48 23 c1             	and    %rcx,%rax
14009a701:	75 05                	jne    0x14009a708
14009a703:	41 8b c7             	mov    %r15d,%eax
14009a706:	eb 2a                	jmp    0x14009a732
14009a708:	48 85 db             	test   %rbx,%rbx
14009a70b:	79 16                	jns    0x14009a723
14009a70d:	48 b9 00 00 00 00 00 	movabs $0x8000000000000,%rcx
14009a714:	00 08 00
14009a717:	48 3b c1             	cmp    %rcx,%rax
14009a71a:	75 07                	jne    0x14009a723
14009a71c:	b8 04 00 00 00       	mov    $0x4,%eax
14009a721:	eb 0f                	jmp    0x14009a732
14009a723:	48 8b c3             	mov    %rbx,%rax
14009a726:	48 c1 e8 33          	shr    $0x33,%rax
14009a72a:	f7 d0                	not    %eax
14009a72c:	41 23 c7             	and    %r15d,%eax
14009a72f:	83 c8 02             	or     $0x2,%eax
14009a732:	45 89 7c 24 04       	mov    %r15d,0x4(%r12)
14009a737:	41 2b c7             	sub    %r15d,%eax
14009a73a:	74 44                	je     0x14009a780
14009a73c:	41 2b c7             	sub    %r15d,%eax
14009a73f:	74 36                	je     0x14009a777
14009a741:	41 2b c7             	sub    %r15d,%eax
14009a744:	74 28                	je     0x14009a76e
14009a746:	41 3b c7             	cmp    %r15d,%eax
14009a749:	75 5b                	jne    0x14009a7a6
14009a74b:	4c 8d 05 0e 47 04 00 	lea    0x4470e(%rip),%r8        # 0x1400dee60
14009a752:	48 8b 95 58 07 00 00 	mov    0x758(%rbp),%rdx
14009a759:	49 8b ce             	mov    %r14,%rcx
14009a75c:	e8 df 13 ff ff       	call   0x14008bb40
14009a761:	85 c0                	test   %eax,%eax
14009a763:	0f 85 1f 11 00 00    	jne    0x14009b888
14009a769:	e9 e5 10 00 00       	jmp    0x14009b853
14009a76e:	4c 8d 05 e3 46 04 00 	lea    0x446e3(%rip),%r8        # 0x1400dee58
14009a775:	eb db                	jmp    0x14009a752
14009a777:	4c 8d 05 d2 46 04 00 	lea    0x446d2(%rip),%r8        # 0x1400dee50
14009a77e:	eb d2                	jmp    0x14009a752
14009a780:	48 8b 95 58 07 00 00 	mov    0x758(%rbp),%rdx
14009a787:	4c 8d 05 ba 46 04 00 	lea    0x446ba(%rip),%r8        # 0x1400dee48
14009a78e:	49 8b ce             	mov    %r14,%rcx
14009a791:	e8 aa 13 ff ff       	call   0x14008bb40
14009a796:	85 c0                	test   %eax,%eax
14009a798:	0f 85 ea 10 00 00    	jne    0x14009b888
14009a79e:	45 33 ff             	xor    %r15d,%r15d
14009a7a1:	e9 ad 10 00 00       	jmp    0x14009b853
14009a7a6:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
14009a7ad:	ff ff 7f
14009a7b0:	48 8d 4c 24 68       	lea    0x68(%rsp),%rcx
14009a7b5:	48 23 d8             	and    %rax,%rbx
14009a7b8:	45 33 c0             	xor    %r8d,%r8d
14009a7bb:	48 89 5c 24 50       	mov    %rbx,0x50(%rsp)
14009a7c0:	33 d2                	xor    %edx,%edx
14009a7c2:	bb 1f 00 08 00       	mov    $0x8001f,%ebx
14009a7c7:	89 5c 24 6c          	mov    %ebx,0x6c(%rsp)
14009a7cb:	e8 c0 17 00 00       	call   0x14009bf90
14009a7d0:	44 8b 44 24 6c       	mov    0x6c(%rsp),%r8d
14009a7d5:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
14009a7da:	8b d3                	mov    %ebx,%edx
14009a7dc:	e8 af 17 00 00       	call   0x14009bf90
14009a7e1:	f2 0f 10 44 24 50    	movsd  0x50(%rsp),%xmm0
14009a7e7:	ff c6                	inc    %esi
14009a7e9:	41 b9 ff 07 00 00    	mov    $0x7ff,%r9d
14009a7ef:	f2 0f 11 44 24 58    	movsd  %xmm0,0x58(%rsp)
14009a7f5:	48 8b 54 24 58       	mov    0x58(%rsp),%rdx
14009a7fa:	4c 8b c2             	mov    %rdx,%r8
14009a7fd:	89 74 24 60          	mov    %esi,0x60(%rsp)
14009a801:	49 c1 e8 34          	shr    $0x34,%r8
14009a805:	be 02 00 00 00       	mov    $0x2,%esi
14009a80a:	49 8b c8             	mov    %r8,%rcx
14009a80d:	49 23 c9             	and    %r9,%rcx
14009a810:	48 8b c1             	mov    %rcx,%rax
14009a813:	48 f7 d8             	neg    %rax
14009a816:	48 b8 00 00 00 00 00 	movabs $0x10000000000000,%rax
14009a81d:	00 10 00
14009a820:	48 1b db             	sbb    %rbx,%rbx
14009a823:	48 23 d8             	and    %rax,%rbx
14009a826:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
14009a82d:	ff 0f 00
14009a830:	48 23 d0             	and    %rax,%rdx
14009a833:	48 03 da             	add    %rdx,%rbx
14009a836:	48 f7 d9             	neg    %rcx
14009a839:	1b c0                	sbb    %eax,%eax
14009a83b:	45 23 c1             	and    %r9d,%r8d
14009a83e:	44 8d 24 06          	lea    (%rsi,%rax,1),%r12d
14009a842:	45 03 e0             	add    %r8d,%r12d
14009a845:	e8 36 19 00 00       	call   0x14009c180
14009a84a:	e8 6d 18 00 00       	call   0x14009c0bc
14009a84f:	f2 0f 2c c8          	cvttsd2si %xmm0,%ecx
14009a853:	89 5d a4             	mov    %ebx,-0x5c(%rbp)
14009a856:	8d 81 01 00 00 80    	lea    -0x7fffffff(%rcx),%eax
14009a85c:	83 e0 fe             	and    $0xfffffffe,%eax
14009a85f:	f7 d8                	neg    %eax
14009a861:	1b c0                	sbb    %eax,%eax
14009a863:	48 c1 eb 20          	shr    $0x20,%rbx
14009a867:	23 c1                	and    %ecx,%eax
14009a869:	89 5d a8             	mov    %ebx,-0x58(%rbp)
14009a86c:	89 44 24 30          	mov    %eax,0x30(%rsp)
14009a870:	8b c3                	mov    %ebx,%eax
14009a872:	f7 d8                	neg    %eax
14009a874:	1b d2                	sbb    %edx,%edx
14009a876:	f7 da                	neg    %edx
14009a878:	41 03 d7             	add    %r15d,%edx
14009a87b:	89 55 a0             	mov    %edx,-0x60(%rbp)
14009a87e:	41 81 fc 34 04 00 00 	cmp    $0x434,%r12d
14009a885:	0f 82 1a 02 00 00    	jb     0x14009aaa5
14009a88b:	33 c0                	xor    %eax,%eax
14009a88d:	c7 85 48 03 00 00 00 	movl   $0x100000,0x348(%rbp)
14009a894:	00 10 00
14009a897:	89 85 44 03 00 00    	mov    %eax,0x344(%rbp)
14009a89d:	89 b5 40 03 00 00    	mov    %esi,0x340(%rbp)
14009a8a3:	85 db                	test   %ebx,%ebx
14009a8a5:	0f 84 0c 01 00 00    	je     0x14009a9b7
14009a8ab:	45 33 c0             	xor    %r8d,%r8d
14009a8ae:	42 8b 44 85 a4       	mov    -0x5c(%rbp,%r8,4),%eax
14009a8b3:	42 39 84 85 44 03 00 	cmp    %eax,0x344(%rbp,%r8,4)
14009a8ba:	00
14009a8bb:	0f 85 f6 00 00 00    	jne    0x14009a9b7
14009a8c1:	45 03 c7             	add    %r15d,%r8d
14009a8c4:	44 3b c6             	cmp    %esi,%r8d
14009a8c7:	75 e5                	jne    0x14009a8ae
14009a8c9:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
14009a8ce:	45 8d 9c 24 ce fb ff 	lea    -0x432(%r12),%r11d
14009a8d5:	ff
14009a8d6:	45 8b c3             	mov    %r11d,%r8d
14009a8d9:	8d 42 ff             	lea    -0x1(%rdx),%eax
14009a8dc:	41 83 e3 1f          	and    $0x1f,%r11d
14009a8e0:	41 c1 e8 05          	shr    $0x5,%r8d
14009a8e4:	8b f7                	mov    %edi,%esi
14009a8e6:	49 8b df             	mov    %r15,%rbx
14009a8e9:	41 2b f3             	sub    %r11d,%esi
14009a8ec:	8b ce                	mov    %esi,%ecx
14009a8ee:	48 d3 e3             	shl    %cl,%rbx
14009a8f1:	41 2b df             	sub    %r15d,%ebx
14009a8f4:	0f bd 44 85 a4       	bsr    -0x5c(%rbp,%rax,4),%eax
14009a8f9:	44 8b e3             	mov    %ebx,%r12d
14009a8fc:	41 f7 d4             	not    %r12d
14009a8ff:	74 04                	je     0x14009a905
14009a901:	ff c0                	inc    %eax
14009a903:	eb 02                	jmp    0x14009a907
14009a905:	33 c0                	xor    %eax,%eax
14009a907:	2b f8                	sub    %eax,%edi
14009a909:	42 8d 04 02          	lea    (%rdx,%r8,1),%eax
14009a90d:	83 f8 73             	cmp    $0x73,%eax
14009a910:	0f 87 81 00 00 00    	ja     0x14009a997
14009a916:	45 33 f6             	xor    %r14d,%r14d
14009a919:	44 3b df             	cmp    %edi,%r11d
14009a91c:	41 0f 97 c6          	seta   %r14b
14009a920:	44 03 f2             	add    %edx,%r14d
14009a923:	45 03 f0             	add    %r8d,%r14d
14009a926:	41 83 fe 73          	cmp    $0x73,%r14d
14009a92a:	77 6b                	ja     0x14009a997
14009a92c:	41 8d 78 ff          	lea    -0x1(%r8),%edi
14009a930:	45 8d 56 ff          	lea    -0x1(%r14),%r10d
14009a934:	44 3b d7             	cmp    %edi,%r10d
14009a937:	74 48                	je     0x14009a981
14009a939:	41 8b c2             	mov    %r10d,%eax
14009a93c:	41 2b c0             	sub    %r8d,%eax
14009a93f:	8d 48 ff             	lea    -0x1(%rax),%ecx
14009a942:	3b c2                	cmp    %edx,%eax
14009a944:	73 07                	jae    0x14009a94d
14009a946:	44 8b 4c 85 a4       	mov    -0x5c(%rbp,%rax,4),%r9d
14009a94b:	eb 03                	jmp    0x14009a950
14009a94d:	45 33 c9             	xor    %r9d,%r9d
14009a950:	3b ca                	cmp    %edx,%ecx
14009a952:	73 06                	jae    0x14009a95a
14009a954:	8b 54 8d a4          	mov    -0x5c(%rbp,%rcx,4),%edx
14009a958:	eb 02                	jmp    0x14009a95c
14009a95a:	33 d2                	xor    %edx,%edx
14009a95c:	41 23 d4             	and    %r12d,%edx
14009a95f:	8b ce                	mov    %esi,%ecx
14009a961:	d3 ea                	shr    %cl,%edx
14009a963:	44 23 cb             	and    %ebx,%r9d
14009a966:	41 8b cb             	mov    %r11d,%ecx
14009a969:	41 d3 e1             	shl    %cl,%r9d
14009a96c:	41 0b d1             	or     %r9d,%edx
14009a96f:	42 89 54 95 a4       	mov    %edx,-0x5c(%rbp,%r10,4)
14009a974:	41 ff ca             	dec    %r10d
14009a977:	44 3b d7             	cmp    %edi,%r10d
14009a97a:	74 05                	je     0x14009a981
14009a97c:	8b 55 a0             	mov    -0x60(%rbp),%edx
14009a97f:	eb b8                	jmp    0x14009a939
14009a981:	33 c9                	xor    %ecx,%ecx
14009a983:	45 85 c0             	test   %r8d,%r8d
14009a986:	74 12                	je     0x14009a99a
14009a988:	83 64 8d a4 00       	andl   $0x0,-0x5c(%rbp,%rcx,4)
14009a98d:	41 03 cf             	add    %r15d,%ecx
14009a990:	41 3b c8             	cmp    %r8d,%ecx
14009a993:	75 f3                	jne    0x14009a988
14009a995:	eb 03                	jmp    0x14009a99a
14009a997:	45 33 f6             	xor    %r14d,%r14d
14009a99a:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
14009a99e:	45 8b e7             	mov    %r15d,%r12d