140020bf6:	49 8b 43 08          	mov    0x8(%r11),%rax
140020bfa:	40 8a cf             	mov    %dil,%cl
140020bfd:	48 f7 e6             	mul    %rsi
140020c00:	4d 0f ad c8          	shrd   %cl,%r9,%r8
140020c04:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
140020c09:	4c 89 01             	mov    %r8,(%rcx)
140020c0c:	48 8b c8             	mov    %rax,%rcx
140020c0f:	49 8b 03             	mov    (%r11),%rax
140020c12:	4c 8b c2             	mov    %rdx,%r8
140020c15:	48 f7 e6             	mul    %rsi
140020c18:	48 8d 04 0a          	lea    (%rdx,%rcx,1),%rax
140020c1c:	48 3b c2             	cmp    %rdx,%rax
140020c1f:	73 03                	jae    0x140020c24
140020c21:	49 ff c0             	inc    %r8
140020c24:	48 8b 5c 24 10       	mov    0x10(%rsp),%rbx
140020c29:	40 8a cf             	mov    %dil,%cl
140020c2c:	48 8b 74 24 18       	mov    0x18(%rsp),%rsi
140020c31:	48 8b 7c 24 20       	mov    0x20(%rsp),%rdi
140020c36:	4c 0f ad c0          	shrd   %cl,%r8,%rax
140020c3a:	c3                   	ret
140020c3b:	90                   	nop
140020c3c:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140020c41:	55                   	push   %rbp
140020c42:	53                   	push   %rbx
140020c43:	56                   	push   %rsi
140020c44:	57                   	push   %rdi
140020c45:	41 54                	push   %r12
140020c47:	41 55                	push   %r13
140020c49:	41 56                	push   %r14
140020c4b:	41 57                	push   %r15
140020c4d:	48 8b ec             	mov    %rsp,%rbp
140020c50:	48 83 ec 48          	sub    $0x48,%rsp
140020c54:	45 33 e4             	xor    %r12d,%r12d
140020c57:	41 b9 cc fb ff ff    	mov    $0xfffffbcc,%r9d
140020c5d:	45 85 c0             	test   %r8d,%r8d
140020c60:	74 07                	je     0x140020c69
140020c62:	45 8d 88 cb fb ff ff 	lea    -0x435(%r8),%r9d
140020c69:	48 b9 00 00 00 00 00 	movabs $0x10000000000000,%rcx
140020c70:	00 10 00
140020c73:	48 8b c2             	mov    %rdx,%rax
140020c76:	48 0b c1             	or     %rcx,%rax
140020c79:	4c 8b d2             	mov    %rdx,%r10
140020c7c:	45 85 c0             	test   %r8d,%r8d
140020c7f:	bb 01 00 00 00       	mov    $0x1,%ebx
140020c84:	4c 0f 45 d0          	cmovne %rax,%r10
140020c88:	45 8a fa             	mov    %r10b,%r15b
140020c8b:	41 f6 d7             	not    %r15b
140020c8e:	44 22 fb             	and    %bl,%r15b
140020c91:	44 88 7d 50          	mov    %r15b,0x50(%rbp)
140020c95:	4a 8d 3c 95 00 00 00 	lea    0x0(,%r10,4),%rdi
140020c9c:	00
140020c9d:	48 85 d2             	test   %rdx,%rdx
140020ca0:	75 08                	jne    0x140020caa
140020ca2:	45 8b ec             	mov    %r12d,%r13d
140020ca5:	44 3b c3             	cmp    %ebx,%r8d
140020ca8:	77 03                	ja     0x140020cad
140020caa:	44 8b eb             	mov    %ebx,%r13d
140020cad:	4c 89 65 60          	mov    %r12,0x60(%rbp)
140020cb1:	45 8a f4             	mov    %r12b,%r14b
140020cb4:	4c 89 65 e8          	mov    %r12,-0x18(%rbp)
140020cb8:	44 88 65 58          	mov    %r12b,0x58(%rbp)
140020cbc:	0f ae e8             	lfence
140020cbf:	44 89 6c 24 28       	mov    %r13d,0x28(%rsp)
140020cc4:	45 85 c9             	test   %r9d,%r9d
140020cc7:	0f 88 32 01 00 00    	js     0x140020dff
140020ccd:	41 69 f1 41 34 01 00 	imul   $0x13441,%r9d,%esi
140020cd4:	41 8b c4             	mov    %r12d,%eax
140020cd7:	49 8b ca             	mov    %r10,%rcx
140020cda:	c1 ee 12             	shr    $0x12,%esi
140020cdd:	41 83 f9 03          	cmp    $0x3,%r9d
140020ce1:	0f 9f c0             	setg   %al
140020ce4:	2b f0                	sub    %eax,%esi
140020ce6:	48 8d 05 a3 88 1f 00 	lea    0x1f88a3(%rip),%rax        # 0x140219590
140020ced:	44 69 c6 4f 93 12 00 	imul   $0x12934f,%esi,%r8d
140020cf4:	8b d6                	mov    %esi,%edx
140020cf6:	48 c1 e2 04          	shl    $0x4,%rdx
140020cfa:	48 03 d0             	add    %rax,%rdx
140020cfd:	48 8d 45 e8          	lea    -0x18(%rbp),%rax
140020d01:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140020d06:	41 c1 e8 13          	shr    $0x13,%r8d
140020d0a:	45 2b c1             	sub    %r9d,%r8d
140020d0d:	4c 8d 4d 60          	lea    0x60(%rbp),%r9
140020d11:	41 83 c0 7a          	add    $0x7a,%r8d
140020d15:	44 03 c6             	add    %esi,%r8d
140020d18:	e8 5f fe ff ff       	call   0x140020b7c
140020d1d:	4c 8b c8             	mov    %rax,%r9
140020d20:	83 fe 15             	cmp    $0x15,%esi
140020d23:	0f 87 80 01 00 00    	ja     0x140020ea9
140020d29:	49 bb cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r11
140020d30:	cc cc cc
140020d33:	49 8b c3             	mov    %r11,%rax
140020d36:	48 f7 e7             	mul    %rdi
140020d39:	48 c1 ea 02          	shr    $0x2,%rdx
140020d3d:	44 8d 04 92          	lea    (%rdx,%rdx,4),%r8d
140020d41:	41 3b f8             	cmp    %r8d,%edi
140020d44:	75 29                	jne    0x140020d6f
140020d46:	45 8b c4             	mov    %r12d,%r8d
140020d49:	48 8b ca             	mov    %rdx,%rcx
140020d4c:	49 8b c3             	mov    %r11,%rax
140020d4f:	48 f7 e2             	mul    %rdx
140020d52:	44 03 c3             	add    %ebx,%r8d
140020d55:	48 c1 ea 02          	shr    $0x2,%rdx
140020d59:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
140020d5c:	3b c8                	cmp    %eax,%ecx
140020d5e:	74 e9                	je     0x140020d49
140020d60:	44 3b c6             	cmp    %esi,%r8d
140020d63:	45 8a ec             	mov    %r12b,%r13b
140020d66:	41 0f 93 c6          	setae  %r14b
140020d6a:	e9 47 01 00 00       	jmp    0x140020eb6
140020d6f:	45 8b d4             	mov    %r12d,%r10d
140020d72:	45 84 ff             	test   %r15b,%r15b
140020d75:	74 49                	je     0x140020dc0
140020d77:	41 8b c5             	mov    %r13d,%eax
140020d7a:	48 2b f8             	sub    %rax,%rdi
140020d7d:	49 8b c3             	mov    %r11,%rax
140020d80:	48 2b fb             	sub    %rbx,%rdi
140020d83:	48 f7 e7             	mul    %rdi
140020d86:	4c 8b c2             	mov    %rdx,%r8
140020d89:	49 c1 e8 02          	shr    $0x2,%r8
140020d8d:	43 8d 04 80          	lea    (%r8,%r8,4),%eax
140020d91:	3b f8                	cmp    %eax,%edi
140020d93:	75 1b                	jne    0x140020db0
140020d95:	49 8b c8             	mov    %r8,%rcx
140020d98:	49 8b c3             	mov    %r11,%rax
140020d9b:	49 f7 e0             	mul    %r8
140020d9e:	44 03 d3             	add    %ebx,%r10d
140020da1:	4c 8b c2             	mov    %rdx,%r8
140020da4:	49 c1 e8 02          	shr    $0x2,%r8
140020da8:	43 8d 04 80          	lea    (%r8,%r8,4),%eax
140020dac:	3b c8                	cmp    %eax,%ecx
140020dae:	74 e5                	je     0x140020d95
140020db0:	44 3b d6             	cmp    %esi,%r10d
140020db3:	41 0f 93 c5          	setae  %r13b
140020db7:	44 88 6d 58          	mov    %r13b,0x58(%rbp)
140020dbb:	e9 f6 00 00 00       	jmp    0x140020eb6
140020dc0:	48 8d 4f 02          	lea    0x2(%rdi),%rcx
140020dc4:	49 8b c3             	mov    %r11,%rax
140020dc7:	48 f7 e1             	mul    %rcx
140020dca:	eb 0c                	jmp    0x140020dd8
140020dcc:	44 03 d3             	add    %ebx,%r10d
140020dcf:	49 8b c3             	mov    %r11,%rax
140020dd2:	49 f7 e0             	mul    %r8
140020dd5:	49 8b c8             	mov    %r8,%rcx
140020dd8:	4c 8b c2             	mov    %rdx,%r8
140020ddb:	49 c1 e8 02          	shr    $0x2,%r8
140020ddf:	43 8d 04 80          	lea    (%r8,%r8,4),%eax
140020de3:	3b c8                	cmp    %eax,%ecx
140020de5:	74 e5                	je     0x140020dcc
140020de7:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
140020deb:	44 3b d6             	cmp    %esi,%r10d
140020dee:	49 8b c4             	mov    %r12,%rax
140020df1:	45 8a ec             	mov    %r12b,%r13b
140020df4:	0f 93 c0             	setae  %al
140020df7:	48 2b c8             	sub    %rax,%rcx
140020dfa:	e9 bb 00 00 00       	jmp    0x140020eba
140020dff:	41 8b cc             	mov    %r12d,%ecx
140020e02:	41 8b c1             	mov    %r9d,%eax
140020e05:	f7 d8                	neg    %eax
140020e07:	3b c3                	cmp    %ebx,%eax
140020e09:	0f 9f c1             	setg   %cl
140020e0c:	45 69 e1 05 d1 f4 ff 	imul   $0xfff4d105,%r9d,%r12d
140020e13:	41 c1 ec 14          	shr    $0x14,%r12d
140020e17:	44 2b e1             	sub    %ecx,%r12d
140020e1a:	45 8b c4             	mov    %r12d,%r8d
140020e1d:	43 8d 34 0c          	lea    (%r12,%r9,1),%esi
140020e21:	8b ce                	mov    %esi,%ecx
140020e23:	4c 8d 4d 60          	lea    0x60(%rbp),%r9
140020e27:	f7 d9                	neg    %ecx
140020e29:	69 c1 4f 93 12 00    	imul   $0x12934f,%ecx,%eax
140020e2f:	48 63 d1             	movslq %ecx,%rdx
140020e32:	49 8b ca             	mov    %r10,%rcx
140020e35:	48 c1 e2 04          	shl    $0x4,%rdx
140020e39:	c1 e8 13             	shr    $0x13,%eax
140020e3c:	44 2b c0             	sub    %eax,%r8d
140020e3f:	48 8d 05 8a 99 1f 00 	lea    0x1f998a(%rip),%rax        # 0x14021a7d0
140020e46:	48 03 d0             	add    %rax,%rdx
140020e49:	41 83 c0 78          	add    $0x78,%r8d
140020e4d:	48 8d 45 e8          	lea    -0x18(%rbp),%rax
140020e51:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140020e56:	e8 21 fd ff ff       	call   0x140020b7c
140020e5b:	4c 8b c8             	mov    %rax,%r9
140020e5e:	44 3b e3             	cmp    %ebx,%r12d
140020e61:	77 25                	ja     0x140020e88
140020e63:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
140020e67:	44 8a f3             	mov    %bl,%r14b
140020e6a:	49 bb cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r11
140020e71:	cc cc cc
140020e74:	45 84 ff             	test   %r15b,%r15b
140020e77:	74 06                	je     0x140020e7f
140020e79:	44 88 6d 58          	mov    %r13b,0x58(%rbp)
140020e7d:	eb 3b                	jmp    0x140020eba
140020e7f:	44 8a 6d 58          	mov    0x58(%rbp),%r13b
140020e83:	48 2b cb             	sub    %rbx,%rcx
140020e86:	eb 32                	jmp    0x140020eba
140020e88:	41 83 fc 3f          	cmp    $0x3f,%r12d
140020e8c:	73 1b                	jae    0x140020ea9
140020e8e:	44 8a 6d 58          	mov    0x58(%rbp),%r13b
140020e92:	41 8d 4c 24 ff       	lea    -0x1(%r12),%ecx
140020e97:	48 8b c3             	mov    %rbx,%rax
140020e9a:	48 d3 e0             	shl    %cl,%rax
140020e9d:	48 2b c3             	sub    %rbx,%rax
140020ea0:	48 85 c7             	test   %rax,%rdi
140020ea3:	41 0f 94 c6          	sete   %r14b
140020ea7:	eb 03                	jmp    0x140020eac
140020ea9:	45 8a ee             	mov    %r14b,%r13b
140020eac:	49 bb cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r11
140020eb3:	cc cc cc
140020eb6:	48 8b 4d 60          	mov    0x60(%rbp),%rcx
140020eba:	33 ff                	xor    %edi,%edi
140020ebc:	45 32 c0             	xor    %r8b,%r8b
140020ebf:	45 84 ed             	test   %r13b,%r13b
140020ec2:	0f 85 ed 00 00 00    	jne    0x140020fb5
140020ec8:	45 84 f6             	test   %r14b,%r14b
140020ecb:	0f 85 e4 00 00 00    	jne    0x140020fb5
140020ed1:	4c 8b 5d e8          	mov    -0x18(%rbp),%r11
140020ed5:	49 bf 15 ae 47 e1 7a 	movabs $0x47ae147ae147ae15,%r15
140020edc:	14 ae 47
140020edf:	49 8b c7             	mov    %r15,%rax
140020ee2:	4c 8b c1             	mov    %rcx,%r8
140020ee5:	48 f7 e1             	mul    %rcx
140020ee8:	49 8b c7             	mov    %r15,%rax
140020eeb:	4d 8b d3             	mov    %r11,%r10
140020eee:	4c 2b c2             	sub    %rdx,%r8
140020ef1:	49 d1 e8             	shr    $1,%r8
140020ef4:	4c 03 c2             	add    %rdx,%r8
140020ef7:	49 f7 e3             	mul    %r11
140020efa:	49 c1 e8 06          	shr    $0x6,%r8
140020efe:	4c 2b d2             	sub    %rdx,%r10
140020f01:	49 d1 ea             	shr    $1,%r10
140020f04:	4c 03 d2             	add    %rdx,%r10
140020f07:	49 c1 ea 06          	shr    $0x6,%r10
140020f0b:	4d 3b c2             	cmp    %r10,%r8
140020f0e:	76 32                	jbe    0x140020f42
140020f10:	49 8b c9             	mov    %r9,%rcx
140020f13:	49 8b c7             	mov    %r15,%rax
140020f16:	49 f7 e1             	mul    %r9
140020f19:	4d 8b da             	mov    %r10,%r11
140020f1c:	bf 02 00 00 00       	mov    $0x2,%edi
140020f21:	48 2b ca             	sub    %rdx,%rcx
140020f24:	48 d1 e9             	shr    $1,%rcx
140020f27:	48 03 ca             	add    %rdx,%rcx
140020f2a:	48 c1 e9 06          	shr    $0x6,%rcx
140020f2e:	6b c1 64             	imul   $0x64,%ecx,%eax
140020f31:	44 2b c8             	sub    %eax,%r9d
140020f34:	41 83 f9 32          	cmp    $0x32,%r9d
140020f38:	4c 8b c9             	mov    %rcx,%r9
140020f3b:	49 8b c8             	mov    %r8,%rcx
140020f3e:	41 0f 93 c6          	setae  %r14b
140020f42:	49 ba cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r10
140020f49:	cc cc cc
140020f4c:	49 8b c2             	mov    %r10,%rax
140020f4f:	48 f7 e1             	mul    %rcx
140020f52:	49 8b c2             	mov    %r10,%rax
140020f55:	4c 8b c2             	mov    %rdx,%r8
140020f58:	49 f7 e3             	mul    %r11
140020f5b:	eb 31                	jmp    0x140020f8e
140020f5d:	49 8b c2             	mov    %r10,%rax
140020f60:	4c 8b d9             	mov    %rcx,%r11
140020f63:	49 f7 e1             	mul    %r9
140020f66:	48 c1 ea 03          	shr    $0x3,%rdx
140020f6a:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
140020f6d:	03 c0                	add    %eax,%eax
140020f6f:	44 2b c8             	sub    %eax,%r9d
140020f72:	49 8b c2             	mov    %r10,%rax
140020f75:	41 83 f9 05          	cmp    $0x5,%r9d
140020f79:	4c 8b ca             	mov    %rdx,%r9
140020f7c:	41 0f 93 c6          	setae  %r14b
140020f80:	03 fb                	add    %ebx,%edi
140020f82:	49 f7 e0             	mul    %r8
140020f85:	49 8b c2             	mov    %r10,%rax
140020f88:	4c 8b c2             	mov    %rdx,%r8
140020f8b:	48 f7 e1             	mul    %rcx
140020f8e:	48 8b ca             	mov    %rdx,%rcx
140020f91:	49 c1 e8 03          	shr    $0x3,%r8
140020f95:	48 c1 e9 03          	shr    $0x3,%rcx
140020f99:	4c 3b c1             	cmp    %rcx,%r8
140020f9c:	77 bf                	ja     0x140020f5d
140020f9e:	4d 3b cb             	cmp    %r11,%r9
140020fa1:	0f 84 35 01 00 00    	je     0x1400210dc
140020fa7:	45 84 f6             	test   %r14b,%r14b
140020faa:	0f 85 2c 01 00 00    	jne    0x1400210dc
140020fb0:	e9 25 01 00 00       	jmp    0x1400210da
140020fb5:	49 8b c3             	mov    %r11,%rax
140020fb8:	49 bd cd cc cc cc cc 	movabs $0xcccccccccccccccd,%r13
140020fbf:	cc cc cc
140020fc2:	48 f7 e1             	mul    %rcx
140020fc5:	49 8b c3             	mov    %r11,%rax
140020fc8:	4c 8b 5d e8          	mov    -0x18(%rbp),%r11
140020fcc:	4c 8b e2             	mov    %rdx,%r12
140020fcf:	49 f7 e3             	mul    %r11
140020fd2:	49 c1 ec 03          	shr    $0x3,%r12
140020fd6:	4c 8b d2             	mov    %rdx,%r10
140020fd9:	49 c1 ea 03          	shr    $0x3,%r10
140020fdd:	4d 3b e2             	cmp    %r10,%r12
140020fe0:	76 74                	jbe    0x140021056
140020fe2:	44 8a 7d 58          	mov    0x58(%rbp),%r15b
140020fe6:	49 8b c5             	mov    %r13,%rax
140020fe9:	b9 00 00 00 00       	mov    $0x0,%ecx
140020fee:	49 f7 e1             	mul    %r9
140020ff1:	43 8d 04 92          	lea    (%r10,%r10,4),%eax
140020ff5:	03 c0                	add    %eax,%eax
140020ff7:	48 c1 ea 03          	shr    $0x3,%rdx
140020ffb:	44 3b d8             	cmp    %eax,%r11d
140020ffe:	41 0f b6 c7          	movzbl %r15b,%eax
140021002:	4d 8b da             	mov    %r10,%r11
140021005:	0f 44 c8             	cmove  %eax,%ecx
140021008:	41 0f b6 c6          	movzbl %r14b,%eax
14002100c:	44 8a f9             	mov    %cl,%r15b
14002100f:	33 c9                	xor    %ecx,%ecx
140021011:	45 84 c0             	test   %r8b,%r8b
140021014:	45 8a c1             	mov    %r9b,%r8b
140021017:	4c 8b ca             	mov    %rdx,%r9
14002101a:	0f 44 c8             	cmove  %eax,%ecx
14002101d:	8a c2                	mov    %dl,%al
14002101f:	c0 e0 02             	shl    $0x2,%al
140021022:	44 8a f1             	mov    %cl,%r14b
140021025:	03 fb                	add    %ebx,%edi
140021027:	8d 0c 10             	lea    (%rax,%rdx,1),%ecx
14002102a:	49 8b c5             	mov    %r13,%rax
14002102d:	49 f7 e4             	mul    %r12
140021030:	02 c9                	add    %cl,%cl
140021032:	49 8b c5             	mov    %r13,%rax
140021035:	4c 8b e2             	mov    %rdx,%r12
140021038:	44 2a c1             	sub    %cl,%r8b
14002103b:	49 f7 e2             	mul    %r10
14002103e:	49 c1 ec 03          	shr    $0x3,%r12
140021042:	4c 8b d2             	mov    %rdx,%r10
140021045:	49 c1 ea 03          	shr    $0x3,%r10
140021049:	4d 3b e2             	cmp    %r10,%r12
14002104c:	77 98                	ja     0x140020fe6
14002104e:	44 88 7d 58          	mov    %r15b,0x58(%rbp)
140021052:	44 8a 7d 50          	mov    0x50(%rbp),%r15b
140021056:	8a 45 58             	mov    0x58(%rbp),%al
140021059:	84 c0                	test   %al,%al
14002105b:	74 4e                	je     0x1400210ab
14002105d:	49 8b c5             	mov    %r13,%rax
140021060:	49 f7 e3             	mul    %r11
140021063:	4c 8b d2             	mov    %rdx,%r10
140021066:	49 c1 ea 03          	shr    $0x3,%r10
14002106a:	43 8d 0c 92          	lea    (%r10,%r10,4),%ecx
14002106e:	03 c9                	add    %ecx,%ecx
140021070:	44 3b d9             	cmp    %ecx,%r11d
140021073:	75 33                	jne    0x1400210a8
140021075:	49 8b c5             	mov    %r13,%rax
140021078:	4d 8b da             	mov    %r10,%r11
14002107b:	49 f7 e1             	mul    %r9
14002107e:	48 c1 ea 03          	shr    $0x3,%rdx
140021082:	45 84 c0             	test   %r8b,%r8b
140021085:	45 8a c1             	mov    %r9b,%r8b
140021088:	4c 8b ca             	mov    %rdx,%r9