180066557:	44 8d 45 ec          	lea    -0x14(%rbp),%r8d
18006655b:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180066560:	e8 b7 78 0c 00       	call   0x18012de1c
180066565:	85 c0                	test   %eax,%eax
180066567:	75 11                	jne    0x18006657a
180066569:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
18006656e:	8b d5                	mov    %ebp,%edx
180066570:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
180066575:	e8 ae 74 0c 00       	call   0x18012da28
18006657a:	4c 8d 05 6b 8c 0e 00 	lea    0xe8c6b(%rip),%r8        # 0x18014f1ec
180066581:	48 8b d5             	mov    %rbp,%rdx
180066584:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
180066589:	e8 9a 74 0c 00       	call   0x18012da28
18006658e:	8d 4e 01             	lea    0x1(%rsi),%ecx
180066591:	44 8b cb             	mov    %ebx,%r9d
180066594:	41 b8 0c 00 00 00    	mov    $0xc,%r8d
18006659a:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
18006659f:	e8 78 78 0c 00       	call   0x18012de1c
1800665a4:	85 c0                	test   %eax,%eax
1800665a6:	75 12                	jne    0x1800665ba
1800665a8:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
1800665ad:	48 8b d5             	mov    %rbp,%rdx
1800665b0:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1800665b5:	e8 6e 74 0c 00       	call   0x18012da28
1800665ba:	4c 8d 05 2f 8c 0e 00 	lea    0xe8c2f(%rip),%r8        # 0x18014f1f0
1800665c1:	48 8b d5             	mov    %rbp,%rdx
1800665c4:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1800665c9:	e8 5a 74 0c 00       	call   0x18012da28
1800665ce:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
1800665d3:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
1800665d7:	49 ff c0             	inc    %r8
1800665da:	42 80 3c 00 00       	cmpb   $0x0,(%rax,%r8,1)
1800665df:	75 f6                	jne    0x1800665d7
1800665e1:	45 33 c9             	xor    %r9d,%r9d
1800665e4:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
1800665e9:	8b cf                	mov    %edi,%ecx
1800665eb:	e8 a0 06 fc ff       	call   0x180026c90
1800665f0:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1800665f5:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
1800665fa:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
1800665ff:	48 83 c4 50          	add    $0x50,%rsp
180066603:	5f                   	pop    %rdi
180066604:	c3                   	ret
180066605:	cc                   	int3
180066606:	cc                   	int3
180066607:	cc                   	int3
180066608:	48 8b c4             	mov    %rsp,%rax
18006660b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18006660f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180066613:	48 89 70 18          	mov    %rsi,0x18(%rax)
180066617:	48 89 78 20          	mov    %rdi,0x20(%rax)
18006661b:	41 54                	push   %r12
18006661d:	48 83 ec 50          	sub    $0x50,%rsp
180066621:	49 63 f8             	movslq %r8d,%rdi
180066624:	8b da                	mov    %edx,%ebx
180066626:	8b f1                	mov    %ecx,%esi
180066628:	85 d2                	test   %edx,%edx
18006662a:	0f 88 0c 01 00 00    	js     0x18006673c
180066630:	83 fa 0f             	cmp    $0xf,%edx
180066633:	0f 87 03 01 00 00    	ja     0x18006673c
180066639:	45 85 c0             	test   %r8d,%r8d
18006663c:	0f 88 fa 00 00 00    	js     0x18006673c
180066642:	83 ff 07             	cmp    $0x7,%edi
180066645:	0f 87 f1 00 00 00    	ja     0x18006673c
18006664b:	bd 20 00 00 00       	mov    $0x20,%ebp
180066650:	4c 8d 05 b1 8b 0e 00 	lea    0xe8bb1(%rip),%r8        # 0x18014f208
180066657:	8b d5                	mov    %ebp,%edx
180066659:	48 8d 48 d8          	lea    -0x28(%rax),%rcx
18006665d:	e8 5a 74 0c 00       	call   0x18012dabc
180066662:	8b c3                	mov    %ebx,%eax
180066664:	25 07 00 00 80       	and    $0x80000007,%eax
180066669:	7d 07                	jge    0x180066672
18006666b:	ff c8                	dec    %eax
18006666d:	83 c8 f8             	or     $0xfffffff8,%eax
180066670:	ff c0                	inc    %eax
180066672:	48 98                	cltq
180066674:	4c 8d 25 85 99 f9 ff 	lea    -0x6667b(%rip),%r12        # 0x180000000
18006667b:	41 b9 0a 00 00 00    	mov    $0xa,%r9d
180066681:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180066686:	41 8b 8c 84 58 f2 14 	mov    0x14f258(%r12,%rax,4),%ecx
18006668d:	00
18006668e:	45 8d 41 02          	lea    0x2(%r9),%r8d
180066692:	e8 85 77 0c 00       	call   0x18012de1c
180066697:	85 c0                	test   %eax,%eax
180066699:	75 12                	jne    0x1800666ad
18006669b:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
1800666a0:	48 8b d5             	mov    %rbp,%rdx
1800666a3:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1800666a8:	e8 7b 73 0c 00       	call   0x18012da28
1800666ad:	4c 8d 05 38 8b 0e 00 	lea    0xe8b38(%rip),%r8        # 0x18014f1ec
1800666b4:	48 8b d5             	mov    %rbp,%rdx
1800666b7:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1800666bc:	e8 67 73 0c 00       	call   0x18012da28
1800666c1:	41 8b 8c bc 38 f2 14 	mov    0x14f238(%r12,%rdi,4),%ecx
1800666c8:	00
1800666c9:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800666ce:	41 b9 0a 00 00 00    	mov    $0xa,%r9d
1800666d4:	45 8d 41 02          	lea    0x2(%r9),%r8d
1800666d8:	e8 3f 77 0c 00       	call   0x18012de1c
1800666dd:	85 c0                	test   %eax,%eax
1800666df:	75 12                	jne    0x1800666f3
1800666e1:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
1800666e6:	48 8b d5             	mov    %rbp,%rdx
1800666e9:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1800666ee:	e8 35 73 0c 00       	call   0x18012da28
1800666f3:	48 8d 05 1a 8b 0e 00 	lea    0xe8b1a(%rip),%rax        # 0x18014f214
1800666fa:	f7 c3 f8 ff ff ff    	test   $0xfffffff8,%ebx
180066700:	4c 8d 05 09 8b 0e 00 	lea    0xe8b09(%rip),%r8        # 0x18014f210
180066707:	48 8b d5             	mov    %rbp,%rdx
18006670a:	4c 0f 44 c0          	cmove  %rax,%r8
18006670e:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
180066713:	e8 10 73 0c 00       	call   0x18012da28
180066718:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
18006671d:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
180066721:	49 ff c0             	inc    %r8
180066724:	42 80 3c 00 00       	cmpb   $0x0,(%rax,%r8,1)
180066729:	75 f6                	jne    0x180066721
18006672b:	45 33 c9             	xor    %r9d,%r9d
18006672e:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
180066733:	8b ce                	mov    %esi,%ecx
180066735:	e8 56 05 fc ff       	call   0x180026c90
18006673a:	eb 05                	jmp    0x180066741
18006673c:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180066741:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
180066746:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
18006674b:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
180066750:	48 8b 7c 24 78       	mov    0x78(%rsp),%rdi
180066755:	48 83 c4 50          	add    $0x50,%rsp
180066759:	41 5c                	pop    %r12
18006675b:	c3                   	ret
18006675c:	cc                   	int3
18006675d:	cc                   	int3
18006675e:	cc                   	int3
18006675f:	cc                   	int3
180066760:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180066765:	56                   	push   %rsi
180066766:	57                   	push   %rdi
180066767:	41 56                	push   %r14
180066769:	48 83 ec 30          	sub    $0x30,%rsp
18006676d:	4c 8b f2             	mov    %rdx,%r14
180066770:	4c 8d 44 24 60       	lea    0x60(%rsp),%r8
180066775:	48 8b f1             	mov    %rcx,%rsi
180066778:	ba 20 00 00 16       	mov    $0x16000020,%edx
18006677d:	48 8b 0d 54 e2 13 00 	mov    0x13e254(%rip),%rcx        # 0x1801a49d8
180066784:	e8 8b 5c 01 00       	call   0x18007c414
180066789:	33 db                	xor    %ebx,%ebx
18006678b:	85 c0                	test   %eax,%eax
18006678d:	0f 88 63 01 00 00    	js     0x1800668f6
180066793:	38 5c 24 60          	cmp    %bl,0x60(%rsp)
180066797:	0f 84 59 01 00 00    	je     0x1800668f6
18006679d:	48 8b 0d 34 e2 13 00 	mov    0x13e234(%rip),%rcx        # 0x1801a49d8
1800667a4:	4c 8d 44 24 68       	lea    0x68(%rsp),%r8
1800667a9:	ba 22 00 00 15       	mov    $0x15000022,%edx
1800667ae:	e8 0d 5d 01 00       	call   0x18007c4c0
1800667b3:	85 c0                	test   %eax,%eax
1800667b5:	78 70                	js     0x180066827
1800667b7:	33 d2                	xor    %edx,%edx
1800667b9:	44 8d 43 48          	lea    0x48(%rbx),%r8d
1800667bd:	48 8b ce             	mov    %rsi,%rcx
1800667c0:	e8 bb f4 0c 00       	call   0x180135c80
1800667c5:	8b 44 24 68          	mov    0x68(%rsp),%eax
1800667c9:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
1800667ce:	89 46 14             	mov    %eax,0x14(%rsi)
1800667d1:	ba 23 00 00 15       	mov    $0x15000023,%edx
1800667d6:	c7 46 08 48 00 00 00 	movl   $0x48,0x8(%rsi)
1800667dd:	c7 06 03 00 00 00    	movl   $0x3,(%rsi)
1800667e3:	89 5e 10             	mov    %ebx,0x10(%rsi)
1800667e6:	48 8b 0d eb e1 13 00 	mov    0x13e1eb(%rip),%rcx        # 0x1801a49d8
1800667ed:	e8 ce 5c 01 00       	call   0x18007c4c0
1800667f2:	b9 80 25 00 00       	mov    $0x2580,%ecx
1800667f7:	41 89 0e             	mov    %ecx,(%r14)
1800667fa:	85 c0                	test   %eax,%eax
1800667fc:	0f 88 f0 00 00 00    	js     0x1800668f2
180066802:	48 8d 0d 13 8a 0e 00 	lea    0xe8a13(%rip),%rcx        # 0x18014f21c
180066809:	8d 43 04             	lea    0x4(%rbx),%eax
18006680c:	8b 11                	mov    (%rcx),%edx
18006680e:	48 39 54 24 20       	cmp    %rdx,0x20(%rsp)
180066813:	75 03                	jne    0x180066818
180066815:	41 89 16             	mov    %edx,(%r14)
180066818:	48 83 c1 08          	add    $0x8,%rcx
18006681c:	48 83 e8 01          	sub    $0x1,%rax
180066820:	75 ea                	jne    0x18006680c
180066822:	e9 cb 00 00 00       	jmp    0x1800668f2
180066827:	ba 53 50 43 52       	mov    $0x52435053,%edx
18006682c:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
180066831:	e8 e2 c7 02 00       	call   0x180093018
180066836:	48 8b 7c 24 60       	mov    0x60(%rsp),%rdi
18006683b:	85 c0                	test   %eax,%eax
18006683d:	0f 88 b8 00 00 00    	js     0x1800668fb
180066843:	44 8b 47 04          	mov    0x4(%rdi),%r8d
180066847:	41 b9 01 00 00 00    	mov    $0x1,%r9d
18006684d:	48 8b d7             	mov    %rdi,%rdx
180066850:	33 c9                	xor    %ecx,%ecx
180066852:	e8 25 c6 02 00       	call   0x180092e7c
180066857:	84 c0                	test   %al,%al
180066859:	74 0a                	je     0x180066865
18006685b:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180066860:	e9 96 00 00 00       	jmp    0x1800668fb
180066865:	48 39 5f 2c          	cmp    %rbx,0x2c(%rdi)
180066869:	74 f0                	je     0x18006685b
18006686b:	80 7f 28 02          	cmpb   $0x2,0x28(%rdi)
18006686f:	73 ea                	jae    0x18006685b
180066871:	8b c3                	mov    %ebx,%eax
180066873:	85 c0                	test   %eax,%eax
180066875:	0f 88 80 00 00 00    	js     0x1800668fb
18006687b:	48 39 5f 2c          	cmp    %rbx,0x2c(%rdi)
18006687f:	74 75                	je     0x1800668f6
180066881:	33 d2                	xor    %edx,%edx
180066883:	48 8b ce             	mov    %rsi,%rcx
180066886:	44 8d 42 48          	lea    0x48(%rdx),%r8d
18006688a:	e8 f1 f3 0c 00       	call   0x180135c80
18006688f:	c7 46 08 48 00 00 00 	movl   $0x48,0x8(%rsi)
180066896:	c7 06 03 00 00 00    	movl   $0x3,(%rsi)
18006689c:	80 7f 08 02          	cmpb   $0x2,0x8(%rdi)
1800668a0:	72 0b                	jb     0x1800668ad
1800668a2:	38 5f 24             	cmp    %bl,0x24(%rdi)
1800668a5:	74 06                	je     0x1800668ad
1800668a7:	0f b6 47 24          	movzbl 0x24(%rdi),%eax
1800668ab:	eb 05                	jmp    0x1800668b2
1800668ad:	b8 01 00 00 00       	mov    $0x1,%eax
1800668b2:	89 46 10             	mov    %eax,0x10(%rsi)
1800668b5:	4c 8d 05 5c 89 0e 00 	lea    0xe895c(%rip),%r8        # 0x18014f218
1800668bc:	f2 0f 10 47 28       	movsd  0x28(%rdi),%xmm0
1800668c1:	f2 0f 11 46 14       	movsd  %xmm0,0x14(%rsi)
1800668c6:	8b 47 30             	mov    0x30(%rdi),%eax
1800668c9:	89 46 1c             	mov    %eax,0x1c(%rsi)
1800668cc:	b8 04 00 00 00       	mov    $0x4,%eax
1800668d1:	8a 57 3a             	mov    0x3a(%rdi),%dl
1800668d4:	0f b6 cb             	movzbl %bl,%ecx
1800668d7:	41 3a 14 c8          	cmp    (%r8,%rcx,8),%dl
1800668db:	74 0d                	je     0x1800668ea
1800668dd:	fe c3                	inc    %bl
1800668df:	3a d8                	cmp    %al,%bl
1800668e1:	72 f1                	jb     0x1800668d4
1800668e3:	b9 80 25 00 00       	mov    $0x2580,%ecx
1800668e8:	eb 05                	jmp    0x1800668ef
1800668ea:	41 8b 4c c8 04       	mov    0x4(%r8,%rcx,8),%ecx
1800668ef:	41 89 0e             	mov    %ecx,(%r14)
1800668f2:	33 c0                	xor    %eax,%eax
1800668f4:	eb 05                	jmp    0x1800668fb
1800668f6:	b8 9d 00 00 c0       	mov    $0xc000009d,%eax
1800668fb:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180066900:	48 83 c4 30          	add    $0x30,%rsp
180066904:	41 5e                	pop    %r14
180066906:	5f                   	pop    %rdi
180066907:	5e                   	pop    %rsi
180066908:	c3                   	ret
180066909:	cc                   	int3
18006690a:	cc                   	int3
18006690b:	cc                   	int3
18006690c:	4c 8d 51 08          	lea    0x8(%rcx),%r10
180066910:	45 0f b7 d9          	movzwl %r9w,%r11d
180066914:	4c 3b d1             	cmp    %rcx,%r10
180066917:	0f 82 c7 00 00 00    	jb     0x1800669e4
18006691d:	4c 3b d2             	cmp    %rdx,%r10
180066920:	0f 87 be 00 00 00    	ja     0x1800669e4
180066926:	0f b7 01             	movzwl (%rcx),%eax
180066929:	66 c1 c8 08          	ror    $0x8,%ax
18006692d:	44 0f b7 c8          	movzwl %ax,%r9d
180066931:	0f b7 41 02          	movzwl 0x2(%rcx),%eax
180066935:	66 c1 c8 08          	ror    $0x8,%ax
180066939:	66 89 41 02          	mov    %ax,0x2(%rcx)
18006693d:	8b 41 04             	mov    0x4(%rcx),%eax
180066940:	0f c8                	bswap  %eax
180066942:	66 44 89 09          	mov    %r9w,(%rcx)
180066946:	89 41 04             	mov    %eax,0x4(%rcx)
180066949:	41 83 e9 01          	sub    $0x1,%r9d
18006694d:	74 50                	je     0x18006699f
18006694f:	41 83 f9 02          	cmp    $0x2,%r9d
180066953:	74 0a                	je     0x18006695f
180066955:	b9 02 00 00 c0       	mov    $0xc0000002,%ecx
18006695a:	e9 81 00 00 00       	jmp    0x1800669e0
18006695f:	41 0f b7 c0          	movzwl %r8w,%eax
180066963:	41 8b cb             	mov    %r11d,%ecx
180066966:	2b c8                	sub    %eax,%ecx
180066968:	83 c1 02             	add    $0x2,%ecx
18006696b:	44 8b c1             	mov    %ecx,%r8d
18006696e:	49 8d 04 4a          	lea    (%r10,%rcx,2),%rax
180066972:	49 3b c2             	cmp    %r10,%rax
180066975:	72 64                	jb     0x1800669db
180066977:	48 3b d0             	cmp    %rax,%rdx
18006697a:	72 5f                	jb     0x1800669db
18006697c:	33 c9                	xor    %ecx,%ecx
18006697e:	8b d1                	mov    %ecx,%edx
180066980:	4d 85 c0             	test   %r8,%r8
180066983:	74 5b                	je     0x1800669e0
180066985:	41 0f b7 02          	movzwl (%r10),%eax
180066989:	48 ff c2             	inc    %rdx
18006698c:	66 c1 c8 08          	ror    $0x8,%ax
180066990:	66 41 89 02          	mov    %ax,(%r10)
180066994:	4d 8d 52 02          	lea    0x2(%r10),%r10
180066998:	49 3b d0             	cmp    %r8,%rdx
18006699b:	72 e8                	jb     0x180066985
18006699d:	eb 41                	jmp    0x1800669e0
18006699f:	41 0f b7 c0          	movzwl %r8w,%eax
1800669a3:	41 8b cb             	mov    %r11d,%ecx
1800669a6:	2b c8                	sub    %eax,%ecx
1800669a8:	83 c1 02             	add    $0x2,%ecx
1800669ab:	44 8b c1             	mov    %ecx,%r8d
1800669ae:	49 8d 04 8a          	lea    (%r10,%rcx,4),%rax
1800669b2:	49 3b c2             	cmp    %r10,%rax
1800669b5:	72 24                	jb     0x1800669db
1800669b7:	48 3b d0             	cmp    %rax,%rdx
1800669ba:	72 1f                	jb     0x1800669db
1800669bc:	33 c9                	xor    %ecx,%ecx
1800669be:	8b d1                	mov    %ecx,%edx
1800669c0:	4d 85 c0             	test   %r8,%r8
1800669c3:	74 1b                	je     0x1800669e0
1800669c5:	41 8b 02             	mov    (%r10),%eax
1800669c8:	48 ff c2             	inc    %rdx
1800669cb:	0f c8                	bswap  %eax
1800669cd:	41 89 02             	mov    %eax,(%r10)
1800669d0:	4d 8d 52 04          	lea    0x4(%r10),%r10
1800669d4:	49 3b d0             	cmp    %r8,%rdx
1800669d7:	72 ec                	jb     0x1800669c5
1800669d9:	eb 05                	jmp    0x1800669e0
1800669db:	b9 7b 00 00 c0       	mov    $0xc000007b,%ecx
1800669e0:	8b c1                	mov    %ecx,%eax
1800669e2:	c3                   	ret
1800669e3:	cc                   	int3
1800669e4:	b8 7b 00 00 c0       	mov    $0xc000007b,%eax
1800669e9:	c3                   	ret
1800669ea:	cc                   	int3
1800669eb:	cc                   	int3
1800669ec:	48 8b c4             	mov    %rsp,%rax
1800669ef:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800669f3:	48 89 70 10          	mov    %rsi,0x10(%rax)
1800669f7:	48 89 78 18          	mov    %rdi,0x18(%rax)
1800669fb:	4c 89 60 20          	mov    %r12,0x20(%rax)
1800669ff:	55                   	push   %rbp
180066a00:	41 56                	push   %r14
180066a02:	41 57                	push   %r15
180066a04:	48 8b ec             	mov    %rsp,%rbp
180066a07:	48 83 ec 50          	sub    $0x50,%rsp
180066a0b:	45 33 e4             	xor    %r12d,%r12d
180066a0e:	8b fa                	mov    %edx,%edi
180066a10:	45 8b f8             	mov    %r8d,%r15d
180066a13:	c7 40 c0 02 00 00 00 	movl   $0x2,-0x40(%rax)
180066a1a:	49 8b f1             	mov    %r9,%rsi
180066a1d:	44 8b c2             	mov    %edx,%r8d
180066a20:	4c 8d 4d e0          	lea    -0x20(%rbp),%r9
180066a24:	4c 89 60 b8          	mov    %r12,-0x48(%rax)
180066a28:	41 8d 54 24 0c       	lea    0xc(%r12),%edx
180066a2d:	44 8b f1             	mov    %ecx,%r14d
180066a30:	e8 1b 25 00 00       	call   0x180068f50
180066a35:	85 c0                	test   %eax,%eax
180066a37:	79 06                	jns    0x180066a3f
180066a39:	0f b7 4d e4          	movzwl -0x1c(%rbp),%ecx
180066a3d:	eb 37                	jmp    0x180066a76
180066a3f:	8b 45 e0             	mov    -0x20(%rbp),%eax