140023fa7:	49 f7 e8             	imul   %r8
140023faa:	49 03 d0             	add    %r8,%rdx
140023fad:	48 c1 fa 05          	sar    $0x5,%rdx
140023fb1:	48 8b c2             	mov    %rdx,%rax
140023fb4:	48 c1 e8 3f          	shr    $0x3f,%rax
140023fb8:	48 03 d0             	add    %rax,%rdx
140023fbb:	6b c2 3c             	imul   $0x3c,%edx,%eax
140023fbe:	89 53 04             	mov    %edx,0x4(%rbx)
140023fc1:	44 2b c0             	sub    %eax,%r8d
140023fc4:	44 89 03             	mov    %r8d,(%rbx)
140023fc7:	33 c0                	xor    %eax,%eax
140023fc9:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140023fce:	48 83 c4 20          	add    $0x20,%rsp
140023fd2:	5f                   	pop    %rdi
140023fd3:	c3                   	ret
140023fd4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140023fd9:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140023fde:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
140023fe3:	41 56                	push   %r14
140023fe5:	48 83 ec 20          	sub    $0x20,%rsp
140023fe9:	48 8b 39             	mov    (%rcx),%rdi
140023fec:	4c 8b f2             	mov    %rdx,%r14
140023fef:	48 8b f1             	mov    %rcx,%rsi
140023ff2:	41 ba 1f 85 eb 51    	mov    $0x51eb851f,%r10d
140023ff8:	48 b8 b9 70 12 cb f5 	movabs $0x883148f5cb1270b9,%rax
140023fff:	48 31 88
140024002:	48 f7 ef             	imul   %rdi
140024005:	4c 8d 04 17          	lea    (%rdi,%rdx,1),%r8
140024009:	49 c1 f8 18          	sar    $0x18,%r8
14002400d:	49 8b c0             	mov    %r8,%rax
140024010:	48 c1 e8 3f          	shr    $0x3f,%rax
140024014:	4c 03 c0             	add    %rax,%r8
140024017:	41 8b c2             	mov    %r10d,%eax
14002401a:	41 8d 58 46          	lea    0x46(%r8),%ebx
14002401e:	8d 8b 2b 01 00 00    	lea    0x12b(%rbx),%ecx
140024024:	f7 e9                	imul   %ecx
140024026:	44 8d 4b ff          	lea    -0x1(%rbx),%r9d
14002402a:	8b ca                	mov    %edx,%ecx
14002402c:	c1 f9 07             	sar    $0x7,%ecx
14002402f:	8b c1                	mov    %ecx,%eax
140024031:	c1 e8 1f             	shr    $0x1f,%eax
140024034:	03 c8                	add    %eax,%ecx
140024036:	41 8b c2             	mov    %r10d,%eax
140024039:	41 f7 e9             	imul   %r9d
14002403c:	c1 fa 05             	sar    $0x5,%edx
14002403f:	8b c2                	mov    %edx,%eax
140024041:	c1 e8 1f             	shr    $0x1f,%eax
140024044:	03 d0                	add    %eax,%edx
140024046:	41 8b c1             	mov    %r9d,%eax
140024049:	2b ca                	sub    %edx,%ecx
14002404b:	99                   	cltd
14002404c:	83 e2 03             	and    $0x3,%edx
14002404f:	03 c2                	add    %edx,%eax
140024051:	c1 f8 02             	sar    $0x2,%eax
140024054:	83 c0 ef             	add    $0xffffffef,%eax
140024057:	03 c8                	add    %eax,%ecx
140024059:	49 63 c0             	movslq %r8d,%rax
14002405c:	48 63 d1             	movslq %ecx,%rdx
14002405f:	48 69 c8 6d 01 00 00 	imul   $0x16d,%rax,%rcx
140024066:	48 03 d1             	add    %rcx,%rdx
140024069:	48 69 c2 80 51 01 00 	imul   $0x15180,%rdx,%rax
140024070:	48 2b f8             	sub    %rax,%rdi
140024073:	48 89 3e             	mov    %rdi,(%rsi)
140024076:	79 25                	jns    0x14002409d
140024078:	48 81 c7 80 33 e1 01 	add    $0x1e13380,%rdi
14002407f:	41 8b c9             	mov    %r9d,%ecx
140024082:	48 89 3e             	mov    %rdi,(%rsi)
140024085:	41 8b d9             	mov    %r9d,%ebx
140024088:	e8 53 fd ff ff       	call   0x140023de0
14002408d:	84 c0                	test   %al,%al
14002408f:	74 1b                	je     0x1400240ac
140024091:	48 8d 87 80 51 01 00 	lea    0x15180(%rdi),%rax
140024098:	48 89 06             	mov    %rax,(%rsi)
14002409b:	eb 0b                	jmp    0x1400240a8
14002409d:	8b cb                	mov    %ebx,%ecx
14002409f:	e8 3c fd ff ff       	call   0x140023de0
1400240a4:	84 c0                	test   %al,%al
1400240a6:	74 04                	je     0x1400240ac
1400240a8:	41 c6 06 01          	movb   $0x1,(%r14)
1400240ac:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1400240b1:	8b c3                	mov    %ebx,%eax
1400240b3:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400240b8:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
1400240bd:	48 83 c4 20          	add    $0x20,%rsp
1400240c1:	41 5e                	pop    %r14
1400240c3:	c3                   	ret
1400240c4:	e9 73 fd ff ff       	jmp    0x140023e3c
1400240c9:	cc                   	int3
1400240ca:	cc                   	int3
1400240cb:	cc                   	int3
1400240cc:	48 8b c4             	mov    %rsp,%rax
1400240cf:	48 89 58 08          	mov    %rbx,0x8(%rax)
1400240d3:	48 89 68 18          	mov    %rbp,0x18(%rax)
1400240d7:	48 89 70 20          	mov    %rsi,0x20(%rax)
1400240db:	57                   	push   %rdi
1400240dc:	41 54                	push   %r12
1400240de:	41 55                	push   %r13
1400240e0:	41 56                	push   %r14
1400240e2:	41 57                	push   %r15
1400240e4:	48 83 ec 60          	sub    $0x60,%rsp
1400240e8:	48 8b e9             	mov    %rcx,%rbp
1400240eb:	33 ff                	xor    %edi,%edi
1400240ed:	48 8d 48 10          	lea    0x10(%rax),%rcx
1400240f1:	89 78 10             	mov    %edi,0x10(%rax)
1400240f4:	e8 57 fc ff ff       	call   0x140023d50
1400240f9:	85 c0                	test   %eax,%eax
1400240fb:	0f 85 b0 02 00 00    	jne    0x1400243b1
140024101:	39 bc 24 98 00 00 00 	cmp    %edi,0x98(%rsp)
140024108:	0f 84 9f 02 00 00    	je     0x1400243ad
14002410e:	8b 75 14             	mov    0x14(%rbp),%esi
140024111:	44 8d 7f 01          	lea    0x1(%rdi),%r15d
140024115:	3b 35 e5 a5 02 00    	cmp    0x2a5e5(%rip),%esi        # 0x14004e700
14002411b:	75 0c                	jne    0x140024129
14002411d:	3b 35 ed a5 02 00    	cmp    0x2a5ed(%rip),%esi        # 0x14004e710
140024123:	0f 84 f8 01 00 00    	je     0x140024321
140024129:	39 3d c1 e5 02 00    	cmp    %edi,0x2e5c1(%rip)        # 0x1400526f0
14002412f:	0f 84 65 01 00 00    	je     0x14002429a
140024135:	66 39 3d 5c e6 02 00 	cmp    %di,0x2e65c(%rip)        # 0x140052798
14002413c:	75 67                	jne    0x1400241a5
14002413e:	0f b7 0d 5f e6 02 00 	movzwl 0x2e65f(%rip),%ecx        # 0x1400527a4
140024145:	44 8b c6             	mov    %esi,%r8d
140024148:	0f b7 15 53 e6 02 00 	movzwl 0x2e653(%rip),%edx        # 0x1400527a2
14002414f:	0f b7 05 50 e6 02 00 	movzwl 0x2e650(%rip),%eax        # 0x1400527a6
140024156:	44 0f b7 15 42 e6 02 	movzwl 0x2e642(%rip),%r10d        # 0x1400527a0
14002415d:	00
14002415e:	44 0f b7 1d 36 e6 02 	movzwl 0x2e636(%rip),%r11d        # 0x14005279c
140024165:	00
140024166:	0f b7 1d 31 e6 02 00 	movzwl 0x2e631(%rip),%ebx        # 0x14005279e
14002416d:	44 0f b7 0d 25 e6 02 	movzwl 0x2e625(%rip),%r9d        # 0x14005279a
140024174:	00
140024175:	89 44 24 50          	mov    %eax,0x50(%rsp)
140024179:	89 4c 24 48          	mov    %ecx,0x48(%rsp)
14002417d:	33 c9                	xor    %ecx,%ecx
14002417f:	89 54 24 40          	mov    %edx,0x40(%rsp)
140024183:	41 8b d7             	mov    %r15d,%edx
140024186:	44 89 54 24 38       	mov    %r10d,0x38(%rsp)
14002418b:	89 7c 24 30          	mov    %edi,0x30(%rsp)
14002418f:	44 89 5c 24 28       	mov    %r11d,0x28(%rsp)
140024194:	89 5c 24 20          	mov    %ebx,0x20(%rsp)
140024198:	e8 2b 02 00 00       	call   0x1400243c8
14002419d:	8b 75 14             	mov    0x14(%rbp),%esi
1400241a0:	e9 80 00 00 00       	jmp    0x140024225
1400241a5:	44 0f b7 35 f9 e5 02 	movzwl 0x2e5f9(%rip),%r14d        # 0x1400527a6
1400241ac:	00
1400241ad:	8b ce                	mov    %esi,%ecx
1400241af:	44 0f b7 3d ed e5 02 	movzwl 0x2e5ed(%rip),%r15d        # 0x1400527a4
1400241b6:	00
1400241b7:	44 0f b7 25 e3 e5 02 	movzwl 0x2e5e3(%rip),%r12d        # 0x1400527a2
1400241be:	00
1400241bf:	44 0f b7 2d d9 e5 02 	movzwl 0x2e5d9(%rip),%r13d        # 0x1400527a0
1400241c6:	00
1400241c7:	0f b7 1d cc e5 02 00 	movzwl 0x2e5cc(%rip),%ebx        # 0x14005279a
1400241ce:	e8 0d fc ff ff       	call   0x140023de0
1400241d3:	84 c0                	test   %al,%al
1400241d5:	48 8d 05 24 be fd ff 	lea    -0x241dc(%rip),%rax        # 0x140000000
1400241dc:	74 09                	je     0x1400241e7
1400241de:	8b 8c 98 ec 4c 04 00 	mov    0x44cec(%rax,%rbx,4),%ecx
1400241e5:	eb 07                	jmp    0x1400241ee
1400241e7:	8b 8c 98 b4 4c 04 00 	mov    0x44cb4(%rax,%rbx,4),%ecx
1400241ee:	0f b7 05 a9 e5 02 00 	movzwl 0x2e5a9(%rip),%eax        # 0x14005279e
1400241f5:	03 c1                	add    %ecx,%eax
1400241f7:	89 35 03 a5 02 00    	mov    %esi,0x2a503(%rip)        # 0x14004e700
1400241fd:	89 05 01 a5 02 00    	mov    %eax,0x2a501(%rip)        # 0x14004e704
140024203:	41 6b c5 3c          	imul   $0x3c,%r13d,%eax
140024207:	41 03 c4             	add    %r12d,%eax
14002420a:	6b c8 3c             	imul   $0x3c,%eax,%ecx
14002420d:	41 03 cf             	add    %r15d,%ecx
140024210:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140024216:	69 c1 e8 03 00 00    	imul   $0x3e8,%ecx,%eax
14002421c:	41 03 c6             	add    %r14d,%eax
14002421f:	89 05 e3 a4 02 00    	mov    %eax,0x2a4e3(%rip)        # 0x14004e708
140024225:	66 39 3d 18 e5 02 00 	cmp    %di,0x2e518(%rip)        # 0x140052744
14002422c:	44 0f b7 0d 12 e5 02 	movzwl 0x2e512(%rip),%r9d        # 0x140052746
140024233:	00
140024234:	44 0f b7 15 10 e5 02 	movzwl 0x2e510(%rip),%r10d        # 0x14005274c
14002423b:	00
14002423c:	44 0f b7 1d 0a e5 02 	movzwl 0x2e50a(%rip),%r11d        # 0x14005274e
140024243:	00
140024244:	0f b7 1d 05 e5 02 00 	movzwl 0x2e505(%rip),%ebx        # 0x140052750
14002424b:	44 0f b7 35 ff e4 02 	movzwl 0x2e4ff(%rip),%r14d        # 0x140052752
140024252:	00
140024253:	75 16                	jne    0x14002426b
140024255:	0f b7 05 ee e4 02 00 	movzwl 0x2e4ee(%rip),%eax        # 0x14005274a
14002425c:	41 8b d7             	mov    %r15d,%edx
14002425f:	0f b7 0d e2 e4 02 00 	movzwl 0x2e4e2(%rip),%ecx        # 0x140052748
140024266:	44 8b c7             	mov    %edi,%r8d
140024269:	eb 0e                	jmp    0x140024279
14002426b:	44 0f b7 05 d7 e4 02 	movzwl 0x2e4d7(%rip),%r8d        # 0x14005274a
140024272:	00
140024273:	8b d7                	mov    %edi,%edx
140024275:	8b c7                	mov    %edi,%eax
140024277:	8b cf                	mov    %edi,%ecx
140024279:	44 89 74 24 50       	mov    %r14d,0x50(%rsp)
14002427e:	89 5c 24 48          	mov    %ebx,0x48(%rsp)
140024282:	44 89 5c 24 40       	mov    %r11d,0x40(%rsp)
140024287:	44 89 54 24 38       	mov    %r10d,0x38(%rsp)
14002428c:	44 89 44 24 30       	mov    %r8d,0x30(%rsp)
140024291:	44 8b c6             	mov    %esi,%r8d
140024294:	89 4c 24 28          	mov    %ecx,0x28(%rsp)
140024298:	eb 7b                	jmp    0x140024315
14002429a:	89 7c 24 50          	mov    %edi,0x50(%rsp)
14002429e:	8b c7                	mov    %edi,%eax
1400242a0:	89 7c 24 48          	mov    %edi,0x48(%rsp)
1400242a4:	44 8b cf             	mov    %edi,%r9d
1400242a7:	89 7c 24 40          	mov    %edi,0x40(%rsp)
1400242ab:	83 fe 6b             	cmp    $0x6b,%esi
1400242ae:	bb 02 00 00 00       	mov    $0x2,%ebx
1400242b3:	44 8b c6             	mov    %esi,%r8d
1400242b6:	0f 9d c0             	setge  %al
1400242b9:	89 5c 24 38          	mov    %ebx,0x38(%rsp)
1400242bd:	41 03 c7             	add    %r15d,%eax
1400242c0:	89 7c 24 30          	mov    %edi,0x30(%rsp)
1400242c4:	83 fe 6b             	cmp    $0x6b,%esi
1400242c7:	89 7c 24 28          	mov    %edi,0x28(%rsp)
1400242cb:	41 8b d7             	mov    %r15d,%edx
1400242ce:	89 44 24 20          	mov    %eax,0x20(%rsp)
1400242d2:	41 0f 9c c1          	setl   %r9b
1400242d6:	33 c9                	xor    %ecx,%ecx
1400242d8:	41 83 c1 03          	add    $0x3,%r9d
1400242dc:	e8 e7 00 00 00       	call   0x1400243c8
1400242e1:	44 8b 45 14          	mov    0x14(%rbp),%r8d
1400242e5:	8d 43 03             	lea    0x3(%rbx),%eax
1400242e8:	89 7c 24 50          	mov    %edi,0x50(%rsp)
1400242ec:	83 fe 6b             	cmp    $0x6b,%esi
1400242ef:	89 7c 24 48          	mov    %edi,0x48(%rsp)
1400242f3:	44 8b cf             	mov    %edi,%r9d
1400242f6:	89 7c 24 40          	mov    %edi,0x40(%rsp)
1400242fa:	41 0f 9d c1          	setge  %r9b
1400242fe:	89 5c 24 38          	mov    %ebx,0x38(%rsp)
140024302:	41 0f 4d c7          	cmovge %r15d,%eax
140024306:	89 7c 24 30          	mov    %edi,0x30(%rsp)
14002430a:	41 83 c1 0a          	add    $0xa,%r9d
14002430e:	89 7c 24 28          	mov    %edi,0x28(%rsp)
140024312:	41 8b d7             	mov    %r15d,%edx
140024315:	41 8b cf             	mov    %r15d,%ecx
140024318:	89 44 24 20          	mov    %eax,0x20(%rsp)
14002431c:	e8 a7 00 00 00       	call   0x1400243c8
140024321:	44 8b 05 dc a3 02 00 	mov    0x2a3dc(%rip),%r8d        # 0x14004e704
140024328:	8b 0d e6 a3 02 00    	mov    0x2a3e6(%rip),%ecx        # 0x14004e714
14002432e:	8b 45 1c             	mov    0x1c(%rbp),%eax
140024331:	44 3b c1             	cmp    %ecx,%r8d
140024334:	7d 33                	jge    0x140024369
140024336:	41 3b c0             	cmp    %r8d,%eax
140024339:	7c 72                	jl     0x1400243ad
14002433b:	3b c1                	cmp    %ecx,%eax
14002433d:	7f 6e                	jg     0x1400243ad
14002433f:	41 3b c0             	cmp    %r8d,%eax
140024342:	7e 37                	jle    0x14002437b
140024344:	3b c1                	cmp    %ecx,%eax
140024346:	7d 33                	jge    0x14002437b
140024348:	41 8b c7             	mov    %r15d,%eax
14002434b:	4c 8d 5c 24 60       	lea    0x60(%rsp),%r11
140024350:	49 8b 5b 30          	mov    0x30(%r11),%rbx
140024354:	49 8b 6b 40          	mov    0x40(%r11),%rbp
140024358:	49 8b 73 48          	mov    0x48(%r11),%rsi
14002435c:	49 8b e3             	mov    %r11,%rsp
14002435f:	41 5f                	pop    %r15
140024361:	41 5e                	pop    %r14
140024363:	41 5d                	pop    %r13
140024365:	41 5c                	pop    %r12
140024367:	5f                   	pop    %rdi
140024368:	c3                   	ret
140024369:	3b c1                	cmp    %ecx,%eax
14002436b:	7c db                	jl     0x140024348
14002436d:	41 3b c0             	cmp    %r8d,%eax
140024370:	7f d6                	jg     0x140024348
140024372:	3b c1                	cmp    %ecx,%eax
140024374:	7e 05                	jle    0x14002437b
140024376:	41 3b c0             	cmp    %r8d,%eax
140024379:	7c 32                	jl     0x1400243ad
14002437b:	6b 4d 08 3c          	imul   $0x3c,0x8(%rbp),%ecx
14002437f:	03 4d 04             	add    0x4(%rbp),%ecx
140024382:	6b d1 3c             	imul   $0x3c,%ecx,%edx
140024385:	03 55 00             	add    0x0(%rbp),%edx
140024388:	69 ca e8 03 00 00    	imul   $0x3e8,%edx,%ecx
14002438e:	41 3b c0             	cmp    %r8d,%eax
140024391:	75 0e                	jne    0x1400243a1
140024393:	3b 0d 6f a3 02 00    	cmp    0x2a36f(%rip),%ecx        # 0x14004e708
140024399:	40 0f 9d c7          	setge  %dil
14002439d:	8b c7                	mov    %edi,%eax
14002439f:	eb aa                	jmp    0x14002434b
1400243a1:	3b 0d 71 a3 02 00    	cmp    0x2a371(%rip),%ecx        # 0x14004e718
1400243a7:	40 0f 9c c7          	setl   %dil
1400243ab:	eb f0                	jmp    0x14002439d
1400243ad:	33 c0                	xor    %eax,%eax
1400243af:	eb 9a                	jmp    0x14002434b
1400243b1:	45 33 c9             	xor    %r9d,%r9d
1400243b4:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
1400243b9:	45 33 c0             	xor    %r8d,%r8d
1400243bc:	33 d2                	xor    %edx,%edx
1400243be:	33 c9                	xor    %ecx,%ecx
1400243c0:	e8 df ab fe ff       	call   0x14000efa4
1400243c5:	cc                   	int3
1400243c6:	cc                   	int3
1400243c7:	cc                   	int3
1400243c8:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1400243cd:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
1400243d2:	56                   	push   %rsi
1400243d3:	57                   	push   %rdi
1400243d4:	41 56                	push   %r14
1400243d6:	48 83 ec 30          	sub    $0x30,%rsp
1400243da:	83 64 24 50 00       	andl   $0x0,0x50(%rsp)
1400243df:	44 8b f1             	mov    %ecx,%r14d
1400243e2:	41 8b c8             	mov    %r8d,%ecx
1400243e5:	49 63 d9             	movslq %r9d,%rbx
1400243e8:	41 8b f0             	mov    %r8d,%esi
1400243eb:	8b fa                	mov    %edx,%edi
1400243ed:	e8 ee f9 ff ff       	call   0x140023de0
1400243f2:	4c 8d 1d 07 bc fd ff 	lea    -0x243f9(%rip),%r11        # 0x140000000
1400243f9:	40 8a e8             	mov    %al,%bpl
1400243fc:	83 ff 01             	cmp    $0x1,%edi
1400243ff:	0f 85 d2 00 00 00    	jne    0x1400244d7
140024405:	84 c0                	test   %al,%al
140024407:	74 0a                	je     0x140024413
140024409:	45 8b 94 9b ec 4c 04 	mov    0x44cec(%r11,%rbx,4),%r10d
140024410:	00
140024411:	eb 08                	jmp    0x14002441b
140024413:	45 8b 94 9b b4 4c 04 	mov    0x44cb4(%r11,%rbx,4),%r10d
14002441a:	00
14002441b:	41 ff c2             	inc    %r10d
14002441e:	44 8d 46 ff          	lea    -0x1(%rsi),%r8d
140024422:	bf 1f 85 eb 51       	mov    $0x51eb851f,%edi
140024427:	8d 8e 2b 01 00 00    	lea    0x12b(%rsi),%ecx
14002442d:	8b c7                	mov    %edi,%eax
14002442f:	f7 e9                	imul   %ecx
140024431:	8b c7                	mov    %edi,%eax
140024433:	44 8b ca             	mov    %edx,%r9d
140024436:	41 f7 e8             	imul   %r8d
140024439:	41 8b c0             	mov    %r8d,%eax
14002443c:	41 c1 f9 07          	sar    $0x7,%r9d
140024440:	c1 fa 05             	sar    $0x5,%edx
140024443:	41 8b c9             	mov    %r9d,%ecx
140024446:	c1 e9 1f             	shr    $0x1f,%ecx
140024449:	44 03 c9             	add    %ecx,%r9d
14002444c:	8b ca                	mov    %edx,%ecx
14002444e:	c1 e9 1f             	shr    $0x1f,%ecx
140024451:	03 d1                	add    %ecx,%edx
140024453:	69 ce 6d 01 00 00    	imul   $0x16d,%esi,%ecx
140024459:	44 2b ca             	sub    %edx,%r9d
14002445c:	99                   	cltd
14002445d:	83 e2 03             	and    $0x3,%edx
140024460:	81 c1 25 9c ff ff    	add    $0xffff9c25,%ecx
140024466:	44 8d 04 02          	lea    (%rdx,%rax,1),%r8d
14002446a:	b8 93 24 49 92       	mov    $0x92492493,%eax
14002446f:	41 c1 f8 02          	sar    $0x2,%r8d
140024473:	45 03 c2             	add    %r10d,%r8d
140024476:	45 03 c1             	add    %r9d,%r8d
140024479:	44 03 c1             	add    %ecx,%r8d
14002447c:	41 f7 e8             	imul   %r8d
14002447f:	41 03 d0             	add    %r8d,%edx