14003a737:	48 3b c1             	cmp    %rcx,%rax
14003a73a:	0f 85 81 00 00 00    	jne    0x14003a7c1
14003a740:	48 8b 84 24 c8 00 00 	mov    0xc8(%rsp),%rax
14003a747:	00
14003a748:	4d 8b ca             	mov    %r10,%r9
14003a74b:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
14003a750:	49 8b ce             	mov    %r14,%rcx
14003a753:	8b 84 24 c0 00 00 00 	mov    0xc0(%rsp),%eax
14003a75a:	89 44 24 40          	mov    %eax,0x40(%rsp)
14003a75e:	8b 84 24 b8 00 00 00 	mov    0xb8(%rsp),%eax
14003a765:	89 44 24 38          	mov    %eax,0x38(%rsp)
14003a769:	48 8b 84 24 a0 00 00 	mov    0xa0(%rsp),%rax
14003a770:	00
14003a771:	44 88 5c 24 30       	mov    %r11b,0x30(%rsp)
14003a776:	89 7c 24 28          	mov    %edi,0x28(%rsp)
14003a77a:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
14003a77f:	e8 c4 02 00 00       	call   0x14003aa48
14003a784:	85 c0                	test   %eax,%eax
14003a786:	74 08                	je     0x14003a790
14003a788:	c6 03 00             	movb   $0x0,(%rbx)
14003a78b:	e9 99 02 00 00       	jmp    0x14003aa29
14003a790:	ba 65 00 00 00       	mov    $0x65,%edx
14003a795:	48 8b cb             	mov    %rbx,%rcx
14003a798:	e8 0f dd 00 00       	call   0x1400484ac
14003a79d:	48 85 c0             	test   %rax,%rax
14003a7a0:	0f 84 81 02 00 00    	je     0x14003aa27
14003a7a6:	8a 8c 24 b0 00 00 00 	mov    0xb0(%rsp),%cl
14003a7ad:	80 f1 01             	xor    $0x1,%cl
14003a7b0:	c0 e1 05             	shl    $0x5,%cl
14003a7b3:	80 c1 50             	add    $0x50,%cl
14003a7b6:	88 08                	mov    %cl,(%rax)
14003a7b8:	c6 40 03 00          	movb   $0x0,0x3(%rax)
14003a7bc:	e9 66 02 00 00       	jmp    0x14003aa27
14003a7c1:	b8 2d 00 00 00       	mov    $0x2d,%eax
14003a7c6:	4d 39 1e             	cmp    %r11,(%r14)
14003a7c9:	7d 05                	jge    0x14003a7d0
14003a7cb:	88 02                	mov    %al,(%rdx)
14003a7cd:	48 ff c3             	inc    %rbx
14003a7d0:	8a 84 24 b0 00 00 00 	mov    0xb0(%rsp),%al
14003a7d7:	4c 8d 63 01          	lea    0x1(%rbx),%r12
14003a7db:	34 01                	xor    $0x1,%al
14003a7dd:	41 bf ff 03 00 00    	mov    $0x3ff,%r15d
14003a7e3:	44 0f b6 e8          	movzbl %al,%r13d
14003a7e7:	41 b8 30 00 00 00    	mov    $0x30,%r8d
14003a7ed:	41 8b ed             	mov    %r13d,%ebp
14003a7f0:	48 b8 00 00 00 00 00 	movabs $0x7ff0000000000000,%rax
14003a7f7:	00 f0 7f
14003a7fa:	c1 e5 05             	shl    $0x5,%ebp
14003a7fd:	49 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%r9
14003a804:	ff 0f 00
14003a807:	83 c5 07             	add    $0x7,%ebp
14003a80a:	49 85 06             	test   %rax,(%r14)
14003a80d:	75 18                	jne    0x14003a827
14003a80f:	44 88 03             	mov    %r8b,(%rbx)
14003a812:	49 8b 06             	mov    (%r14),%rax
14003a815:	49 23 c1             	and    %r9,%rax
14003a818:	48 f7 d8             	neg    %rax
14003a81b:	4d 1b ff             	sbb    %r15,%r15
14003a81e:	41 81 e7 fe 03 00 00 	and    $0x3fe,%r15d
14003a825:	eb 03                	jmp    0x14003a82a
14003a827:	c6 03 31             	movb   $0x31,(%rbx)
14003a82a:	49 8d 74 24 01       	lea    0x1(%r12),%rsi
14003a82f:	85 ff                	test   %edi,%edi
14003a831:	75 05                	jne    0x14003a838
14003a833:	41 8a c3             	mov    %r11b,%al
14003a836:	eb 37                	jmp    0x14003a86f
14003a838:	48 8b 9c 24 c8 00 00 	mov    0xc8(%rsp),%rbx
14003a83f:	00
14003a840:	44 38 5b 28          	cmp    %r11b,0x28(%rbx)
14003a844:	75 19                	jne    0x14003a85f
14003a846:	48 8b cb             	mov    %rbx,%rcx
14003a849:	e8 a2 5c ff ff       	call   0x1400304f0
14003a84e:	45 33 db             	xor    %r11d,%r11d
14003a851:	49 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%r9
14003a858:	ff 0f 00
14003a85b:	45 8d 43 30          	lea    0x30(%r11),%r8d
14003a85f:	48 8b 43 18          	mov    0x18(%rbx),%rax
14003a863:	48 8b 88 f8 00 00 00 	mov    0xf8(%rax),%rcx
14003a86a:	48 8b 01             	mov    (%rcx),%rax
14003a86d:	8a 00                	mov    (%rax),%al
14003a86f:	41 88 04 24          	mov    %al,(%r12)
14003a873:	4d 85 0e             	test   %r9,(%r14)
14003a876:	0f 86 8a 00 00 00    	jbe    0x14003a906
14003a87c:	41 0f b7 d0          	movzwl %r8w,%edx
14003a880:	49 ba 00 00 00 00 00 	movabs $0xf000000000000,%r10
14003a887:	00 0f 00
14003a88a:	0f b7 ca             	movzwl %dx,%ecx
14003a88d:	85 ff                	test   %edi,%edi
14003a88f:	7e 2c                	jle    0x14003a8bd
14003a891:	49 8b 06             	mov    (%r14),%rax
14003a894:	49 23 c2             	and    %r10,%rax
14003a897:	49 23 c1             	and    %r9,%rax
14003a89a:	48 d3 e8             	shr    %cl,%rax
14003a89d:	66 41 03 c0          	add    %r8w,%ax
14003a8a1:	66 83 f8 39          	cmp    $0x39,%ax
14003a8a5:	76 03                	jbe    0x14003a8aa
14003a8a7:	66 03 c5             	add    %bp,%ax
14003a8aa:	88 06                	mov    %al,(%rsi)
14003a8ac:	ff cf                	dec    %edi
14003a8ae:	48 ff c6             	inc    %rsi
14003a8b1:	49 c1 ea 04          	shr    $0x4,%r10
14003a8b5:	66 83 c2 fc          	add    $0xfffc,%dx
14003a8b9:	79 cf                	jns    0x14003a88a
14003a8bb:	eb 49                	jmp    0x14003a906
14003a8bd:	44 8b 8c 24 c0 00 00 	mov    0xc0(%rsp),%r9d
14003a8c4:	00
14003a8c5:	44 0f b7 c1          	movzwl %cx,%r8d
14003a8c9:	49 8b ce             	mov    %r14,%rcx
14003a8cc:	49 8b d2             	mov    %r10,%rdx
14003a8cf:	e8 d8 07 00 00       	call   0x14003b0ac
14003a8d4:	45 33 db             	xor    %r11d,%r11d
14003a8d7:	84 c0                	test   %al,%al
14003a8d9:	74 4c                	je     0x14003a927
14003a8db:	48 8d 4e ff          	lea    -0x1(%rsi),%rcx
14003a8df:	8a 11                	mov    (%rcx),%dl
14003a8e1:	8d 42 ba             	lea    -0x46(%rdx),%eax
14003a8e4:	a8 df                	test   $0xdf,%al
14003a8e6:	75 08                	jne    0x14003a8f0
14003a8e8:	c6 01 30             	movb   $0x30,(%rcx)
14003a8eb:	48 ff c9             	dec    %rcx
14003a8ee:	eb ef                	jmp    0x14003a8df
14003a8f0:	49 3b cc             	cmp    %r12,%rcx
14003a8f3:	74 0e                	je     0x14003a903
14003a8f5:	80 fa 39             	cmp    $0x39,%dl
14003a8f8:	75 03                	jne    0x14003a8fd
14003a8fa:	40 02 d5             	add    %bpl,%dl
14003a8fd:	fe c2                	inc    %dl
14003a8ff:	88 11                	mov    %dl,(%rcx)
14003a901:	eb 03                	jmp    0x14003a906
14003a903:	fe 41 ff             	incb   -0x1(%rcx)
14003a906:	85 ff                	test   %edi,%edi
14003a908:	7e 1d                	jle    0x14003a927
14003a90a:	44 8b c7             	mov    %edi,%r8d
14003a90d:	48 8b ce             	mov    %rsi,%rcx
14003a910:	8b df                	mov    %edi,%ebx
14003a912:	bf 30 00 00 00       	mov    $0x30,%edi
14003a917:	40 8a d7             	mov    %dil,%dl
14003a91a:	e8 81 ce fe ff       	call   0x1400277a0
14003a91f:	48 03 f3             	add    %rbx,%rsi
14003a922:	45 33 db             	xor    %r11d,%r11d
14003a925:	eb 05                	jmp    0x14003a92c
14003a927:	bf 30 00 00 00       	mov    $0x30,%edi
14003a92c:	45 38 1c 24          	cmp    %r11b,(%r12)
14003a930:	49 0f 44 f4          	cmove  %r12,%rsi
14003a934:	41 c0 e5 05          	shl    $0x5,%r13b
14003a938:	41 80 c5 50          	add    $0x50,%r13b
14003a93c:	44 88 2e             	mov    %r13b,(%rsi)
14003a93f:	4c 8d 4e 02          	lea    0x2(%rsi),%r9
14003a943:	49 8b 06             	mov    (%r14),%rax
14003a946:	48 c1 e8 34          	shr    $0x34,%rax
14003a94a:	25 ff 07 00 00       	and    $0x7ff,%eax
14003a94f:	8b c8                	mov    %eax,%ecx
14003a951:	49 2b cf             	sub    %r15,%rcx
14003a954:	48 8b d1             	mov    %rcx,%rdx
14003a957:	79 06                	jns    0x14003a95f
14003a959:	49 8b cf             	mov    %r15,%rcx
14003a95c:	48 2b c8             	sub    %rax,%rcx
14003a95f:	48 85 d2             	test   %rdx,%rdx
14003a962:	b8 2b 00 00 00       	mov    $0x2b,%eax
14003a967:	4d 8b c1             	mov    %r9,%r8
14003a96a:	8d 50 02             	lea    0x2(%rax),%edx
14003a96d:	0f 48 c2             	cmovs  %edx,%eax
14003a970:	88 46 01             	mov    %al,0x1(%rsi)
14003a973:	41 88 39             	mov    %dil,(%r9)
14003a976:	48 81 f9 e8 03 00 00 	cmp    $0x3e8,%rcx
14003a97d:	7c 34                	jl     0x14003a9b3
14003a97f:	48 b8 cf f7 53 e3 a5 	movabs $0x20c49ba5e353f7cf,%rax
14003a986:	9b c4 20
14003a989:	4d 8d 41 01          	lea    0x1(%r9),%r8
14003a98d:	48 f7 e9             	imul   %rcx
14003a990:	48 c1 fa 07          	sar    $0x7,%rdx
14003a994:	48 8b c2             	mov    %rdx,%rax
14003a997:	48 c1 e8 3f          	shr    $0x3f,%rax
14003a99b:	48 03 d0             	add    %rax,%rdx
14003a99e:	8d 04 17             	lea    (%rdi,%rdx,1),%eax
14003a9a1:	41 88 01             	mov    %al,(%r9)
14003a9a4:	48 69 c2 18 fc ff ff 	imul   $0xfffffffffffffc18,%rdx,%rax
14003a9ab:	48 03 c8             	add    %rax,%rcx
14003a9ae:	4d 3b c1             	cmp    %r9,%r8
14003a9b1:	75 06                	jne    0x14003a9b9
14003a9b3:	48 83 f9 64          	cmp    $0x64,%rcx
14003a9b7:	7c 33                	jl     0x14003a9ec
14003a9b9:	48 b8 0b d7 a3 70 3d 	movabs $0xa3d70a3d70a3d70b,%rax
14003a9c0:	0a d7 a3
14003a9c3:	48 f7 e9             	imul   %rcx
14003a9c6:	48 03 d1             	add    %rcx,%rdx
14003a9c9:	48 c1 fa 06          	sar    $0x6,%rdx
14003a9cd:	48 8b c2             	mov    %rdx,%rax
14003a9d0:	48 c1 e8 3f          	shr    $0x3f,%rax
14003a9d4:	48 03 d0             	add    %rax,%rdx
14003a9d7:	8d 04 17             	lea    (%rdi,%rdx,1),%eax
14003a9da:	41 88 00             	mov    %al,(%r8)
14003a9dd:	49 ff c0             	inc    %r8
14003a9e0:	48 6b c2 9c          	imul   $0xffffffffffffff9c,%rdx,%rax
14003a9e4:	48 03 c8             	add    %rax,%rcx
14003a9e7:	4d 3b c1             	cmp    %r9,%r8
14003a9ea:	75 06                	jne    0x14003a9f2
14003a9ec:	48 83 f9 0a          	cmp    $0xa,%rcx
14003a9f0:	7c 2b                	jl     0x14003aa1d
14003a9f2:	48 b8 67 66 66 66 66 	movabs $0x6666666666666667,%rax
14003a9f9:	66 66 66
14003a9fc:	48 f7 e9             	imul   %rcx
14003a9ff:	48 c1 fa 02          	sar    $0x2,%rdx
14003aa03:	48 8b c2             	mov    %rdx,%rax
14003aa06:	48 c1 e8 3f          	shr    $0x3f,%rax
14003aa0a:	48 03 d0             	add    %rax,%rdx
14003aa0d:	8d 04 17             	lea    (%rdi,%rdx,1),%eax
14003aa10:	41 88 00             	mov    %al,(%r8)
14003aa13:	49 ff c0             	inc    %r8
14003aa16:	48 6b c2 f6          	imul   $0xfffffffffffffff6,%rdx,%rax
14003aa1a:	48 03 c8             	add    %rax,%rcx
14003aa1d:	40 02 cf             	add    %dil,%cl
14003aa20:	41 88 08             	mov    %cl,(%r8)
14003aa23:	45 88 58 01          	mov    %r11b,0x1(%r8)
14003aa27:	33 c0                	xor    %eax,%eax
14003aa29:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
14003aa2e:	49 8b 5b 30          	mov    0x30(%r11),%rbx
14003aa32:	49 8b 6b 40          	mov    0x40(%r11),%rbp
14003aa36:	49 8b 73 48          	mov    0x48(%r11),%rsi
14003aa3a:	49 8b e3             	mov    %r11,%rsp
14003aa3d:	41 5f                	pop    %r15
14003aa3f:	41 5e                	pop    %r14
14003aa41:	41 5d                	pop    %r13
14003aa43:	41 5c                	pop    %r12
14003aa45:	5f                   	pop    %rdi
14003aa46:	c3                   	ret
14003aa47:	cc                   	int3
14003aa48:	4c 8b dc             	mov    %rsp,%r11
14003aa4b:	49 89 5b 08          	mov    %rbx,0x8(%r11)
14003aa4f:	49 89 6b 10          	mov    %rbp,0x10(%r11)
14003aa53:	49 89 73 18          	mov    %rsi,0x18(%r11)
14003aa57:	49 89 7b 20          	mov    %rdi,0x20(%r11)
14003aa5b:	41 56                	push   %r14
14003aa5d:	48 83 ec 50          	sub    $0x50,%rsp
14003aa61:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
14003aa68:	00
14003aa69:	49 8b f0             	mov    %r8,%rsi
14003aa6c:	8b ac 24 88 00 00 00 	mov    0x88(%rsp),%ebp
14003aa73:	48 8b fa             	mov    %rdx,%rdi
14003aa76:	48 8b 09             	mov    (%rcx),%rcx
14003aa79:	41 b8 01 00 00 00    	mov    $0x1,%r8d
14003aa7f:	49 89 43 d0          	mov    %rax,-0x30(%r11)
14003aa83:	4d 89 4b c8          	mov    %r9,-0x38(%r11)
14003aa87:	4d 8d 4b e8          	lea    -0x18(%r11),%r9
14003aa8b:	8d 55 01             	lea    0x1(%rbp),%edx
14003aa8e:	e8 0d 8b 00 00       	call   0x1400435a0
14003aa93:	4c 8b b4 24 a8 00 00 	mov    0xa8(%rsp),%r14
14003aa9a:	00
14003aa9b:	44 8d 45 01          	lea    0x1(%rbp),%r8d
14003aa9f:	45 33 c9             	xor    %r9d,%r9d
14003aaa2:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
14003aaa7:	83 7c 24 40 2d       	cmpl   $0x2d,0x40(%rsp)
14003aaac:	44 8b d0             	mov    %eax,%r10d
14003aaaf:	8b 84 24 a0 00 00 00 	mov    0xa0(%rsp),%eax
14003aab6:	48 8b d6             	mov    %rsi,%rdx
14003aab9:	41 0f 94 c1          	sete   %r9b
14003aabd:	89 44 24 28          	mov    %eax,0x28(%rsp)
14003aac1:	33 c9                	xor    %ecx,%ecx
14003aac3:	44 89 54 24 20       	mov    %r10d,0x20(%rsp)
14003aac8:	85 ed                	test   %ebp,%ebp
14003aaca:	0f 9f c1             	setg   %cl
14003aacd:	48 2b d1             	sub    %rcx,%rdx
14003aad0:	49 2b d1             	sub    %r9,%rdx
14003aad3:	48 83 fe ff          	cmp    $0xffffffffffffffff,%rsi
14003aad7:	48 0f 44 d6          	cmove  %rsi,%rdx
14003aadb:	49 03 c9             	add    %r9,%rcx
14003aade:	48 03 cf             	add    %rdi,%rcx
14003aae1:	4c 8d 4c 24 40       	lea    0x40(%rsp),%r9
14003aae6:	e8 a5 89 00 00       	call   0x140043490
14003aaeb:	85 c0                	test   %eax,%eax
14003aaed:	74 05                	je     0x14003aaf4
14003aaef:	c6 07 00             	movb   $0x0,(%rdi)
14003aaf2:	eb 35                	jmp    0x14003ab29
14003aaf4:	44 8a 8c 24 90 00 00 	mov    0x90(%rsp),%r9b
14003aafb:	00
14003aafc:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
14003ab01:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
14003ab06:	44 8b c5             	mov    %ebp,%r8d
14003ab09:	c6 44 24 30 00       	movb   $0x0,0x30(%rsp)
14003ab0e:	48 8b d6             	mov    %rsi,%rdx
14003ab11:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14003ab16:	48 8b cf             	mov    %rdi,%rcx
14003ab19:	8b 84 24 98 00 00 00 	mov    0x98(%rsp),%eax
14003ab20:	89 44 24 20          	mov    %eax,0x20(%rsp)
14003ab24:	e8 1b 00 00 00       	call   0x14003ab44
14003ab29:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
14003ab2e:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
14003ab33:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
14003ab38:	48 8b 7c 24 78       	mov    0x78(%rsp),%rdi
14003ab3d:	48 83 c4 50          	add    $0x50,%rsp
14003ab41:	41 5e                	pop    %r14
14003ab43:	c3                   	ret
14003ab44:	4c 8b dc             	mov    %rsp,%r11
14003ab47:	49 89 5b 08          	mov    %rbx,0x8(%r11)
14003ab4b:	49 89 6b 10          	mov    %rbp,0x10(%r11)
14003ab4f:	49 89 73 18          	mov    %rsi,0x18(%r11)
14003ab53:	49 89 7b 20          	mov    %rdi,0x20(%r11)
14003ab57:	41 55                	push   %r13
14003ab59:	41 56                	push   %r14
14003ab5b:	41 57                	push   %r15
14003ab5d:	48 83 ec 30          	sub    $0x30,%rsp
14003ab61:	33 c0                	xor    %eax,%eax
14003ab63:	49 63 e8             	movslq %r8d,%rbp
14003ab66:	45 85 c0             	test   %r8d,%r8d
14003ab69:	45 8a e9             	mov    %r9b,%r13b
14003ab6c:	4c 8b fa             	mov    %rdx,%r15
14003ab6f:	48 8b f9             	mov    %rcx,%rdi
14003ab72:	0f 4f c5             	cmovg  %ebp,%eax
14003ab75:	83 c0 09             	add    $0x9,%eax
14003ab78:	48 98                	cltq
14003ab7a:	48 3b d0             	cmp    %rax,%rdx
14003ab7d:	77 4d                	ja     0x14003abcc
14003ab7f:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
14003ab86:	00
14003ab87:	bb 22 00 00 00       	mov    $0x22,%ebx
14003ab8c:	49 89 4b e0          	mov    %rcx,-0x20(%r11)
14003ab90:	45 33 c9             	xor    %r9d,%r9d
14003ab93:	49 83 63 d8 00       	andq   $0x0,-0x28(%r11)
14003ab98:	45 33 c0             	xor    %r8d,%r8d
14003ab9b:	33 d2                	xor    %edx,%edx
14003ab9d:	c6 41 30 01          	movb   $0x1,0x30(%rcx)
14003aba1:	89 59 2c             	mov    %ebx,0x2c(%rcx)
14003aba4:	33 c9                	xor    %ecx,%ecx
14003aba6:	e8 2d 09 ff ff       	call   0x14002b4d8
14003abab:	8b c3                	mov    %ebx,%eax
14003abad:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
14003abb2:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
14003abb7:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
14003abbc:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
14003abc1:	48 83 c4 30          	add    $0x30,%rsp
14003abc5:	41 5f                	pop    %r15
14003abc7:	41 5e                	pop    %r14
14003abc9:	41 5d                	pop    %r13
14003abcb:	c3                   	ret
14003abcc:	80 bc 24 80 00 00 00 	cmpb   $0x0,0x80(%rsp)
14003abd3:	00
14003abd4:	48 8b 74 24 78       	mov    0x78(%rsp),%rsi
14003abd9:	74 2a                	je     0x14003ac05
14003abdb:	33 d2                	xor    %edx,%edx
14003abdd:	83 3e 2d             	cmpl   $0x2d,(%rsi)
14003abe0:	0f 94 c2             	sete   %dl
14003abe3:	48 03 d7             	add    %rdi,%rdx
14003abe6:	45 85 c0             	test   %r8d,%r8d
14003abe9:	7e 1a                	jle    0x14003ac05
14003abeb:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
14003abef:	49 ff c0             	inc    %r8
14003abf2:	42 80 3c 02 00       	cmpb   $0x0,(%rdx,%r8,1)
14003abf7:	75 f6                	jne    0x14003abef
14003abf9:	49 ff c0             	inc    %r8
14003abfc:	48 8d 4a 01          	lea    0x1(%rdx),%rcx