14002386e:	73 13                	jae    0x140023883
140023870:	8d 4d ff             	lea    -0x1(%rbp),%ecx
140023873:	b8 01 00 00 00       	mov    $0x1,%eax
140023878:	d3 e0                	shl    %cl,%eax
14002387a:	ff c8                	dec    %eax
14002387c:	41 85 c5             	test   %eax,%r13d
14002387f:	41 0f 94 c7          	sete   %r15b
140023883:	41 8b ea             	mov    %r10d,%ebp
140023886:	45 84 f6             	test   %r14b,%r14b
140023889:	75 51                	jne    0x1400238dc
14002388b:	45 84 ff             	test   %r15b,%r15b
14002388e:	75 4c                	jne    0x1400238dc
140023890:	41 8b c1             	mov    %r9d,%eax
140023893:	f7 e3                	mul    %ebx
140023895:	eb 27                	jmp    0x1400238be
140023897:	41 8b c1             	mov    %r9d,%eax
14002389a:	ff c5                	inc    %ebp
14002389c:	41 f7 e3             	mul    %r11d
14002389f:	41 8b d8             	mov    %r8d,%ebx
1400238a2:	c1 ea 03             	shr    $0x3,%edx
1400238a5:	8a c2                	mov    %dl,%al
1400238a7:	c0 e0 02             	shl    $0x2,%al
1400238aa:	8d 0c 10             	lea    (%rax,%rdx,1),%ecx
1400238ad:	41 8b c1             	mov    %r9d,%eax
1400238b0:	02 c9                	add    %cl,%cl
1400238b2:	44 2a d9             	sub    %cl,%r11b
1400238b5:	41 8a fb             	mov    %r11b,%dil
1400238b8:	44 8b da             	mov    %edx,%r11d
1400238bb:	41 f7 e0             	mul    %r8d
1400238be:	44 8b c2             	mov    %edx,%r8d
1400238c1:	41 8b c1             	mov    %r9d,%eax
1400238c4:	f7 e6                	mul    %esi
1400238c6:	41 c1 e8 03          	shr    $0x3,%r8d
1400238ca:	8b f2                	mov    %edx,%esi
1400238cc:	c1 ee 03             	shr    $0x3,%esi
1400238cf:	41 3b f0             	cmp    %r8d,%esi
1400238d2:	77 c3                	ja     0x140023897
1400238d4:	44 3b db             	cmp    %ebx,%r11d
1400238d7:	e9 e1 00 00 00       	jmp    0x1400239bd
1400238dc:	41 8b c1             	mov    %r9d,%eax
1400238df:	f7 e3                	mul    %ebx
1400238e1:	eb 4d                	jmp    0x140023930
1400238e3:	41 0f b6 c6          	movzbl %r14b,%eax
1400238e7:	43 8d 0c a4          	lea    (%r12,%r12,4),%ecx
1400238eb:	03 c9                	add    %ecx,%ecx
1400238ed:	45 8b c2             	mov    %r10d,%r8d
1400238f0:	3b d9                	cmp    %ecx,%ebx
1400238f2:	41 8b ca             	mov    %r10d,%ecx
1400238f5:	41 8b dc             	mov    %r12d,%ebx
1400238f8:	44 0f 44 c0          	cmove  %eax,%r8d
1400238fc:	40 84 ff             	test   %dil,%dil
1400238ff:	41 0f b6 c7          	movzbl %r15b,%eax
140023903:	45 8a f0             	mov    %r8b,%r14b
140023906:	0f 44 c8             	cmove  %eax,%ecx
140023909:	41 8b c1             	mov    %r9d,%eax
14002390c:	41 f7 e3             	mul    %r11d
14002390f:	44 8a f9             	mov    %cl,%r15b
140023912:	ff c5                	inc    %ebp
140023914:	c1 ea 03             	shr    $0x3,%edx
140023917:	8a c2                	mov    %dl,%al
140023919:	c0 e0 02             	shl    $0x2,%al
14002391c:	8d 0c 10             	lea    (%rax,%rdx,1),%ecx
14002391f:	41 8b c1             	mov    %r9d,%eax
140023922:	02 c9                	add    %cl,%cl
140023924:	44 2a d9             	sub    %cl,%r11b
140023927:	41 8a fb             	mov    %r11b,%dil
14002392a:	44 8b da             	mov    %edx,%r11d
14002392d:	41 f7 e4             	mul    %r12d
140023930:	44 8b e2             	mov    %edx,%r12d
140023933:	41 8b c1             	mov    %r9d,%eax
140023936:	f7 e6                	mul    %esi
140023938:	41 c1 ec 03          	shr    $0x3,%r12d
14002393c:	8b f2                	mov    %edx,%esi
14002393e:	c1 ee 03             	shr    $0x3,%esi
140023941:	41 3b f4             	cmp    %r12d,%esi
140023944:	77 9d                	ja     0x1400238e3
140023946:	45 84 f6             	test   %r14b,%r14b
140023949:	74 48                	je     0x140023993
14002394b:	41 8b c1             	mov    %r9d,%eax
14002394e:	f7 e3                	mul    %ebx
140023950:	eb 30                	jmp    0x140023982
140023952:	40 84 ff             	test   %dil,%dil
140023955:	41 8b d8             	mov    %r8d,%ebx
140023958:	0f 94 c0             	sete   %al
14002395b:	ff c5                	inc    %ebp
14002395d:	44 22 f8             	and    %al,%r15b
140023960:	41 8b c1             	mov    %r9d,%eax
140023963:	41 f7 e3             	mul    %r11d
140023966:	c1 ea 03             	shr    $0x3,%edx
140023969:	8a c2                	mov    %dl,%al
14002396b:	c0 e0 02             	shl    $0x2,%al
14002396e:	8d 0c 10             	lea    (%rax,%rdx,1),%ecx
140023971:	41 8b c1             	mov    %r9d,%eax
140023974:	02 c9                	add    %cl,%cl
140023976:	44 2a d9             	sub    %cl,%r11b
140023979:	41 8a fb             	mov    %r11b,%dil
14002397c:	44 8b da             	mov    %edx,%r11d
14002397f:	41 f7 e0             	mul    %r8d
140023982:	44 8b c2             	mov    %edx,%r8d
140023985:	41 c1 e8 03          	shr    $0x3,%r8d
140023989:	43 8d 0c 80          	lea    (%r8,%r8,4),%ecx
14002398d:	03 c9                	add    %ecx,%ecx
14002398f:	3b d9                	cmp    %ecx,%ebx
140023991:	74 bf                	je     0x140023952
140023993:	45 84 ff             	test   %r15b,%r15b
140023996:	74 16                	je     0x1400239ae
140023998:	40 80 ff 05          	cmp    $0x5,%dil
14002399c:	75 10                	jne    0x1400239ae
14002399e:	41 f6 c3 01          	test   $0x1,%r11b
1400239a2:	40 0f b6 ff          	movzbl %dil,%edi
1400239a6:	b9 04 00 00 00       	mov    $0x4,%ecx
1400239ab:	0f 44 f9             	cmove  %ecx,%edi
1400239ae:	44 3b db             	cmp    %ebx,%r11d
1400239b1:	75 0c                	jne    0x1400239bf
1400239b3:	44 38 54 24 70       	cmp    %r10b,0x70(%rsp)
1400239b8:	74 0b                	je     0x1400239c5
1400239ba:	45 84 f6             	test   %r14b,%r14b
1400239bd:	74 06                	je     0x1400239c5
1400239bf:	40 80 ff 05          	cmp    $0x5,%dil
1400239c3:	72 06                	jb     0x1400239cb
1400239c5:	41 ba 01 00 00 00    	mov    $0x1,%r10d
1400239cb:	8b 44 24 78          	mov    0x78(%rsp),%eax
1400239cf:	43 8d 0c 1a          	lea    (%r10,%r11,1),%ecx
1400239d3:	03 c5                	add    %ebp,%eax
1400239d5:	89 8c 24 80 00 00 00 	mov    %ecx,0x80(%rsp)
1400239dc:	89 84 24 84 00 00 00 	mov    %eax,0x84(%rsp)
1400239e3:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
1400239ea:	00
1400239eb:	48 83 c4 28          	add    $0x28,%rsp
1400239ef:	41 5f                	pop    %r15
1400239f1:	41 5e                	pop    %r14
1400239f3:	41 5d                	pop    %r13
1400239f5:	41 5c                	pop    %r12
1400239f7:	5f                   	pop    %rdi
1400239f8:	5e                   	pop    %rsi
1400239f9:	5d                   	pop    %rbp
1400239fa:	5b                   	pop    %rbx
1400239fb:	c3                   	ret
1400239fc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140023a01:	48 89 7c 24 10       	mov    %rdi,0x10(%rsp)
140023a06:	45 33 db             	xor    %r11d,%r11d
140023a09:	44 8b d1             	mov    %ecx,%r10d
140023a0c:	48 8d 3d dd c3 22 00 	lea    0x22c3dd(%rip),%rdi        # 0x14024fdf0
140023a13:	49 8b d8             	mov    %r8,%rbx
140023a16:	44 8b ca             	mov    %edx,%r9d
140023a19:	81 fa 10 27 00 00    	cmp    $0x2710,%edx
140023a1f:	72 58                	jb     0x140023a79
140023a21:	b8 59 17 b7 d1       	mov    $0xd1b71759,%eax
140023a26:	4d 8b c2             	mov    %r10,%r8
140023a29:	41 f7 e1             	mul    %r9d
140023a2c:	c1 ea 0d             	shr    $0xd,%edx
140023a2f:	69 c2 10 27 00 00    	imul   $0x2710,%edx,%eax
140023a35:	44 2b c8             	sub    %eax,%r9d
140023a38:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140023a3d:	41 8b c9             	mov    %r9d,%ecx
140023a40:	44 8b ca             	mov    %edx,%r9d
140023a43:	f7 e1                	mul    %ecx
140023a45:	41 8b c3             	mov    %r11d,%eax
140023a48:	41 83 c3 04          	add    $0x4,%r11d
140023a4c:	4c 2b c0             	sub    %rax,%r8
140023a4f:	c1 ea 05             	shr    $0x5,%edx
140023a52:	6b c2 64             	imul   $0x64,%edx,%eax
140023a55:	2b c8                	sub    %eax,%ecx
140023a57:	03 c9                	add    %ecx,%ecx
140023a59:	0f b7 04 39          	movzwl (%rcx,%rdi,1),%eax
140023a5d:	8d 0c 12             	lea    (%rdx,%rdx,1),%ecx
140023a60:	66 41 89 44 18 fe    	mov    %ax,-0x2(%r8,%rbx,1)
140023a66:	0f b7 0c 39          	movzwl (%rcx,%rdi,1),%ecx
140023a6a:	66 41 89 4c 18 fc    	mov    %cx,-0x4(%r8,%rbx,1)
140023a70:	41 81 f9 10 27 00 00 	cmp    $0x2710,%r9d
140023a77:	73 a8                	jae    0x140023a21
140023a79:	41 83 f9 64          	cmp    $0x64,%r9d
140023a7d:	72 31                	jb     0x140023ab0
140023a7f:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
140023a84:	49 8b ca             	mov    %r10,%rcx
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