1400215ec:	0f 84 81 02 00 00    	je     0x140021873
1400215f2:	8a 8c 24 b0 00 00 00 	mov    0xb0(%rsp),%cl
1400215f9:	80 f1 01             	xor    $0x1,%cl
1400215fc:	c0 e1 05             	shl    $0x5,%cl
1400215ff:	80 c1 50             	add    $0x50,%cl
140021602:	88 08                	mov    %cl,(%rax)
140021604:	c6 40 03 00          	movb   $0x0,0x3(%rax)
140021608:	e9 66 02 00 00       	jmp    0x140021873
14002160d:	b8 2d 00 00 00       	mov    $0x2d,%eax
140021612:	4d 39 1e             	cmp    %r11,(%r14)
140021615:	7d 05                	jge    0x14002161c
140021617:	88 02                	mov    %al,(%rdx)
140021619:	48 ff c3             	inc    %rbx
14002161c:	8a 84 24 b0 00 00 00 	mov    0xb0(%rsp),%al
140021623:	4c 8d 63 01          	lea    0x1(%rbx),%r12
140021627:	34 01                	xor    $0x1,%al
140021629:	41 bf ff 03 00 00    	mov    $0x3ff,%r15d
14002162f:	44 0f b6 e8          	movzbl %al,%r13d
140021633:	41 b8 30 00 00 00    	mov    $0x30,%r8d
140021639:	41 8b ed             	mov    %r13d,%ebp
14002163c:	48 b8 00 00 00 00 00 	movabs $0x7ff0000000000000,%rax
140021643:	00 f0 7f
140021646:	c1 e5 05             	shl    $0x5,%ebp
140021649:	49 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%r9
140021650:	ff 0f 00
140021653:	83 c5 07             	add    $0x7,%ebp
140021656:	49 85 06             	test   %rax,(%r14)
140021659:	75 18                	jne    0x140021673
14002165b:	44 88 03             	mov    %r8b,(%rbx)
14002165e:	49 8b 06             	mov    (%r14),%rax
140021661:	49 23 c1             	and    %r9,%rax
140021664:	48 f7 d8             	neg    %rax
140021667:	4d 1b ff             	sbb    %r15,%r15
14002166a:	41 81 e7 fe 03 00 00 	and    $0x3fe,%r15d
140021671:	eb 03                	jmp    0x140021676
140021673:	c6 03 31             	movb   $0x31,(%rbx)
140021676:	49 8d 74 24 01       	lea    0x1(%r12),%rsi
14002167b:	85 ff                	test   %edi,%edi
14002167d:	75 05                	jne    0x140021684
14002167f:	41 8a c3             	mov    %r11b,%al
140021682:	eb 37                	jmp    0x1400216bb
140021684:	48 8b 9c 24 c8 00 00 	mov    0xc8(%rsp),%rbx
14002168b:	00
14002168c:	44 38 5b 28          	cmp    %r11b,0x28(%rbx)
140021690:	75 19                	jne    0x1400216ab
140021692:	48 8b cb             	mov    %rbx,%rcx
140021695:	e8 a6 2f ff ff       	call   0x140014640
14002169a:	45 33 db             	xor    %r11d,%r11d
14002169d:	49 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%r9
1400216a4:	ff 0f 00
1400216a7:	45 8d 43 30          	lea    0x30(%r11),%r8d
1400216ab:	48 8b 43 18          	mov    0x18(%rbx),%rax
1400216af:	48 8b 88 f8 00 00 00 	mov    0xf8(%rax),%rcx
1400216b6:	48 8b 01             	mov    (%rcx),%rax
1400216b9:	8a 00                	mov    (%rax),%al
1400216bb:	41 88 04 24          	mov    %al,(%r12)
1400216bf:	4d 85 0e             	test   %r9,(%r14)
1400216c2:	0f 86 8a 00 00 00    	jbe    0x140021752
1400216c8:	41 0f b7 d0          	movzwl %r8w,%edx
1400216cc:	49 ba 00 00 00 00 00 	movabs $0xf000000000000,%r10
1400216d3:	00 0f 00
1400216d6:	0f b7 ca             	movzwl %dx,%ecx
1400216d9:	85 ff                	test   %edi,%edi
1400216db:	7e 2c                	jle    0x140021709
1400216dd:	49 8b 06             	mov    (%r14),%rax
1400216e0:	49 23 c2             	and    %r10,%rax
1400216e3:	49 23 c1             	and    %r9,%rax
1400216e6:	48 d3 e8             	shr    %cl,%rax
1400216e9:	66 41 03 c0          	add    %r8w,%ax
1400216ed:	66 83 f8 39          	cmp    $0x39,%ax
1400216f1:	76 03                	jbe    0x1400216f6
1400216f3:	66 03 c5             	add    %bp,%ax
1400216f6:	88 06                	mov    %al,(%rsi)
1400216f8:	ff cf                	dec    %edi
1400216fa:	48 ff c6             	inc    %rsi
1400216fd:	49 c1 ea 04          	shr    $0x4,%r10
140021701:	66 83 c2 fc          	add    $0xfffc,%dx
140021705:	79 cf                	jns    0x1400216d6
140021707:	eb 49                	jmp    0x140021752
140021709:	44 8b 8c 24 c0 00 00 	mov    0xc0(%rsp),%r9d
140021710:	00
140021711:	44 0f b7 c1          	movzwl %cx,%r8d
140021715:	49 8b ce             	mov    %r14,%rcx
140021718:	49 8b d2             	mov    %r10,%rdx
14002171b:	e8 d8 07 00 00       	call   0x140021ef8
140021720:	45 33 db             	xor    %r11d,%r11d
140021723:	84 c0                	test   %al,%al
140021725:	74 4c                	je     0x140021773
140021727:	48 8d 4e ff          	lea    -0x1(%rsi),%rcx
14002172b:	8a 11                	mov    (%rcx),%dl
14002172d:	8d 42 ba             	lea    -0x46(%rdx),%eax
140021730:	a8 df                	test   $0xdf,%al
140021732:	75 08                	jne    0x14002173c
140021734:	c6 01 30             	movb   $0x30,(%rcx)
140021737:	48 ff c9             	dec    %rcx
14002173a:	eb ef                	jmp    0x14002172b
14002173c:	49 3b cc             	cmp    %r12,%rcx
14002173f:	74 0e                	je     0x14002174f
140021741:	80 fa 39             	cmp    $0x39,%dl
140021744:	75 03                	jne    0x140021749
140021746:	40 02 d5             	add    %bpl,%dl
140021749:	fe c2                	inc    %dl
14002174b:	88 11                	mov    %dl,(%rcx)
14002174d:	eb 03                	jmp    0x140021752
14002174f:	fe 41 ff             	incb   -0x1(%rcx)
140021752:	85 ff                	test   %edi,%edi
140021754:	7e 1d                	jle    0x140021773
140021756:	44 8b c7             	mov    %edi,%r8d
140021759:	48 8b ce             	mov    %rsi,%rcx
14002175c:	8b df                	mov    %edi,%ebx
14002175e:	bf 30 00 00 00       	mov    $0x30,%edi
140021763:	40 8a d7             	mov    %dil,%dl
140021766:	e8 45 97 01 00       	call   0x14003aeb0
14002176b:	48 03 f3             	add    %rbx,%rsi
14002176e:	45 33 db             	xor    %r11d,%r11d
140021771:	eb 05                	jmp    0x140021778
140021773:	bf 30 00 00 00       	mov    $0x30,%edi
140021778:	45 38 1c 24          	cmp    %r11b,(%r12)
14002177c:	49 0f 44 f4          	cmove  %r12,%rsi
140021780:	41 c0 e5 05          	shl    $0x5,%r13b
140021784:	41 80 c5 50          	add    $0x50,%r13b
140021788:	44 88 2e             	mov    %r13b,(%rsi)
14002178b:	4c 8d 4e 02          	lea    0x2(%rsi),%r9
14002178f:	49 8b 06             	mov    (%r14),%rax
140021792:	48 c1 e8 34          	shr    $0x34,%rax
140021796:	25 ff 07 00 00       	and    $0x7ff,%eax
14002179b:	8b c8                	mov    %eax,%ecx
14002179d:	49 2b cf             	sub    %r15,%rcx
1400217a0:	48 8b d1             	mov    %rcx,%rdx
1400217a3:	79 06                	jns    0x1400217ab
1400217a5:	49 8b cf             	mov    %r15,%rcx
1400217a8:	48 2b c8             	sub    %rax,%rcx
1400217ab:	48 85 d2             	test   %rdx,%rdx
1400217ae:	b8 2b 00 00 00       	mov    $0x2b,%eax
1400217b3:	4d 8b c1             	mov    %r9,%r8
1400217b6:	8d 50 02             	lea    0x2(%rax),%edx
1400217b9:	0f 48 c2             	cmovs  %edx,%eax
1400217bc:	88 46 01             	mov    %al,0x1(%rsi)
1400217bf:	41 88 39             	mov    %dil,(%r9)
1400217c2:	48 81 f9 e8 03 00 00 	cmp    $0x3e8,%rcx
1400217c9:	7c 34                	jl     0x1400217ff
1400217cb:	48 b8 cf f7 53 e3 a5 	movabs $0x20c49ba5e353f7cf,%rax
1400217d2:	9b c4 20
1400217d5:	4d 8d 41 01          	lea    0x1(%r9),%r8
1400217d9:	48 f7 e9             	imul   %rcx
1400217dc:	48 c1 fa 07          	sar    $0x7,%rdx
1400217e0:	48 8b c2             	mov    %rdx,%rax
1400217e3:	48 c1 e8 3f          	shr    $0x3f,%rax
1400217e7:	48 03 d0             	add    %rax,%rdx
1400217ea:	8d 04 17             	lea    (%rdi,%rdx,1),%eax
1400217ed:	41 88 01             	mov    %al,(%r9)
1400217f0:	48 69 c2 18 fc ff ff 	imul   $0xfffffffffffffc18,%rdx,%rax
1400217f7:	48 03 c8             	add    %rax,%rcx
1400217fa:	4d 3b c1             	cmp    %r9,%r8
1400217fd:	75 06                	jne    0x140021805
1400217ff:	48 83 f9 64          	cmp    $0x64,%rcx
140021803:	7c 33                	jl     0x140021838
140021805:	48 b8 0b d7 a3 70 3d 	movabs $0xa3d70a3d70a3d70b,%rax
14002180c:	0a d7 a3
14002180f:	48 f7 e9             	imul   %rcx
140021812:	48 03 d1             	add    %rcx,%rdx
140021815:	48 c1 fa 06          	sar    $0x6,%rdx
140021819:	48 8b c2             	mov    %rdx,%rax
14002181c:	48 c1 e8 3f          	shr    $0x3f,%rax
140021820:	48 03 d0             	add    %rax,%rdx
140021823:	8d 04 17             	lea    (%rdi,%rdx,1),%eax
140021826:	41 88 00             	mov    %al,(%r8)
140021829:	49 ff c0             	inc    %r8
14002182c:	48 6b c2 9c          	imul   $0xffffffffffffff9c,%rdx,%rax
140021830:	48 03 c8             	add    %rax,%rcx
140021833:	4d 3b c1             	cmp    %r9,%r8
140021836:	75 06                	jne    0x14002183e
140021838:	48 83 f9 0a          	cmp    $0xa,%rcx
14002183c:	7c 2b                	jl     0x140021869
14002183e:	48 b8 67 66 66 66 66 	movabs $0x6666666666666667,%rax
140021845:	66 66 66
140021848:	48 f7 e9             	imul   %rcx
14002184b:	48 c1 fa 02          	sar    $0x2,%rdx
14002184f:	48 8b c2             	mov    %rdx,%rax
140021852:	48 c1 e8 3f          	shr    $0x3f,%rax
140021856:	48 03 d0             	add    %rax,%rdx
140021859:	8d 04 17             	lea    (%rdi,%rdx,1),%eax
14002185c:	41 88 00             	mov    %al,(%r8)
14002185f:	49 ff c0             	inc    %r8
140021862:	48 6b c2 f6          	imul   $0xfffffffffffffff6,%rdx,%rax
140021866:	48 03 c8             	add    %rax,%rcx
140021869:	40 02 cf             	add    %dil,%cl
14002186c:	41 88 08             	mov    %cl,(%r8)
14002186f:	45 88 58 01          	mov    %r11b,0x1(%r8)
140021873:	33 c0                	xor    %eax,%eax
140021875:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
14002187a:	49 8b 5b 30          	mov    0x30(%r11),%rbx
14002187e:	49 8b 6b 40          	mov    0x40(%r11),%rbp
140021882:	49 8b 73 48          	mov    0x48(%r11),%rsi
140021886:	49 8b e3             	mov    %r11,%rsp
140021889:	41 5f                	pop    %r15
14002188b:	41 5e                	pop    %r14
14002188d:	41 5d                	pop    %r13
14002188f:	41 5c                	pop    %r12
140021891:	5f                   	pop    %rdi
140021892:	c3                   	ret
140021893:	cc                   	int3
140021894:	4c 8b dc             	mov    %rsp,%r11
140021897:	49 89 5b 08          	mov    %rbx,0x8(%r11)
14002189b:	49 89 6b 10          	mov    %rbp,0x10(%r11)
14002189f:	49 89 73 18          	mov    %rsi,0x18(%r11)
1400218a3:	49 89 7b 20          	mov    %rdi,0x20(%r11)
1400218a7:	41 56                	push   %r14
1400218a9:	48 83 ec 50          	sub    $0x50,%rsp
1400218ad:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
1400218b4:	00
1400218b5:	49 8b f0             	mov    %r8,%rsi
1400218b8:	8b ac 24 88 00 00 00 	mov    0x88(%rsp),%ebp
1400218bf:	48 8b fa             	mov    %rdx,%rdi
1400218c2:	48 8b 09             	mov    (%rcx),%rcx
1400218c5:	41 b8 01 00 00 00    	mov    $0x1,%r8d
1400218cb:	49 89 43 d0          	mov    %rax,-0x30(%r11)
1400218cf:	4d 89 4b c8          	mov    %r9,-0x38(%r11)
1400218d3:	4d 8d 4b e8          	lea    -0x18(%r11),%r9
1400218d7:	8d 55 01             	lea    0x1(%rbp),%edx
1400218da:	e8 fd b6 00 00       	call   0x14002cfdc
1400218df:	4c 8b b4 24 a8 00 00 	mov    0xa8(%rsp),%r14
1400218e6:	00
1400218e7:	44 8d 45 01          	lea    0x1(%rbp),%r8d
1400218eb:	45 33 c9             	xor    %r9d,%r9d
1400218ee:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
1400218f3:	83 7c 24 40 2d       	cmpl   $0x2d,0x40(%rsp)
1400218f8:	44 8b d0             	mov    %eax,%r10d
1400218fb:	8b 84 24 a0 00 00 00 	mov    0xa0(%rsp),%eax
140021902:	48 8b d6             	mov    %rsi,%rdx
140021905:	41 0f 94 c1          	sete   %r9b
140021909:	89 44 24 28          	mov    %eax,0x28(%rsp)
14002190d:	33 c9                	xor    %ecx,%ecx
14002190f:	44 89 54 24 20       	mov    %r10d,0x20(%rsp)
140021914:	85 ed                	test   %ebp,%ebp
140021916:	0f 9f c1             	setg   %cl
140021919:	48 2b d1             	sub    %rcx,%rdx
14002191c:	49 2b d1             	sub    %r9,%rdx
14002191f:	48 83 fe ff          	cmp    $0xffffffffffffffff,%rsi
140021923:	48 0f 44 d6          	cmove  %rsi,%rdx
140021927:	49 03 c9             	add    %r9,%rcx
14002192a:	48 03 cf             	add    %rdi,%rcx
14002192d:	4c 8d 4c 24 40       	lea    0x40(%rsp),%r9
140021932:	e8 95 b5 00 00       	call   0x14002cecc
140021937:	85 c0                	test   %eax,%eax
140021939:	74 05                	je     0x140021940
14002193b:	c6 07 00             	movb   $0x0,(%rdi)
14002193e:	eb 35                	jmp    0x140021975
140021940:	44 8a 8c 24 90 00 00 	mov    0x90(%rsp),%r9b
140021947:	00
140021948:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
14002194d:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
140021952:	44 8b c5             	mov    %ebp,%r8d
140021955:	c6 44 24 30 00       	movb   $0x0,0x30(%rsp)
14002195a:	48 8b d6             	mov    %rsi,%rdx
14002195d:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140021962:	48 8b cf             	mov    %rdi,%rcx
140021965:	8b 84 24 98 00 00 00 	mov    0x98(%rsp),%eax
14002196c:	89 44 24 20          	mov    %eax,0x20(%rsp)
140021970:	e8 1b 00 00 00       	call   0x140021990
140021975:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
14002197a:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
14002197f:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
140021984:	48 8b 7c 24 78       	mov    0x78(%rsp),%rdi
140021989:	48 83 c4 50          	add    $0x50,%rsp
14002198d:	41 5e                	pop    %r14
14002198f:	c3                   	ret
140021990:	4c 8b dc             	mov    %rsp,%r11
140021993:	49 89 5b 08          	mov    %rbx,0x8(%r11)
140021997:	49 89 6b 10          	mov    %rbp,0x10(%r11)
14002199b:	49 89 73 18          	mov    %rsi,0x18(%r11)
14002199f:	49 89 7b 20          	mov    %rdi,0x20(%r11)
1400219a3:	41 55                	push   %r13
1400219a5:	41 56                	push   %r14
1400219a7:	41 57                	push   %r15
1400219a9:	48 83 ec 30          	sub    $0x30,%rsp
1400219ad:	33 c0                	xor    %eax,%eax
1400219af:	49 63 e8             	movslq %r8d,%rbp
1400219b2:	45 85 c0             	test   %r8d,%r8d
1400219b5:	45 8a e9             	mov    %r9b,%r13b
1400219b8:	4c 8b fa             	mov    %rdx,%r15
1400219bb:	48 8b f9             	mov    %rcx,%rdi
1400219be:	0f 4f c5             	cmovg  %ebp,%eax
1400219c1:	83 c0 09             	add    $0x9,%eax
1400219c4:	48 98                	cltq
1400219c6:	48 3b d0             	cmp    %rax,%rdx
1400219c9:	77 4d                	ja     0x140021a18
1400219cb:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
1400219d2:	00
1400219d3:	bb 22 00 00 00       	mov    $0x22,%ebx
1400219d8:	49 89 4b e0          	mov    %rcx,-0x20(%r11)
1400219dc:	45 33 c9             	xor    %r9d,%r9d
1400219df:	49 83 63 d8 00       	andq   $0x0,-0x28(%r11)
1400219e4:	45 33 c0             	xor    %r8d,%r8d
1400219e7:	33 d2                	xor    %edx,%edx
1400219e9:	c6 41 30 01          	movb   $0x1,0x30(%rcx)
1400219ed:	89 59 2c             	mov    %ebx,0x2c(%rcx)
1400219f0:	33 c9                	xor    %ecx,%ecx
1400219f2:	e8 91 d4 fe ff       	call   0x14000ee88
1400219f7:	8b c3                	mov    %ebx,%eax
1400219f9:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1400219fe:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
140021a03:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
140021a08:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
140021a0d:	48 83 c4 30          	add    $0x30,%rsp
140021a11:	41 5f                	pop    %r15
140021a13:	41 5e                	pop    %r14
140021a15:	41 5d                	pop    %r13
140021a17:	c3                   	ret
140021a18:	80 bc 24 80 00 00 00 	cmpb   $0x0,0x80(%rsp)
140021a1f:	00
140021a20:	48 8b 74 24 78       	mov    0x78(%rsp),%rsi
140021a25:	74 2a                	je     0x140021a51
140021a27:	33 d2                	xor    %edx,%edx
140021a29:	83 3e 2d             	cmpl   $0x2d,(%rsi)
140021a2c:	0f 94 c2             	sete   %dl
140021a2f:	48 03 d7             	add    %rdi,%rdx
140021a32:	45 85 c0             	test   %r8d,%r8d
140021a35:	7e 1a                	jle    0x140021a51
140021a37:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
140021a3b:	49 ff c0             	inc    %r8
140021a3e:	42 80 3c 02 00       	cmpb   $0x0,(%rdx,%r8,1)
140021a43:	75 f6                	jne    0x140021a3b
140021a45:	49 ff c0             	inc    %r8
140021a48:	48 8d 4a 01          	lea    0x1(%rdx),%rcx
140021a4c:	e8 bf 8d 01 00       	call   0x14003a810
140021a51:	83 3e 2d             	cmpl   $0x2d,(%rsi)
140021a54:	48 8b df             	mov    %rdi,%rbx
140021a57:	75 07                	jne    0x140021a60
140021a59:	c6 07 2d             	movb   $0x2d,(%rdi)
140021a5c:	48 8d 5f 01          	lea    0x1(%rdi),%rbx
140021a60:	85 ed                	test   %ebp,%ebp
140021a62:	7e 31                	jle    0x140021a95
140021a64:	8a 43 01             	mov    0x1(%rbx),%al
140021a67:	4c 8b b4 24 88 00 00 	mov    0x88(%rsp),%r14
140021a6e:	00
140021a6f:	88 03                	mov    %al,(%rbx)
140021a71:	48 ff c3             	inc    %rbx
140021a74:	41 80 7e 28 00       	cmpb   $0x0,0x28(%r14)
140021a79:	75 08                	jne    0x140021a83
140021a7b:	49 8b ce             	mov    %r14,%rcx
140021a7e:	e8 bd 2b ff ff       	call   0x140014640
140021a83:	49 8b 46 18          	mov    0x18(%r14),%rax
140021a87:	48 8b 88 f8 00 00 00 	mov    0xf8(%rax),%rcx
140021a8e:	48 8b 01             	mov    (%rcx),%rax
140021a91:	8a 08                	mov    (%rax),%cl
140021a93:	88 0b                	mov    %cl,(%rbx)
140021a95:	0f b6 8c 24 80 00 00 	movzbl 0x80(%rsp),%ecx
140021a9c:	00
140021a9d:	4c 8d 05 98 df 01 00 	lea    0x1df98(%rip),%r8        # 0x14003fa3c