140095379:	49 8b 10             	mov    (%r8),%rdx
14009537c:	4d 89 18             	mov    %r11,(%r8)
14009537f:	eb 16                	jmp    0x140095397
140095381:	0f b7 02             	movzwl (%rdx),%eax
140095384:	41 0f b7 0a          	movzwl (%r10),%ecx
140095388:	66 41 89 02          	mov    %ax,(%r10)
14009538c:	49 83 ea 02          	sub    $0x2,%r10
140095390:	66 89 0a             	mov    %cx,(%rdx)
140095393:	48 83 c2 02          	add    $0x2,%rdx
140095397:	49 3b d2             	cmp    %r10,%rdx
14009539a:	72 e5                	jb     0x140095381
14009539c:	eb 0c                	jmp    0x1400953aa
14009539e:	48 03 c0             	add    %rax,%rax
1400953a1:	4c 2b d8             	sub    %rax,%r11
1400953a4:	4d 89 18             	mov    %r11,(%r8)
1400953a7:	4d 89 31             	mov    %r14,(%r9)
1400953aa:	48 8b 5c 24 10       	mov    0x10(%rsp),%rbx
1400953af:	48 8b 6c 24 18       	mov    0x18(%rsp),%rbp
1400953b4:	48 8b 74 24 20       	mov    0x20(%rsp),%rsi
1400953b9:	48 8b 7c 24 28       	mov    0x28(%rsp),%rdi
1400953be:	41 5e                	pop    %r14
1400953c0:	c3                   	ret
1400953c1:	4d 3b 11             	cmp    (%r9),%r10
1400953c4:	73 e1                	jae    0x1400953a7
1400953c6:	41 ff ca             	dec    %r10d
1400953c9:	41 8b ce             	mov    %r14d,%ecx
1400953cc:	85 d2                	test   %edx,%edx
1400953ce:	74 63                	je     0x140095433
1400953d0:	49 63 c2             	movslq %r10d,%rax
1400953d3:	48 8d 3c 00          	lea    (%rax,%rax,1),%rdi
1400953d7:	49 8b 28             	mov    (%r8),%rbp
1400953da:	41 8b f2             	mov    %r10d,%esi
1400953dd:	85 db                	test   %ebx,%ebx
1400953df:	74 2a                	je     0x14009540b
1400953e1:	b8 67 66 66 66       	mov    $0x66666667,%eax
1400953e6:	f7 eb                	imul   %ebx
1400953e8:	c1 fa 02             	sar    $0x2,%edx
1400953eb:	8b c2                	mov    %edx,%eax
1400953ed:	c1 e8 1f             	shr    $0x1f,%eax
1400953f0:	03 d0                	add    %eax,%edx
1400953f2:	0f b7 c2             	movzwl %dx,%eax
1400953f5:	66 c1 e0 02          	shl    $0x2,%ax
1400953f9:	66 03 d0             	add    %ax,%dx
1400953fc:	0f b7 c3             	movzwl %bx,%eax
1400953ff:	66 03 d2             	add    %dx,%dx
140095402:	66 2b c2             	sub    %dx,%ax
140095405:	66 83 c0 30          	add    $0x30,%ax
140095409:	eb 04                	jmp    0x14009540f
14009540b:	41 0f b7 c3          	movzwl %r11w,%eax
14009540f:	66 89 04 2f          	mov    %ax,(%rdi,%rbp,1)
140095413:	ff c1                	inc    %ecx
140095415:	b8 67 66 66 66       	mov    $0x66666667,%eax
14009541a:	41 ff ca             	dec    %r10d
14009541d:	f7 eb                	imul   %ebx
14009541f:	48 83 ef 02          	sub    $0x2,%rdi
140095423:	8b da                	mov    %edx,%ebx
140095425:	c1 fb 02             	sar    $0x2,%ebx
140095428:	8b c3                	mov    %ebx,%eax
14009542a:	c1 e8 1f             	shr    $0x1f,%eax
14009542d:	03 d8                	add    %eax,%ebx
14009542f:	85 f6                	test   %esi,%esi
140095431:	75 a4                	jne    0x1400953d7
140095433:	48 63 c9             	movslq %ecx,%rcx
140095436:	48 8d 04 09          	lea    (%rcx,%rcx,1),%rax
14009543a:	49 01 00             	add    %rax,(%r8)
14009543d:	49 29 09             	sub    %rcx,(%r9)
140095440:	e9 65 ff ff ff       	jmp    0x1400953aa
140095445:	cc                   	int3
140095446:	cc                   	int3
140095447:	cc                   	int3
140095448:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14009544d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140095452:	57                   	push   %rdi
140095453:	48 83 ec 20          	sub    $0x20,%rsp
140095457:	44 8d 4a 06          	lea    0x6(%rdx),%r9d
14009545b:	8b f2                	mov    %edx,%esi
14009545d:	44 8b d1             	mov    %ecx,%r10d
140095460:	b8 93 24 49 92       	mov    $0x92492493,%eax
140095465:	41 f7 e9             	imul   %r9d
140095468:	41 8b c8             	mov    %r8d,%ecx
14009546b:	41 8b d8             	mov    %r8d,%ebx
14009546e:	41 03 d1             	add    %r9d,%edx
140095471:	c1 fa 02             	sar    $0x2,%edx
140095474:	8b c2                	mov    %edx,%eax
140095476:	c1 e8 1f             	shr    $0x1f,%eax
140095479:	03 d0                	add    %eax,%edx
14009547b:	6b c2 07             	imul   $0x7,%edx,%eax
14009547e:	44 2b c8             	sub    %eax,%r9d
140095481:	b8 93 24 49 92       	mov    $0x92492493,%eax
140095486:	41 2b c9             	sub    %r9d,%ecx
140095489:	83 c1 07             	add    $0x7,%ecx
14009548c:	f7 e9                	imul   %ecx
14009548e:	8d 3c 11             	lea    (%rcx,%rdx,1),%edi
140095491:	41 8b ca             	mov    %r10d,%ecx
140095494:	c1 ff 02             	sar    $0x2,%edi
140095497:	8b c7                	mov    %edi,%eax
140095499:	c1 e8 1f             	shr    $0x1f,%eax
14009549c:	03 f8                	add    %eax,%edi
14009549e:	e8 1d 97 fe ff       	call   0x14007ebc0
1400954a3:	44 0f b6 c0          	movzbl %al,%r8d
1400954a7:	2b f3                	sub    %ebx,%esi
1400954a9:	81 c6 73 01 00 00    	add    $0x173,%esi
1400954af:	b8 93 24 49 92       	mov    $0x92492493,%eax
1400954b4:	f7 ee                	imul   %esi
1400954b6:	b8 93 24 49 92       	mov    $0x92492493,%eax
1400954bb:	44 8b cb             	mov    %ebx,%r9d
1400954be:	03 d6                	add    %esi,%edx
1400954c0:	45 2b c8             	sub    %r8d,%r9d
1400954c3:	c1 fa 02             	sar    $0x2,%edx
1400954c6:	8b ca                	mov    %edx,%ecx
1400954c8:	c1 e9 1f             	shr    $0x1f,%ecx
1400954cb:	03 d1                	add    %ecx,%edx
1400954cd:	6b ca 07             	imul   $0x7,%edx,%ecx
1400954d0:	2b f1                	sub    %ecx,%esi
1400954d2:	41 8d 88 6d 01 00 00 	lea    0x16d(%r8),%ecx
1400954d9:	03 ce                	add    %esi,%ecx
1400954db:	f7 e9                	imul   %ecx
1400954dd:	03 d1                	add    %ecx,%edx
1400954df:	c1 fa 02             	sar    $0x2,%edx
1400954e2:	8b c2                	mov    %edx,%eax
1400954e4:	c1 e8 1f             	shr    $0x1f,%eax
1400954e7:	03 d0                	add    %eax,%edx
1400954e9:	6b c2 07             	imul   $0x7,%edx,%eax
1400954ec:	2b c8                	sub    %eax,%ecx
1400954ee:	41 81 f9 6c 01 00 00 	cmp    $0x16c,%r9d
1400954f5:	7c 05                	jl     0x1400954fc
1400954f7:	83 f9 02             	cmp    $0x2,%ecx
1400954fa:	74 1c                	je     0x140095518
1400954fc:	41 81 f9 6b 01 00 00 	cmp    $0x16b,%r9d
140095503:	7c 05                	jl     0x14009550a
140095505:	83 f9 03             	cmp    $0x3,%ecx
140095508:	74 0e                	je     0x140095518
14009550a:	41 81 f9 6a 01 00 00 	cmp    $0x16a,%r9d
140095511:	7c 0a                	jl     0x14009551d
140095513:	83 f9 04             	cmp    $0x4,%ecx
140095516:	75 05                	jne    0x14009551d
140095518:	83 c8 ff             	or     $0xffffffff,%eax
14009551b:	eb 0d                	jmp    0x14009552a
14009551d:	8d 4e fe             	lea    -0x2(%rsi),%ecx
140095520:	8b c7                	mov    %edi,%eax
140095522:	83 f9 02             	cmp    $0x2,%ecx
140095525:	77 03                	ja     0x14009552a
140095527:	8d 47 01             	lea    0x1(%rdi),%eax
14009552a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14009552f:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140095534:	48 83 c4 20          	add    $0x20,%rsp
140095538:	5f                   	pop    %rdi
140095539:	c3                   	ret
14009553a:	cc                   	int3
14009553b:	cc                   	int3
14009553c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140095541:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140095546:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
14009554b:	55                   	push   %rbp
14009554c:	41 54                	push   %r12
14009554e:	41 55                	push   %r13
140095550:	41 56                	push   %r14
140095552:	41 57                	push   %r15
140095554:	48 8b ec             	mov    %rsp,%rbp
140095557:	48 83 ec 50          	sub    $0x50,%rsp
14009555b:	49 8b f9             	mov    %r9,%rdi
14009555e:	49 8b f0             	mov    %r8,%rsi
140095561:	44 0f b7 ca          	movzwl %dx,%r9d
140095565:	4c 8b f1             	mov    %rcx,%r14
140095568:	41 8b d1             	mov    %r9d,%edx
14009556b:	41 83 f9 5a          	cmp    $0x5a,%r9d
14009556f:	0f 86 04 08 00 00    	jbe    0x140095d79
140095575:	83 fa 6e             	cmp    $0x6e,%edx
140095578:	0f 87 39 04 00 00    	ja     0x1400959b7
14009557e:	0f 84 fa 03 00 00    	je     0x14009597e
140095584:	83 ea 61             	sub    $0x61,%edx
140095587:	0f 84 91 03 00 00    	je     0x14009591e
14009558d:	83 ea 01             	sub    $0x1,%edx
140095590:	0f 84 3b 03 00 00    	je     0x1400958d1
140095596:	83 ea 01             	sub    $0x1,%edx
140095599:	0f 84 3c 01 00 00    	je     0x1400956db
14009559f:	83 ea 01             	sub    $0x1,%edx
1400955a2:	0f 84 0f 01 00 00    	je     0x1400956b7
1400955a8:	83 ea 01             	sub    $0x1,%edx
1400955ab:	0f 84 e1 00 00 00    	je     0x140095692
1400955b1:	83 ea 02             	sub    $0x2,%edx
1400955b4:	74 7d                	je     0x140095633
1400955b6:	83 ea 01             	sub    $0x1,%edx
1400955b9:	0f 84 12 03 00 00    	je     0x1400958d1
1400955bf:	83 ea 02             	sub    $0x2,%edx
1400955c2:	74 42                	je     0x140095606
1400955c4:	83 fa 03             	cmp    $0x3,%edx
1400955c7:	0f 85 aa 03 00 00    	jne    0x140095977
1400955cd:	41 8b 48 10          	mov    0x10(%r8),%ecx
1400955d1:	83 f9 0b             	cmp    $0xb,%ecx
1400955d4:	0f 87 8d 03 00 00    	ja     0x140095967
1400955da:	8a 45 60             	mov    0x60(%rbp),%al
1400955dd:	f6 d8                	neg    %al
1400955df:	66 1b d2             	sbb    %dx,%dx
1400955e2:	66 f7 d2             	not    %dx
1400955e5:	66 83 e2 30          	and    $0x30,%dx
1400955e9:	ff c1                	inc    %ecx
1400955eb:	66 89 54 24 20       	mov    %dx,0x20(%rsp)
1400955f0:	ba 02 00 00 00       	mov    $0x2,%edx
1400955f5:	4c 8b 4d 50          	mov    0x50(%rbp),%r9
1400955f9:	4c 8b c7             	mov    %rdi,%r8
1400955fc:	e8 f7 fc ff ff       	call   0x1400952f8
140095601:	e9 02 0e 00 00       	jmp    0x140096408
140095606:	41 8b 48 1c          	mov    0x1c(%r8),%ecx
14009560a:	81 f9 6d 01 00 00    	cmp    $0x16d,%ecx
140095610:	0f 87 51 03 00 00    	ja     0x140095967
140095616:	8a 45 60             	mov    0x60(%rbp),%al
140095619:	f6 d8                	neg    %al
14009561b:	66 1b d2             	sbb    %dx,%dx
14009561e:	66 f7 d2             	not    %dx
140095621:	66 83 e2 30          	and    $0x30,%dx
140095625:	66 89 54 24 20       	mov    %dx,0x20(%rsp)
14009562a:	ff c1                	inc    %ecx
14009562c:	ba 03 00 00 00       	mov    $0x3,%edx
140095631:	eb c2                	jmp    0x1400955f5
140095633:	45 8b 70 14          	mov    0x14(%r8),%r14d
140095637:	41 8d 86 6c 07 00 00 	lea    0x76c(%r14),%eax
14009563e:	3d 0f 27 00 00       	cmp    $0x270f,%eax
140095643:	0f 87 1e 03 00 00    	ja     0x140095967
140095649:	45 8b 40 1c          	mov    0x1c(%r8),%r8d
14009564d:	41 8b ce             	mov    %r14d,%ecx
140095650:	8b 56 18             	mov    0x18(%rsi),%edx
140095653:	e8 f0 fd ff ff       	call   0x140095448
140095658:	85 c0                	test   %eax,%eax
14009565a:	75 05                	jne    0x140095661
14009565c:	41 ff ce             	dec    %r14d
14009565f:	eb 05                	jmp    0x140095666
140095661:	7f 03                	jg     0x140095666
140095663:	41 ff c6             	inc    %r14d
140095666:	41 8d 8e 6c 07 00 00 	lea    0x76c(%r14),%ecx
14009566d:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140095672:	f7 e9                	imul   %ecx
140095674:	be 30 00 00 00       	mov    $0x30,%esi
140095679:	c1 fa 05             	sar    $0x5,%edx
14009567c:	8b c2                	mov    %edx,%eax
14009567e:	66 89 74 24 20       	mov    %si,0x20(%rsp)
140095683:	c1 e8 1f             	shr    $0x1f,%eax
140095686:	03 d0                	add    %eax,%edx
140095688:	6b c2 64             	imul   $0x64,%edx,%eax
14009568b:	2b c8                	sub    %eax,%ecx
14009568d:	e9 5e ff ff ff       	jmp    0x1400955f0
140095692:	41 8b 48 0c          	mov    0xc(%r8),%ecx
140095696:	8d 41 ff             	lea    -0x1(%rcx),%eax
140095699:	83 f8 1e             	cmp    $0x1e,%eax
14009569c:	0f 87 c5 02 00 00    	ja     0x140095967
1400956a2:	8a 45 60             	mov    0x60(%rbp),%al
1400956a5:	34 01                	xor    $0x1,%al
1400956a7:	c0 e0 05             	shl    $0x5,%al
1400956aa:	0f b6 c0             	movzbl %al,%eax
1400956ad:	66 89 44 24 20       	mov    %ax,0x20(%rsp)
1400956b2:	e9 39 ff ff ff       	jmp    0x1400955f0
1400956b7:	41 8b 48 0c          	mov    0xc(%r8),%ecx
1400956bb:	8d 41 ff             	lea    -0x1(%rcx),%eax
1400956be:	83 f8 1e             	cmp    $0x1e,%eax
1400956c1:	0f 87 a0 02 00 00    	ja     0x140095967
1400956c7:	8a 45 60             	mov    0x60(%rbp),%al
1400956ca:	f6 d8                	neg    %al
1400956cc:	66 1b d2             	sbb    %dx,%dx
1400956cf:	66 f7 d2             	not    %dx
1400956d2:	66 83 e2 30          	and    $0x30,%dx
1400956d6:	e9 10 ff ff ff       	jmp    0x1400955eb
1400956db:	4c 8b 6d 58          	mov    0x58(%rbp),%r13
1400956df:	48 8d 05 3a 49 04 00 	lea    0x4493a(%rip),%rax        # 0x1400da020
1400956e6:	33 db                	xor    %ebx,%ebx
1400956e8:	4c 3b e8             	cmp    %rax,%r13
1400956eb:	0f 85 75 01 00 00    	jne    0x140095866
1400956f1:	38 5d 60             	cmp    %bl,0x60(%rbp)
1400956f4:	0f 85 6c 01 00 00    	jne    0x140095866
1400956fa:	4c 8b 7d 50          	mov    0x50(%rbp),%r15
1400956fe:	8d 53 61             	lea    0x61(%rbx),%edx
140095701:	88 5c 24 30          	mov    %bl,0x30(%rsp)
140095705:	4c 8b cf             	mov    %rdi,%r9
140095708:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
14009570d:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
140095712:	e8 25 fe ff ff       	call   0x14009553c
140095717:	84 c0                	test   %al,%al
140095719:	75 10                	jne    0x14009572b
14009571b:	e8 a4 8a fe ff       	call   0x14007e1c4
140095720:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140095726:	e9 4c 02 00 00       	jmp    0x140095977
14009572b:	4c 8d 25 5e 60 04 00 	lea    0x4605e(%rip),%r12        # 0x1400db790
140095732:	49 8b cc             	mov    %r12,%rcx
140095735:	49 39 1f             	cmp    %rbx,(%r15)
140095738:	74 1c                	je     0x140095756
14009573a:	0f b7 11             	movzwl (%rcx),%edx
14009573d:	66 85 d2             	test   %dx,%dx
140095740:	74 14                	je     0x140095756
140095742:	48 8b 07             	mov    (%rdi),%rax
140095745:	48 83 c1 02          	add    $0x2,%rcx
140095749:	66 89 10             	mov    %dx,(%rax)
14009574c:	48 83 07 02          	addq   $0x2,(%rdi)
140095750:	49 83 2f 01          	subq   $0x1,(%r15)
140095754:	75 e4                	jne    0x14009573a
140095756:	88 5c 24 30          	mov    %bl,0x30(%rsp)
14009575a:	ba 62 00 00 00       	mov    $0x62,%edx
14009575f:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
140095764:	4c 8b cf             	mov    %rdi,%r9
140095767:	4c 8b c6             	mov    %rsi,%r8
14009576a:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
14009576f:	49 8b ce             	mov    %r14,%rcx
140095772:	e8 c5 fd ff ff       	call   0x14009553c
140095777:	84 c0                	test   %al,%al
140095779:	74 a0                	je     0x14009571b
14009577b:	49 8b cc             	mov    %r12,%rcx
14009577e:	49 39 1f             	cmp    %rbx,(%r15)
140095781:	74 1c                	je     0x14009579f
140095783:	0f b7 11             	movzwl (%rcx),%edx
140095786:	66 85 d2             	test   %dx,%dx
140095789:	74 14                	je     0x14009579f
14009578b:	48 8b 07             	mov    (%rdi),%rax
14009578e:	48 83 c1 02          	add    $0x2,%rcx
140095792:	66 89 10             	mov    %dx,(%rax)
140095795:	48 83 07 02          	addq   $0x2,(%rdi)
140095799:	49 83 2f 01          	subq   $0x1,(%r15)
14009579d:	75 e4                	jne    0x140095783
14009579f:	88 5c 24 30          	mov    %bl,0x30(%rsp)
1400957a3:	ba 65 00 00 00       	mov    $0x65,%edx
1400957a8:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
1400957ad:	4c 8b cf             	mov    %rdi,%r9
1400957b0:	4c 8b c6             	mov    %rsi,%r8
1400957b3:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
1400957b8:	49 8b ce             	mov    %r14,%rcx
1400957bb:	e8 7c fd ff ff       	call   0x14009553c
1400957c0:	84 c0                	test   %al,%al
1400957c2:	0f 84 53 ff ff ff    	je     0x14009571b
1400957c8:	49 8b cc             	mov    %r12,%rcx
1400957cb:	49 39 1f             	cmp    %rbx,(%r15)
1400957ce:	74 1c                	je     0x1400957ec
1400957d0:	0f b7 11             	movzwl (%rcx),%edx
1400957d3:	66 85 d2             	test   %dx,%dx
1400957d6:	74 14                	je     0x1400957ec
1400957d8:	48 8b 07             	mov    (%rdi),%rax
1400957db:	48 83 c1 02          	add    $0x2,%rcx
1400957df:	66 89 10             	mov    %dx,(%rax)
1400957e2:	48 83 07 02          	addq   $0x2,(%rdi)
1400957e6:	49 83 2f 01          	subq   $0x1,(%r15)
1400957ea:	75 e4                	jne    0x1400957d0
1400957ec:	88 5c 24 30          	mov    %bl,0x30(%rsp)
1400957f0:	ba 54 00 00 00       	mov    $0x54,%edx
1400957f5:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
1400957fa:	4c 8b cf             	mov    %rdi,%r9
1400957fd:	4c 8b c6             	mov    %rsi,%r8
140095800:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
140095805:	49 8b ce             	mov    %r14,%rcx
140095808:	e8 2f fd ff ff       	call   0x14009553c
14009580d:	84 c0                	test   %al,%al
14009580f:	0f 84 06 ff ff ff    	je     0x14009571b
140095815:	49 39 1f             	cmp    %rbx,(%r15)
140095818:	74 1e                	je     0x140095838
14009581a:	41 0f b7 0c 24       	movzwl (%r12),%ecx