18003655a:	4c 8d 44 24 70       	lea    0x70(%rsp),%r8
18003655f:	48 83 20 00          	andq   $0x0,(%rax)
180036563:	ba 08 00 00 00       	mov    $0x8,%edx
180036568:	48 83 64 24 70 00    	andq   $0x0,0x70(%rsp)
18003656e:	c7 40 08 00 80 00 00 	movl   $0x8000,0x8(%rax)
180036575:	e8 7a 53 06 00       	call   0x18009b8f4
18003657a:	8b d8                	mov    %eax,%ebx
18003657c:	85 c0                	test   %eax,%eax
18003657e:	78 91                	js     0x180036511
180036580:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
180036585:	33 d2                	xor    %edx,%edx
180036587:	48 89 07             	mov    %rax,(%rdi)
18003658a:	41 b8 00 80 00 00    	mov    $0x8000,%r8d
180036590:	8b 4e 30             	mov    0x30(%rsi),%ecx
180036593:	4c 8d 49 ff          	lea    -0x1(%rcx),%r9
180036597:	49 f7 d1             	not    %r9
18003659a:	4d 23 cf             	and    %r15,%r9
18003659d:	49 8b c1             	mov    %r9,%rax
1800365a0:	48 f7 f1             	div    %rcx
1800365a3:	48 8b cd             	mov    %rbp,%rcx
1800365a6:	48 89 46 40          	mov    %rax,0x40(%rsi)
1800365aa:	41 8b c7             	mov    %r15d,%eax
1800365ad:	41 2b c1             	sub    %r9d,%eax
1800365b0:	45 33 c9             	xor    %r9d,%r9d
1800365b3:	89 46 48             	mov    %eax,0x48(%rsi)
1800365b6:	48 8b 17             	mov    (%rdi),%rdx
1800365b9:	e8 16 e9 ff ff       	call   0x180034ed4
1800365be:	8b d8                	mov    %eax,%ebx
1800365c0:	85 c0                	test   %eax,%eax
1800365c2:	0f 88 49 ff ff ff    	js     0x180036511
1800365c8:	4d 89 3e             	mov    %r15,(%r14)
1800365cb:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800365d0:	49 89 6e 08          	mov    %rbp,0x8(%r14)
1800365d4:	41 b9 10 00 00 00    	mov    $0x10,%r9d
1800365da:	8b 0d ec 5f 13 00    	mov    0x135fec(%rip),%ecx        # 0x18016c5cc
1800365e0:	4c 8b c7             	mov    %rdi,%r8
1800365e3:	83 64 24 24 00       	andl   $0x0,0x24(%rsp)
1800365e8:	c7 44 24 20 10 00 00 	movl   $0x10,0x20(%rsp)
1800365ef:	00
1800365f0:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
1800365f5:	e8 de e9 05 00       	call   0x180094fd8
1800365fa:	8b d8                	mov    %eax,%ebx
1800365fc:	85 c0                	test   %eax,%eax
1800365fe:	0f 88 0d ff ff ff    	js     0x180036511
180036604:	48 8b 07             	mov    (%rdi),%rax
180036607:	49 89 04 24          	mov    %rax,(%r12)
18003660b:	e9 0c ff ff ff       	jmp    0x18003651c
180036610:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180036615:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18003661a:	56                   	push   %rsi
18003661b:	57                   	push   %rdi
18003661c:	41 56                	push   %r14
18003661e:	48 83 ec 40          	sub    $0x40,%rsp
180036622:	48 8b f2             	mov    %rdx,%rsi
180036625:	41 8b e8             	mov    %r8d,%ebp
180036628:	48 81 e6 00 80 ff ff 	and    $0xffffffffffff8000,%rsi
18003662f:	4c 8b f1             	mov    %rcx,%r14
180036632:	48 03 ea             	add    %rdx,%rbp
180036635:	eb 6a                	jmp    0x1800366a1
180036637:	8b 0d 8f 5f 13 00    	mov    0x135f8f(%rip),%ecx        # 0x18016c5cc
18003663d:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
180036642:	83 64 24 24 00       	andl   $0x0,0x24(%rsp)
180036647:	4c 8d 44 24 68       	lea    0x68(%rsp),%r8
18003664c:	48 89 74 24 30       	mov    %rsi,0x30(%rsp)
180036651:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180036656:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18003665b:	48 81 c6 00 80 00 00 	add    $0x8000,%rsi
180036662:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
180036667:	c7 44 24 20 10 00 00 	movl   $0x10,0x20(%rsp)
18003666e:	00
18003666f:	e8 a0 e8 05 00       	call   0x180094f14
180036674:	85 c0                	test   %eax,%eax
180036676:	78 29                	js     0x1800366a1
180036678:	48 8b 44 24 68       	mov    0x68(%rsp),%rax
18003667d:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180036682:	8b 0d 44 5f 13 00    	mov    0x135f44(%rip),%ecx        # 0x18016c5cc
180036688:	48 8b 7c 24 28       	mov    0x28(%rsp),%rdi
18003668d:	48 8b 58 08          	mov    0x8(%rax),%rbx
180036691:	e8 3a ea 05 00       	call   0x1800950d0
180036696:	48 8b d3             	mov    %rbx,%rdx
180036699:	48 8b cf             	mov    %rdi,%rcx
18003669c:	e8 9b 00 00 00       	call   0x18003673c
1800366a1:	48 3b f5             	cmp    %rbp,%rsi
1800366a4:	72 91                	jb     0x180036637
1800366a6:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1800366ab:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
1800366b0:	48 83 c4 40          	add    $0x40,%rsp
1800366b4:	41 5e                	pop    %r14
1800366b6:	5f                   	pop    %rdi
1800366b7:	5e                   	pop    %rsi
1800366b8:	c3                   	ret
1800366b9:	cc                   	int3
1800366ba:	cc                   	int3
1800366bb:	cc                   	int3
1800366bc:	8b 02                	mov    (%rdx),%eax
1800366be:	39 01                	cmp    %eax,(%rcx)
1800366c0:	75 26                	jne    0x1800366e8
1800366c2:	8b 42 04             	mov    0x4(%rdx),%eax
1800366c5:	39 41 04             	cmp    %eax,0x4(%rcx)
1800366c8:	75 1e                	jne    0x1800366e8
1800366ca:	4c 8b 41 08          	mov    0x8(%rcx),%r8
1800366ce:	48 8b 4a 08          	mov    0x8(%rdx),%rcx
1800366d2:	48 8b 01             	mov    (%rcx),%rax
1800366d5:	49 39 00             	cmp    %rax,(%r8)
1800366d8:	75 0e                	jne    0x1800366e8
1800366da:	48 8b 41 08          	mov    0x8(%rcx),%rax
1800366de:	49 39 40 08          	cmp    %rax,0x8(%r8)
1800366e2:	75 04                	jne    0x1800366e8
1800366e4:	b0 01                	mov    $0x1,%al
1800366e6:	c3                   	ret
1800366e7:	cc                   	int3
1800366e8:	32 c0                	xor    %al,%al
1800366ea:	c3                   	ret
1800366eb:	cc                   	int3
1800366ec:	48 83 ec 48          	sub    $0x48,%rsp
1800366f0:	eb 1f                	jmp    0x180036711
1800366f2:	8b 0d d4 5e 13 00    	mov    0x135ed4(%rip),%ecx        # 0x18016c5cc
1800366f8:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800366fd:	e8 ce e9 05 00       	call   0x1800950d0
180036702:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
180036707:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
18003670c:	e8 2b 00 00 00       	call   0x18003673c
180036711:	8b 0d b5 5e 13 00    	mov    0x135eb5(%rip),%ecx        # 0x18016c5cc
180036717:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
18003671c:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
180036721:	e8 aa ea 05 00       	call   0x1800951d0
180036726:	85 c0                	test   %eax,%eax
180036728:	79 c8                	jns    0x1800366f2
18003672a:	8b 0d a0 5e 13 00    	mov    0x135ea0(%rip),%ecx        # 0x18016c5d0
180036730:	48 83 c4 48          	add    $0x48,%rsp
180036734:	e9 bb 53 06 00       	jmp    0x18009baf4
180036739:	cc                   	int3
18003673a:	cc                   	int3
18003673b:	cc                   	int3
18003673c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180036741:	57                   	push   %rdi
180036742:	48 83 ec 20          	sub    $0x20,%rsp
180036746:	48 8b da             	mov    %rdx,%rbx
180036749:	48 8b f9             	mov    %rcx,%rdi
18003674c:	48 85 d2             	test   %rdx,%rdx
18003674f:	74 23                	je     0x180036774
180036751:	48 8b 12             	mov    (%rdx),%rdx
180036754:	48 85 d2             	test   %rdx,%rdx
180036757:	74 13                	je     0x18003676c
180036759:	44 8b 43 08          	mov    0x8(%rbx),%r8d
18003675d:	8b 0d 6d 5e 13 00    	mov    0x135e6d(%rip),%ecx        # 0x18016c5d0
180036763:	41 c1 e8 0c          	shr    $0xc,%r8d
180036767:	e8 f8 53 06 00       	call   0x18009bb64
18003676c:	48 8b cb             	mov    %rbx,%rcx
18003676f:	e8 88 38 06 00       	call   0x180099ffc
180036774:	48 85 ff             	test   %rdi,%rdi
180036777:	74 08                	je     0x180036781
180036779:	48 8b cf             	mov    %rdi,%rcx
18003677c:	e8 7b 38 06 00       	call   0x180099ffc
180036781:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180036786:	48 83 c4 20          	add    $0x20,%rsp
18003678a:	5f                   	pop    %rdi
18003678b:	c3                   	ret
18003678c:	cc                   	int3
18003678d:	cc                   	int3
18003678e:	cc                   	int3
18003678f:	cc                   	int3
180036790:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180036795:	4c 8b 59 08          	mov    0x8(%rcx),%r11
180036799:	45 33 c0             	xor    %r8d,%r8d
18003679c:	8b da                	mov    %edx,%ebx
18003679e:	49 8b cb             	mov    %r11,%rcx
1800367a1:	45 8d 48 08          	lea    0x8(%r8),%r9d
1800367a5:	45 8b d1             	mov    %r9d,%r10d
1800367a8:	0f b6 01             	movzbl (%rcx),%eax
1800367ab:	48 ff c1             	inc    %rcx
1800367ae:	44 03 c0             	add    %eax,%r8d
1800367b1:	49 83 ea 01          	sub    $0x1,%r10
1800367b5:	75 f1                	jne    0x1800367a8
1800367b7:	49 8d 43 08          	lea    0x8(%r11),%rax
1800367bb:	0f b6 08             	movzbl (%rax),%ecx
1800367be:	48 ff c0             	inc    %rax
1800367c1:	44 03 c1             	add    %ecx,%r8d
1800367c4:	49 83 e9 01          	sub    $0x1,%r9
1800367c8:	75 f1                	jne    0x1800367bb
1800367ca:	33 d2                	xor    %edx,%edx
1800367cc:	41 8b c0             	mov    %r8d,%eax
1800367cf:	f7 f3                	div    %ebx
1800367d1:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
1800367d6:	8b c2                	mov    %edx,%eax
1800367d8:	c3                   	ret
1800367d9:	cc                   	int3
1800367da:	cc                   	int3
1800367db:	cc                   	int3
1800367dc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800367e1:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1800367e6:	57                   	push   %rdi
1800367e7:	48 83 ec 30          	sub    $0x30,%rsp
1800367eb:	48 8b fa             	mov    %rdx,%rdi
1800367ee:	48 8d 54 24 58       	lea    0x58(%rsp),%rdx
1800367f3:	e8 e8 55 00 00       	call   0x18003bde0
1800367f8:	85 c0                	test   %eax,%eax
1800367fa:	0f 88 15 01 00 00    	js     0x180036915
180036800:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180036805:	48 8d 05 6c cb fc ff 	lea    -0x33494(%rip),%rax        # 0x180003378
18003680c:	4c 8b c3             	mov    %rbx,%r8
18003680f:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180036814:	4c 8d 4c 24 50       	lea    0x50(%rsp),%r9
180036819:	48 8d 15 5c e4 16 00 	lea    0x16e45c(%rip),%rdx        # 0x1801a4c7c
180036820:	48 8d 0d 59 e4 16 00 	lea    0x16e459(%rip),%rcx        # 0x1801a4c80
180036827:	e8 00 9e 05 00       	call   0x18009062c
18003682c:	8b f0                	mov    %eax,%esi
18003682e:	85 c0                	test   %eax,%eax
180036830:	79 27                	jns    0x180036859
180036832:	48 8b 43 40          	mov    0x40(%rbx),%rax
180036836:	48 8b cb             	mov    %rbx,%rcx
180036839:	ff d0                	call   *%rax
18003683b:	0f 1f 00             	nopl   (%rax)
18003683e:	48 8b 8b 88 00 00 00 	mov    0x88(%rbx),%rcx
180036845:	e8 b2 37 06 00       	call   0x180099ffc
18003684a:	48 8b cb             	mov    %rbx,%rcx
18003684d:	e8 aa 37 06 00       	call   0x180099ffc
180036852:	8b c6                	mov    %esi,%eax
180036854:	e9 bc 00 00 00       	jmp    0x180036915
180036859:	48 8b 83 80 00 00 00 	mov    0x80(%rbx),%rax
180036860:	ba 02 00 00 00       	mov    $0x2,%edx
180036865:	48 8b 8f 80 00 00 00 	mov    0x80(%rdi),%rcx
18003686c:	44 8d 42 7e          	lea    0x7e(%rdx),%r8d
180036870:	0f 10 00             	movups (%rax),%xmm0
180036873:	0f 11 01             	movups %xmm0,(%rcx)
180036876:	0f 10 48 10          	movups 0x10(%rax),%xmm1
18003687a:	0f 11 49 10          	movups %xmm1,0x10(%rcx)
18003687e:	0f 10 40 20          	movups 0x20(%rax),%xmm0
180036882:	0f 11 41 20          	movups %xmm0,0x20(%rcx)
180036886:	0f 10 48 30          	movups 0x30(%rax),%xmm1
18003688a:	0f 11 49 30          	movups %xmm1,0x30(%rcx)
18003688e:	0f 10 40 40          	movups 0x40(%rax),%xmm0
180036892:	0f 11 41 40          	movups %xmm0,0x40(%rcx)
180036896:	0f 10 48 50          	movups 0x50(%rax),%xmm1
18003689a:	0f 11 49 50          	movups %xmm1,0x50(%rcx)
18003689e:	0f 10 40 60          	movups 0x60(%rax),%xmm0
1800368a2:	0f 11 41 60          	movups %xmm0,0x60(%rcx)
1800368a6:	49 03 c8             	add    %r8,%rcx
1800368a9:	0f 10 48 70          	movups 0x70(%rax),%xmm1
1800368ad:	49 03 c0             	add    %r8,%rax
1800368b0:	0f 11 49 f0          	movups %xmm1,-0x10(%rcx)
1800368b4:	48 83 ea 01          	sub    $0x1,%rdx
1800368b8:	75 b6                	jne    0x180036870
1800368ba:	0f 10 00             	movups (%rax),%xmm0
1800368bd:	0f 11 01             	movups %xmm0,(%rcx)
1800368c0:	0f 10 48 10          	movups 0x10(%rax),%xmm1
1800368c4:	0f 11 49 10          	movups %xmm1,0x10(%rcx)
1800368c8:	0f 10 40 20          	movups 0x20(%rax),%xmm0
1800368cc:	0f 11 41 20          	movups %xmm0,0x20(%rcx)
1800368d0:	0f 10 48 30          	movups 0x30(%rax),%xmm1
1800368d4:	0f 11 49 30          	movups %xmm1,0x30(%rcx)
1800368d8:	0f 10 40 40          	movups 0x40(%rax),%xmm0
1800368dc:	48 8d 05 09 d8 ff ff 	lea    -0x27f7(%rip),%rax        # 0x1800340ec
1800368e3:	0f 11 41 40          	movups %xmm0,0x40(%rcx)
1800368e7:	0f 10 43 30          	movups 0x30(%rbx),%xmm0
1800368eb:	0f 11 47 30          	movups %xmm0,0x30(%rdi)
1800368ef:	0f 10 4b 40          	movups 0x40(%rbx),%xmm1
1800368f3:	0f 11 4f 40          	movups %xmm1,0x40(%rdi)
1800368f7:	0f 10 43 50          	movups 0x50(%rbx),%xmm0
1800368fb:	0f 11 47 50          	movups %xmm0,0x50(%rdi)
1800368ff:	0f 10 4b 60          	movups 0x60(%rbx),%xmm1
180036903:	0f 11 4f 60          	movups %xmm1,0x60(%rdi)
180036907:	0f 10 43 70          	movups 0x70(%rbx),%xmm0
18003690b:	0f 11 47 70          	movups %xmm0,0x70(%rdi)
18003690f:	48 89 47 40          	mov    %rax,0x40(%rdi)
180036913:	33 c0                	xor    %eax,%eax
180036915:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18003691a:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
18003691f:	48 83 c4 30          	add    $0x30,%rsp
180036923:	5f                   	pop    %rdi
180036924:	c3                   	ret
180036925:	cc                   	int3
180036926:	cc                   	int3
180036927:	cc                   	int3
180036928:	48 8b c4             	mov    %rsp,%rax
18003692b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18003692f:	48 89 70 10          	mov    %rsi,0x10(%rax)
180036933:	48 89 78 18          	mov    %rdi,0x18(%rax)
180036937:	55                   	push   %rbp
180036938:	41 54                	push   %r12
18003693a:	41 55                	push   %r13
18003693c:	41 56                	push   %r14
18003693e:	41 57                	push   %r15
180036940:	48 8d a8 78 fe ff ff 	lea    -0x188(%rax),%rbp
180036947:	48 81 ec 60 02 00 00 	sub    $0x260,%rsp
18003694e:	4d 8b e8             	mov    %r8,%r13
180036951:	41 8b f1             	mov    %r9d,%esi
180036954:	8b da                	mov    %edx,%ebx
180036956:	4c 8b e1             	mov    %rcx,%r12
180036959:	33 ff                	xor    %edi,%edi
18003695b:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
180036960:	33 d2                	xor    %edx,%edx
180036962:	40 88 7c 24 3b       	mov    %dil,0x3b(%rsp)
180036967:	41 b8 02 01 00 00    	mov    $0x102,%r8d
18003696d:	e8 0e f3 0f 00       	call   0x180135c80
180036972:	33 d2                	xor    %edx,%edx
180036974:	48 8d 4d 59          	lea    0x59(%rbp),%rcx
180036978:	41 b8 f9 00 00 00    	mov    $0xf9,%r8d
18003697e:	e8 fd f2 0f 00       	call   0x180135c80
180036983:	48 8b 05 16 c6 16 00 	mov    0x16c616(%rip),%rax        # 0x1801a2fa0
18003698a:	48 8d 0d 0f c6 16 00 	lea    0x16c60f(%rip),%rcx        # 0x1801a2fa0
180036991:	48 f7 d8             	neg    %rax
180036994:	4d 1b f6             	sbb    %r14,%r14
180036997:	4c 23 f1             	and    %rcx,%r14
18003699a:	75 0a                	jne    0x1800369a6
18003699c:	bf 0e 00 00 c0       	mov    $0xc000000e,%edi
1800369a1:	e9 30 02 00 00       	jmp    0x180036bd6
1800369a6:	4d 8b 7e 68          	mov    0x68(%r14),%r15
1800369aa:	4d 85 ff             	test   %r15,%r15
1800369ad:	74 ed                	je     0x18003699c
1800369af:	f2 0f 10 05 79 59 11 	movsd  0x115979(%rip),%xmm0        # 0x18014c330
1800369b6:	00
1800369b7:	8a 05 7b 59 11 00    	mov    0x11597b(%rip),%al        # 0x18014c338
1800369bd:	f2 0f 11 44 24 32    	movsd  %xmm0,0x32(%rsp)
1800369c3:	88 44 24 3a          	mov    %al,0x3a(%rsp)
1800369c7:	66 c7 44 24 30 3c 09 	movw   $0x93c,0x30(%rsp)
1800369ce:	f6 c3 01             	test   $0x1,%bl
1800369d1:	0f 85 fa 01 00 00    	jne    0x180036bd1
1800369d7:	d1 eb                	shr    $1,%ebx
1800369d9:	b8 fc 00 00 00       	mov    $0xfc,%eax
1800369de:	3b f0                	cmp    %eax,%esi
1800369e0:	0f 87 eb 01 00 00    	ja     0x180036bd1
1800369e6:	3b d8                	cmp    %eax,%ebx
1800369e8:	0f 87 e3 01 00 00    	ja     0x180036bd1
1800369ee:	8d 46 04             	lea    0x4(%rsi),%eax
1800369f1:	03 c3                	add    %ebx,%eax
1800369f3:	3d ff 00 00 00       	cmp    $0xff,%eax
1800369f8:	0f 87 d3 01 00 00    	ja     0x180036bd1
1800369fe:	4c 8b c6             	mov    %rsi,%r8
180036a01:	66 c7 44 24 40 2b 00 	movw   $0x2b,0x40(%rsp)
180036a08:	49 8b d5             	mov    %r13,%rdx
180036a0b:	c6 44 24 42 01       	movb   $0x1,0x42(%rsp)
180036a10:	48 8d 4c 24 44       	lea    0x44(%rsp),%rcx
180036a15:	40 88 74 24 43       	mov    %sil,0x43(%rsp)
180036a1a:	e8 a1 ef 0f 00       	call   0x1801359c0
180036a1f:	8a 44 24 41          	mov    0x41(%rsp),%al
180036a23:	41 b5 02             	mov    $0x2,%r13b
180036a26:	41 02 f5             	add    %r13b,%sil
180036a29:	44 8b c3             	mov    %ebx,%r8d
180036a2c:	40 02 c6             	add    %sil,%al
180036a2f:	49 8b d4             	mov    %r12,%rdx
180036a32:	0f b6 c8             	movzbl %al,%ecx
180036a35:	88 44 24 41          	mov    %al,0x41(%rsp)
180036a39:	8b f3                	mov    %ebx,%esi
180036a3b:	44 88 6c 0c 42       	mov    %r13b,0x42(%rsp,%rcx,1)
180036a40:	88 5c 0c 43          	mov    %bl,0x43(%rsp,%rcx,1)
180036a44:	48 8d 4c 0c 44       	lea    0x44(%rsp,%rcx,1),%rcx
180036a49:	e8 72 ef 0f 00       	call   0x1801359c0
180036a4e:	42 8d 04 2b          	lea    (%rbx,%r13,1),%eax
180036a52:	66 c7 45 50 7d 00    	movw   $0x7d,0x50(%rbp)