140023a87:	41 f7 e1             	mul    %r9d
140023a8a:	c1 ea 05             	shr    $0x5,%edx
140023a8d:	6b c2 64             	imul   $0x64,%edx,%eax
140023a90:	44 2b c8             	sub    %eax,%r9d
140023a93:	43 8d 04 09          	lea    (%r9,%r9,1),%eax
140023a97:	44 8b ca             	mov    %edx,%r9d
140023a9a:	48 8d 10             	lea    (%rax),%rdx
140023a9d:	41 8b c3             	mov    %r11d,%eax
140023aa0:	48 2b c8             	sub    %rax,%rcx
140023aa3:	0f b7 04 3a          	movzwl (%rdx,%rdi,1),%eax
140023aa7:	41 83 c3 02          	add    $0x2,%r11d
140023aab:	66 89 44 19 fe       	mov    %ax,-0x2(%rcx,%rbx,1)
140023ab0:	41 83 f9 0a          	cmp    $0xa,%r9d
140023ab4:	72 16                	jb     0x140023acc
140023ab6:	41 8b c3             	mov    %r11d,%eax
140023ab9:	43 8d 0c 09          	lea    (%r9,%r9,1),%ecx
140023abd:	4c 2b d0             	sub    %rax,%r10
140023ac0:	0f b7 04 39          	movzwl (%rcx,%rdi,1),%eax
140023ac4:	66 41 89 44 1a fe    	mov    %ax,-0x2(%r10,%rbx,1)
140023aca:	eb 07                	jmp    0x140023ad3
140023acc:	41 80 c1 30          	add    $0x30,%r9b
140023ad0:	44 88 0b             	mov    %r9b,(%rbx)
140023ad3:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
140023ad8:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
140023add:	c3                   	ret
140023ade:	90                   	nop
140023adf:	90                   	nop
140023ae0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140023ae5:	4c 8b ca             	mov    %rdx,%r9
140023ae8:	44 8b c1             	mov    %ecx,%r8d
140023aeb:	85 c9                	test   %ecx,%ecx
140023aed:	75 12                	jne    0x140023b01
140023aef:	48 b8 30 30 30 30 30 	movabs $0x3030303030303030,%rax
140023af6:	30 30 30
140023af9:	48 89 02             	mov    %rax,(%rdx)
140023afc:	88 42 08             	mov    %al,0x8(%rdx)
140023aff:	eb 61                	jmp    0x140023b62
140023b01:	4c 8d 52 05          	lea    0x5(%rdx),%r10
140023b05:	41 bb 02 00 00 00    	mov    $0x2,%r11d
140023b0b:	48 8d 1d de c2 22 00 	lea    0x22c2de(%rip),%rbx        # 0x14024fdf0
140023b12:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
140023b17:	41 f7 e0             	mul    %r8d
140023b1a:	c1 ea 0d             	shr    $0xd,%edx
140023b1d:	69 c2 10 27 00 00    	imul   $0x2710,%edx,%eax
140023b23:	44 2b c0             	sub    %eax,%r8d
140023b26:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140023b2b:	41 8b c8             	mov    %r8d,%ecx
140023b2e:	44 8b c2             	mov    %edx,%r8d
140023b31:	f7 e1                	mul    %ecx
140023b33:	c1 ea 05             	shr    $0x5,%edx
140023b36:	6b c2 64             	imul   $0x64,%edx,%eax
140023b39:	2b c8                	sub    %eax,%ecx
140023b3b:	03 c9                	add    %ecx,%ecx
140023b3d:	0f b7 04 19          	movzwl (%rcx,%rbx,1),%eax
140023b41:	66 41 89 42 02       	mov    %ax,0x2(%r10)
140023b46:	8d 04 12             	lea    (%rdx,%rdx,1),%eax
140023b49:	0f b7 04 18          	movzwl (%rax,%rbx,1),%eax
140023b4d:	66 41 89 02          	mov    %ax,(%r10)
140023b51:	4d 8d 52 fc          	lea    -0x4(%r10),%r10
140023b55:	49 83 eb 01          	sub    $0x1,%r11
140023b59:	75 b7                	jne    0x140023b12
140023b5b:	41 80 c0 30          	add    $0x30,%r8b
140023b5f:	45 88 01             	mov    %r8b,(%r9)
140023b62:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
140023b67:	c3                   	ret
140023b68:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140023b6d:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
140023b72:	56                   	push   %rsi
140023b73:	57                   	push   %rdi
140023b74:	41 54                	push   %r12
140023b76:	41 56                	push   %r14
140023b78:	41 57                	push   %r15
140023b7a:	48 83 ec 50          	sub    $0x50,%rsp
140023b7e:	48 8b 05 fb d5 2d 00 	mov    0x2dd5fb(%rip),%rax        # 0x140301180
140023b85:	48 33 c4             	xor    %rsp,%rax
140023b88:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140023b8d:	44 8b 9c 24 a0 00 00 	mov    0xa0(%rsp),%r11d
140023b94:	00
140023b95:	4c 8b f2             	mov    %rdx,%r14
140023b98:	48 8b f9             	mov    %rcx,%rdi
140023b9b:	bb 08 00 00 00       	mov    $0x8,%ebx
140023ba0:	41 8b d1             	mov    %r9d,%edx
140023ba3:	0f 57 c0             	xorps  %xmm0,%xmm0
140023ba6:	4d 8b f8             	mov    %r8,%r15
140023ba9:	45 8d 53 37          	lea    0x37(%r11),%r10d
140023bad:	41 83 e3 1f          	and    $0x1f,%r11d
140023bb1:	41 c1 ea 05          	shr    $0x5,%r10d
140023bb5:	41 8b cb             	mov    %r11d,%ecx
140023bb8:	d3 e2                	shl    %cl,%edx
140023bba:	41 ff ca             	dec    %r10d
140023bbd:	0f 11 44 24 20       	movups %xmm0,0x20(%rsp)
140023bc2:	44 3b db             	cmp    %ebx,%r11d
140023bc5:	76 15                	jbe    0x140023bdc
140023bc7:	41 8d 42 ff          	lea    -0x1(%r10),%eax
140023bcb:	b9 20 00 00 00       	mov    $0x20,%ecx
140023bd0:	89 54 84 20          	mov    %edx,0x20(%rsp,%rax,4)
140023bd4:	41 2b cb             	sub    %r11d,%ecx
140023bd7:	41 8b d1             	mov    %r9d,%edx
140023bda:	d3 ea                	shr    %cl,%edx
140023bdc:	33 f6                	xor    %esi,%esi
140023bde:	42 89 54 94 20       	mov    %edx,0x20(%rsp,%r10,4)
140023be3:	45 85 d2             	test   %r10d,%r10d
140023be6:	0f 84 8d 00 00 00    	je     0x140023c79
140023bec:	4c 8d 5c 24 30       	lea    0x30(%rsp),%r11
140023bf1:	46 8b 44 94 20       	mov    0x20(%rsp,%r10,4),%r8d
140023bf6:	b8 83 be e0 12       	mov    $0x12e0be83,%eax
140023bfb:	41 f7 e0             	mul    %r8d
140023bfe:	45 8b c8             	mov    %r8d,%r9d
140023c01:	45 8b e2             	mov    %r10d,%r12d
140023c04:	44 2b ca             	sub    %edx,%r9d
140023c07:	41 d1 e9             	shr    $1,%r9d
140023c0a:	44 03 ca             	add    %edx,%r9d
140023c0d:	41 c1 e9 1d          	shr    $0x1d,%r9d
140023c11:	41 69 c1 00 ca 9a 3b 	imul   $0x3b9aca00,%r9d,%eax
140023c18:	46 89 4c 94 20       	mov    %r9d,0x20(%rsp,%r10,4)
140023c1d:	44 2b c0             	sub    %eax,%r8d
140023c20:	41 8b e8             	mov    %r8d,%ebp
140023c23:	41 ff cc             	dec    %r12d
140023c26:	48 c1 e5 20          	shl    $0x20,%rbp
140023c2a:	42 8b 44 a4 20       	mov    0x20(%rsp,%r12,4),%eax
140023c2f:	48 0b e8             	or     %rax,%rbp
140023c32:	48 b8 2f 4b 69 6d 82 	movabs $0x12e0be826d694b2f,%rax
140023c39:	be e0 12
140023c3c:	48 f7 e5             	mul    %rbp
140023c3f:	48 8b cd             	mov    %rbp,%rcx
140023c42:	48 2b ca             	sub    %rdx,%rcx
140023c45:	48 d1 e9             	shr    $1,%rcx
140023c48:	48 03 ca             	add    %rdx,%rcx
140023c4b:	48 c1 e9 1d          	shr    $0x1d,%rcx
140023c4f:	69 c1 00 ca 9a 3b    	imul   $0x3b9aca00,%ecx,%eax
140023c55:	42 89 4c a4 20       	mov    %ecx,0x20(%rsp,%r12,4)
140023c5a:	2b e8                	sub    %eax,%ebp
140023c5c:	45 85 e4             	test   %r12d,%r12d
140023c5f:	75 c2                	jne    0x140023c23
140023c61:	41 89 2b             	mov    %ebp,(%r11)
140023c64:	ff c6                	inc    %esi
140023c66:	49 83 c3 04          	add    $0x4,%r11
140023c6a:	45 85 c9             	test   %r9d,%r9d
140023c6d:	75 82                	jne    0x140023bf1
140023c6f:	41 83 c2 ff          	add    $0xffffffff,%r10d
140023c73:	0f 85 78 ff ff ff    	jne    0x140023bf1
140023c79:	8b 44 24 20          	mov    0x20(%rsp),%eax
140023c7d:	3d 00 ca 9a 3b       	cmp    $0x3b9aca00,%eax
140023c82:	72 07                	jb     0x140023c8b
140023c84:	bb 0a 00 00 00       	mov    $0xa,%ebx
140023c89:	eb 65                	jmp    0x140023cf0
140023c8b:	3d 00 e1 f5 05       	cmp    $0x5f5e100,%eax
140023c90:	72 07                	jb     0x140023c99
140023c92:	bb 09 00 00 00       	mov    $0x9,%ebx
140023c97:	eb 57                	jmp    0x140023cf0
140023c99:	3d 80 96 98 00       	cmp    $0x989680,%eax
140023c9e:	73 50                	jae    0x140023cf0
140023ca0:	3d 40 42 0f 00       	cmp    $0xf4240,%eax
140023ca5:	72 07                	jb     0x140023cae
140023ca7:	bb 07 00 00 00       	mov    $0x7,%ebx
140023cac:	eb 42                	jmp    0x140023cf0
140023cae:	3d a0 86 01 00       	cmp    $0x186a0,%eax
140023cb3:	72 07                	jb     0x140023cbc
140023cb5:	bb 06 00 00 00       	mov    $0x6,%ebx
140023cba:	eb 34                	jmp    0x140023cf0
140023cbc:	3d 10 27 00 00       	cmp    $0x2710,%eax
140023cc1:	72 07                	jb     0x140023cca
140023cc3:	bb 05 00 00 00       	mov    $0x5,%ebx
140023cc8:	eb 26                	jmp    0x140023cf0
140023cca:	3d e8 03 00 00       	cmp    $0x3e8,%eax
140023ccf:	72 07                	jb     0x140023cd8
140023cd1:	bb 04 00 00 00       	mov    $0x4,%ebx
140023cd6:	eb 18                	jmp    0x140023cf0
140023cd8:	83 f8 64             	cmp    $0x64,%eax
140023cdb:	72 07                	jb     0x140023ce4
140023cdd:	bb 03 00 00 00       	mov    $0x3,%ebx
140023ce2:	eb 0c                	jmp    0x140023cf0
140023ce4:	bb 0a 00 00 00       	mov    $0xa,%ebx
140023ce9:	3b c3                	cmp    %ebx,%eax
140023ceb:	1b db                	sbb    %ebx,%ebx
140023ced:	83 c3 02             	add    $0x2,%ebx
140023cf0:	44 8d 04 f3          	lea    (%rbx,%rsi,8),%r8d
140023cf4:	49 8b cf             	mov    %r15,%rcx
140023cf7:	44 03 c6             	add    %esi,%r8d
140023cfa:	49 2b ce             	sub    %r14,%rcx
140023cfd:	49 3b c8             	cmp    %r8,%rcx
140023d00:	7d 0c                	jge    0x140023d0e
140023d02:	4c 89 3f             	mov    %r15,(%rdi)
140023d05:	c7 47 08 84 00 00 00 	movl   $0x84,0x8(%rdi)
140023d0c:	eb 3b                	jmp    0x140023d49
140023d0e:	0f ae e8             	lfence
140023d11:	8b 54 24 20          	mov    0x20(%rsp),%edx
140023d15:	4d 8b c6             	mov    %r14,%r8
140023d18:	8b cb                	mov    %ebx,%ecx
140023d1a:	e8 dd fc ff ff       	call   0x1400239fc
140023d1f:	8d 46 ff             	lea    -0x1(%rsi),%eax
140023d22:	49 03 de             	add    %r14,%rbx
140023d25:	48 63 f0             	movslq %eax,%rsi
140023d28:	85 c0                	test   %eax,%eax
140023d2a:	78 16                	js     0x140023d42
140023d2c:	8b 4c b4 30          	mov    0x30(%rsp,%rsi,4),%ecx
140023d30:	48 8b d3             	mov    %rbx,%rdx
140023d33:	e8 a8 fd ff ff       	call   0x140023ae0
140023d38:	48 83 c3 09          	add    $0x9,%rbx
140023d3c:	48 83 ee 01          	sub    $0x1,%rsi
140023d40:	79 ea                	jns    0x140023d2c
140023d42:	83 67 08 00          	andl   $0x0,0x8(%rdi)
140023d46:	48 89 1f             	mov    %rbx,(%rdi)
140023d49:	48 8b c7             	mov    %rdi,%rax
140023d4c:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
140023d51:	48 33 cc             	xor    %rsp,%rcx
140023d54:	e8 17 0a 1e 00       	call   0x140204770
140023d59:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
140023d5e:	49 8b 5b 40          	mov    0x40(%r11),%rbx
140023d62:	49 8b 6b 48          	mov    0x48(%r11),%rbp
140023d66:	49 8b e3             	mov    %r11,%rsp
140023d69:	41 5f                	pop    %r15
140023d6b:	41 5e                	pop    %r14
140023d6d:	41 5c                	pop    %r12
140023d6f:	5f                   	pop    %rdi
140023d70:	5e                   	pop    %rsi
140023d71:	c3                   	ret
140023d72:	90                   	nop
140023d73:	90                   	nop
140023d74:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140023d79:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140023d7e:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140023d83:	57                   	push   %rdi
140023d84:	41 54                	push   %r12
140023d86:	41 55                	push   %r13
140023d88:	41 56                	push   %r14
140023d8a:	41 57                	push   %r15
140023d8c:	48 83 ec 30          	sub    $0x30,%rsp
140023d90:	4d 8b d9             	mov    %r9,%r11
140023d93:	48 8b fa             	mov    %rdx,%rdi
140023d96:	49 c1 eb 20          	shr    $0x20,%r11
140023d9a:	4d 8b e0             	mov    %r8,%r12
140023d9d:	48 8b f1             	mov    %rcx,%rsi
140023da0:	ba 10 27 00 00       	mov    $0x2710,%edx
140023da5:	41 81 f9 00 e1 f5 05 	cmp    $0x5f5e100,%r9d
140023dac:	72 08                	jb     0x140023db6
140023dae:	41 ba 09 00 00 00    	mov    $0x9,%r10d
140023db4:	eb 6a                	jmp    0x140023e20
140023db6:	41 81 f9 80 96 98 00 	cmp    $0x989680,%r9d
140023dbd:	72 08                	jb     0x140023dc7
140023dbf:	41 ba 08 00 00 00    	mov    $0x8,%r10d
140023dc5:	eb 59                	jmp    0x140023e20
140023dc7:	41 81 f9 40 42 0f 00 	cmp    $0xf4240,%r9d
140023dce:	72 08                	jb     0x140023dd8
140023dd0:	41 ba 07 00 00 00    	mov    $0x7,%r10d
140023dd6:	eb 48                	jmp    0x140023e20
140023dd8:	41 81 f9 a0 86 01 00 	cmp    $0x186a0,%r9d
140023ddf:	72 08                	jb     0x140023de9
140023de1:	41 ba 06 00 00 00    	mov    $0x6,%r10d
140023de7:	eb 37                	jmp    0x140023e20
140023de9:	44 3b ca             	cmp    %edx,%r9d
140023dec:	72 08                	jb     0x140023df6
140023dee:	41 ba 05 00 00 00    	mov    $0x5,%r10d
140023df4:	eb 2a                	jmp    0x140023e20
140023df6:	41 81 f9 e8 03 00 00 	cmp    $0x3e8,%r9d
140023dfd:	72 08                	jb     0x140023e07
140023dff:	41 ba 04 00 00 00    	mov    $0x4,%r10d
140023e05:	eb 19                	jmp    0x140023e20
140023e07:	41 83 f9 64          	cmp    $0x64,%r9d
140023e0b:	72 08                	jb     0x140023e15
140023e0d:	41 ba 03 00 00 00    	mov    $0x3,%r10d
140023e13:	eb 0b                	jmp    0x140023e20
140023e15:	41 83 f9 0a          	cmp    $0xa,%r9d
140023e19:	45 1b d2             	sbb    %r10d,%r10d
140023e1c:	41 83 c2 02          	add    $0x2,%r10d
140023e20:	8b 84 24 80 00 00 00 	mov    0x80(%rsp),%eax
140023e27:	47 8d 04 1a          	lea    (%r10,%r11,1),%r8d
140023e2b:	45 8d 78 ff          	lea    -0x1(%r8),%r15d
140023e2f:	bb 01 00 00 00       	mov    $0x1,%ebx
140023e34:	45 8b ef             	mov    %r15d,%r13d
140023e37:	85 c0                	test   %eax,%eax
140023e39:	75 55                	jne    0x140023e90
140023e3b:	8d 4b fc             	lea    -0x4(%rbx),%ecx
140023e3e:	8b c1                	mov    %ecx,%eax
140023e40:	41 2b c2             	sub    %r10d,%eax
140023e43:	44 3b d3             	cmp    %ebx,%r10d
140023e46:	0f 45 c8             	cmovne %eax,%ecx
140023e49:	41 3b cb             	cmp    %r11d,%ecx
140023e4c:	7f 10                	jg     0x140023e5e
140023e4e:	33 c0                	xor    %eax,%eax
140023e50:	44 3b d3             	cmp    %ebx,%r10d
140023e53:	0f 95 c0             	setne  %al
140023e56:	83 c0 04             	add    $0x4,%eax
140023e59:	44 3b d8             	cmp    %eax,%r11d
140023e5c:	7e 47                	jle    0x140023ea5
140023e5e:	45 33 db             	xor    %r11d,%r11d
140023e61:	49 8b cc             	mov    %r12,%rcx
140023e64:	44 3b d3             	cmp    %ebx,%r10d
140023e67:	41 0f 97 c3          	seta   %r11b
140023e6b:	48 2b cf             	sub    %rdi,%rcx
140023e6e:	41 83 c3 04          	add    $0x4,%r11d
140023e72:	45 03 da             	add    %r10d,%r11d
140023e75:	41 8b c3             	mov    %r11d,%eax
140023e78:	48 3b c8             	cmp    %rax,%rcx
140023e7b:	0f 8d d3 01 00 00    	jge    0x140024054
140023e81:	4c 89 26             	mov    %r12,(%rsi)
140023e84:	c7 46 08 84 00 00 00 	movl   $0x84,0x8(%rsi)
140023e8b:	e9 ec 02 00 00       	jmp    0x14002417c
140023e90:	83 f8 03             	cmp    $0x3,%eax
140023e93:	75 0b                	jne    0x140023ea0
140023e95:	41 8d 47 04          	lea    0x4(%r15),%eax
140023e99:	83 f8 09             	cmp    $0x9,%eax
140023e9c:	76 07                	jbe    0x140023ea5
140023e9e:	8b c3                	mov    %ebx,%eax
140023ea0:	83 f8 02             	cmp    $0x2,%eax
140023ea3:	75 b9                	jne    0x140023e5e
140023ea5:	4c 8d 35 54 c1 fd ff 	lea    -0x23eac(%rip),%r14        # 0x140000000
140023eac:	45 85 db             	test   %r11d,%r11d
140023eaf:	78 1b                	js     0x140023ecc
140023eb1:	41 8b e8             	mov    %r8d,%ebp
140023eb4:	44 3b cb             	cmp    %ebx,%r9d
140023eb7:	75 26                	jne    0x140023edf
140023eb9:	0f ae e8             	lfence
140023ebc:	49 63 c3             	movslq %r11d,%rax
140023ebf:	42 0f b6 84 30 e8 fe 	movzbl 0x24fee8(%rax,%r14,1),%eax
140023ec6:	24 00
140023ec8:	2b e8                	sub    %eax,%ebp
140023eca:	eb 13                	jmp    0x140023edf
140023ecc:	45 85 c0             	test   %r8d,%r8d
140023ecf:	7e 06                	jle    0x140023ed7
140023ed1:	41 8d 6a 01          	lea    0x1(%r10),%ebp
140023ed5:	eb 08                	jmp    0x140023edf
140023ed7:	bd 02 00 00 00       	mov    $0x2,%ebp
140023edc:	41 2b eb             	sub    %r11d,%ebp
140023edf:	49 8b c4             	mov    %r12,%rax
140023ee2:	8b cd                	mov    %ebp,%ecx
140023ee4:	48 2b c7             	sub    %rdi,%rax
140023ee7:	48 3b c1             	cmp    %rcx,%rax
140023eea:	7c 95                	jl     0x140023e81
140023eec:	45 85 db             	test   %r11d,%r11d
140023eef:	7e 2c                	jle    0x140023f1d
140023ef1:	41 83 fb 0a          	cmp    $0xa,%r11d
140023ef5:	0f 8f c7 00 00 00    	jg     0x140023fc2
140023efb:	41 0f bc c9          	bsf    %r9d,%ecx
140023eff:	49 63 d3             	movslq %r11d,%rdx
140023f02:	41 8b c1             	mov    %r9d,%eax
140023f05:	d3 e8                	shr    %cl,%eax
140023f07:	41 3b 84 96 b8 fe 24 	cmp    0x24feb8(%r14,%rdx,4),%eax
140023f0e:	00
140023f0f:	0f 87 ad 00 00 00    	ja     0x140023fc2
140023f15:	41 8b ca             	mov    %r10d,%ecx
140023f18:	ba 10 27 00 00       	mov    $0x2710,%edx
140023f1d:	48 8d 1c 39          	lea    (%rcx,%rdi,1),%rbx
140023f21:	41 bc 1f 85 eb 51    	mov    $0x51eb851f,%r12d
140023f27:	44 3b ca             	cmp    %edx,%r9d
140023f2a:	72 52                	jb     0x140023f7e
140023f2c:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
140023f31:	41 f7 e1             	mul    %r9d
140023f34:	c1 ea 0d             	shr    $0xd,%edx
140023f37:	69 c2 10 27 00 00    	imul   $0x2710,%edx,%eax