140023d4f:	c3                   	ret
140023d50:	48 83 ec 28          	sub    $0x28,%rsp
140023d54:	48 85 c9             	test   %rcx,%rcx
140023d57:	75 17                	jne    0x140023d70
140023d59:	e8 7e d3 ff ff       	call   0x1400210dc
140023d5e:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140023d64:	e8 eb b1 fe ff       	call   0x14000ef54
140023d69:	b8 16 00 00 00       	mov    $0x16,%eax
140023d6e:	eb 0a                	jmp    0x140023d7a
140023d70:	8b 05 4e e9 02 00    	mov    0x2e94e(%rip),%eax        # 0x1400526c4
140023d76:	89 01                	mov    %eax,(%rcx)
140023d78:	33 c0                	xor    %eax,%eax
140023d7a:	48 83 c4 28          	add    $0x28,%rsp
140023d7e:	c3                   	ret
140023d7f:	cc                   	int3
140023d80:	48 83 ec 28          	sub    $0x28,%rsp
140023d84:	48 85 c9             	test   %rcx,%rcx
140023d87:	75 17                	jne    0x140023da0
140023d89:	e8 4e d3 ff ff       	call   0x1400210dc
140023d8e:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140023d94:	e8 bb b1 fe ff       	call   0x14000ef54
140023d99:	b8 16 00 00 00       	mov    $0x16,%eax
140023d9e:	eb 0a                	jmp    0x140023daa
140023da0:	8b 05 22 e9 02 00    	mov    0x2e922(%rip),%eax        # 0x1400526c8
140023da6:	89 01                	mov    %eax,(%rcx)
140023da8:	33 c0                	xor    %eax,%eax
140023daa:	48 83 c4 28          	add    $0x28,%rsp
140023dae:	c3                   	ret
140023daf:	cc                   	int3
140023db0:	48 83 ec 28          	sub    $0x28,%rsp
140023db4:	48 85 c9             	test   %rcx,%rcx
140023db7:	75 17                	jne    0x140023dd0
140023db9:	e8 1e d3 ff ff       	call   0x1400210dc
140023dbe:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140023dc4:	e8 8b b1 fe ff       	call   0x14000ef54
140023dc9:	b8 16 00 00 00       	mov    $0x16,%eax
140023dce:	eb 0a                	jmp    0x140023dda
140023dd0:	8b 05 ea e8 02 00    	mov    0x2e8ea(%rip),%eax        # 0x1400526c0
140023dd6:	89 01                	mov    %eax,(%rcx)
140023dd8:	33 c0                	xor    %eax,%eax
140023dda:	48 83 c4 28          	add    $0x28,%rsp
140023dde:	c3                   	ret
140023ddf:	cc                   	int3
140023de0:	8b c1                	mov    %ecx,%eax
140023de2:	44 8b c1             	mov    %ecx,%r8d
140023de5:	25 03 00 00 80       	and    $0x80000003,%eax
140023dea:	7d 07                	jge    0x140023df3
140023dec:	ff c8                	dec    %eax
140023dee:	83 c8 fc             	or     $0xfffffffc,%eax
140023df1:	ff c0                	inc    %eax
140023df3:	41 b9 1f 85 eb 51    	mov    $0x51eb851f,%r9d
140023df9:	85 c0                	test   %eax,%eax
140023dfb:	75 1b                	jne    0x140023e18
140023dfd:	41 8b c1             	mov    %r9d,%eax
140023e00:	41 f7 e8             	imul   %r8d
140023e03:	c1 fa 05             	sar    $0x5,%edx
140023e06:	8b ca                	mov    %edx,%ecx
140023e08:	c1 e9 1f             	shr    $0x1f,%ecx
140023e0b:	03 d1                	add    %ecx,%edx
140023e0d:	6b d2 64             	imul   $0x64,%edx,%edx
140023e10:	44 3b c2             	cmp    %edx,%r8d
140023e13:	74 03                	je     0x140023e18
140023e15:	b0 01                	mov    $0x1,%al
140023e17:	c3                   	ret
140023e18:	41 8d 88 6c 07 00 00 	lea    0x76c(%r8),%ecx
140023e1f:	41 8b c1             	mov    %r9d,%eax
140023e22:	f7 e9                	imul   %ecx
140023e24:	c1 fa 07             	sar    $0x7,%edx
140023e27:	8b c2                	mov    %edx,%eax
140023e29:	c1 e8 1f             	shr    $0x1f,%eax
140023e2c:	03 d0                	add    %eax,%edx
140023e2e:	69 c2 90 01 00 00    	imul   $0x190,%edx,%eax
140023e34:	3b c8                	cmp    %eax,%ecx
140023e36:	0f 94 c0             	sete   %al
140023e39:	c3                   	ret
140023e3a:	cc                   	int3
140023e3b:	cc                   	int3
140023e3c:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140023e41:	57                   	push   %rdi
140023e42:	48 83 ec 20          	sub    $0x20,%rsp
140023e46:	48 8b fa             	mov    %rdx,%rdi
140023e49:	48 8b d9             	mov    %rcx,%rbx
140023e4c:	48 85 c9             	test   %rcx,%rcx
140023e4f:	75 18                	jne    0x140023e69
140023e51:	e8 86 d2 ff ff       	call   0x1400210dc
140023e56:	bb 16 00 00 00       	mov    $0x16,%ebx
140023e5b:	89 18                	mov    %ebx,(%rax)
140023e5d:	e8 f2 b0 fe ff       	call   0x14000ef54
140023e62:	8b c3                	mov    %ebx,%eax
140023e64:	e9 60 01 00 00       	jmp    0x140023fc9
140023e69:	66 0f 6f 05 bf 8f 01 	movdqa 0x18fbf(%rip),%xmm0        # 0x14003ce30
140023e70:	00
140023e71:	0f 11 01             	movups %xmm0,(%rcx)
140023e74:	0f 11 41 10          	movups %xmm0,0x10(%rcx)
140023e78:	66 0f 7e 41 20       	movd   %xmm0,0x20(%rcx)
140023e7d:	48 85 ff             	test   %rdi,%rdi
140023e80:	74 cf                	je     0x140023e51
140023e82:	48 8b 02             	mov    (%rdx),%rax
140023e85:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140023e8a:	48 3d 40 57 ff ff    	cmp    $0xffffffffffff5740,%rax
140023e90:	7d 0e                	jge    0x140023ea0
140023e92:	e8 45 d2 ff ff       	call   0x1400210dc
140023e97:	bb 16 00 00 00       	mov    $0x16,%ebx
140023e9c:	89 18                	mov    %ebx,(%rax)
140023e9e:	eb c2                	jmp    0x140023e62
140023ea0:	48 b9 df ef 58 93 07 	movabs $0x79358efdf,%rcx
140023ea7:	00 00 00
140023eaa:	48 3b c1             	cmp    %rcx,%rax
140023ead:	7f e3                	jg     0x140023e92
140023eaf:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140023eb4:	c6 44 24 30 00       	movb   $0x0,0x30(%rsp)
140023eb9:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
140023ebe:	e8 11 01 00 00       	call   0x140023fd4
140023ec3:	4c 8b 44 24 40       	mov    0x40(%rsp),%r8
140023ec8:	4c 8d 15 e9 0d 02 00 	lea    0x20de9(%rip),%r10        # 0x140044cb8
140023ecf:	89 43 14             	mov    %eax,0x14(%rbx)
140023ed2:	49 bb 57 29 51 ce a0 	movabs $0x1845c8a0ce512957,%r11
140023ed9:	c8 45 18
140023edc:	49 8b c3             	mov    %r11,%rax
140023edf:	41 b9 01 00 00 00    	mov    $0x1,%r9d
140023ee5:	49 f7 e8             	imul   %r8
140023ee8:	48 c1 fa 0d          	sar    $0xd,%rdx
140023eec:	48 8b c2             	mov    %rdx,%rax
140023eef:	48 c1 e8 3f          	shr    $0x3f,%rax
140023ef3:	48 03 d0             	add    %rax,%rdx
140023ef6:	48 63 c2             	movslq %edx,%rax
140023ef9:	48 69 c8 80 ae fe ff 	imul   $0xfffffffffffeae80,%rax,%rcx
140023f00:	48 8d 05 e9 0d 02 00 	lea    0x20de9(%rip),%rax        # 0x140044cf0
140023f07:	89 53 1c             	mov    %edx,0x1c(%rbx)
140023f0a:	4c 03 c1             	add    %rcx,%r8
140023f0d:	80 7c 24 30 00       	cmpb   $0x0,0x30(%rsp)
140023f12:	4c 0f 45 d0          	cmovne %rax,%r10
140023f16:	49 8d 4a 04          	lea    0x4(%r10),%rcx
140023f1a:	eb 07                	jmp    0x140023f23
140023f1c:	41 ff c1             	inc    %r9d
140023f1f:	48 8d 49 04          	lea    0x4(%rcx),%rcx
140023f23:	39 11                	cmp    %edx,(%rcx)
140023f25:	7c f5                	jl     0x140023f1c
140023f27:	41 8d 49 ff          	lea    -0x1(%r9),%ecx
140023f2b:	49 8b c3             	mov    %r11,%rax
140023f2e:	89 4b 10             	mov    %ecx,0x10(%rbx)
140023f31:	49 63 c9             	movslq %r9d,%rcx
140023f34:	41 2b 54 8a fc       	sub    -0x4(%r10,%rcx,4),%edx
140023f39:	89 53 0c             	mov    %edx,0xc(%rbx)
140023f3c:	48 f7 2f             	imulq  (%rdi)
140023f3f:	83 63 20 00          	andl   $0x0,0x20(%rbx)
140023f43:	48 8b ca             	mov    %rdx,%rcx
140023f46:	48 c1 f9 0d          	sar    $0xd,%rcx
140023f4a:	48 8b c1             	mov    %rcx,%rax
140023f4d:	48 c1 e8 3f          	shr    $0x3f,%rax
140023f51:	48 03 c8             	add    %rax,%rcx
140023f54:	b8 93 24 49 92       	mov    $0x92492493,%eax
140023f59:	83 c1 04             	add    $0x4,%ecx
140023f5c:	f7 e9                	imul   %ecx
140023f5e:	03 d1                	add    %ecx,%edx
140023f60:	c1 fa 02             	sar    $0x2,%edx
140023f63:	8b c2                	mov    %edx,%eax
140023f65:	c1 e8 1f             	shr    $0x1f,%eax
140023f68:	03 d0                	add    %eax,%edx
140023f6a:	6b c2 07             	imul   $0x7,%edx,%eax
140023f6d:	2b c8                	sub    %eax,%ecx
140023f6f:	48 b8 05 7c f3 6a e2 	movabs $0x48d159e26af37c05,%rax
140023f76:	59 d1 48
140023f79:	49 f7 e8             	imul   %r8
140023f7c:	89 4b 18             	mov    %ecx,0x18(%rbx)
140023f7f:	48 c1 fa 0a          	sar    $0xa,%rdx
140023f83:	48 8b c2             	mov    %rdx,%rax
140023f86:	48 c1 e8 3f          	shr    $0x3f,%rax
140023f8a:	48 03 d0             	add    %rax,%rdx
140023f8d:	48 63 c2             	movslq %edx,%rax
140023f90:	48 69 c8 f0 f1 ff ff 	imul   $0xfffffffffffff1f0,%rax,%rcx
140023f97:	89 53 08             	mov    %edx,0x8(%rbx)
140023f9a:	48 b8 89 88 88 88 88 	movabs $0x8888888888888889,%rax
140023fa1:	88 88 88
140023fa4:	4c 03 c1             	add    %rcx,%r8
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