140016b20:	e8 9f d5 00 00       	call   0x1400240c4
140016b25:	85 c0                	test   %eax,%eax
140016b27:	0f 85 40 ff ff ff    	jne    0x140016a6d
140016b2d:	39 45 30             	cmp    %eax,0x30(%rbp)
140016b30:	0f 84 ee 01 00 00    	je     0x140016d24
140016b36:	48 8b cb             	mov    %rbx,%rcx
140016b39:	e8 3e e1 00 00       	call   0x140024c7c
140016b3e:	85 c0                	test   %eax,%eax
140016b40:	0f 84 de 01 00 00    	je     0x140016d24
140016b46:	48 63 45 38          	movslq 0x38(%rbp),%rax
140016b4a:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
140016b4e:	48 29 45 f0          	sub    %rax,-0x10(%rbp)
140016b52:	48 8b cb             	mov    %rbx,%rcx
140016b55:	e8 6a d5 00 00       	call   0x1400240c4
140016b5a:	85 c0                	test   %eax,%eax
140016b5c:	0f 85 0b ff ff ff    	jne    0x140016a6d
140016b62:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%rbx)
140016b69:	e9 b6 01 00 00       	jmp    0x140016d24
140016b6e:	48 8b d7             	mov    %rdi,%rdx
140016b71:	48 8b cb             	mov    %rbx,%rcx
140016b74:	e8 4b d5 00 00       	call   0x1400240c4
140016b79:	85 c0                	test   %eax,%eax
140016b7b:	0f 85 ec fe ff ff    	jne    0x140016a6d
140016b81:	48 63 3b             	movslq (%rbx),%rdi
140016b84:	39 45 30             	cmp    %eax,0x30(%rbp)
140016b87:	74 1d                	je     0x140016ba6
140016b89:	48 8b cb             	mov    %rbx,%rcx
140016b8c:	e8 eb e0 00 00       	call   0x140024c7c
140016b91:	85 c0                	test   %eax,%eax
140016b93:	74 11                	je     0x140016ba6
140016b95:	8b 45 20             	mov    0x20(%rbp),%eax
140016b98:	03 45 38             	add    0x38(%rbp),%eax
140016b9b:	48 98                	cltq
140016b9d:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%rbx)
140016ba4:	eb 04                	jmp    0x140016baa
140016ba6:	48 63 45 20          	movslq 0x20(%rbp),%rax
140016baa:	48 2b f8             	sub    %rax,%rdi
140016bad:	49 b8 89 88 88 88 88 	movabs $0x8888888888888889,%r8
140016bb4:	88 88 88
140016bb7:	49 8b c0             	mov    %r8,%rax
140016bba:	8b cf                	mov    %edi,%ecx
140016bbc:	48 f7 ef             	imul   %rdi
140016bbf:	48 03 d7             	add    %rdi,%rdx
140016bc2:	48 c1 fa 05          	sar    $0x5,%rdx
140016bc6:	48 8b c2             	mov    %rdx,%rax
140016bc9:	48 c1 e8 3f          	shr    $0x3f,%rax
140016bcd:	48 03 d0             	add    %rax,%rdx
140016bd0:	6b c2 3c             	imul   $0x3c,%edx,%eax
140016bd3:	2b c8                	sub    %eax,%ecx
140016bd5:	89 0b                	mov    %ecx,(%rbx)
140016bd7:	79 09                	jns    0x140016be2
140016bd9:	8d 41 3c             	lea    0x3c(%rcx),%eax
140016bdc:	48 83 ef 3c          	sub    $0x3c,%rdi
140016be0:	89 03                	mov    %eax,(%rbx)
140016be2:	49 8b c0             	mov    %r8,%rax
140016be5:	48 f7 ef             	imul   %rdi
140016be8:	4c 8d 0c 17          	lea    (%rdi,%rdx,1),%r9
140016bec:	49 c1 f9 05          	sar    $0x5,%r9
140016bf0:	49 8b c1             	mov    %r9,%rax
140016bf3:	48 c1 e8 3f          	shr    $0x3f,%rax
140016bf7:	4c 03 c8             	add    %rax,%r9
140016bfa:	48 63 43 04          	movslq 0x4(%rbx),%rax
140016bfe:	4c 03 c8             	add    %rax,%r9
140016c01:	49 8b c0             	mov    %r8,%rax
140016c04:	49 f7 e9             	imul   %r9
140016c07:	49 03 d1             	add    %r9,%rdx
140016c0a:	48 c1 fa 05          	sar    $0x5,%rdx
140016c0e:	48 8b c2             	mov    %rdx,%rax
140016c11:	48 c1 e8 3f          	shr    $0x3f,%rax
140016c15:	48 03 d0             	add    %rax,%rdx
140016c18:	6b ca 3c             	imul   $0x3c,%edx,%ecx
140016c1b:	41 8b d1             	mov    %r9d,%edx
140016c1e:	2b d1                	sub    %ecx,%edx
140016c20:	89 53 04             	mov    %edx,0x4(%rbx)
140016c23:	79 0a                	jns    0x140016c2f
140016c25:	8d 4a 3c             	lea    0x3c(%rdx),%ecx
140016c28:	49 83 e9 3c          	sub    $0x3c,%r9
140016c2c:	89 4b 04             	mov    %ecx,0x4(%rbx)
140016c2f:	49 8b c0             	mov    %r8,%rax
140016c32:	49 f7 e9             	imul   %r9
140016c35:	4d 8d 04 11          	lea    (%r9,%rdx,1),%r8
140016c39:	49 b9 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r9
140016c40:	aa aa 2a
140016c43:	49 c1 f8 05          	sar    $0x5,%r8
140016c47:	49 8b c0             	mov    %r8,%rax
140016c4a:	48 c1 e8 3f          	shr    $0x3f,%rax
140016c4e:	4c 03 c0             	add    %rax,%r8
140016c51:	48 63 43 08          	movslq 0x8(%rbx),%rax
140016c55:	4c 03 c0             	add    %rax,%r8
140016c58:	49 8b c1             	mov    %r9,%rax
140016c5b:	49 f7 e8             	imul   %r8
140016c5e:	48 c1 fa 02          	sar    $0x2,%rdx
140016c62:	48 8b c2             	mov    %rdx,%rax
140016c65:	48 c1 e8 3f          	shr    $0x3f,%rax
140016c69:	48 03 d0             	add    %rax,%rdx
140016c6c:	8d 0c 52             	lea    (%rdx,%rdx,2),%ecx
140016c6f:	41 8b d0             	mov    %r8d,%edx
140016c72:	c1 e1 03             	shl    $0x3,%ecx
140016c75:	2b d1                	sub    %ecx,%edx
140016c77:	89 53 08             	mov    %edx,0x8(%rbx)
140016c7a:	79 0a                	jns    0x140016c86
140016c7c:	8d 4a 18             	lea    0x18(%rdx),%ecx
140016c7f:	49 83 e8 18          	sub    $0x18,%r8
140016c83:	89 4b 08             	mov    %ecx,0x8(%rbx)
140016c86:	49 8b c1             	mov    %r9,%rax
140016c89:	49 f7 e8             	imul   %r8
140016c8c:	4c 8b c2             	mov    %rdx,%r8
140016c8f:	49 c1 f8 02          	sar    $0x2,%r8
140016c93:	49 8b c0             	mov    %r8,%rax
140016c96:	48 c1 e8 3f          	shr    $0x3f,%rax
140016c9a:	4c 03 c0             	add    %rax,%r8
140016c9d:	4d 85 c0             	test   %r8,%r8
140016ca0:	7e 2b                	jle    0x140016ccd
140016ca2:	8b 4b 18             	mov    0x18(%rbx),%ecx
140016ca5:	b8 93 24 49 92       	mov    $0x92492493,%eax
140016caa:	44 01 43 0c          	add    %r8d,0xc(%rbx)
140016cae:	41 03 c8             	add    %r8d,%ecx
140016cb1:	f7 e9                	imul   %ecx
140016cb3:	03 d1                	add    %ecx,%edx
140016cb5:	c1 fa 02             	sar    $0x2,%edx
140016cb8:	8b c2                	mov    %edx,%eax
140016cba:	c1 e8 1f             	shr    $0x1f,%eax
140016cbd:	03 d0                	add    %eax,%edx
140016cbf:	6b c2 07             	imul   $0x7,%edx,%eax
140016cc2:	2b c8                	sub    %eax,%ecx
140016cc4:	44 01 43 1c          	add    %r8d,0x1c(%rbx)
140016cc8:	89 4b 18             	mov    %ecx,0x18(%rbx)
140016ccb:	eb 57                	jmp    0x140016d24
140016ccd:	79 55                	jns    0x140016d24
140016ccf:	8b 4b 18             	mov    0x18(%rbx),%ecx
140016cd2:	b8 93 24 49 92       	mov    $0x92492493,%eax
140016cd7:	83 c1 07             	add    $0x7,%ecx
140016cda:	41 03 c8             	add    %r8d,%ecx
140016cdd:	f7 e9                	imul   %ecx
140016cdf:	03 d1                	add    %ecx,%edx
140016ce1:	c1 fa 02             	sar    $0x2,%edx
140016ce4:	8b c2                	mov    %edx,%eax
140016ce6:	c1 e8 1f             	shr    $0x1f,%eax
140016ce9:	03 d0                	add    %eax,%edx
140016ceb:	6b c2 07             	imul   $0x7,%edx,%eax
140016cee:	8b 53 0c             	mov    0xc(%rbx),%edx
140016cf1:	41 03 d0             	add    %r8d,%edx
140016cf4:	89 53 0c             	mov    %edx,0xc(%rbx)
140016cf7:	2b c8                	sub    %eax,%ecx
140016cf9:	89 4b 18             	mov    %ecx,0x18(%rbx)
140016cfc:	8b 4b 1c             	mov    0x1c(%rbx),%ecx
140016cff:	41 03 c8             	add    %r8d,%ecx
140016d02:	85 d2                	test   %edx,%edx
140016d04:	7f 1b                	jg     0x140016d21
140016d06:	ff 4b 14             	decl   0x14(%rbx)
140016d09:	8d 42 1f             	lea    0x1f(%rdx),%eax
140016d0c:	89 43 0c             	mov    %eax,0xc(%rbx)
140016d0f:	8d 81 6d 01 00 00    	lea    0x16d(%rcx),%eax
140016d15:	89 43 1c             	mov    %eax,0x1c(%rbx)
140016d18:	c7 43 10 0b 00 00 00 	movl   $0xb,0x10(%rbx)
140016d1f:	eb 03                	jmp    0x140016d24
140016d21:	89 4b 1c             	mov    %ecx,0x1c(%rbx)
140016d24:	33 c0                	xor    %eax,%eax
140016d26:	e9 42 fd ff ff       	jmp    0x140016a6d
140016d2b:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
140016d31:	45 33 c9             	xor    %r9d,%r9d
140016d34:	45 33 c0             	xor    %r8d,%r8d
140016d37:	33 d2                	xor    %edx,%edx
140016d39:	33 c9                	xor    %ecx,%ecx
140016d3b:	e8 64 82 ff ff       	call   0x14000efa4
140016d40:	cc                   	int3
140016d41:	cc                   	int3
140016d42:	cc                   	int3
140016d43:	cc                   	int3
140016d44:	e9 fb fc ff ff       	jmp    0x140016a44
140016d49:	cc                   	int3
140016d4a:	cc                   	int3
140016d4b:	cc                   	int3
140016d4c:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140016d51:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140016d56:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
140016d5b:	41 56                	push   %r14
140016d5d:	48 83 ec 30          	sub    $0x30,%rsp
140016d61:	41 8b f0             	mov    %r8d,%esi
140016d64:	48 8b da             	mov    %rdx,%rbx
140016d67:	48 8b f9             	mov    %rcx,%rdi
140016d6a:	45 33 f6             	xor    %r14d,%r14d
140016d6d:	48 85 c9             	test   %rcx,%rcx
140016d70:	75 28                	jne    0x140016d9a
140016d72:	e8 65 a3 00 00       	call   0x1400210dc
140016d77:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140016d7d:	e8 d2 81 ff ff       	call   0x14000ef54
140016d82:	33 c0                	xor    %eax,%eax
140016d84:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
140016d89:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140016d8e:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
140016d93:	48 83 c4 30          	add    $0x30,%rsp
140016d97:	41 5e                	pop    %r14
140016d99:	c3                   	ret
140016d9a:	48 85 db             	test   %rbx,%rbx
140016d9d:	74 d3                	je     0x140016d72
140016d9f:	66 44 39 32          	cmp    %r14w,(%rdx)
140016da3:	74 cd                	je     0x140016d72
140016da5:	66 44 39 31          	cmp    %r14w,(%rcx)
140016da9:	75 0d                	jne    0x140016db8
140016dab:	e8 2c a3 00 00       	call   0x1400210dc
140016db0:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140016db6:	eb ca                	jmp    0x140016d82
140016db8:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
140016dbd:	e8 ea de 00 00       	call   0x140024cac
140016dc2:	4c 8b 4c 24 40       	mov    0x40(%rsp),%r9
140016dc7:	4d 85 c9             	test   %r9,%r9
140016dca:	75 0d                	jne    0x140016dd9
140016dcc:	e8 0b a3 00 00       	call   0x1400210dc
140016dd1:	c7 00 18 00 00 00    	movl   $0x18,(%rax)
140016dd7:	eb a9                	jmp    0x140016d82
140016dd9:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
140016dde:	44 8b c6             	mov    %esi,%r8d
140016de1:	48 8b d3             	mov    %rbx,%rdx
140016de4:	48 8b cf             	mov    %rdi,%rcx
140016de7:	e8 24 e3 00 00       	call   0x140025110
140016dec:	48 8b d8             	mov    %rax,%rbx
140016def:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140016df4:	48 85 db             	test   %rbx,%rbx
140016df7:	75 0a                	jne    0x140016e03
140016df9:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
140016dfe:	e8 01 df 00 00       	call   0x140024d04
140016e03:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
140016e08:	e8 c3 ba 00 00       	call   0x1400228d0
140016e0d:	48 8b c3             	mov    %rbx,%rax
140016e10:	e9 6f ff ff ff       	jmp    0x140016d84
140016e15:	cc                   	int3
140016e16:	cc                   	int3
140016e17:	cc                   	int3
140016e18:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016e1d:	57                   	push   %rdi
140016e1e:	48 83 ec 20          	sub    $0x20,%rsp
140016e22:	33 db                	xor    %ebx,%ebx
140016e24:	49 8b c0             	mov    %r8,%rax
140016e27:	4c 8b ca             	mov    %rdx,%r9
140016e2a:	48 8b f9             	mov    %rcx,%rdi
140016e2d:	48 85 c9             	test   %rcx,%rcx
140016e30:	75 11                	jne    0x140016e43
140016e32:	e8 a5 a2 00 00       	call   0x1400210dc
140016e37:	8d 5f 16             	lea    0x16(%rdi),%ebx
140016e3a:	89 18                	mov    %ebx,(%rax)
140016e3c:	e8 13 81 ff ff       	call   0x14000ef54
140016e41:	eb 20                	jmp    0x140016e63
140016e43:	41 b8 80 00 00 00    	mov    $0x80,%r8d
140016e49:	48 8b d0             	mov    %rax,%rdx
140016e4c:	49 8b c9             	mov    %r9,%rcx
140016e4f:	e8 f8 fe ff ff       	call   0x140016d4c
140016e54:	48 89 07             	mov    %rax,(%rdi)
140016e57:	48 85 c0             	test   %rax,%rax
140016e5a:	75 07                	jne    0x140016e63
140016e5c:	e8 7b a2 00 00       	call   0x1400210dc
140016e61:	8b 18                	mov    (%rax),%ebx
140016e63:	8b c3                	mov    %ebx,%eax
140016e65:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140016e6a:	48 83 c4 20          	add    $0x20,%rsp
140016e6e:	5f                   	pop    %rdi
140016e6f:	c3                   	ret
140016e70:	e9 d7 fe ff ff       	jmp    0x140016d4c
140016e75:	cc                   	int3
140016e76:	cc                   	int3
140016e77:	cc                   	int3
140016e78:	48 8b c4             	mov    %rsp,%rax
140016e7b:	48 89 58 10          	mov    %rbx,0x10(%rax)
140016e7f:	48 89 48 08          	mov    %rcx,0x8(%rax)
140016e83:	57                   	push   %rdi
140016e84:	48 83 ec 30          	sub    $0x30,%rsp
140016e88:	48 8b fa             	mov    %rdx,%rdi
140016e8b:	48 8b d9             	mov    %rcx,%rbx
140016e8e:	48 85 c9             	test   %rcx,%rcx
140016e91:	75 2e                	jne    0x140016ec1
140016e93:	c6 42 30 01          	movb   $0x1,0x30(%rdx)
140016e97:	c7 42 2c 16 00 00 00 	movl   $0x16,0x2c(%rdx)
140016e9e:	48 89 50 f0          	mov    %rdx,-0x10(%rax)
140016ea2:	48 21 48 e8          	and    %rcx,-0x18(%rax)
140016ea6:	45 33 c9             	xor    %r9d,%r9d
140016ea9:	45 33 c0             	xor    %r8d,%r8d
140016eac:	33 d2                	xor    %edx,%edx
140016eae:	e8 d5 7f ff ff       	call   0x14000ee88
140016eb3:	83 c8 ff             	or     $0xffffffff,%eax
140016eb6:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
140016ebb:	48 83 c4 30          	add    $0x30,%rsp
140016ebf:	5f                   	pop    %rdi
140016ec0:	c3                   	ret
140016ec1:	8b 41 14             	mov    0x14(%rcx),%eax
140016ec4:	90                   	nop
140016ec5:	c1 e8 0c             	shr    $0xc,%eax
140016ec8:	24 01                	and    $0x1,%al
140016eca:	74 07                	je     0x140016ed3
140016ecc:	e8 33 de 00 00       	call   0x140024d04
140016ed1:	eb e0                	jmp    0x140016eb3
140016ed3:	e8 ec b9 00 00       	call   0x1400228c4
140016ed8:	90                   	nop
140016ed9:	48 8b d7             	mov    %rdi,%rdx
140016edc:	48 8b cb             	mov    %rbx,%rcx
140016edf:	e8 10 00 00 00       	call   0x140016ef4
140016ee4:	8b f8                	mov    %eax,%edi
140016ee6:	48 8b cb             	mov    %rbx,%rcx
140016ee9:	e8 e2 b9 00 00       	call   0x1400228d0
140016eee:	8b c7                	mov    %edi,%eax
140016ef0:	eb c4                	jmp    0x140016eb6
140016ef2:	cc                   	int3
140016ef3:	cc                   	int3
140016ef4:	48 8b c4             	mov    %rsp,%rax
140016ef7:	48 89 58 08          	mov    %rbx,0x8(%rax)
140016efb:	48 89 70 10          	mov    %rsi,0x10(%rax)
140016eff:	57                   	push   %rdi
140016f00:	48 83 ec 30          	sub    $0x30,%rsp
140016f04:	48 8b fa             	mov    %rdx,%rdi
140016f07:	48 8b d9             	mov    %rcx,%rbx
140016f0a:	48 85 c9             	test   %rcx,%rcx
140016f0d:	75 25                	jne    0x140016f34
140016f0f:	48 89 50 f0          	mov    %rdx,-0x10(%rax)
140016f13:	45 33 c9             	xor    %r9d,%r9d
140016f16:	48 21 48 e8          	and    %rcx,-0x18(%rax)
140016f1a:	45 33 c0             	xor    %r8d,%r8d
140016f1d:	c6 42 30 01          	movb   $0x1,0x30(%rdx)
140016f21:	c7 42 2c 16 00 00 00 	movl   $0x16,0x2c(%rdx)
140016f28:	33 d2                	xor    %edx,%edx
140016f2a:	e8 59 7f ff ff       	call   0x14000ee88
140016f2f:	83 c8 ff             	or     $0xffffffff,%eax
140016f32:	eb 55                	jmp    0x140016f89
140016f34:	8b 41 14             	mov    0x14(%rcx),%eax
140016f37:	83 ce ff             	or     $0xffffffff,%esi
140016f3a:	c1 e8 0d             	shr    $0xd,%eax
140016f3d:	90                   	nop
140016f3e:	a8 01                	test   $0x1,%al
140016f40:	74 3d                	je     0x140016f7f
140016f42:	e8 6d e7 00 00       	call   0x1400256b4
140016f47:	48 8b cb             	mov    %rbx,%rcx
140016f4a:	8b f0                	mov    %eax,%esi
140016f4c:	e8 ff e4 00 00       	call   0x140025450
140016f51:	48 8b cb             	mov    %rbx,%rcx
140016f54:	e8 6b b7 00 00       	call   0x1400226c4
140016f59:	8b c8                	mov    %eax,%ecx
140016f5b:	48 8b d7             	mov    %rdi,%rdx
140016f5e:	e8 c1 e2 00 00       	call   0x140025224
140016f63:	85 c0                	test   %eax,%eax
140016f65:	79 05                	jns    0x140016f6c
140016f67:	83 ce ff             	or     $0xffffffff,%esi
140016f6a:	eb 13                	jmp    0x140016f7f
140016f6c:	48 8b 4b 28          	mov    0x28(%rbx),%rcx
140016f70:	48 85 c9             	test   %rcx,%rcx
140016f73:	74 0a                	je     0x140016f7f
140016f75:	e8 66 a5 fe ff       	call   0x1400014e0
140016f7a:	48 83 63 28 00       	andq   $0x0,0x28(%rbx)
140016f7f:	48 8b cb             	mov    %rbx,%rcx
140016f82:	e8 7d dd 00 00       	call   0x140024d04
140016f87:	8b c6                	mov    %esi,%eax
140016f89:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140016f8e:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi