1402363f7:	4c 8b ca             	mov    %rdx,%r9
1402363fa:	b9 ca 00 00 00       	mov    $0xca,%ecx
1402363ff:	90                   	nop
140236400:	4c 8b c1             	mov    %rcx,%r8
140236403:	49 d1 e8             	shr    $1,%r8
140236406:	47 3b 14 81          	cmp    (%r9,%r8,4),%r10d
14023640a:	4b 8d 04 81          	lea    (%r9,%r8,4),%rax
14023640e:	73 05                	jae    0x140236415
140236410:	49 8b c8             	mov    %r8,%rcx
140236413:	eb 11                	jmp    0x140236426
140236415:	4c 8d 48 04          	lea    0x4(%rax),%r9
140236419:	48 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%rax
140236420:	49 2b c0             	sub    %r8,%rax
140236423:	48 03 c8             	add    %rax,%rcx
140236426:	48 85 c9             	test   %rcx,%rcx
140236429:	7f d5                	jg     0x140236400
14023642b:	4c 2b ca             	sub    %rdx,%r9
14023642e:	49 c1 f9 02          	sar    $0x2,%r9
140236432:	41 83 e1 01          	and    $0x1,%r9d
140236436:	41 8d 41 01          	lea    0x1(%r9),%eax
14023643a:	c3                   	ret
14023643b:	cc                   	int3
14023643c:	cc                   	int3
14023643d:	cc                   	int3
14023643e:	cc                   	int3
14023643f:	cc                   	int3
140236440:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140236445:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14023644a:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
14023644f:	33 ff                	xor    %edi,%edi
140236451:	8b d9                	mov    %ecx,%ebx
140236453:	48 8d 35 f6 85 d7 00 	lea    0xd785f6(%rip),%rsi        # 0x140faea50
14023645a:	4d 8b d8             	mov    %r8,%r11
14023645d:	44 8b ca             	mov    %edx,%r9d
140236460:	81 fa 10 27 00 00    	cmp    $0x2710,%edx
140236466:	72 62                	jb     0x1402364ca
140236468:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14023646f:	00
140236470:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
140236475:	4d 8b c3             	mov    %r11,%r8
140236478:	41 f7 e1             	mul    %r9d
14023647b:	c1 ea 0d             	shr    $0xd,%edx
14023647e:	69 c2 10 27 00 00    	imul   $0x2710,%edx,%eax
140236484:	44 2b c8             	sub    %eax,%r9d
140236487:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
14023648c:	45 8b d1             	mov    %r9d,%r10d
14023648f:	44 8b ca             	mov    %edx,%r9d
140236492:	41 f7 e2             	mul    %r10d
140236495:	8b c7                	mov    %edi,%eax
140236497:	83 c7 04             	add    $0x4,%edi
14023649a:	4c 2b c0             	sub    %rax,%r8
14023649d:	c1 ea 05             	shr    $0x5,%edx
1402364a0:	6b c2 64             	imul   $0x64,%edx,%eax
1402364a3:	8d 0c 12             	lea    (%rdx,%rdx,1),%ecx
1402364a6:	44 2b d0             	sub    %eax,%r10d
1402364a9:	45 03 d2             	add    %r10d,%r10d
1402364ac:	41 0f b7 04 32       	movzwl (%r10,%rsi,1),%eax
1402364b1:	66 41 89 44 18 ff    	mov    %ax,-0x1(%r8,%rbx,1)
1402364b7:	0f b7 0c 31          	movzwl (%rcx,%rsi,1),%ecx
1402364bb:	66 41 89 4c 18 fd    	mov    %cx,-0x3(%r8,%rbx,1)
1402364c1:	41 81 f9 10 27 00 00 	cmp    $0x2710,%r9d
1402364c8:	73 a6                	jae    0x140236470
1402364ca:	41 83 f9 64          	cmp    $0x64,%r9d
1402364ce:	72 27                	jb     0x1402364f7
1402364d0:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
1402364d5:	41 f7 e1             	mul    %r9d
1402364d8:	c1 ea 05             	shr    $0x5,%edx
1402364db:	6b c2 64             	imul   $0x64,%edx,%eax
1402364de:	44 2b c8             	sub    %eax,%r9d
1402364e1:	8b c7                	mov    %edi,%eax
1402364e3:	48 2b d8             	sub    %rax,%rbx
1402364e6:	43 8d 0c 09          	lea    (%r9,%r9,1),%ecx
1402364ea:	44 8b ca             	mov    %edx,%r9d
1402364ed:	0f b7 04 31          	movzwl (%rcx,%rsi,1),%eax
1402364f1:	66 42 89 44 1b ff    	mov    %ax,-0x1(%rbx,%r11,1)
1402364f7:	41 83 f9 0a          	cmp    $0xa,%r9d
1402364fb:	72 2c                	jb     0x140236529
1402364fd:	45 03 c9             	add    %r9d,%r9d
140236500:	41 8d 41 01          	lea    0x1(%r9),%eax
140236504:	0f b6 04 30          	movzbl (%rax,%rsi,1),%eax
140236508:	41 88 43 02          	mov    %al,0x2(%r11)
14023650c:	41 c6 43 01 2e       	movb   $0x2e,0x1(%r11)
140236511:	41 0f b6 04 31       	movzbl (%r9,%rsi,1),%eax
140236516:	41 88 03             	mov    %al,(%r11)
140236519:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
14023651e:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
140236523:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
140236528:	c3                   	ret
140236529:	41 80 c1 30          	add    $0x30,%r9b
14023652d:	41 c6 43 01 2e       	movb   $0x2e,0x1(%r11)
140236532:	45 88 0b             	mov    %r9b,(%r11)
140236535:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
14023653a:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
14023653f:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
140236544:	c3                   	ret
140236545:	cc                   	int3
140236546:	cc                   	int3
140236547:	cc                   	int3
140236548:	cc                   	int3
140236549:	cc                   	int3
14023654a:	cc                   	int3
14023654b:	cc                   	int3
14023654c:	cc                   	int3
14023654d:	cc                   	int3
14023654e:	cc                   	int3
14023654f:	cc                   	int3
140236550:	40 55                	rex push %rbp
140236552:	56                   	push   %rsi
140236553:	41 54                	push   %r12
140236555:	41 55                	push   %r13
140236557:	41 57                	push   %r15
140236559:	48 83 ec 60          	sub    $0x60,%rsp
14023655d:	48 89 4c 24 40       	mov    %rcx,0x40(%rsp)
140236562:	41 b9 cc fb ff ff    	mov    $0xfffffbcc,%r9d
140236568:	45 85 c0             	test   %r8d,%r8d
14023656b:	74 07                	je     0x140236574
14023656d:	45 8d 88 cb fb ff ff 	lea    -0x435(%r8),%r9d
140236574:	48 b9 00 00 00 00 00 	movabs $0x10000000000000,%rcx
14023657b:	00 10 00
14023657e:	48 89 7c 24 58       	mov    %rdi,0x58(%rsp)
140236583:	48 8b c2             	mov    %rdx,%rax
140236586:	48 0b c1             	or     %rcx,%rax
140236589:	48 8b ca             	mov    %rdx,%rcx
14023658c:	45 85 c0             	test   %r8d,%r8d
14023658f:	48 0f 45 c8          	cmovne %rax,%rcx
140236593:	33 f6                	xor    %esi,%esi
140236595:	44 0f b6 e1          	movzbl %cl,%r12d
140236599:	41 f6 d4             	not    %r12b
14023659c:	41 80 e4 01          	and    $0x1,%r12b
1402365a0:	44 88 64 24 21       	mov    %r12b,0x21(%rsp)
1402365a5:	4c 8d 14 8d 00 00 00 	lea    0x0(,%rcx,4),%r10
1402365ac:	00
1402365ad:	48 85 d2             	test   %rdx,%rdx
1402365b0:	75 12                	jne    0x1402365c4
1402365b2:	41 83 f8 01          	cmp    $0x1,%r8d
1402365b6:	76 0c                	jbe    0x1402365c4
1402365b8:	40 88 74 24 20       	mov    %sil,0x20(%rsp)
1402365bd:	8b fe                	mov    %esi,%edi
1402365bf:	44 8b de             	mov    %esi,%r11d
1402365c2:	eb 0d                	jmp    0x1402365d1
1402365c4:	bf 01 00 00 00       	mov    $0x1,%edi
1402365c9:	c6 44 24 20 01       	movb   $0x1,0x20(%rsp)
1402365ce:	44 8b df             	mov    %edi,%r11d
1402365d1:	45 32 ff             	xor    %r15b,%r15b
1402365d4:	48 89 9c 24 90 00 00 	mov    %rbx,0x90(%rsp)
1402365db:	00
1402365dc:	40 32 ed             	xor    %bpl,%bpl
1402365df:	4c 89 74 24 50       	mov    %r14,0x50(%rsp)
1402365e4:	45 85 c9             	test   %r9d,%r9d
1402365e7:	0f 88 3f 02 00 00    	js     0x14023682c
1402365ed:	45 69 e9 41 34 01 00 	imul   $0x13441,%r9d,%r13d
1402365f4:	4d 8d 72 02          	lea    0x2(%r10),%r14
1402365f8:	8b c6                	mov    %esi,%eax
1402365fa:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
1402365ff:	41 c1 ed 12          	shr    $0x12,%r13d
140236603:	41 83 f9 03          	cmp    $0x3,%r9d
140236607:	0f 9f c0             	setg   %al
14023660a:	44 2b e8             	sub    %eax,%r13d
14023660d:	48 8d 05 4c c4 f8 00 	lea    0xf8c44c(%rip),%rax        # 0x1411c2a60
140236614:	41 69 dd 4f 93 12 00 	imul   $0x12934f,%r13d,%ebx
14023661b:	45 8b c5             	mov    %r13d,%r8d
14023661e:	49 c1 e0 04          	shl    $0x4,%r8
140236622:	4c 03 c0             	add    %rax,%r8
140236625:	c1 eb 13             	shr    $0x13,%ebx
140236628:	41 2b d9             	sub    %r9d,%ebx
14023662b:	49 8b 38             	mov    (%r8),%rdi
14023662e:	83 c3 7a             	add    $0x7a,%ebx
140236631:	49 8b 40 08          	mov    0x8(%r8),%rax
140236635:	41 03 dd             	add    %r13d,%ebx
140236638:	49 f7 e6             	mul    %r14
14023663b:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
140236640:	48 8b c8             	mov    %rax,%rcx
140236643:	4c 8b ca             	mov    %rdx,%r9
140236646:	48 8b c7             	mov    %rdi,%rax
140236649:	49 f7 e6             	mul    %r14
14023664c:	4c 8d 34 0a          	lea    (%rdx,%rcx,1),%r14
140236650:	4c 3b f2             	cmp    %rdx,%r14
140236653:	73 03                	jae    0x140236658
140236655:	49 ff c1             	inc    %r9
140236658:	80 eb 40             	sub    $0x40,%bl
14023665b:	49 8b c2             	mov    %r10,%rax
14023665e:	49 2b c3             	sub    %r11,%rax
140236661:	89 5c 24 28          	mov    %ebx,0x28(%rsp)
140236665:	0f b6 cb             	movzbl %bl,%ecx
140236668:	4d 0f ad ce          	shrd   %cl,%r9,%r14
14023666c:	4d 8b 48 08          	mov    0x8(%r8),%r9
140236670:	4c 8d 58 ff          	lea    -0x1(%rax),%r11
140236674:	49 8b c1             	mov    %r9,%rax
140236677:	49 f7 e3             	mul    %r11
14023667a:	48 8b c8             	mov    %rax,%rcx
14023667d:	4c 8b c2             	mov    %rdx,%r8
140236680:	48 8b c7             	mov    %rdi,%rax
140236683:	49 f7 e3             	mul    %r11
140236686:	48 8d 3c 0a          	lea    (%rdx,%rcx,1),%rdi
14023668a:	48 3b fa             	cmp    %rdx,%rdi
14023668d:	73 03                	jae    0x140236692
14023668f:	49 ff c0             	inc    %r8
140236692:	0f b6 cb             	movzbl %bl,%ecx
140236695:	49 8b c1             	mov    %r9,%rax
140236698:	49 f7 e2             	mul    %r10
14023669b:	4c 0f ad c7          	shrd   %cl,%r8,%rdi
14023669f:	48 8b d8             	mov    %rax,%rbx
1402366a2:	4c 8b ca             	mov    %rdx,%r9
1402366a5:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
1402366aa:	49 f7 e2             	mul    %r10
1402366ad:	48 03 da             	add    %rdx,%rbx
1402366b0:	48 3b da             	cmp    %rdx,%rbx
1402366b3:	73 03                	jae    0x1402366b8
1402366b5:	49 ff c1             	inc    %r9
1402366b8:	0f b6 4c 24 28       	movzbl 0x28(%rsp),%ecx
1402366bd:	4c 0f ad cb          	shrd   %cl,%r9,%rbx
1402366c1:	41 83 fd 15          	cmp    $0x15,%r13d
1402366c5:	77 44                	ja     0x14023670b
1402366c7:	48 b8 cd cc cc cc cc 	movabs $0xcccccccccccccccd,%rax
1402366ce:	cc cc cc
1402366d1:	49 f7 e2             	mul    %r10
1402366d4:	48 c1 ea 02          	shr    $0x2,%rdx
1402366d8:	8d 14 92             	lea    (%rdx,%rdx,4),%edx
1402366db:	44 3b d2             	cmp    %edx,%r10d
1402366de:	41 8b d5             	mov    %r13d,%edx
1402366e1:	75 13                	jne    0x1402366f6
1402366e3:	49 8b ca             	mov    %r10,%rcx
1402366e6:	e8 55 13 00 00       	call   0x140237a40
1402366eb:	0f b6 e8             	movzbl %al,%ebp
1402366ee:	44 8b d6             	mov    %esi,%r10d
1402366f1:	45 32 c9             	xor    %r9b,%r9b
1402366f4:	eb 24                	jmp    0x14023671a
1402366f6:	45 84 e4             	test   %r12b,%r12b
1402366f9:	0f 84 18 01 00 00    	je     0x140236817
1402366ff:	49 8b cb             	mov    %r11,%rcx
140236702:	e8 39 13 00 00       	call   0x140237a40
140236707:	44 0f b6 f8          	movzbl %al,%r15d
14023670b:	45 32 c9             	xor    %r9b,%r9b
14023670e:	44 8b d6             	mov    %esi,%r10d
140236711:	45 84 ff             	test   %r15b,%r15b
140236714:	0f 85 3c 02 00 00    	jne    0x140236956
14023671a:	40 84 ed             	test   %bpl,%bpl
14023671d:	0f 85 33 02 00 00    	jne    0x140236956
140236723:	48 b9 15 ae 47 e1 7a 	movabs $0x47ae147ae147ae15,%rcx
14023672a:	14 ae 47
14023672d:	4d 8b c6             	mov    %r14,%r8
140236730:	48 8b c1             	mov    %rcx,%rax
140236733:	4c 8b cf             	mov    %rdi,%r9
140236736:	49 f7 e6             	mul    %r14
140236739:	48 8b c1             	mov    %rcx,%rax
14023673c:	45 32 db             	xor    %r11b,%r11b
14023673f:	4c 2b c2             	sub    %rdx,%r8
140236742:	49 d1 e8             	shr    $1,%r8
140236745:	4c 03 c2             	add    %rdx,%r8
140236748:	48 f7 e7             	mul    %rdi
14023674b:	49 c1 e8 06          	shr    $0x6,%r8
14023674f:	4c 2b ca             	sub    %rdx,%r9
140236752:	49 d1 e9             	shr    $1,%r9
140236755:	4c 03 ca             	add    %rdx,%r9
140236758:	49 c1 e9 06          	shr    $0x6,%r9
14023675c:	4d 3b c1             	cmp    %r9,%r8
14023675f:	76 31                	jbe    0x140236792
140236761:	48 8b c1             	mov    %rcx,%rax
140236764:	4d 8b f0             	mov    %r8,%r14
140236767:	48 f7 e3             	mul    %rbx
14023676a:	48 8b cb             	mov    %rbx,%rcx
14023676d:	49 8b f9             	mov    %r9,%rdi
140236770:	48 2b ca             	sub    %rdx,%rcx
140236773:	41 ba 02 00 00 00    	mov    $0x2,%r10d
140236779:	48 d1 e9             	shr    $1,%rcx
14023677c:	48 03 ca             	add    %rdx,%rcx
14023677f:	48 c1 e9 06          	shr    $0x6,%rcx
140236783:	6b c1 64             	imul   $0x64,%ecx,%eax
140236786:	2b d8                	sub    %eax,%ebx
140236788:	83 fb 32             	cmp    $0x32,%ebx
14023678b:	48 8b d9             	mov    %rcx,%rbx
14023678e:	41 0f 93 c3          	setae  %r11b
140236792:	49 b9 cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r9
140236799:	cc cc cc
14023679c:	49 8b c1             	mov    %r9,%rax
14023679f:	49 f7 e6             	mul    %r14
1402367a2:	49 8b c1             	mov    %r9,%rax
1402367a5:	4c 8b c2             	mov    %rdx,%r8
1402367a8:	48 f7 e7             	mul    %rdi
1402367ab:	49 c1 e8 03          	shr    $0x3,%r8
1402367af:	48 8b ca             	mov    %rdx,%rcx
1402367b2:	48 c1 e9 03          	shr    $0x3,%rcx
1402367b6:	4c 3b c1             	cmp    %rcx,%r8
1402367b9:	76 45                	jbe    0x140236800
1402367bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1402367c0:	49 8b c1             	mov    %r9,%rax
1402367c3:	48 8b f9             	mov    %rcx,%rdi
1402367c6:	48 f7 e3             	mul    %rbx
1402367c9:	48 c1 ea 03          	shr    $0x3,%rdx
1402367cd:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
1402367d0:	03 c0                	add    %eax,%eax
1402367d2:	2b d8                	sub    %eax,%ebx
1402367d4:	49 8b c1             	mov    %r9,%rax
1402367d7:	83 fb 05             	cmp    $0x5,%ebx
1402367da:	48 8b da             	mov    %rdx,%rbx
1402367dd:	41 0f 93 c3          	setae  %r11b
1402367e1:	41 ff c2             	inc    %r10d
1402367e4:	49 f7 e0             	mul    %r8
1402367e7:	49 8b c1             	mov    %r9,%rax
1402367ea:	4c 8b c2             	mov    %rdx,%r8
1402367ed:	48 f7 e1             	mul    %rcx
1402367f0:	49 c1 e8 03          	shr    $0x3,%r8
1402367f4:	48 8b ca             	mov    %rdx,%rcx
1402367f7:	48 c1 e9 03          	shr    $0x3,%rcx
1402367fb:	4c 3b c1             	cmp    %rcx,%r8
1402367fe:	77 c0                	ja     0x1402367c0
140236800:	48 3b df             	cmp    %rdi,%rbx
140236803:	0f 84 9c 02 00 00    	je     0x140236aa5
140236809:	45 84 db             	test   %r11b,%r11b
14023680c:	0f 84 98 02 00 00    	je     0x140236aaa
140236812:	e9 8e 02 00 00       	jmp    0x140236aa5
140236817:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
14023681c:	e8 1f 12 00 00       	call   0x140237a40
140236821:	0f b6 c0             	movzbl %al,%eax
140236824:	4c 2b f0             	sub    %rax,%r14
140236827:	e9 df fe ff ff       	jmp    0x14023670b
14023682c:	41 8b c1             	mov    %r9d,%eax
14023682f:	4d 8d 42 02          	lea    0x2(%r10),%r8
140236833:	f7 d8                	neg    %eax
140236835:	8b ce                	mov    %esi,%ecx
140236837:	83 f8 01             	cmp    $0x1,%eax
14023683a:	0f 9f c1             	setg   %cl
14023683d:	45 69 d9 05 d1 f4 ff 	imul   $0xfff4d105,%r9d,%r11d
140236844:	41 c1 eb 14          	shr    $0x14,%r11d
140236848:	44 2b d9             	sub    %ecx,%r11d
14023684b:	41 8b db             	mov    %r11d,%ebx
14023684e:	47 8d 2c 0b          	lea    (%r11,%r9,1),%r13d
140236852:	41 8b cd             	mov    %r13d,%ecx
140236855:	f7 d9                	neg    %ecx
140236857:	69 c1 4f 93 12 00    	imul   $0x12934f,%ecx,%eax
14023685d:	4c 63 c9             	movslq %ecx,%r9
140236860:	49 c1 e1 04          	shl    $0x4,%r9
140236864:	c1 e8 13             	shr    $0x13,%eax
140236867:	2b d8                	sub    %eax,%ebx
140236869:	48 8d 05 30 d4 f8 00 	lea    0xf8d430(%rip),%rax        # 0x1411c3ca0
140236870:	4c 03 c8             	add    %rax,%r9
140236873:	83 c3 78             	add    $0x78,%ebx
140236876:	49 8b 41 08          	mov    0x8(%r9),%rax
14023687a:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
14023687f:	49 f7 e0             	mul    %r8
140236882:	4c 8b f0             	mov    %rax,%r14
140236885:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
14023688a:	49 8b 01             	mov    (%r9),%rax
14023688d:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140236892:	49 f7 e0             	mul    %r8
140236895:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
14023689a:	4c 03 f2             	add    %rdx,%r14
14023689d:	4c 3b f2             	cmp    %rdx,%r14
1402368a0:	73 03                	jae    0x1402368a5
1402368a2:	48 ff c0             	inc    %rax