18001861a:	48 8b d6             	mov    %rsi,%rdx
18001861d:	33 c9                	xor    %ecx,%ecx
18001861f:	e8 58 a8 07 00       	call   0x180092e7c
180018624:	84 c0                	test   %al,%al
180018626:	75 c4                	jne    0x1800185ec
180018628:	48 83 7e 2c 00       	cmpq   $0x0,0x2c(%rsi)
18001862d:	74 bd                	je     0x1800185ec
18001862f:	80 7e 28 02          	cmpb   $0x2,0x28(%rsi)
180018633:	73 b7                	jae    0x1800185ec
180018635:	33 ff                	xor    %edi,%edi
180018637:	85 ff                	test   %edi,%edi
180018639:	0f 88 b2 fe ff ff    	js     0x1800184f1
18001863f:	80 7e 28 00          	cmpb   $0x0,0x28(%rsi)
180018643:	75 04                	jne    0x180018649
180018645:	c6 43 38 01          	movb   $0x1,0x38(%rbx)
180018649:	48 8b 46 2c          	mov    0x2c(%rsi),%rax
18001864d:	4c 8d 05 bc fd 12 00 	lea    0x12fdbc(%rip),%r8        # 0x180148410
180018654:	48 89 43 10          	mov    %rax,0x10(%rbx)
180018658:	32 c0                	xor    %al,%al
18001865a:	c6 03 01             	movb   $0x1,(%rbx)
18001865d:	c7 43 08 03 00 00 00 	movl   $0x3,0x8(%rbx)
180018664:	8a 56 3a             	mov    0x3a(%rsi),%dl
180018667:	0f b6 c8             	movzbl %al,%ecx
18001866a:	41 3a 14 c8          	cmp    (%r8,%rcx,8),%dl
18001866e:	74 0d                	je     0x18001867d
180018670:	fe c0                	inc    %al
180018672:	3c 04                	cmp    $0x4,%al
180018674:	72 f1                	jb     0x180018667
180018676:	b8 80 25 00 00       	mov    $0x2580,%eax
18001867b:	eb 05                	jmp    0x180018682
18001867d:	41 8b 44 c8 04       	mov    0x4(%r8,%rcx,8),%eax
180018682:	89 43 04             	mov    %eax,0x4(%rbx)
180018685:	8a 46 3b             	mov    0x3b(%rsi),%al
180018688:	88 43 03             	mov    %al,0x3(%rbx)
18001868b:	8a 46 3c             	mov    0x3c(%rsi),%al
18001868e:	88 43 02             	mov    %al,0x2(%rbx)
180018691:	8a 46 3e             	mov    0x3e(%rsi),%al
180018694:	88 43 39             	mov    %al,0x39(%rbx)
180018697:	80 7e 08 02          	cmpb   $0x2,0x8(%rsi)
18001869b:	72 12                	jb     0x1800186af
18001869d:	8a 46 24             	mov    0x24(%rsi),%al
1800186a0:	88 43 3a             	mov    %al,0x3a(%rbx)
1800186a3:	8a 46 29             	mov    0x29(%rsi),%al
1800186a6:	88 43 3b             	mov    %al,0x3b(%rbx)
1800186a9:	8a 46 2b             	mov    0x2b(%rsi),%al
1800186ac:	88 43 3c             	mov    %al,0x3c(%rbx)
1800186af:	83 7e 04 50          	cmpl   $0x50,0x4(%rsi)
1800186b3:	0f 82 1e ff ff ff    	jb     0x1800185d7
1800186b9:	0f b7 46 40          	movzwl 0x40(%rsi),%eax
1800186bd:	66 89 43 18          	mov    %ax,0x18(%rbx)
1800186c1:	0f b7 46 42          	movzwl 0x42(%rsi),%eax
1800186c5:	66 89 43 1a          	mov    %ax,0x1a(%rbx)
1800186c9:	8a 46 44             	mov    0x44(%rsi),%al
1800186cc:	88 43 1c             	mov    %al,0x1c(%rbx)
1800186cf:	0f b6 46 4b          	movzbl 0x4b(%rsi),%eax
1800186d3:	66 89 43 1e          	mov    %ax,0x1e(%rbx)
1800186d7:	8a 46 45             	mov    0x45(%rsi),%al
1800186da:	88 43 20             	mov    %al,0x20(%rbx)
1800186dd:	8a 46 46             	mov    0x46(%rsi),%al
1800186e0:	88 43 21             	mov    %al,0x21(%rbx)
1800186e3:	8b 46 47             	mov    0x47(%rsi),%eax
1800186e6:	89 43 24             	mov    %eax,0x24(%rbx)
1800186e9:	e9 ed fe ff ff       	jmp    0x1800185db
1800186ee:	bf 25 02 00 c0       	mov    $0xc0000225,%edi
1800186f3:	85 ff                	test   %edi,%edi
1800186f5:	0f 88 f6 fd ff ff    	js     0x1800184f1
1800186fb:	49 89 1e             	mov    %rbx,(%r14)
1800186fe:	e9 ff fd ff ff       	jmp    0x180018502
180018703:	cc                   	int3
180018704:	48 8b c4             	mov    %rsp,%rax
180018707:	48 89 58 10          	mov    %rbx,0x10(%rax)
18001870b:	48 89 48 08          	mov    %rcx,0x8(%rax)
18001870f:	55                   	push   %rbp
180018710:	56                   	push   %rsi
180018711:	57                   	push   %rdi
180018712:	41 54                	push   %r12
180018714:	41 55                	push   %r13
180018716:	41 56                	push   %r14
180018718:	41 57                	push   %r15
18001871a:	48 81 ec 50 01 00 00 	sub    $0x150,%rsp
180018721:	83 cf ff             	or     $0xffffffff,%edi
180018724:	33 f6                	xor    %esi,%esi
180018726:	33 ed                	xor    %ebp,%ebp
180018728:	89 78 20             	mov    %edi,0x20(%rax)
18001872b:	33 db                	xor    %ebx,%ebx
18001872d:	4d 8b e8             	mov    %r8,%r13
180018730:	4c 8b f2             	mov    %rdx,%r14
180018733:	39 59 10             	cmp    %ebx,0x10(%rcx)
180018736:	75 78                	jne    0x1800187b0
180018738:	33 c9                	xor    %ecx,%ecx
18001873a:	e8 51 89 07 00       	call   0x180091090
18001873f:	44 8b f8             	mov    %eax,%r15d
180018742:	33 c9                	xor    %ecx,%ecx
180018744:	41 c1 e7 10          	shl    $0x10,%r15d
180018748:	e8 43 89 07 00       	call   0x180091090
18001874d:	44 03 f8             	add    %eax,%r15d
180018750:	45 32 e4             	xor    %r12b,%r12b
180018753:	41 83 7e 10 00       	cmpl   $0x0,0x10(%r14)
180018758:	75 07                	jne    0x180018761
18001875a:	41 83 7e 20 00       	cmpl   $0x0,0x20(%r14)
18001875f:	74 6d                	je     0x1800187ce
180018761:	49 8b 45 00          	mov    0x0(%r13),%rax
180018765:	49 3b c5             	cmp    %r13,%rax
180018768:	74 11                	je     0x18001877b
18001876a:	41 8b 4e 20          	mov    0x20(%r14),%ecx
18001876e:	39 48 20             	cmp    %ecx,0x20(%rax)
180018771:	74 5b                	je     0x1800187ce
180018773:	48 8b 00             	mov    (%rax),%rax
180018776:	49 3b c5             	cmp    %r13,%rax
180018779:	75 f3                	jne    0x18001876e
18001877b:	45 84 e4             	test   %r12b,%r12b
18001877e:	74 17                	je     0x180018797
180018780:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180018786:	4c 8b ce             	mov    %rsi,%r9
180018789:	44 8b c5             	mov    %ebp,%r8d
18001878c:	33 d2                	xor    %edx,%edx
18001878e:	8b cf                	mov    %edi,%ecx
180018790:	e8 53 e8 00 00       	call   0x180026fe8
180018795:	8b d8                	mov    %eax,%ebx
180018797:	83 ff ff             	cmp    $0xffffffff,%edi
18001879a:	74 07                	je     0x1800187a3
18001879c:	8b cf                	mov    %edi,%ecx
18001879e:	e8 15 e2 00 00       	call   0x1800269b8
1800187a3:	48 85 f6             	test   %rsi,%rsi
1800187a6:	74 08                	je     0x1800187b0
1800187a8:	48 8b ce             	mov    %rsi,%rcx
1800187ab:	e8 4c 18 08 00       	call   0x180099ffc
1800187b0:	8b c3                	mov    %ebx,%eax
1800187b2:	48 8b 9c 24 98 01 00 	mov    0x198(%rsp),%rbx
1800187b9:	00
1800187ba:	48 81 c4 50 01 00 00 	add    $0x150,%rsp
1800187c1:	41 5f                	pop    %r15
1800187c3:	41 5e                	pop    %r14
1800187c5:	41 5d                	pop    %r13
1800187c7:	41 5c                	pop    %r12
1800187c9:	5f                   	pop    %rdi
1800187ca:	5e                   	pop    %rsi
1800187cb:	5d                   	pop    %rbp
1800187cc:	c3                   	ret
1800187cd:	cc                   	int3
1800187ce:	45 84 e4             	test   %r12b,%r12b
1800187d1:	75 7f                	jne    0x180018852
1800187d3:	48 8b 8c 24 90 01 00 	mov    0x190(%rsp),%rcx
1800187da:	00
1800187db:	4c 8d 8c 24 a8 01 00 	lea    0x1a8(%rsp),%r9
1800187e2:	00
1800187e3:	45 33 c0             	xor    %r8d,%r8d
1800187e6:	41 b4 01             	mov    $0x1,%r12b
1800187e9:	41 8d 50 03          	lea    0x3(%r8),%edx
1800187ed:	e8 1e ea 00 00       	call   0x180027210
1800187f2:	8b bc 24 a8 01 00 00 	mov    0x1a8(%rsp),%edi
1800187f9:	8b d8                	mov    %eax,%ebx
1800187fb:	85 c0                	test   %eax,%eax
1800187fd:	78 98                	js     0x180018797
1800187ff:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
180018804:	8b cf                	mov    %edi,%ecx
180018806:	e8 1d e5 00 00       	call   0x180026d28
18001880b:	8b d8                	mov    %eax,%ebx
18001880d:	85 c0                	test   %eax,%eax
18001880f:	78 86                	js     0x180018797
180018811:	8b 6c 24 48          	mov    0x48(%rsp),%ebp
180018815:	81 fd c2 01 00 00    	cmp    $0x1c2,%ebp
18001881b:	72 77                	jb     0x180018894
18001881d:	8b cd                	mov    %ebp,%ecx
18001881f:	e8 2c 16 08 00       	call   0x180099e50
180018824:	48 8b f0             	mov    %rax,%rsi
180018827:	48 85 c0             	test   %rax,%rax
18001882a:	74 5e                	je     0x18001888a
18001882c:	83 64 24 28 00       	andl   $0x0,0x28(%rsp)
180018831:	4c 8b c8             	mov    %rax,%r9
180018834:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
18001883a:	44 8b c5             	mov    %ebp,%r8d
18001883d:	33 d2                	xor    %edx,%edx
18001883f:	8b cf                	mov    %edi,%ecx
180018841:	e8 d6 e6 00 00       	call   0x180026f1c
180018846:	8b d8                	mov    %eax,%ebx
180018848:	85 c0                	test   %eax,%eax
18001884a:	0f 88 47 ff ff ff    	js     0x180018797
180018850:	eb 03                	jmp    0x180018855
180018852:	41 ff c7             	inc    %r15d
180018855:	8b cd                	mov    %ebp,%ecx
180018857:	44 89 be b8 01 00 00 	mov    %r15d,0x1b8(%rsi)
18001885e:	c1 e9 02             	shr    $0x2,%ecx
180018861:	33 c0                	xor    %eax,%eax
180018863:	45 89 7e 10          	mov    %r15d,0x10(%r14)
180018867:	85 c9                	test   %ecx,%ecx
180018869:	74 12                	je     0x18001887d
18001886b:	48 8b d6             	mov    %rsi,%rdx
18001886e:	44 8b c1             	mov    %ecx,%r8d
180018871:	03 02                	add    (%rdx),%eax
180018873:	48 8d 52 04          	lea    0x4(%rdx),%rdx
180018877:	49 83 e8 01          	sub    $0x1,%r8
18001887b:	75 f4                	jne    0x180018871
18001887d:	f7 d0                	not    %eax
18001887f:	ff c0                	inc    %eax
180018881:	41 89 46 20          	mov    %eax,0x20(%r14)
180018885:	e9 c9 fe ff ff       	jmp    0x180018753
18001888a:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18001888f:	e9 03 ff ff ff       	jmp    0x180018797
180018894:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180018899:	e9 f9 fe ff ff       	jmp    0x180018797
18001889e:	cc                   	int3
18001889f:	cc                   	int3
1800188a0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1800188a5:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
1800188aa:	44 0f b6 51 01       	movzbl 0x1(%rcx),%r10d
1800188af:	44 8b da             	mov    %edx,%r11d
1800188b2:	48 8b 54 24 08       	mov    0x8(%rsp),%rdx
1800188b7:	45 2b da             	sub    %r10d,%r11d
1800188ba:	4c 03 d1             	add    %rcx,%r10
1800188bd:	41 0f b6 f8          	movzbl %r8b,%edi
1800188c1:	bb 01 00 00 00       	mov    $0x1,%ebx
1800188c6:	41 8b cb             	mov    %r11d,%ecx
1800188c9:	4d 85 d2             	test   %r10,%r10
1800188cc:	74 42                	je     0x180018910
1800188ce:	48 81 f9 ff ff ff 7f 	cmp    $0x7fffffff,%rcx
1800188d5:	77 39                	ja     0x180018910
1800188d7:	8b d1                	mov    %ecx,%edx
1800188d9:	49 8b c2             	mov    %r10,%rax
1800188dc:	45 85 db             	test   %r11d,%r11d
1800188df:	74 0e                	je     0x1800188ef
1800188e1:	80 38 00             	cmpb   $0x0,(%rax)
1800188e4:	74 09                	je     0x1800188ef
1800188e6:	48 ff c0             	inc    %rax
1800188e9:	48 83 ea 01          	sub    $0x1,%rdx
1800188ed:	75 f2                	jne    0x1800188e1
1800188ef:	48 8b c2             	mov    %rdx,%rax
1800188f2:	48 f7 d8             	neg    %rax
1800188f5:	45 1b c0             	sbb    %r8d,%r8d
1800188f8:	48 2b ca             	sub    %rdx,%rcx
1800188fb:	41 f7 d0             	not    %r8d
1800188fe:	41 81 e0 0d 00 00 c0 	and    $0xc000000d,%r8d
180018905:	48 f7 da             	neg    %rdx
180018908:	48 1b d2             	sbb    %rdx,%rdx
18001890b:	48 23 d1             	and    %rcx,%rdx
18001890e:	eb 06                	jmp    0x180018916
180018910:	41 b8 0d 00 00 c0    	mov    $0xc000000d,%r8d
180018916:	45 85 c0             	test   %r8d,%r8d
180018919:	78 24                	js     0x18001893f
18001891b:	3b df                	cmp    %edi,%ebx
18001891d:	74 0d                	je     0x18001892c
18001891f:	48 ff c2             	inc    %rdx
180018922:	4c 03 d2             	add    %rdx,%r10
180018925:	44 2b da             	sub    %edx,%r11d
180018928:	ff c3                	inc    %ebx
18001892a:	eb 9a                	jmp    0x1800188c6
18001892c:	48 85 d2             	test   %rdx,%rdx
18001892f:	74 0e                	je     0x18001893f
180018931:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
180018936:	b0 01                	mov    $0x1,%al
180018938:	4d 89 11             	mov    %r10,(%r9)
18001893b:	89 11                	mov    %edx,(%rcx)
18001893d:	eb 02                	jmp    0x180018941
18001893f:	32 c0                	xor    %al,%al
180018941:	48 8b 5c 24 10       	mov    0x10(%rsp),%rbx
180018946:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
18001894b:	c3                   	ret
18001894c:	cc                   	int3
18001894d:	cc                   	int3
18001894e:	cc                   	int3
18001894f:	cc                   	int3
180018950:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180018955:	0f b6 42 01          	movzbl 0x1(%rdx),%eax
180018959:	49 8b d9             	mov    %r9,%rbx
18001895c:	44 8b 19             	mov    (%rcx),%r11d
18001895f:	44 3b d8             	cmp    %eax,%r11d
180018962:	72 1c                	jb     0x180018980
180018964:	4c 8d 4a fe          	lea    -0x2(%rdx),%r9
180018968:	4d 03 cb             	add    %r11,%r9
18001896b:	4c 8d 14 02          	lea    (%rdx,%rax,1),%r10
18001896f:	eb 0a                	jmp    0x18001897b
180018971:	66 41 83 3a 00       	cmpw   $0x0,(%r10)
180018976:	74 14                	je     0x18001898c
180018978:	49 ff c2             	inc    %r10
18001897b:	4d 3b d1             	cmp    %r9,%r10
18001897e:	76 f1                	jbe    0x180018971
180018980:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
180018985:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
18001898a:	c3                   	ret
18001898b:	cc                   	int3
18001898c:	49 83 c2 02          	add    $0x2,%r10
180018990:	41 8b c2             	mov    %r10d,%eax
180018993:	4c 89 13             	mov    %r10,(%rbx)
180018996:	2b c2                	sub    %edx,%eax
180018998:	44 2b d8             	sub    %eax,%r11d
18001899b:	41 89 00             	mov    %eax,(%r8)
18001899e:	44 89 19             	mov    %r11d,(%rcx)
1800189a1:	33 c0                	xor    %eax,%eax
1800189a3:	eb e0                	jmp    0x180018985
1800189a5:	cc                   	int3
1800189a6:	cc                   	int3
1800189a7:	cc                   	int3
1800189a8:	40 53                	rex push %rbx
1800189aa:	48 83 ec 30          	sub    $0x30,%rsp
1800189ae:	0f b6 41 01          	movzbl 0x1(%rcx),%eax
1800189b2:	49 8b d9             	mov    %r9,%rbx
1800189b5:	3b d0                	cmp    %eax,%edx
1800189b7:	76 2e                	jbe    0x1800189e7
1800189b9:	48 8d 44 24 48       	lea    0x48(%rsp),%rax
1800189be:	4c 8d 4c 24 40       	lea    0x40(%rsp),%r9
1800189c3:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1800189c8:	e8 d3 fe ff ff       	call   0x1800188a0
1800189cd:	84 c0                	test   %al,%al
1800189cf:	74 16                	je     0x1800189e7
1800189d1:	44 8b 44 24 48       	mov    0x48(%rsp),%r8d
1800189d6:	48 8b cb             	mov    %rbx,%rcx
1800189d9:	48 8b 54 24 40       	mov    0x40(%rsp),%rdx
1800189de:	e8 e9 88 0c 00       	call   0x1800e12cc
1800189e3:	b0 01                	mov    $0x1,%al
1800189e5:	eb 02                	jmp    0x1800189e9
1800189e7:	32 c0                	xor    %al,%al
1800189e9:	48 83 c4 30          	add    $0x30,%rsp
1800189ed:	5b                   	pop    %rbx
1800189ee:	c3                   	ret
1800189ef:	cc                   	int3
1800189f0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1800189f5:	55                   	push   %rbp
1800189f6:	56                   	push   %rsi
1800189f7:	57                   	push   %rdi
1800189f8:	41 54                	push   %r12
1800189fa:	41 55                	push   %r13
1800189fc:	41 56                	push   %r14
1800189fe:	41 57                	push   %r15
180018a00:	48 8b ec             	mov    %rsp,%rbp
180018a03:	48 83 ec 40          	sub    $0x40,%rsp
180018a07:	8b 59 0c             	mov    0xc(%rcx),%ebx
180018a0a:	4c 8b f2             	mov    %rdx,%r14
180018a0d:	48 8b 51 10          	mov    0x10(%rcx),%rdx
180018a11:	33 ff                	xor    %edi,%edi
180018a13:	44 8b c3             	mov    %ebx,%r8d
180018a16:	48 89 7d 58          	mov    %rdi,0x58(%rbp)
180018a1a:	48 8d 4d 58          	lea    0x58(%rbp),%rcx
180018a1e:	89 7c 24 20          	mov    %edi,0x20(%rsp)
180018a22:	45 33 c9             	xor    %r9d,%r9d
180018a25:	44 8b eb             	mov    %ebx,%r13d
180018a28:	e8 f3 1a 08 00       	call   0x18009a520
180018a2d:	44 8b f8             	mov    %eax,%r15d
180018a30:	85 c0                	test   %eax,%eax
180018a32:	0f 88 75 01 00 00    	js     0x180018bad
180018a38:	40 8a f7             	mov    %dil,%sil
180018a3b:	89 5d 50             	mov    %ebx,0x50(%rbp)
180018a3e:	48 8b 7d 58          	mov    0x58(%rbp),%rdi
180018a42:	83 fb 04             	cmp    $0x4,%ebx
180018a45:	0f 82 3f 01 00 00    	jb     0x180018b8a
180018a4b:	4c 8d 4d f0          	lea    -0x10(%rbp),%r9
180018a4f:	48 8b d7             	mov    %rdi,%rdx
180018a52:	4c 8d 45 40          	lea    0x40(%rbp),%r8
180018a56:	48 8d 4d 50          	lea    0x50(%rbp),%rcx
180018a5a:	e8 f1 fe ff ff       	call   0x180018950
180018a5f:	85 c0                	test   %eax,%eax