140017697:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14001769c:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1400176a1:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1400176a6:	48 83 c4 20          	add    $0x20,%rsp
1400176aa:	5f                   	pop    %rdi
1400176ab:	c3                   	ret
1400176ac:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400176b1:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1400176b6:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1400176bb:	57                   	push   %rdi
1400176bc:	48 83 ec 30          	sub    $0x30,%rsp
1400176c0:	49 8b f9             	mov    %r9,%rdi
1400176c3:	48 8b f1             	mov    %rcx,%rsi
1400176c6:	48 85 c9             	test   %rcx,%rcx
1400176c9:	75 32                	jne    0x1400176fd
1400176cb:	bb 16 00 00 00       	mov    $0x16,%ebx
1400176d0:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
1400176d5:	45 33 c9             	xor    %r9d,%r9d
1400176d8:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
1400176dd:	45 33 c0             	xor    %r8d,%r8d
1400176e0:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
1400176e6:	33 d2                	xor    %edx,%edx
1400176e8:	33 c9                	xor    %ecx,%ecx
1400176ea:	89 58 2c             	mov    %ebx,0x2c(%rax)
1400176ed:	c6 40 30 01          	movb   $0x1,0x30(%rax)
1400176f1:	e8 02 46 ff ff       	call   0x14000bcf8
1400176f6:	8b c3                	mov    %ebx,%eax
1400176f8:	e9 aa 00 00 00       	jmp    0x1400177a7
1400176fd:	48 85 d2             	test   %rdx,%rdx
140017700:	74 c9                	je     0x1400176cb
140017702:	33 c0                	xor    %eax,%eax
140017704:	c6 01 00             	movb   $0x0,(%rcx)
140017707:	45 85 c0             	test   %r8d,%r8d
14001770a:	41 0f 4f c0          	cmovg  %r8d,%eax
14001770e:	ff c0                	inc    %eax
140017710:	48 98                	cltq
140017712:	48 3b d0             	cmp    %rax,%rdx
140017715:	77 07                	ja     0x14001771e
140017717:	bb 22 00 00 00       	mov    $0x22,%ebx
14001771c:	eb b2                	jmp    0x1400176d0
14001771e:	48 85 ff             	test   %rdi,%rdi
140017721:	74 a8                	je     0x1400176cb
140017723:	49 8b 49 08          	mov    0x8(%r9),%rcx
140017727:	48 8d 5e 01          	lea    0x1(%rsi),%rbx
14001772b:	48 8b d1             	mov    %rcx,%rdx
14001772e:	c6 06 30             	movb   $0x30,(%rsi)
140017731:	eb 15                	jmp    0x140017748
140017733:	8a 02                	mov    (%rdx),%al
140017735:	84 c0                	test   %al,%al
140017737:	74 05                	je     0x14001773e
140017739:	48 ff c2             	inc    %rdx
14001773c:	eb 02                	jmp    0x140017740
14001773e:	b0 30                	mov    $0x30,%al
140017740:	88 03                	mov    %al,(%rbx)
140017742:	48 ff c3             	inc    %rbx
140017745:	41 ff c8             	dec    %r8d
140017748:	45 85 c0             	test   %r8d,%r8d
14001774b:	7f e6                	jg     0x140017733
14001774d:	c6 03 00             	movb   $0x0,(%rbx)
140017750:	78 2b                	js     0x14001777d
140017752:	8b 44 24 68          	mov    0x68(%rsp),%eax
140017756:	44 8b 4c 24 60       	mov    0x60(%rsp),%r9d
14001775b:	44 8b 07             	mov    (%rdi),%r8d
14001775e:	89 44 24 20          	mov    %eax,0x20(%rsp)
140017762:	e8 75 fe ff ff       	call   0x1400175dc
140017767:	84 c0                	test   %al,%al
140017769:	74 12                	je     0x14001777d
14001776b:	eb 03                	jmp    0x140017770
14001776d:	c6 03 30             	movb   $0x30,(%rbx)
140017770:	48 ff cb             	dec    %rbx
140017773:	8a 03                	mov    (%rbx),%al
140017775:	3c 39                	cmp    $0x39,%al
140017777:	74 f4                	je     0x14001776d
140017779:	fe c0                	inc    %al
14001777b:	88 03                	mov    %al,(%rbx)
14001777d:	80 3e 31             	cmpb   $0x31,(%rsi)
140017780:	75 05                	jne    0x140017787
140017782:	ff 47 04             	incl   0x4(%rdi)
140017785:	eb 1e                	jmp    0x1400177a5
140017787:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
14001778b:	49 ff c0             	inc    %r8
14001778e:	41 80 7c 30 01 00    	cmpb   $0x0,0x1(%r8,%rsi,1)
140017794:	75 f5                	jne    0x14001778b
140017796:	49 ff c0             	inc    %r8
140017799:	48 8d 56 01          	lea    0x1(%rsi),%rdx
14001779d:	48 8b ce             	mov    %rsi,%rcx
1400177a0:	e8 1b 55 00 00       	call   0x14001ccc0
1400177a5:	33 c0                	xor    %eax,%eax
1400177a7:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1400177ac:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
1400177b1:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
1400177b6:	48 83 c4 30          	add    $0x30,%rsp
1400177ba:	5f                   	pop    %rdi
1400177bb:	c3                   	ret
1400177bc:	cc                   	int3
1400177bd:	cc                   	int3
1400177be:	cc                   	int3
1400177bf:	cc                   	int3
1400177c0:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
1400177c5:	53                   	push   %rbx
1400177c6:	55                   	push   %rbp
1400177c7:	56                   	push   %rsi
1400177c8:	57                   	push   %rdi
1400177c9:	41 54                	push   %r12
1400177cb:	41 56                	push   %r14
1400177cd:	41 57                	push   %r15
1400177cf:	48 81 ec 20 02 00 00 	sub    $0x220,%rsp
1400177d6:	44 8b 11             	mov    (%rcx),%r10d
1400177d9:	4c 8b fa             	mov    %rdx,%r15
1400177dc:	48 8b f1             	mov    %rcx,%rsi
1400177df:	45 85 d2             	test   %r10d,%r10d
1400177e2:	0f 84 60 04 00 00    	je     0x140017c48
1400177e8:	8b 3a                	mov    (%rdx),%edi
1400177ea:	85 ff                	test   %edi,%edi
1400177ec:	0f 84 56 04 00 00    	je     0x140017c48
1400177f2:	41 ff ca             	dec    %r10d
1400177f5:	8d 6f ff             	lea    -0x1(%rdi),%ebp
1400177f8:	85 ed                	test   %ebp,%ebp
1400177fa:	0f 85 fb 00 00 00    	jne    0x1400178fb
140017800:	44 8b 62 04          	mov    0x4(%rdx),%r12d
140017804:	33 ed                	xor    %ebp,%ebp
140017806:	41 83 fc 01          	cmp    $0x1,%r12d
14001780a:	75 26                	jne    0x140017832
14001780c:	8b 59 04             	mov    0x4(%rcx),%ebx
14001780f:	4c 8d 44 24 44       	lea    0x44(%rsp),%r8
140017814:	48 83 c1 04          	add    $0x4,%rcx
140017818:	89 2e                	mov    %ebp,(%rsi)
14001781a:	45 33 c9             	xor    %r9d,%r9d
14001781d:	89 6c 24 40          	mov    %ebp,0x40(%rsp)
140017821:	ba cc 01 00 00       	mov    $0x1cc,%edx
140017826:	e8 c1 16 00 00       	call   0x140018eec
14001782b:	8b c3                	mov    %ebx,%eax
14001782d:	e9 18 04 00 00       	jmp    0x140017c4a
140017832:	45 85 d2             	test   %r10d,%r10d
140017835:	75 3d                	jne    0x140017874
140017837:	8b 79 04             	mov    0x4(%rcx),%edi
14001783a:	4c 8d 44 24 44       	lea    0x44(%rsp),%r8
14001783f:	89 29                	mov    %ebp,(%rcx)
140017841:	45 33 c9             	xor    %r9d,%r9d
140017844:	48 83 c1 04          	add    $0x4,%rcx
140017848:	89 6c 24 40          	mov    %ebp,0x40(%rsp)
14001784c:	ba cc 01 00 00       	mov    $0x1cc,%edx
140017851:	e8 96 16 00 00       	call   0x140018eec
140017856:	33 d2                	xor    %edx,%edx
140017858:	8b c7                	mov    %edi,%eax
14001785a:	41 f7 f4             	div    %r12d
14001785d:	8b c7                	mov    %edi,%eax
14001785f:	85 d2                	test   %edx,%edx
140017861:	89 56 04             	mov    %edx,0x4(%rsi)
140017864:	40 0f 95 c5          	setne  %bpl
140017868:	33 d2                	xor    %edx,%edx
14001786a:	41 f7 f4             	div    %r12d
14001786d:	89 2e                	mov    %ebp,(%rsi)
14001786f:	e9 d6 03 00 00       	jmp    0x140017c4a
140017874:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
14001787a:	4c 8b f5             	mov    %rbp,%r14
14001787d:	48 8b fd             	mov    %rbp,%rdi
140017880:	45 3b d7             	cmp    %r15d,%r10d
140017883:	74 3b                	je     0x1400178c0
140017885:	4d 8b cc             	mov    %r12,%r9
140017888:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14001788f:	00
140017890:	46 8b 44 96 04       	mov    0x4(%rsi,%r10,4),%r8d
140017895:	33 d2                	xor    %edx,%edx
140017897:	48 c1 e7 20          	shl    $0x20,%rdi
14001789b:	45 03 d7             	add    %r15d,%r10d
14001789e:	4c 0b c7             	or     %rdi,%r8
1400178a1:	49 c1 e6 20          	shl    $0x20,%r14
1400178a5:	49 8b c0             	mov    %r8,%rax
1400178a8:	49 f7 f1             	div    %r9
1400178ab:	33 d2                	xor    %edx,%edx
1400178ad:	8b c8                	mov    %eax,%ecx
1400178af:	49 8b c0             	mov    %r8,%rax
1400178b2:	49 f7 f1             	div    %r9
1400178b5:	4c 03 f1             	add    %rcx,%r14
1400178b8:	48 8b fa             	mov    %rdx,%rdi
1400178bb:	45 3b d7             	cmp    %r15d,%r10d
1400178be:	75 d0                	jne    0x140017890
1400178c0:	45 33 c9             	xor    %r9d,%r9d
1400178c3:	89 6c 24 40          	mov    %ebp,0x40(%rsp)
1400178c7:	4c 8d 44 24 44       	lea    0x44(%rsp),%r8
1400178cc:	89 2e                	mov    %ebp,(%rsi)
1400178ce:	ba cc 01 00 00       	mov    $0x1cc,%edx
1400178d3:	48 8d 4e 04          	lea    0x4(%rsi),%rcx
1400178d7:	e8 10 16 00 00       	call   0x140018eec
1400178dc:	48 8b cf             	mov    %rdi,%rcx
1400178df:	89 7e 04             	mov    %edi,0x4(%rsi)
1400178e2:	48 c1 e9 20          	shr    $0x20,%rcx
1400178e6:	49 8b c6             	mov    %r14,%rax
1400178e9:	85 c9                	test   %ecx,%ecx
1400178eb:	89 4e 08             	mov    %ecx,0x8(%rsi)
1400178ee:	40 0f 95 c5          	setne  %bpl
1400178f2:	ff c5                	inc    %ebp
1400178f4:	89 2e                	mov    %ebp,(%rsi)
1400178f6:	e9 4f 03 00 00       	jmp    0x140017c4a
1400178fb:	41 3b ea             	cmp    %r10d,%ebp
1400178fe:	0f 87 44 03 00 00    	ja     0x140017c48
140017904:	45 8b c2             	mov    %r10d,%r8d
140017907:	49 63 d2             	movslq %r10d,%rdx
14001790a:	44 2b c5             	sub    %ebp,%r8d
14001790d:	45 8b ca             	mov    %r10d,%r9d
140017910:	49 63 d8             	movslq %r8d,%rbx
140017913:	48 3b d3             	cmp    %rbx,%rdx
140017916:	7c 49                	jl     0x140017961
140017918:	48 83 c1 04          	add    $0x4,%rcx
14001791c:	48 8d 04 9d 00 00 00 	lea    0x0(,%rbx,4),%rax
140017923:	00
140017924:	4d 8b df             	mov    %r15,%r11
140017927:	4c 2b d8             	sub    %rax,%r11
14001792a:	4c 2b de             	sub    %rsi,%r11
14001792d:	48 8d 0c 91          	lea    (%rcx,%rdx,4),%rcx
140017931:	8b 01                	mov    (%rcx),%eax
140017933:	41 39 04 0b          	cmp    %eax,(%r11,%rcx,1)
140017937:	75 11                	jne    0x14001794a
140017939:	41 ff c9             	dec    %r9d
14001793c:	48 ff ca             	dec    %rdx
14001793f:	48 83 e9 04          	sub    $0x4,%rcx
140017943:	48 3b d3             	cmp    %rbx,%rdx
140017946:	7d e9                	jge    0x140017931
140017948:	eb 17                	jmp    0x140017961
14001794a:	41 8b c1             	mov    %r9d,%eax
14001794d:	41 2b c0             	sub    %r8d,%eax
140017950:	48 63 d0             	movslq %eax,%rdx
140017953:	49 63 c1             	movslq %r9d,%rax
140017956:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
14001795a:	41 39 4c 97 04       	cmp    %ecx,0x4(%r15,%rdx,4)
14001795f:	73 03                	jae    0x140017964
140017961:	41 ff c0             	inc    %r8d
140017964:	45 85 c0             	test   %r8d,%r8d
140017967:	0f 84 db 02 00 00    	je     0x140017c48
14001796d:	45 8b 4c af 04       	mov    0x4(%r15,%rbp,4),%r9d
140017972:	8d 47 fe             	lea    -0x2(%rdi),%eax
140017975:	45 8b 5c 87 04       	mov    0x4(%r15,%rax,4),%r11d
14001797a:	33 ed                	xor    %ebp,%ebp
14001797c:	41 0f bd c1          	bsr    %r9d,%eax
140017980:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
140017987:	00
140017988:	74 1e                	je     0x1400179a8
14001798a:	bb 1f 00 00 00       	mov    $0x1f,%ebx
14001798f:	41 be 20 00 00 00    	mov    $0x20,%r14d
140017995:	2b d8                	sub    %eax,%ebx
140017997:	44 2b f3             	sub    %ebx,%r14d
14001799a:	44 89 b4 24 60 02 00 	mov    %r14d,0x260(%rsp)
1400179a1:	00
1400179a2:	85 db                	test   %ebx,%ebx
1400179a4:	74 4e                	je     0x1400179f4
1400179a6:	eb 0f                	jmp    0x1400179b7
1400179a8:	bb 20 00 00 00       	mov    $0x20,%ebx
1400179ad:	89 ac 24 60 02 00 00 	mov    %ebp,0x260(%rsp)
1400179b4:	44 8b f5             	mov    %ebp,%r14d
1400179b7:	41 8b c1             	mov    %r9d,%eax
1400179ba:	41 8b d3             	mov    %r11d,%edx
1400179bd:	41 8b ce             	mov    %r14d,%ecx
1400179c0:	d3 ea                	shr    %cl,%edx
1400179c2:	8b cb                	mov    %ebx,%ecx
1400179c4:	d3 e0                	shl    %cl,%eax
1400179c6:	44 8b ca             	mov    %edx,%r9d
1400179c9:	41 d3 e3             	shl    %cl,%r11d
1400179cc:	44 0b c8             	or     %eax,%r9d
1400179cf:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
1400179d6:	00
1400179d7:	83 ff 02             	cmp    $0x2,%edi
1400179da:	76 18                	jbe    0x1400179f4
1400179dc:	8d 47 fd             	lea    -0x3(%rdi),%eax
1400179df:	41 8b ce             	mov    %r14d,%ecx
1400179e2:	41 8b 44 87 04       	mov    0x4(%r15,%rax,4),%eax
1400179e7:	d3 e8                	shr    %cl,%eax
1400179e9:	44 0b d8             	or     %eax,%r11d
1400179ec:	44 89 9c 24 70 02 00 	mov    %r11d,0x270(%rsp)
1400179f3:	00
1400179f4:	45 8d 60 ff          	lea    -0x1(%r8),%r12d
1400179f8:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
1400179fd:	4c 8b dd             	mov    %rbp,%r11
140017a00:	45 85 e4             	test   %r12d,%r12d
140017a03:	0f 88 00 02 00 00    	js     0x140017c09
140017a09:	41 8b c6             	mov    %r14d,%eax
140017a0c:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
140017a12:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140017a17:	41 8b c1             	mov    %r9d,%eax
140017a1a:	4c 89 ac 24 18 02 00 	mov    %r13,0x218(%rsp)
140017a21:	00
140017a22:	45 8d 2c 3c          	lea    (%r12,%rdi,1),%r13d
140017a26:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140017a2b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140017a30:	45 3b ea             	cmp    %r10d,%r13d
140017a33:	77 07                	ja     0x140017a3c
140017a35:	42 8b 54 ae 04       	mov    0x4(%rsi,%r13,4),%edx
140017a3a:	eb 02                	jmp    0x140017a3e
140017a3c:	8b d5                	mov    %ebp,%edx
140017a3e:	89 94 24 78 02 00 00 	mov    %edx,0x278(%rsp)
140017a45:	41 8d 45 ff          	lea    -0x1(%r13),%eax
140017a49:	8b 4c 86 04          	mov    0x4(%rsi,%rax,4),%ecx
140017a4d:	41 8d 45 fe          	lea    -0x2(%r13),%eax
140017a51:	44 8b 5c 86 04       	mov    0x4(%rsi,%rax,4),%r11d
140017a56:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140017a5b:	89 54 24 24          	mov    %edx,0x24(%rsp)
140017a5f:	85 db                	test   %ebx,%ebx
140017a61:	74 33                	je     0x140017a96
140017a63:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
140017a68:	45 8b c3             	mov    %r11d,%r8d
140017a6b:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
140017a70:	49 d3 e8             	shr    %cl,%r8
140017a73:	8b cb                	mov    %ebx,%ecx
140017a75:	48 d3 e0             	shl    %cl,%rax
140017a78:	4c 0b c0             	or     %rax,%r8
140017a7b:	41 d3 e3             	shl    %cl,%r11d
140017a7e:	41 83 fd 03          	cmp    $0x3,%r13d
140017a82:	72 17                	jb     0x140017a9b
140017a84:	41 8d 45 fd          	lea    -0x3(%r13),%eax
140017a88:	41 8b ce             	mov    %r14d,%ecx
140017a8b:	8b 44 86 04          	mov    0x4(%rsi,%rax,4),%eax
140017a8f:	d3 e8                	shr    %cl,%eax
140017a91:	44 0b d8             	or     %eax,%r11d
140017a94:	eb 05                	jmp    0x140017a9b
140017a96:	4c 8b 44 24 20       	mov    0x20(%rsp),%r8
140017a9b:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
140017aa0:	33 d2                	xor    %edx,%edx
140017aa2:	49 8b c0             	mov    %r8,%rax
140017aa5:	48 f7 f1             	div    %rcx
140017aa8:	33 d2                	xor    %edx,%edx
140017aaa:	4c 8b c8             	mov    %rax,%r9
140017aad:	49 8b c0             	mov    %r8,%rax
140017ab0:	48 f7 f1             	div    %rcx
140017ab3:	44 8b c2             	mov    %edx,%r8d
140017ab6:	4d 3b cf             	cmp    %r15,%r9
140017ab9:	76 17                	jbe    0x140017ad2
140017abb:	48 b8 01 00 00 00 ff 	movabs $0xffffffff00000001,%rax
140017ac2:	ff ff ff
140017ac5:	49 03 c1             	add    %r9,%rax
140017ac8:	4d 8b cf             	mov    %r15,%r9
140017acb:	48 0f af c1          	imul   %rcx,%rax
140017acf:	4c 03 c0             	add    %rax,%r8
140017ad2:	4d 3b c7             	cmp    %r15,%r8
140017ad5:	77 3e                	ja     0x140017b15
140017ad7:	8b 94 24 70 02 00 00 	mov    0x270(%rsp),%edx
140017ade:	4c 8b f1             	mov    %rcx,%r14
140017ae1:	8b c2                	mov    %edx,%eax
140017ae3:	49 0f af c1          	imul   %r9,%rax
140017ae7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140017aee:	00 00
140017af0:	49 8b c8             	mov    %r8,%rcx
140017af3:	48 c1 e1 20          	shl    $0x20,%rcx
140017af7:	49 0b cb             	or     %r11,%rcx
140017afa:	48 3b c1             	cmp    %rcx,%rax
140017afd:	76 0e                	jbe    0x140017b0d
140017aff:	49 ff c9             	dec    %r9
140017b02:	48 2b c2             	sub    %rdx,%rax
140017b05:	4d 03 c6             	add    %r14,%r8
140017b08:	4d 3b c7             	cmp    %r15,%r8
140017b0b:	76 e3                	jbe    0x140017af0