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
14002108b:	0f 94 c0             	sete   %al
14002108e:	03 fb                	add    %ebx,%edi
140021090:	44 22 f0             	and    %al,%r14b
140021093:	8a c2                	mov    %dl,%al
140021095:	c0 e0 02             	shl    $0x2,%al
140021098:	8d 0c 10             	lea    (%rax,%rdx,1),%ecx
14002109b:	49 8b c5             	mov    %r13,%rax
14002109e:	02 c9                	add    %cl,%cl
1400210a0:	44 2a c1             	sub    %cl,%r8b
1400210a3:	49 f7 e2             	mul    %r10
1400210a6:	eb bb                	jmp    0x140021063
1400210a8:	8a 45 58             	mov    0x58(%rbp),%al
1400210ab:	45 84 f6             	test   %r14b,%r14b
1400210ae:	74 16                	je     0x1400210c6
1400210b0:	41 80 f8 05          	cmp    $0x5,%r8b
1400210b4:	75 10                	jne    0x1400210c6
1400210b6:	44 84 cb             	test   %r9b,%bl
1400210b9:	45 0f b6 c0          	movzbl %r8b,%r8d
1400210bd:	b9 04 00 00 00       	mov    $0x4,%ecx
1400210c2:	44 0f 44 c1          	cmove  %ecx,%r8d
1400210c6:	4d 3b cb             	cmp    %r11,%r9
1400210c9:	75 09                	jne    0x1400210d4
1400210cb:	45 84 ff             	test   %r15b,%r15b
1400210ce:	74 0c                	je     0x1400210dc
1400210d0:	84 c0                	test   %al,%al
1400210d2:	74 08                	je     0x1400210dc
1400210d4:	41 80 f8 05          	cmp    $0x5,%r8b
1400210d8:	73 02                	jae    0x1400210dc
1400210da:	33 db                	xor    %ebx,%ebx
1400210dc:	48 8b 55 48          	mov    0x48(%rbp),%rdx
1400210e0:	8d 04 37             	lea    (%rdi,%rsi,1),%eax
1400210e3:	4a 8d 0c 0b          	lea    (%rbx,%r9,1),%rcx
1400210e7:	83 62 0c 00          	andl   $0x0,0xc(%rdx)
1400210eb:	89 42 08             	mov    %eax,0x8(%rdx)
1400210ee:	48 8b c2             	mov    %rdx,%rax
1400210f1:	48 89 0a             	mov    %rcx,(%rdx)
1400210f4:	48 83 c4 48          	add    $0x48,%rsp
1400210f8:	41 5f                	pop    %r15
1400210fa:	41 5e                	pop    %r14
1400210fc:	41 5d                	pop    %r13
1400210fe:	41 5c                	pop    %r12
140021100:	5f                   	pop    %rdi
140021101:	5e                   	pop    %rsi
140021102:	5b                   	pop    %rbx
140021103:	5d                   	pop    %rbp
140021104:	c3                   	ret
140021105:	90                   	nop
140021106:	90                   	nop
140021107:	90                   	nop
140021108:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14002110d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140021112:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140021117:	57                   	push   %rdi
140021118:	41 54                	push   %r12
14002111a:	41 55                	push   %r13
14002111c:	41 56                	push   %r14
14002111e:	41 57                	push   %r15
140021120:	48 83 ec 30          	sub    $0x30,%rsp
140021124:	4d 8b 11             	mov    (%r9),%r10
140021127:	48 b8 00 00 c1 6f f2 	movabs $0x2386f26fc10000,%rax
14002112e:	86 23 00
140021131:	49 63 69 08          	movslq 0x8(%r9),%rbp
140021135:	48 8b fa             	mov    %rdx,%rdi
140021138:	4c 8b f1             	mov    %rcx,%r14
14002113b:	4c 3b d0             	cmp    %rax,%r10
14002113e:	72 0b                	jb     0x14002114b
140021140:	41 bb 11 00 00 00    	mov    $0x11,%r11d
140021146:	e9 2c 01 00 00       	jmp    0x140021277
14002114b:	48 b8 00 80 c6 a4 7e 	movabs $0x38d7ea4c68000,%rax
140021152:	8d 03 00
140021155:	4c 3b d0             	cmp    %rax,%r10
140021158:	72 0b                	jb     0x140021165
14002115a:	41 bb 10 00 00 00    	mov    $0x10,%r11d
140021160:	e9 12 01 00 00       	jmp    0x140021277
140021165:	48 b8 00 40 7a 10 f3 	movabs $0x5af3107a4000,%rax
14002116c:	5a 00 00
14002116f:	4c 3b d0             	cmp    %rax,%r10
140021172:	72 0b                	jb     0x14002117f
140021174:	41 bb 0f 00 00 00    	mov    $0xf,%r11d
14002117a:	e9 f8 00 00 00       	jmp    0x140021277
14002117f:	48 b8 00 a0 72 4e 18 	movabs $0x9184e72a000,%rax
140021186:	09 00 00
140021189:	4c 3b d0             	cmp    %rax,%r10
14002118c:	72 0b                	jb     0x140021199
14002118e:	41 bb 0e 00 00 00    	mov    $0xe,%r11d
140021194:	e9 de 00 00 00       	jmp    0x140021277
140021199:	48 b8 00 10 a5 d4 e8 	movabs $0xe8d4a51000,%rax
1400211a0:	00 00 00
1400211a3:	4c 3b d0             	cmp    %rax,%r10
1400211a6:	72 0b                	jb     0x1400211b3
1400211a8:	41 bb 0d 00 00 00    	mov    $0xd,%r11d
1400211ae:	e9 c4 00 00 00       	jmp    0x140021277
1400211b3:	48 b8 00 e8 76 48 17 	movabs $0x174876e800,%rax
1400211ba:	00 00 00
1400211bd:	4c 3b d0             	cmp    %rax,%r10
1400211c0:	72 0b                	jb     0x1400211cd
1400211c2:	41 bb 0c 00 00 00    	mov    $0xc,%r11d
1400211c8:	e9 aa 00 00 00       	jmp    0x140021277
1400211cd:	48 b8 00 e4 0b 54 02 	movabs $0x2540be400,%rax
1400211d4:	00 00 00
1400211d7:	4c 3b d0             	cmp    %rax,%r10
1400211da:	72 0b                	jb     0x1400211e7
1400211dc:	41 bb 0b 00 00 00    	mov    $0xb,%r11d
1400211e2:	e9 90 00 00 00       	jmp    0x140021277
1400211e7:	49 81 fa 00 ca 9a 3b 	cmp    $0x3b9aca00,%r10
1400211ee:	72 08                	jb     0x1400211f8
1400211f0:	41 bb 0a 00 00 00    	mov    $0xa,%r11d
1400211f6:	eb 7f                	jmp    0x140021277
1400211f8:	49 81 fa 00 e1 f5 05 	cmp    $0x5f5e100,%r10
1400211ff:	72 08                	jb     0x140021209
140021201:	41 bb 09 00 00 00    	mov    $0x9,%r11d
140021207:	eb 6e                	jmp    0x140021277
140021209:	49 81 fa 80 96 98 00 	cmp    $0x989680,%r10
140021210:	72 08                	jb     0x14002121a
140021212:	41 bb 08 00 00 00    	mov    $0x8,%r11d
140021218:	eb 5d                	jmp    0x140021277
14002121a:	49 81 fa 40 42 0f 00 	cmp    $0xf4240,%r10
140021221:	72 08                	jb     0x14002122b
140021223:	41 bb 07 00 00 00    	mov    $0x7,%r11d
140021229:	eb 4c                	jmp    0x140021277
14002122b:	49 81 fa a0 86 01 00 	cmp    $0x186a0,%r10
140021232:	72 08                	jb     0x14002123c
140021234:	41 bb 06 00 00 00    	mov    $0x6,%r11d
14002123a:	eb 3b                	jmp    0x140021277
14002123c:	49 81 fa 10 27 00 00 	cmp    $0x2710,%r10
140021243:	72 08                	jb     0x14002124d
140021245:	41 bb 05 00 00 00    	mov    $0x5,%r11d
14002124b:	eb 2a                	jmp    0x140021277
14002124d:	49 81 fa e8 03 00 00 	cmp    $0x3e8,%r10
140021254:	72 08                	jb     0x14002125e
140021256:	41 bb 04 00 00 00    	mov    $0x4,%r11d
14002125c:	eb 19                	jmp    0x140021277
14002125e:	49 83 fa 64          	cmp    $0x64,%r10
140021262:	72 08                	jb     0x14002126c
140021264:	41 bb 03 00 00 00    	mov    $0x3,%r11d
14002126a:	eb 0b                	jmp    0x140021277
14002126c:	49 83 fa 0a          	cmp    $0xa,%r10
140021270:	45 1b db             	sbb    %r11d,%r11d
140021273:	41 83 c3 02          	add    $0x2,%r11d
140021277:	8b 84 24 80 00 00 00 	mov    0x80(%rsp),%eax
14002127e:	45 8d 3c 2b          	lea    (%r11,%rbp,1),%r15d
140021282:	41 8d 5f ff          	lea    -0x1(%r15),%ebx
140021286:	41 bd 01 00 00 00    	mov    $0x1,%r13d
14002128c:	44 8b e3             	mov    %ebx,%r12d
14002128f:	85 c0                	test   %eax,%eax
140021291:	75 60                	jne    0x1400212f3
140021293:	8d 48 fd             	lea    -0x3(%rax),%ecx
140021296:	8b c1                	mov    %ecx,%eax
140021298:	41 2b c3             	sub    %r11d,%eax
14002129b:	45 3b dd             	cmp    %r13d,%r11d
14002129e:	0f 45 c8             	cmovne %eax,%ecx
1400212a1:	3b cd                	cmp    %ebp,%ecx
1400212a3:	7f 0f                	jg     0x1400212b4
1400212a5:	33 c0                	xor    %eax,%eax
1400212a7:	45 3b dd             	cmp    %r13d,%r11d
1400212aa:	0f 95 c0             	setne  %al
1400212ad:	83 c0 04             	add    $0x4,%eax
1400212b0:	3b e8                	cmp    %eax,%ebp
1400212b2:	7e 54                	jle    0x140021308
1400212b4:	33 c9                	xor    %ecx,%ecx
1400212b6:	8d 43 63             	lea    0x63(%rbx),%eax
1400212b9:	3d c6 00 00 00       	cmp    $0xc6,%eax
1400212be:	0f 97 c1             	seta   %cl
1400212c1:	33 ed                	xor    %ebp,%ebp
1400212c3:	83 c1 04             	add    $0x4,%ecx
1400212c6:	45 3b dd             	cmp    %r13d,%r11d
1400212c9:	40 0f 97 c5          	seta   %bpl
1400212cd:	03 e9                	add    %ecx,%ebp
1400212cf:	49 8b c8             	mov    %r8,%rcx
1400212d2:	41 03 eb             	add    %r11d,%ebp
1400212d5:	48 2b cf             	sub    %rdi,%rcx
1400212d8:	8b c5                	mov    %ebp,%eax
1400212da:	48 3b c8             	cmp    %rax,%rcx
1400212dd:	0f 8d 6a 02 00 00    	jge    0x14002154d
1400212e3:	4d 89 06             	mov    %r8,(%r14)