140021f2c:	4c 8d 1d cd e0 fd ff 	lea    -0x21f33(%rip),%r11        # 0x140000000
140021f33:	8b 54 24 2c          	mov    0x2c(%rsp),%edx
140021f37:	b8 09 00 00 00       	mov    $0x9,%eax
140021f3c:	48 29 44 24 30       	sub    %rax,0x30(%rsp)
140021f41:	03 cb                	add    %ebx,%ecx
140021f43:	44 8b 54 24 24       	mov    0x24(%rsp),%r10d
140021f48:	48 03 f8             	add    %rax,%rdi
140021f4b:	44 03 fb             	add    %ebx,%r15d
140021f4e:	89 8c 24 98 00 00 00 	mov    %ecx,0x98(%rsp)
140021f55:	44 3b 7c 24 20       	cmp    0x20(%rsp),%r15d
140021f5a:	0f 82 6a ff ff ff    	jb     0x140021eca
140021f60:	e9 cd 00 00 00       	jmp    0x140022032
140021f65:	33 c9                	xor    %ecx,%ecx
140021f67:	43 8d 04 ff          	lea    (%r15,%r15,8),%eax
140021f6b:	44 8b ce             	mov    %esi,%r9d
140021f6e:	44 2b c8             	sub    %eax,%r9d
140021f71:	8d 41 09             	lea    0x9(%rcx),%eax
140021f74:	41 2b c1             	sub    %r9d,%eax
140021f77:	74 54                	je     0x140021fcd
140021f79:	44 8b c0             	mov    %eax,%r8d
140021f7c:	41 8b ca             	mov    %r10d,%ecx
140021f7f:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
140021f84:	41 f7 e2             	mul    %r10d
140021f87:	c1 ea 03             	shr    $0x3,%edx
140021f8a:	44 8b d2             	mov    %edx,%r10d
140021f8d:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
140021f90:	03 c0                	add    %eax,%eax
140021f92:	2b c8                	sub    %eax,%ecx
140021f94:	4c 2b c3             	sub    %rbx,%r8
140021f97:	75 e3                	jne    0x140021f7c
140021f99:	83 f9 05             	cmp    $0x5,%ecx
140021f9c:	75 2f                	jne    0x140021fcd
140021f9e:	41 f7 d6             	not    %r14d
140021fa1:	44 2b f6             	sub    %esi,%r14d
140021fa4:	45 85 f6             	test   %r14d,%r14d
140021fa7:	7e 1d                	jle    0x140021fc6
140021fa9:	41 83 fe 3c          	cmp    $0x3c,%r14d
140021fad:	7d 13                	jge    0x140021fc2
140021faf:	41 8b ce             	mov    %r14d,%ecx
140021fb2:	48 8b c3             	mov    %rbx,%rax
140021fb5:	48 d3 e0             	shl    %cl,%rax
140021fb8:	48 2b c3             	sub    %rbx,%rax
140021fbb:	48 85 44 24 38       	test   %rax,0x38(%rsp)
140021fc0:	74 04                	je     0x140021fc6
140021fc2:	8b f3                	mov    %ebx,%esi
140021fc4:	eb 10                	jmp    0x140021fd6
140021fc6:	be 02 00 00 00       	mov    $0x2,%esi
140021fcb:	eb 09                	jmp    0x140021fd6
140021fcd:	33 f6                	xor    %esi,%esi
140021fcf:	83 f9 05             	cmp    $0x5,%ecx
140021fd2:	40 0f 97 c6          	seta   %sil
140021fd6:	45 85 c9             	test   %r9d,%r9d
140021fd9:	74 5e                	je     0x140022039
140021fdb:	48 8b c5             	mov    %rbp,%rax
140021fde:	45 8b f1             	mov    %r9d,%r14d
140021fe1:	48 2b c7             	sub    %rdi,%rax
140021fe4:	49 3b c6             	cmp    %r14,%rax
140021fe7:	0f 8c cf 00 00 00    	jl     0x1400220bc
140021fed:	0f ae e8             	lfence
140021ff0:	4c 8b c7             	mov    %rdi,%r8
140021ff3:	41 8b d2             	mov    %r10d,%edx
140021ff6:	41 8b c9             	mov    %r9d,%ecx
140021ff9:	e8 06 02 00 00       	call   0x140022204
140021ffe:	49 03 fe             	add    %r14,%rdi
140022001:	eb 36                	jmp    0x140022039
140022003:	43 8d 04 ff          	lea    (%r15,%r15,8),%eax
140022007:	2b f0                	sub    %eax,%esi
140022009:	48 8b c5             	mov    %rbp,%rax
14002200c:	48 2b c7             	sub    %rdi,%rax
14002200f:	44 8b f6             	mov    %esi,%r14d
140022012:	49 3b c6             	cmp    %r14,%rax
140022015:	0f 8c a1 00 00 00    	jl     0x1400220bc
14002201b:	85 f6                	test   %esi,%esi
14002201d:	74 10                	je     0x14002202f
14002201f:	45 8b c6             	mov    %r14d,%r8d
140022022:	ba 30 00 00 00       	mov    $0x30,%edx
140022027:	48 8b cf             	mov    %rdi,%rcx
14002202a:	e8 d3 39 1e 00       	call   0x140205a02
14002202f:	49 03 fe             	add    %r14,%rdi
140022032:	8b b4 24 88 00 00 00 	mov    0x88(%rsp),%esi
140022039:	85 f6                	test   %esi,%esi
14002203b:	0f 84 26 fb ff ff    	je     0x140021b67
140022041:	4c 8b 44 24 40       	mov    0x40(%rsp),%r8
140022046:	48 8b c7             	mov    %rdi,%rax
140022049:	48 8b d5             	mov    %rbp,%rdx
14002204c:	49 3b f8             	cmp    %r8,%rdi
14002204f:	74 1e                	je     0x14002206f
140022051:	48 2b c3             	sub    %rbx,%rax
140022054:	8a 08                	mov    (%rax),%cl
140022056:	80 f9 2e             	cmp    $0x2e,%cl
140022059:	75 05                	jne    0x140022060
14002205b:	48 8b d0             	mov    %rax,%rdx
14002205e:	eb 0a                	jmp    0x14002206a
140022060:	80 f9 39             	cmp    $0x39,%cl
140022063:	75 24                	jne    0x140022089
140022065:	c6 00 30             	movb   $0x30,(%rax)
140022068:	8b f3                	mov    %ebx,%esi
14002206a:	49 3b c0             	cmp    %r8,%rax
14002206d:	75 e2                	jne    0x140022051
14002206f:	c6 00 31             	movb   $0x31,(%rax)
140022072:	48 3b d5             	cmp    %rbp,%rdx
140022075:	74 05                	je     0x14002207c
140022077:	66 c7 02 30 2e       	movw   $0x2e30,(%rdx)
14002207c:	48 3b fd             	cmp    %rbp,%rdi
14002207f:	74 3b                	je     0x1400220bc
140022081:	c6 07 30             	movb   $0x30,(%rdi)
140022084:	e9 db fa ff ff       	jmp    0x140021b64
140022089:	3b f3                	cmp    %ebx,%esi
14002208b:	74 08                	je     0x140022095
14002208d:	84 cb                	test   %cl,%bl
14002208f:	0f 84 d2 fa ff ff    	je     0x140021b67
140022095:	02 cb                	add    %bl,%cl
140022097:	88 08                	mov    %cl,(%rax)
140022099:	e9 c9 fa ff ff       	jmp    0x140021b67
14002209e:	48 8b c5             	mov    %rbp,%rax
1400220a1:	48 8b de             	mov    %rsi,%rbx
1400220a4:	48 2b c7             	sub    %rdi,%rax
1400220a7:	48 3b c6             	cmp    %rsi,%rax
1400220aa:	7c 10                	jl     0x1400220bc
1400220ac:	85 f6                	test   %esi,%esi
1400220ae:	0f 84 b0 fa ff ff    	je     0x140021b64
1400220b4:	4c 8b c3             	mov    %rbx,%r8
1400220b7:	e9 9b fa ff ff       	jmp    0x140021b57
1400220bc:	49 89 2c 24          	mov    %rbp,(%r12)
1400220c0:	41 c7 44 24 08 84 00 	movl   $0x84,0x8(%r12)
1400220c7:	00 00
1400220c9:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
1400220ce:	49 8b c4             	mov    %r12,%rax
1400220d1:	49 8b 5b 30          	mov    0x30(%r11),%rbx
1400220d5:	49 8b 6b 40          	mov    0x40(%r11),%rbp
1400220d9:	49 8b e3             	mov    %r11,%rsp
1400220dc:	41 5f                	pop    %r15
1400220de:	41 5e                	pop    %r14
1400220e0:	41 5c                	pop    %r12
1400220e2:	5f                   	pop    %rdi
1400220e3:	5e                   	pop    %rsi
1400220e4:	c3                   	ret
1400220e5:	90                   	nop
1400220e6:	90                   	nop
1400220e7:	90                   	nop
1400220e8:	40 53                	rex push %rbx
1400220ea:	48 83 ec 40          	sub    $0x40,%rsp
1400220ee:	8b 44 24 70          	mov    0x70(%rsp),%eax
1400220f2:	48 8b d9             	mov    %rcx,%rbx
1400220f5:	85 c0                	test   %eax,%eax
1400220f7:	79 07                	jns    0x140022100
1400220f9:	b8 06 00 00 00       	mov    $0x6,%eax
1400220fe:	eb 07                	jmp    0x140022107
140022100:	3d 00 ca 9a 3b       	cmp    $0x3b9aca00,%eax
140022105:	7d 25                	jge    0x14002212c
140022107:	f3 0f 5a db          	cvtss2sd %xmm3,%xmm3
14002210b:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140022110:	89 44 24 20          	mov    %eax,0x20(%rsp)
140022114:	e8 cb f9 ff ff       	call   0x140021ae4
140022119:	48 8b 08             	mov    (%rax),%rcx
14002211c:	48 89 0b             	mov    %rcx,(%rbx)
14002211f:	8b 40 08             	mov    0x8(%rax),%eax
140022122:	89 43 08             	mov    %eax,0x8(%rbx)
140022125:	33 c0                	xor    %eax,%eax
140022127:	89 43 0c             	mov    %eax,0xc(%rbx)
14002212a:	eb 0b                	jmp    0x140022137
14002212c:	4c 89 01             	mov    %r8,(%rcx)
14002212f:	48 c7 41 08 84 00 00 	movq   $0x84,0x8(%rcx)
140022136:	00
140022137:	48 8b c3             	mov    %rbx,%rax
14002213a:	48 83 c4 40          	add    $0x40,%rsp
14002213e:	5b                   	pop    %rbx
14002213f:	c3                   	ret
140022140:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140022145:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14002214a:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
14002214f:	48 8b 02             	mov    (%rdx),%rax
140022152:	4c 8b da             	mov    %rdx,%r11
140022155:	48 f7 e1             	mul    %rcx
140022158:	49 8b 43 08          	mov    0x8(%r11),%rax
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