140016cfa:	41 69 e8 05 d1 04 00 	imul   $0x4d105,%r8d,%ebp
140016d01:	4c 89 6c 24 40       	mov    %r13,0x40(%rsp)
140016d06:	44 8d 2c 12          	lea    (%rdx,%rdx,1),%r13d
140016d0a:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
140016d0f:	4c 89 7c 24 30       	mov    %r15,0x30(%rsp)
140016d14:	c1 fd 14             	sar    $0x14,%ebp
140016d17:	2b cd                	sub    %ebp,%ecx
140016d19:	69 f9 4f 93 1a 00    	imul   $0x1a934f,%ecx,%edi
140016d1f:	48 63 c1             	movslq %ecx,%rax
140016d22:	b9 3f 00 00 00       	mov    $0x3f,%ecx
140016d27:	4d 8b 24 c4          	mov    (%r12,%rax,8),%r12
140016d2b:	41 8b c5             	mov    %r13d,%eax
140016d2e:	83 c8 01             	or     $0x1,%eax
140016d31:	c1 ff 13             	sar    $0x13,%edi
140016d34:	41 03 f8             	add    %r8d,%edi
140016d37:	49 8b f4             	mov    %r12,%rsi
140016d3a:	2b cf                	sub    %edi,%ecx
140016d3c:	48 d3 ee             	shr    %cl,%rsi
140016d3f:	8b cf                	mov    %edi,%ecx
140016d41:	d3 e0                	shl    %cl,%eax
140016d43:	8b c8                	mov    %eax,%ecx
140016d45:	49 8b c4             	mov    %r12,%rax
140016d48:	48 c1 e1 20          	shl    $0x20,%rcx
140016d4c:	48 f7 e1             	mul    %rcx
140016d4f:	48 8b c2             	mov    %rdx,%rax
140016d52:	48 c1 e8 20          	shr    $0x20,%rax
140016d56:	85 d2                	test   %edx,%edx
140016d58:	89 44 24 20          	mov    %eax,0x20(%rsp)
140016d5c:	4c 8b d8             	mov    %rax,%r11
140016d5f:	0f 94 44 24 24       	sete   0x24(%rsp)
140016d64:	45 33 c9             	xor    %r9d,%r9d
140016d67:	4c 69 d0 1f 85 eb 51 	imul   $0x51eb851f,%rax,%r10
140016d6e:	45 8d 71 40          	lea    0x40(%r9),%r14d
140016d72:	49 c1 ea 25          	shr    $0x25,%r10
140016d76:	45 8d 79 20          	lea    0x20(%r9),%r15d
140016d7a:	41 6b c2 64          	imul   $0x64,%r10d,%eax
140016d7e:	44 2b d8             	sub    %eax,%r11d
140016d81:	44 3b de             	cmp    %esi,%r11d
140016d84:	0f 83 be 00 00 00    	jae    0x140016e48
140016d8a:	45 85 db             	test   %r11d,%r11d
140016d8d:	0f 85 ed 00 00 00    	jne    0x140016e80
140016d93:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
140016d98:	80 f3 01             	xor    $0x1,%bl
140016d9b:	48 c1 e8 20          	shr    $0x20,%rax
140016d9f:	84 c3                	test   %al,%bl
140016da1:	0f 84 d9 00 00 00    	je     0x140016e80
140016da7:	41 ff ca             	dec    %r10d
140016daa:	41 bb 64 00 00 00    	mov    $0x64,%r11d
140016db0:	d1 ee                	shr    $1,%esi
140016db2:	43 8d 04 92          	lea    (%r10,%r10,4),%eax
140016db6:	44 2b de             	sub    %esi,%r11d
140016db9:	41 83 c3 05          	add    $0x5,%r11d
140016dbd:	41 69 d3 9a 19 00 00 	imul   $0x199a,%r11d,%edx
140016dc4:	41 0f b6 db          	movzbl %r11b,%ebx
140016dc8:	f6 d3                	not    %bl
140016dca:	80 e3 01             	and    $0x1,%bl
140016dcd:	8b ca                	mov    %edx,%ecx
140016dcf:	c1 e9 10             	shr    $0x10,%ecx
140016dd2:	44 8d 04 41          	lea    (%rcx,%rax,2),%r8d
140016dd6:	66 81 fa 9a 19       	cmp    $0x199a,%dx
140016ddb:	73 32                	jae    0x140016e0f
140016ddd:	44 2b f7             	sub    %edi,%r14d
140016de0:	41 8b d5             	mov    %r13d,%edx
140016de3:	49 0f af d4          	imul   %r12,%rdx
140016de7:	41 0f b6 ce          	movzbl %r14b,%ecx
140016deb:	44 2b ff             	sub    %edi,%r15d
140016dee:	48 8b c2             	mov    %rdx,%rax
140016df1:	48 d3 e8             	shr    %cl,%rax
140016df4:	41 0f b6 cf          	movzbl %r15b,%ecx
140016df8:	48 d3 ea             	shr    %cl,%rdx
140016dfb:	24 01                	and    $0x1,%al
140016dfd:	3a c3                	cmp    %bl,%al
140016dff:	75 0b                	jne    0x140016e0c
140016e01:	85 d2                	test   %edx,%edx
140016e03:	41 0f 94 c1          	sete   %r9b
140016e07:	45 85 c8             	test   %r9d,%r8d
140016e0a:	74 03                	je     0x140016e0f
140016e0c:	41 ff c8             	dec    %r8d
140016e0f:	8b c5                	mov    %ebp,%eax
140016e11:	48 c1 e0 20          	shl    $0x20,%rax
140016e15:	41 8b c8             	mov    %r8d,%ecx
140016e18:	48 0b c1             	or     %rcx,%rax
140016e1b:	4c 8b 74 24 38       	mov    0x38(%rsp),%r14
140016e20:	4c 8b 6c 24 40       	mov    0x40(%rsp),%r13
140016e25:	4c 8b 64 24 48       	mov    0x48(%rsp),%r12
140016e2a:	48 8b 7c 24 50       	mov    0x50(%rsp),%rdi
140016e2f:	48 8b 74 24 78       	mov    0x78(%rsp),%rsi
140016e34:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
140016e39:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
140016e3e:	4c 8b 7c 24 30       	mov    0x30(%rsp),%r15
140016e43:	48 83 c4 58          	add    $0x58,%rsp
140016e47:	c3                   	ret
140016e48:	0f 87 62 ff ff ff    	ja     0x140016db0
140016e4e:	45 8d 45 ff          	lea    -0x1(%r13),%r8d
140016e52:	0f b6 c3             	movzbl %bl,%eax
140016e55:	4d 0f af c4          	imul   %r12,%r8
140016e59:	41 8b ce             	mov    %r14d,%ecx
140016e5c:	2b cf                	sub    %edi,%ecx
140016e5e:	49 8b d0             	mov    %r8,%rdx
140016e61:	48 d3 ea             	shr    %cl,%rdx
140016e64:	41 8b cf             	mov    %r15d,%ecx
140016e67:	2b cf                	sub    %edi,%ecx
140016e69:	80 e2 01             	and    $0x1,%dl
140016e6c:	49 d3 e8             	shr    %cl,%r8
140016e6f:	41 8b c9             	mov    %r9d,%ecx
140016e72:	45 85 c0             	test   %r8d,%r8d
140016e75:	0f 44 c8             	cmove  %eax,%ecx
140016e78:	0a ca                	or     %dl,%cl
140016e7a:	0f 84 30 ff ff ff    	je     0x140016db0
140016e80:	41 69 ca 29 5c 8f c2 	imul   $0xc28f5c29,%r10d,%ecx
140016e87:	8b c1                	mov    %ecx,%eax
140016e89:	c1 e9 02             	shr    $0x2,%ecx
140016e8c:	c1 e0 1e             	shl    $0x1e,%eax
140016e8f:	0b c1                	or     %ecx,%eax
140016e91:	3d 28 5c 8f 02       	cmp    $0x28f5c28,%eax
140016e96:	77 26                	ja     0x140016ebe
140016e98:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140016e9f:	00
140016ea0:	69 c8 29 5c 8f c2    	imul   $0xc28f5c29,%eax,%ecx
140016ea6:	44 8b d0             	mov    %eax,%r10d
140016ea9:	41 83 c1 02          	add    $0x2,%r9d
140016ead:	8b c1                	mov    %ecx,%eax
140016eaf:	c1 e9 02             	shr    $0x2,%ecx
140016eb2:	c1 e0 1e             	shl    $0x1e,%eax
140016eb5:	0b c1                	or     %ecx,%eax
140016eb7:	3d 28 5c 8f 02       	cmp    $0x28f5c28,%eax
140016ebc:	76 e2                	jbe    0x140016ea0
140016ebe:	41 69 c2 cd cc cc cc 	imul   $0xcccccccd,%r10d,%eax
140016ec5:	8b c8                	mov    %eax,%ecx
140016ec7:	d1 e8                	shr    $1,%eax
140016ec9:	c1 e1 1f             	shl    $0x1f,%ecx
140016ecc:	0b c8                	or     %eax,%ecx
140016ece:	41 8b c1             	mov    %r9d,%eax
140016ed1:	81 f9 99 99 99 19    	cmp    $0x19999999,%ecx
140016ed7:	44 0f 46 d1          	cmovbe %ecx,%r10d
140016edb:	83 c8 01             	or     $0x1,%eax
140016ede:	81 f9 99 99 99 19    	cmp    $0x19999999,%ecx
140016ee4:	44 89 54 24 20       	mov    %r10d,0x20(%rsp)
140016ee9:	41 0f 47 c1          	cmova  %r9d,%eax
140016eed:	ff c0                	inc    %eax
140016eef:	03 c5                	add    %ebp,%eax
140016ef1:	89 44 24 24          	mov    %eax,0x24(%rsp)
140016ef5:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
140016efa:	e9 1c ff ff ff       	jmp    0x140016e1b
140016eff:	cc                   	int3
140016f00:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016f05:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
140016f0a:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140016f0f:	57                   	push   %rdi
140016f10:	41 54                	push   %r12
140016f12:	41 55                	push   %r13
140016f14:	41 56                	push   %r14
140016f16:	41 57                	push   %r15
140016f18:	48 83 ec 70          	sub    $0x70,%rsp
140016f1c:	48 8b 05 1d 11 06 00 	mov    0x6111d(%rip),%rax        # 0x140078040
140016f23:	48 33 c4             	xor    %rsp,%rax
140016f26:	48 89 44 24 60       	mov    %rax,0x60(%rsp)
140016f2b:	66 48 0f 7e c8       	movq   %xmm1,%rax
140016f30:	48 8b f9             	mov    %rcx,%rdi
140016f33:	48 8b f0             	mov    %rax,%rsi
140016f36:	48 b9 ff ff ff ff ff 	movabs $0xfffffffffffff,%rcx
140016f3d:	ff 0f 00
140016f40:	48 23 f1             	and    %rcx,%rsi
140016f43:	48 c1 e8 34          	shr    $0x34,%rax
140016f47:	25 ff 07 00 00       	and    $0x7ff,%eax
140016f4c:	0f 84 f6 00 00 00    	je     0x140017048
140016f52:	8d a8 cd fb ff ff    	lea    -0x433(%rax),%ebp
140016f58:	48 85 f6             	test   %rsi,%rsi
140016f5b:	0f 85 d8 00 00 00    	jne    0x140017039
140016f61:	69 dd 09 a2 09 00    	imul   $0x9a209,%ebp,%ebx
140016f67:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140016f6c:	81 eb 1f fe 03 00    	sub    $0x3fe1f,%ebx
140016f72:	c1 fb 15             	sar    $0x15,%ebx
140016f75:	8b d3                	mov    %ebx,%edx
140016f77:	f7 da                	neg    %edx
140016f79:	69 f2 4f 93 1a 00    	imul   $0x1a934f,%edx,%esi
140016f7f:	c1 fe 13             	sar    $0x13,%esi
140016f82:	03 f5                	add    %ebp,%esi
140016f84:	e8 77 ce fe ff       	call   0x140003e00
140016f89:	4c 8b 4c 24 38       	mov    0x38(%rsp),%r9
140016f8e:	b9 0b 00 00 00       	mov    $0xb,%ecx
140016f93:	2b ce                	sub    %esi,%ecx
140016f95:	49 8b c1             	mov    %r9,%rax
140016f98:	48 c1 e8 36          	shr    $0x36,%rax
140016f9c:	4d 8b c1             	mov    %r9,%r8
140016f9f:	4c 2b c0             	sub    %rax,%r8
140016fa2:	49 8b d1             	mov    %r9,%rdx
140016fa5:	48 c1 ea 35          	shr    $0x35,%rdx
140016fa9:	8d 45 fe             	lea    -0x2(%rbp),%eax
140016fac:	49 03 d1             	add    %r9,%rdx
140016faf:	49 d3 e8             	shr    %cl,%r8
140016fb2:	48 d3 ea             	shr    %cl,%rdx
140016fb5:	83 f8 01             	cmp    $0x1,%eax
140016fb8:	48 b8 cd cc cc cc cc 	movabs $0xcccccccccccccccd,%rax
140016fbf:	cc cc cc
140016fc2:	4d 8d 50 01          	lea    0x1(%r8),%r10
140016fc6:	4d 0f 46 d0          	cmovbe %r8,%r10
140016fca:	48 f7 e2             	mul    %rdx
140016fcd:	48 c1 ea 03          	shr    $0x3,%rdx
140016fd1:	48 89 17             	mov    %rdx,(%rdi)
140016fd4:	48 8d 04 92          	lea    (%rdx,%rdx,4),%rax
140016fd8:	48 03 c0             	add    %rax,%rax
140016fdb:	49 3b c2             	cmp    %r10,%rax
140016fde:	72 16                	jb     0x140016ff6
140016fe0:	8d 43 01             	lea    0x1(%rbx),%eax
140016fe3:	48 8b cf             	mov    %rdi,%rcx
140016fe6:	89 47 08             	mov    %eax,0x8(%rdi)
140016fe9:	e8 22 cf fe ff       	call   0x140003f10
140016fee:	01 47 08             	add    %eax,0x8(%rdi)
140016ff1:	e9 b7 01 00 00       	jmp    0x1400171ad
140016ff6:	b9 0a 00 00 00       	mov    $0xa,%ecx
140016ffb:	89 5f 08             	mov    %ebx,0x8(%rdi)
140016ffe:	2b ce                	sub    %esi,%ecx
140017000:	8d 45 4d             	lea    0x4d(%rbp),%eax
140017003:	49 d3 e9             	shr    %cl,%r9
140017006:	49 ff c1             	inc    %r9
140017009:	49 d1 e9             	shr    $1,%r9
14001700c:	4c 89 0f             	mov    %r9,(%rdi)
14001700f:	85 c0                	test   %eax,%eax
140017011:	75 14                	jne    0x140017027
140017013:	41 f6 c1 01          	test   $0x1,%r9b
140017017:	49 8d 41 ff          	lea    -0x1(%r9),%rax
14001701b:	4c 0f 45 c8          	cmovne %rax,%r9
14001701f:	4c 89 0f             	mov    %r9,(%rdi)
140017022:	e9 86 01 00 00       	jmp    0x1400171ad
140017027:	4d 3b ca             	cmp    %r10,%r9
14001702a:	0f 83 7d 01 00 00    	jae    0x1400171ad
140017030:	49 8d 41 01          	lea    0x1(%r9),%rax
140017034:	e9 71 01 00 00       	jmp    0x1400171aa
140017039:	48 b8 00 00 00 00 00 	movabs $0x10000000000000,%rax
140017040:	00 10 00
140017043:	48 0b f0             	or     %rax,%rsi
140017046:	eb 19                	jmp    0x140017061
140017048:	48 85 f6             	test   %rsi,%rsi
14001704b:	75 0f                	jne    0x14001705c
14001704d:	45 33 db             	xor    %r11d,%r11d
140017050:	4c 89 1f             	mov    %r11,(%rdi)
140017053:	44 89 5f 08          	mov    %r11d,0x8(%rdi)
140017057:	e9 51 01 00 00       	jmp    0x1400171ad
14001705c:	bd ce fb ff ff       	mov    $0xfffffbce,%ebp
140017061:	40 0f b6 c6          	movzbl %sil,%eax
140017065:	44 69 ed 05 d1 04 00 	imul   $0x4d105,%ebp,%r13d
14001706c:	f6 d0                	not    %al
14001706e:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
140017073:	bb 02 00 00 00       	mov    $0x2,%ebx
140017078:	88 44 24 20          	mov    %al,0x20(%rsp)
14001707c:	41 c1 fd 14          	sar    $0x14,%r13d
140017080:	41 2b dd             	sub    %r13d,%ebx
140017083:	8b d3                	mov    %ebx,%edx
140017085:	e8 76 cd fe ff       	call   0x140003e00
14001708a:	44 69 e3 4f 93 1a 00 	imul   $0x1a934f,%ebx,%r12d
140017091:	4c 8d 0c 36          	lea    (%rsi,%rsi,1),%r9
140017095:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
14001709a:	45 33 db             	xor    %r11d,%r11d
14001709d:	b9 3f 00 00 00       	mov    $0x3f,%ecx
1400170a2:	4c 89 4c 24 28       	mov    %r9,0x28(%rsp)
1400170a7:	4d 8b c1             	mov    %r9,%r8
1400170aa:	48 8b c3             	mov    %rbx,%rax
1400170ad:	49 83 c8 01          	or     $0x1,%r8
1400170b1:	41 c1 fc 13          	sar    $0x13,%r12d
1400170b5:	45 8d 7b 40          	lea    0x40(%r11),%r15d
1400170b9:	44 03 e5             	add    %ebp,%r12d
1400170bc:	48 8b eb             	mov    %rbx,%rbp
1400170bf:	41 2b cc             	sub    %r12d,%ecx
1400170c2:	48 d3 ed             	shr    %cl,%rbp
1400170c5:	41 8b cc             	mov    %r12d,%ecx
1400170c8:	49 d3 e0             	shl    %cl,%r8
1400170cb:	49 f7 e0             	mul    %r8
1400170ce:	48 8b c8             	mov    %rax,%rcx
1400170d1:	4c 8b d2             	mov    %rdx,%r10
1400170d4:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
1400170d9:	49 f7 e0             	mul    %r8
1400170dc:	48 b8 cf f7 53 e3 a5 	movabs $0x20c49ba5e353f7cf,%rax
1400170e3:	9b c4 20
1400170e6:	48 03 ca             	add    %rdx,%rcx
1400170e9:	4d 13 d3             	adc    %r11,%r10
1400170ec:	48 85 c9             	test   %rcx,%rcx
1400170ef:	0f 94 c1             	sete   %cl
1400170f2:	49 f7 e2             	mul    %r10
1400170f5:	4c 8b f2             	mov    %rdx,%r14
1400170f8:	49 c1 ee 07          	shr    $0x7,%r14
1400170fc:	41 69 c6 e8 03 00 00 	imul   $0x3e8,%r14d,%eax
140017103:	4c 89 37             	mov    %r14,(%rdi)
140017106:	44 2b d0             	sub    %eax,%r10d
140017109:	44 3b d5             	cmp    %ebp,%r10d
14001710c:	0f 83 c9 00 00 00    	jae    0x1400171db
140017112:	45 85 d2             	test   %r10d,%r10d
140017115:	0f 85 0f 01 00 00    	jne    0x14001722a
14001711b:	40 84 f1             	test   %sil,%cl
14001711e:	0f 84 06 01 00 00    	je     0x14001722a
140017124:	41 ba e8 03 00 00    	mov    $0x3e8,%r10d
14001712a:	49 ff ce             	dec    %r14
14001712d:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140017132:	d1 ed                	shr    $1,%ebp
140017134:	4b 8d 04 b6          	lea    (%r14,%r14,4),%rax
140017138:	44 2b d5             	sub    %ebp,%r10d
14001713b:	44 89 6f 08          	mov    %r13d,0x8(%rdi)
14001713f:	41 83 c2 32          	add    $0x32,%r10d
140017143:	41 69 d2 90 02 00 00 	imul   $0x290,%r10d,%edx
14001714a:	45 0f b6 ca          	movzbl %r10b,%r9d
14001714e:	41 80 e1 01          	and    $0x1,%r9b
140017152:	8b ca                	mov    %edx,%ecx
140017154:	48 c1 e9 10          	shr    $0x10,%rcx
140017158:	4c 8d 04 41          	lea    (%rcx,%rax,2),%r8
14001715c:	4c 89 07             	mov    %r8,(%rdi)
14001715f:	66 81 fa 90 02       	cmp    $0x290,%dx
140017164:	73 47                	jae    0x1400171ad
140017166:	48 0f af 5c 24 28    	imul   0x28(%rsp),%rbx
14001716c:	45 2b fc             	sub    %r12d,%r15d
14001716f:	48 8b c6             	mov    %rsi,%rax
140017172:	48 f7 64 24 28       	mulq   0x28(%rsp)
140017177:	41 8b cf             	mov    %r15d,%ecx
14001717a:	48 03 da             	add    %rdx,%rbx
14001717d:	48 8b d3             	mov    %rbx,%rdx
140017180:	48 d3 ea             	shr    %cl,%rdx
140017183:	41 8b cc             	mov    %r12d,%ecx
140017186:	48 d3 e3             	shl    %cl,%rbx
140017189:	80 e2 01             	and    $0x1,%dl
14001718c:	41 8b cf             	mov    %r15d,%ecx
14001718f:	48 d3 e8             	shr    %cl,%rax
140017192:	48 0b d8             	or     %rax,%rbx
140017195:	41 3a d1             	cmp    %r9b,%dl
140017198:	75 0c                	jne    0x1400171a6
14001719a:	48 85 db             	test   %rbx,%rbx
14001719d:	41 0f 94 c3          	sete   %r11b
1400171a1:	45 85 d8             	test   %r11d,%r8d
1400171a4:	74 07                	je     0x1400171ad
1400171a6:	49 8d 40 ff          	lea    -0x1(%r8),%rax
1400171aa:	48 89 07             	mov    %rax,(%rdi)
1400171ad:	48 8b c7             	mov    %rdi,%rax
1400171b0:	48 8b 4c 24 60       	mov    0x60(%rsp),%rcx
1400171b5:	48 33 cc             	xor    %rsp,%rcx
1400171b8:	e8 43 26 04 00       	call   0x140059800
1400171bd:	4c 8d 5c 24 70       	lea    0x70(%rsp),%r11
1400171c2:	49 8b 5b 30          	mov    0x30(%r11),%rbx
1400171c6:	49 8b 6b 40          	mov    0x40(%r11),%rbp
1400171ca:	49 8b 73 48          	mov    0x48(%r11),%rsi
1400171ce:	49 8b e3             	mov    %r11,%rsp
1400171d1:	41 5f                	pop    %r15
1400171d3:	41 5e                	pop    %r14
1400171d5:	41 5d                	pop    %r13
1400171d7:	41 5c                	pop    %r12
1400171d9:	5f                   	pop    %rdi
1400171da:	c3                   	ret
1400171db:	0f 87 4c ff ff ff    	ja     0x14001712d
1400171e1:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1400171e6:	49 8d 49 ff          	lea    -0x1(%r9),%rcx
1400171ea:	48 8b c6             	mov    %rsi,%rax
1400171ed:	4c 8b cb             	mov    %rbx,%r9
1400171f0:	48 f7 e1             	mul    %rcx