14002215c:	41 8b d8             	mov    %r8d,%ebx
14002215f:	4c 8b d2             	mov    %rdx,%r10
140022162:	48 be 97 a5 b4 36 41 	movabs $0x89705f4136b4a597,%rsi
140022169:	5f 70 89
14002216c:	48 f7 e1             	mul    %rcx
14002216f:	4c 8b c0             	mov    %rax,%r8
140022172:	4c 8b ca             	mov    %rdx,%r9
140022175:	49 8b 43 10          	mov    0x10(%r11),%rax
140022179:	48 f7 e1             	mul    %rcx
14002217c:	4b 8d 0c 10          	lea    (%r8,%r10,1),%rcx
140022180:	48 8b f8             	mov    %rax,%rdi
140022183:	49 3b c8             	cmp    %r8,%rcx
140022186:	8d 4b 80             	lea    -0x80(%rbx),%ecx
140022189:	49 13 f9             	adc    %r9,%rdi
14002218c:	49 b9 31 30 95 f8 88 	movabs $0x31680a88f8953031,%r9
140022193:	0a 68 31
140022196:	48 3b f8             	cmp    %rax,%rdi
140022199:	49 8b c1             	mov    %r9,%rax
14002219c:	48 83 d2 00          	adc    $0x0,%rdx
1400221a0:	48 0f ad d7          	shrd   %cl,%rdx,%rdi
1400221a4:	4c 8b c2             	mov    %rdx,%r8
1400221a7:	48 f7 e7             	mul    %rdi
1400221aa:	49 d3 e8             	shr    %cl,%r8
1400221ad:	48 8b c6             	mov    %rsi,%rax
1400221b0:	48 8b ca             	mov    %rdx,%rcx
1400221b3:	48 f7 e7             	mul    %rdi
1400221b6:	4c 8b d0             	mov    %rax,%r10
1400221b9:	48 8b da             	mov    %rdx,%rbx
1400221bc:	49 8b c1             	mov    %r9,%rax
1400221bf:	49 f7 e0             	mul    %r8
1400221c2:	4c 8b c8             	mov    %rax,%r9
1400221c5:	4c 8b da             	mov    %rdx,%r11
1400221c8:	48 8b c6             	mov    %rsi,%rax
1400221cb:	48 8b 74 24 18       	mov    0x18(%rsp),%rsi
1400221d0:	49 f7 e0             	mul    %r8
1400221d3:	4d 8d 04 09          	lea    (%r9,%rcx,1),%r8
1400221d7:	4b 8d 0c 10          	lea    (%r8,%r10,1),%rcx
1400221db:	49 3b ca             	cmp    %r10,%rcx
1400221de:	48 83 d0 00          	adc    $0x0,%rax
1400221e2:	4d 3b c1             	cmp    %r9,%r8
1400221e5:	49 13 c3             	adc    %r11,%rax
1400221e8:	48 03 c3             	add    %rbx,%rax
1400221eb:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
1400221f0:	48 c1 e8 1d          	shr    $0x1d,%rax
1400221f4:	69 c8 00 ca 9a 3b    	imul   $0x3b9aca00,%eax,%ecx
1400221fa:	2b f9                	sub    %ecx,%edi
1400221fc:	8b c7                	mov    %edi,%eax
1400221fe:	48 8b 7c 24 20       	mov    0x20(%rsp),%rdi
140022203:	c3                   	ret
140022204:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140022209:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14002220e:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
140022213:	44 8b c9             	mov    %ecx,%r9d
140022216:	45 33 db             	xor    %r11d,%r11d
140022219:	44 8b d2             	mov    %edx,%r10d
14002221c:	41 8d 59 ff          	lea    -0x1(%r9),%ebx
140022220:	85 db                	test   %ebx,%ebx
140022222:	74 3e                	je     0x140022262
140022224:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140022229:	48 8d 35 c0 db 22 00 	lea    0x22dbc0(%rip),%rsi        # 0x14024fdf0
140022230:	41 f7 e2             	mul    %r10d
140022233:	49 8b c8             	mov    %r8,%rcx
140022236:	c1 ea 05             	shr    $0x5,%edx
140022239:	6b c2 64             	imul   $0x64,%edx,%eax
14002223c:	44 2b d0             	sub    %eax,%r10d
14002223f:	43 8d 04 12          	lea    (%r10,%r10,1),%eax
140022243:	44 8b d2             	mov    %edx,%r10d
140022246:	48 8d 10             	lea    (%rax),%rdx
140022249:	41 8b c3             	mov    %r11d,%eax
14002224c:	48 2b c8             	sub    %rax,%rcx
14002224f:	41 83 c3 02          	add    $0x2,%r11d
140022253:	0f b7 04 32          	movzwl (%rdx,%rsi,1),%eax
140022257:	66 42 89 44 09 fe    	mov    %ax,-0x2(%rcx,%r9,1)
14002225d:	44 3b db             	cmp    %ebx,%r11d
140022260:	72 c2                	jb     0x140022224
140022262:	45 3b d9             	cmp    %r9d,%r11d
140022265:	73 25                	jae    0x14002228c
140022267:	45 2b cb             	sub    %r11d,%r9d
14002226a:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
14002226f:	41 f7 e2             	mul    %r10d
140022272:	c1 ea 03             	shr    $0x3,%edx
140022275:	8a c2                	mov    %dl,%al
140022277:	c0 e0 02             	shl    $0x2,%al
14002227a:	02 d0                	add    %al,%dl
14002227c:	02 d2                	add    %dl,%dl
14002227e:	44 2a d2             	sub    %dl,%r10b
140022281:	41 80 c2 30          	add    $0x30,%r10b
140022285:	41 ff c9             	dec    %r9d
140022288:	47 88 14 01          	mov    %r10b,(%r9,%r8,1)
14002228c:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
140022291:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
140022296:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
14002229b:	c3                   	ret
14002229c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400222a1:	48 89 7c 24 10       	mov    %rdi,0x10(%rsp)
1400222a6:	33 db                	xor    %ebx,%ebx
1400222a8:	44 8b d9             	mov    %ecx,%r11d
1400222ab:	48 8d 3d 3e db 22 00 	lea    0x22db3e(%rip),%rdi        # 0x14024fdf0
1400222b2:	4d 8b d0             	mov    %r8,%r10
1400222b5:	44 8b ca             	mov    %edx,%r9d
1400222b8:	81 fa 10 27 00 00    	cmp    $0x2710,%edx
1400222be:	72 56                	jb     0x140022316
1400222c0:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
1400222c5:	4d 8b c2             	mov    %r10,%r8
1400222c8:	41 f7 e1             	mul    %r9d
1400222cb:	c1 ea 0d             	shr    $0xd,%edx
1400222ce:	69 c2 10 27 00 00    	imul   $0x2710,%edx,%eax
1400222d4:	44 2b c8             	sub    %eax,%r9d
1400222d7:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
1400222dc:	41 8b c9             	mov    %r9d,%ecx
1400222df:	44 8b ca             	mov    %edx,%r9d
1400222e2:	f7 e1                	mul    %ecx
1400222e4:	8b c3                	mov    %ebx,%eax
1400222e6:	83 c3 04             	add    $0x4,%ebx
1400222e9:	4c 2b c0             	sub    %rax,%r8
1400222ec:	c1 ea 05             	shr    $0x5,%edx
1400222ef:	6b c2 64             	imul   $0x64,%edx,%eax
1400222f2:	2b c8                	sub    %eax,%ecx
1400222f4:	03 c9                	add    %ecx,%ecx
1400222f6:	0f b7 04 39          	movzwl (%rcx,%rdi,1),%eax
1400222fa:	8d 0c 12             	lea    (%rdx,%rdx,1),%ecx
1400222fd:	66 43 89 44 18 ff    	mov    %ax,-0x1(%r8,%r11,1)
140022303:	0f b7 0c 39          	movzwl (%rcx,%rdi,1),%ecx
140022307:	66 43 89 4c 18 fd    	mov    %cx,-0x3(%r8,%r11,1)
14002230d:	41 81 f9 10 27 00 00 	cmp    $0x2710,%r9d
140022314:	73 aa                	jae    0x1400222c0
140022316:	41 83 f9 64          	cmp    $0x64,%r9d
14002231a:	72 27                	jb     0x140022343
14002231c:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140022321:	41 f7 e1             	mul    %r9d
140022324:	c1 ea 05             	shr    $0x5,%edx
140022327:	6b c2 64             	imul   $0x64,%edx,%eax
14002232a:	44 2b c8             	sub    %eax,%r9d
14002232d:	8b c3                	mov    %ebx,%eax
14002232f:	4c 2b d8             	sub    %rax,%r11
140022332:	43 8d 0c 09          	lea    (%r9,%r9,1),%ecx
140022336:	44 8b ca             	mov    %edx,%r9d
140022339:	0f b7 04 39          	movzwl (%rcx,%rdi,1),%eax
14002233d:	66 43 89 44 13 ff    	mov    %ax,-0x1(%r11,%r10,1)
140022343:	41 83 f9 0a          	cmp    $0xa,%r9d
140022347:	72 19                	jb     0x140022362
140022349:	43 8d 0c 09          	lea    (%r9,%r9,1),%ecx
14002234d:	8d 41 01             	lea    0x1(%rcx),%eax
140022350:	8a 04 38             	mov    (%rax,%rdi,1),%al
140022353:	41 88 42 02          	mov    %al,0x2(%r10)
140022357:	41 c6 42 01 2e       	movb   $0x2e,0x1(%r10)
14002235c:	44 8a 0c 39          	mov    (%rcx,%rdi,1),%r9b
140022360:	eb 09                	jmp    0x14002236b
140022362:	41 c6 42 01 2e       	movb   $0x2e,0x1(%r10)
140022367:	41 80 c1 30          	add    $0x30,%r9b
14002236b:	45 88 0a             	mov    %r9b,(%r10)
14002236e:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
140022373:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
140022378:	c3                   	ret
140022379:	90                   	nop
14002237a:	90                   	nop
14002237b:	90                   	nop
14002237c:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140022381:	55                   	push   %rbp
140022382:	56                   	push   %rsi
140022383:	57                   	push   %rdi
140022384:	41 54                	push   %r12
140022386:	41 55                	push   %r13
140022388:	41 56                	push   %r14
14002238a:	41 57                	push   %r15
14002238c:	48 83 ec 50          	sub    $0x50,%rsp
140022390:	44 8b a4 24 b0 00 00 	mov    0xb0(%rsp),%r12d
140022397:	00
140022398:	48 8b f9             	mov    %rcx,%rdi
14002239b:	66 48 0f 7e d9       	movq   %xmm3,%rcx
1400223a0:	44 89 64 24 28       	mov    %r12d,0x28(%rsp)
1400223a5:	48 89 54 24 48       	mov    %rdx,0x48(%rsp)
1400223aa:	49 8b e8             	mov    %r8,%rbp
1400223ad:	48 8b f2             	mov    %rdx,%rsi
1400223b0:	48 85 c9             	test   %rcx,%rcx
1400223b3:	75 68                	jne    0x14002241d
1400223b5:	41 8b c4             	mov    %r12d,%eax
1400223b8:	f7 d8                	neg    %eax
1400223ba:	49 8b c0             	mov    %r8,%rax
1400223bd:	1b d2                	sbb    %edx,%edx
1400223bf:	48 2b c6             	sub    %rsi,%rax
1400223c2:	f7 da                	neg    %edx
1400223c4:	83 c2 05             	add    $0x5,%edx
1400223c7:	41 03 d4             	add    %r12d,%edx
1400223ca:	48 63 ca             	movslq %edx,%rcx
1400223cd:	48 3b c1             	cmp    %rcx,%rax
1400223d0:	7d 10                	jge    0x1400223e2
1400223d2:	48 89 2f             	mov    %rbp,(%rdi)
1400223d5:	48 c7 47 08 84 00 00 	movq   $0x84,0x8(%rdi)
1400223dc:	00
1400223dd:	e9 77 07 00 00       	jmp    0x140022b59
1400223e2:	41 be 01 00 00 00    	mov    $0x1,%r14d
1400223e8:	c6 06 30             	movb   $0x30,(%rsi)
1400223eb:	49 03 f6             	add    %r14,%rsi
1400223ee:	45 85 e4             	test   %r12d,%r12d
1400223f1:	74 18                	je     0x14002240b
1400223f3:	c6 06 2e             	movb   $0x2e,(%rsi)
1400223f6:	41 8d 56 2f          	lea    0x2f(%r14),%edx
1400223fa:	49 03 f6             	add    %r14,%rsi
1400223fd:	4d 8b c4             	mov    %r12,%r8
140022400:	48 8b ce             	mov    %rsi,%rcx
140022403:	e8 fa 35 1e 00       	call   0x140205a02
140022408:	49 03 f4             	add    %r12,%rsi
14002240b:	48 8d 46 04          	lea    0x4(%rsi),%rax
14002240f:	c7 06 65 2b 30 30    	movl   $0x30302b65,(%rsi)
140022415:	48 89 07             	mov    %rax,(%rdi)
140022418:	e9 33 07 00 00       	jmp    0x140022b50
14002241d:	4c 8b d1             	mov    %rcx,%r10
140022420:	48 b8 ff ff ff ff ff 	movabs $0xfffffffffffff,%rax
140022427:	ff 0f 00
14002242a:	4c 23 d0             	and    %rax,%r10
14002242d:	48 c1 e9 34          	shr    $0x34,%rcx
140022431:	41 bb ce fb ff ff    	mov    $0xfffffbce,%r11d
140022437:	85 c9                	test   %ecx,%ecx
140022439:	74 07                	je     0x140022442
14002243b:	44 8d 99 cd fb ff ff 	lea    -0x433(%rcx),%r11d
140022442:	49 8b c2             	mov    %r10,%rax
140022445:	44 89 9c 24 90 00 00 	mov    %r11d,0x90(%rsp)
14002244c:	00
14002244d:	48 ba 00 00 00 00 00 	movabs $0x10000000000000,%rdx
140022454:	00 10 00
140022457:	4c 8d 2d a2 db fd ff 	lea    -0x2245e(%rip),%r13        # 0x140000000
14002245e:	48 0b c2             	or     %rdx,%rax
140022461:	41 be 01 00 00 00    	mov    $0x1,%r14d
140022467:	85 c9                	test   %ecx,%ecx
140022469:	4c 0f 45 d0          	cmovne %rax,%r10
14002246d:	45 33 c9             	xor    %r9d,%r9d
140022470:	33 c0                	xor    %eax,%eax
140022472:	4c 89 54 24 38       	mov    %r10,0x38(%rsp)
140022477:	45 03 e6             	add    %r14d,%r12d
14002247a:	44 89 8c 24 98 00 00 	mov    %r9d,0x98(%rsp)
140022481:	00
140022482:	45 33 ff             	xor    %r15d,%r15d
140022485:	89 84 24 a8 00 00 00 	mov    %eax,0xa8(%rsp)
14002248c:	33 db                	xor    %ebx,%ebx
14002248e:	41 83 fb cc          	cmp    $0xffffffcc,%r11d
140022492:	0f 8c 2a 02 00 00    	jl     0x1400226c2
140022498:	45 85 db             	test   %r11d,%r11d
14002249b:	79 05                	jns    0x1400224a2
14002249d:	45 33 c0             	xor    %r8d,%r8d
1400224a0:	eb 08                	jmp    0x1400224aa
1400224a2:	45 8d 43 0f          	lea    0xf(%r11),%r8d
1400224a6:	41 c1 e8 04          	shr    $0x4,%r8d
1400224aa:	41 69 c8 10 44 13 00 	imul   $0x134410,%r8d,%ecx
1400224b1:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
1400224b6:	45 8b c8             	mov    %r8d,%r9d
1400224b9:	41 c1 e1 04          	shl    $0x4,%r9d
1400224bd:	41 83 c1 78          	add    $0x78,%r9d
1400224c1:	c1 e9 12             	shr    $0x12,%ecx
1400224c4:	83 c1 19             	add    $0x19,%ecx
1400224c7:	f7 e1                	mul    %ecx
1400224c9:	44 8b ea             	mov    %edx,%r13d
1400224cc:	41 d1 ed             	shr    $1,%r13d
1400224cf:	45 2b ee             	sub    %r14d,%r13d
1400224d2:	44 89 6c 24 20       	mov    %r13d,0x20(%rsp)
1400224d7:	0f 88 db 01 00 00    	js     0x1400226b8
1400224dd:	0f ae e8             	lfence
1400224e0:	45 2b cb             	sub    %r11d,%r9d
1400224e3:	42 8d 04 ed 00 00 00 	lea    0x0(,%r13,8),%eax
1400224ea:	00
1400224eb:	41 03 c5             	add    %r13d,%eax
1400224ee:	48 8d 15 0b db fd ff 	lea    -0x224f5(%rip),%rdx        # 0x140000000
1400224f5:	89 44 24 24          	mov    %eax,0x24(%rsp)
1400224f9:	42 0f b7 84 42 c0 f9 	movzwl 0x24f9c0(%rdx,%r8,2),%eax
140022500:	24 00
140022502:	45 8d 59 08          	lea    0x8(%r9),%r11d
140022506:	4d 8b ca             	mov    %r10,%r9
140022509:	49 c1 e1 08          	shl    $0x8,%r9
14002250d:	41 03 c5             	add    %r13d,%eax
140022510:	44 89 5c 24 30       	mov    %r11d,0x30(%rsp)
140022515:	89 44 24 2c          	mov    %eax,0x2c(%rsp)
140022519:	4c 89 4c 24 40       	mov    %r9,0x40(%rsp)
14002251e:	48 98                	cltq
140022520:	45 8b c3             	mov    %r11d,%r8d
140022523:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
140022527:	48 8d 14 ca          	lea    (%rdx,%rcx,8),%rdx
14002252b:	49 8b c9             	mov    %r9,%rcx
14002252e:	48 8d 92 30 bc 21 00 	lea    0x21bc30(%rdx),%rdx
140022535:	e8 06 fc ff ff       	call   0x140022140
14002253a:	44 8b 8c 24 98 00 00 	mov    0x98(%rsp),%r9d
140022541:	00
140022542:	44 8b f8             	mov    %eax,%r15d
140022545:	45 85 c9             	test   %r9d,%r9d
140022548:	74 3c                	je     0x140022586
14002254a:	41 8d 59 09          	lea    0x9(%r9),%ebx
14002254e:	41 3b dc             	cmp    %r12d,%ebx
140022551:	0f 87 4d 01 00 00    	ja     0x1400226a4
140022557:	48 8b cd             	mov    %rbp,%rcx
14002255a:	48 2b ce             	sub    %rsi,%rcx
14002255d:	48 83 f9 09          	cmp    $0x9,%rcx
140022561:	0f 8c 6b fe ff ff    	jl     0x1400223d2
140022567:	48 8b d6             	mov    %rsi,%rdx
14002256a:	8b c8                	mov    %eax,%ecx
14002256c:	e8 6f 15 00 00       	call   0x140023ae0
140022571:	48 83 c6 09          	add    $0x9,%rsi
140022575:	89 9c 24 98 00 00 00 	mov    %ebx,0x98(%rsp)
14002257c:	44 8b cb             	mov    %ebx,%r9d
14002257f:	33 db                	xor    %ebx,%ebx
140022581:	e9 eb 00 00 00       	jmp    0x140022671
140022586:	33 db                	xor    %ebx,%ebx
140022588:	45 85 ff             	test   %r15d,%r15d
14002258b:	0f 84 e0 00 00 00    	je     0x140022671
140022591:	41 81 ff 00 e1 f5 05 	cmp    $0x5f5e100,%r15d
140022598:	72 07                	jb     0x1400225a1
14002259a:	bb 09 00 00 00       	mov    $0x9,%ebx
14002259f:	eb 66                	jmp    0x140022607
1400225a1:	41 81 ff 80 96 98 00 	cmp    $0x989680,%r15d
1400225a8:	72 07                	jb     0x1400225b1
1400225aa:	bb 08 00 00 00       	mov    $0x8,%ebx
1400225af:	eb 56                	jmp    0x140022607
1400225b1:	41 81 ff 40 42 0f 00 	cmp    $0xf4240,%r15d
1400225b8:	72 07                	jb     0x1400225c1
1400225ba:	bb 07 00 00 00       	mov    $0x7,%ebx
1400225bf:	eb 46                	jmp    0x140022607
1400225c1:	41 81 ff a0 86 01 00 	cmp    $0x186a0,%r15d
1400225c8:	72 07                	jb     0x1400225d1
1400225ca:	bb 06 00 00 00       	mov    $0x6,%ebx
1400225cf:	eb 36                	jmp    0x140022607
1400225d1:	41 81 ff 10 27 00 00 	cmp    $0x2710,%r15d
1400225d8:	72 07                	jb     0x1400225e1
1400225da:	bb 05 00 00 00       	mov    $0x5,%ebx
1400225df:	eb 26                	jmp    0x140022607
1400225e1:	41 81 ff e8 03 00 00 	cmp    $0x3e8,%r15d
1400225e8:	72 07                	jb     0x1400225f1
1400225ea:	bb 04 00 00 00       	mov    $0x4,%ebx
1400225ef:	eb 16                	jmp    0x140022607
1400225f1:	41 83 ff 64          	cmp    $0x64,%r15d
1400225f5:	72 07                	jb     0x1400225fe
1400225f7:	bb 03 00 00 00       	mov    $0x3,%ebx
1400225fc:	eb 09                	jmp    0x140022607
1400225fe:	41 83 ff 0a          	cmp    $0xa,%r15d
140022602:	1b db                	sbb    %ebx,%ebx
140022604:	83 c3 02             	add    $0x2,%ebx
140022607:	8b 44 24 24          	mov    0x24(%rsp),%eax
14002260b:	ff c8                	dec    %eax
14002260d:	03 c3                	add    %ebx,%eax
14002260f:	89 84 24 a8 00 00 00 	mov    %eax,0xa8(%rsp)
140022616:	41 3b dc             	cmp    %r12d,%ebx
140022619:	0f 87 8a 00 00 00    	ja     0x1400226a9
14002261f:	83 7c 24 28 00       	cmpl   $0x0,0x28(%rsp)
140022624:	76 25                	jbe    0x14002264b
140022626:	48 8b c5             	mov    %rbp,%rax
140022629:	44 8d 6b 01          	lea    0x1(%rbx),%r13d
14002262d:	48 2b c6             	sub    %rsi,%rax
140022630:	49 3b c5             	cmp    %r13,%rax
140022633:	0f 8c 99 fd ff ff    	jl     0x1400223d2
140022639:	0f ae e8             	lfence
14002263c:	4c 8b c6             	mov    %rsi,%r8
14002263f:	41 8b d7             	mov    %r15d,%edx
140022642:	8b cb                	mov    %ebx,%ecx