140191b38:	03 45 38             	add    0x38(%rbp),%eax
140191b3b:	48 98                	cltq
140191b3d:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%rbx)
140191b44:	eb 04                	jmp    0x140191b4a
140191b46:	48 63 45 20          	movslq 0x20(%rbp),%rax
140191b4a:	48 2b f8             	sub    %rax,%rdi
140191b4d:	49 b8 89 88 88 88 88 	movabs $0x8888888888888889,%r8
140191b54:	88 88 88
140191b57:	49 8b c0             	mov    %r8,%rax
140191b5a:	8b cf                	mov    %edi,%ecx
140191b5c:	48 f7 ef             	imul   %rdi
140191b5f:	48 03 d7             	add    %rdi,%rdx
140191b62:	48 c1 fa 05          	sar    $0x5,%rdx
140191b66:	48 8b c2             	mov    %rdx,%rax
140191b69:	48 c1 e8 3f          	shr    $0x3f,%rax
140191b6d:	48 03 d0             	add    %rax,%rdx
140191b70:	6b c2 3c             	imul   $0x3c,%edx,%eax
140191b73:	2b c8                	sub    %eax,%ecx
140191b75:	89 0b                	mov    %ecx,(%rbx)
140191b77:	79 09                	jns    0x140191b82
140191b79:	8d 41 3c             	lea    0x3c(%rcx),%eax
140191b7c:	48 83 ef 3c          	sub    $0x3c,%rdi
140191b80:	89 03                	mov    %eax,(%rbx)
140191b82:	49 8b c0             	mov    %r8,%rax
140191b85:	48 f7 ef             	imul   %rdi
140191b88:	4c 8d 0c 17          	lea    (%rdi,%rdx,1),%r9
140191b8c:	49 c1 f9 05          	sar    $0x5,%r9
140191b90:	49 8b c1             	mov    %r9,%rax
140191b93:	48 c1 e8 3f          	shr    $0x3f,%rax
140191b97:	4c 03 c8             	add    %rax,%r9
140191b9a:	48 63 43 04          	movslq 0x4(%rbx),%rax
140191b9e:	4c 03 c8             	add    %rax,%r9
140191ba1:	49 8b c0             	mov    %r8,%rax
140191ba4:	49 f7 e9             	imul   %r9
140191ba7:	49 03 d1             	add    %r9,%rdx
140191baa:	48 c1 fa 05          	sar    $0x5,%rdx
140191bae:	48 8b c2             	mov    %rdx,%rax
140191bb1:	48 c1 e8 3f          	shr    $0x3f,%rax
140191bb5:	48 03 d0             	add    %rax,%rdx
140191bb8:	6b ca 3c             	imul   $0x3c,%edx,%ecx
140191bbb:	41 8b d1             	mov    %r9d,%edx
140191bbe:	2b d1                	sub    %ecx,%edx
140191bc0:	89 53 04             	mov    %edx,0x4(%rbx)
140191bc3:	79 0a                	jns    0x140191bcf
140191bc5:	8d 4a 3c             	lea    0x3c(%rdx),%ecx
140191bc8:	49 83 e9 3c          	sub    $0x3c,%r9
140191bcc:	89 4b 04             	mov    %ecx,0x4(%rbx)
140191bcf:	49 8b c0             	mov    %r8,%rax
140191bd2:	49 f7 e9             	imul   %r9
140191bd5:	4d 8d 04 11          	lea    (%r9,%rdx,1),%r8
140191bd9:	49 b9 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r9
140191be0:	aa aa 2a
140191be3:	49 c1 f8 05          	sar    $0x5,%r8
140191be7:	49 8b c0             	mov    %r8,%rax
140191bea:	48 c1 e8 3f          	shr    $0x3f,%rax
140191bee:	4c 03 c0             	add    %rax,%r8
140191bf1:	48 63 43 08          	movslq 0x8(%rbx),%rax
140191bf5:	4c 03 c0             	add    %rax,%r8
140191bf8:	49 8b c1             	mov    %r9,%rax
140191bfb:	49 f7 e8             	imul   %r8
140191bfe:	48 c1 fa 02          	sar    $0x2,%rdx
140191c02:	48 8b c2             	mov    %rdx,%rax
140191c05:	48 c1 e8 3f          	shr    $0x3f,%rax
140191c09:	48 03 d0             	add    %rax,%rdx
140191c0c:	8d 0c 52             	lea    (%rdx,%rdx,2),%ecx
140191c0f:	41 8b d0             	mov    %r8d,%edx
140191c12:	c1 e1 03             	shl    $0x3,%ecx
140191c15:	2b d1                	sub    %ecx,%edx
140191c17:	89 53 08             	mov    %edx,0x8(%rbx)
140191c1a:	79 0a                	jns    0x140191c26
140191c1c:	8d 4a 18             	lea    0x18(%rdx),%ecx
140191c1f:	49 83 e8 18          	sub    $0x18,%r8
140191c23:	89 4b 08             	mov    %ecx,0x8(%rbx)
140191c26:	49 8b c1             	mov    %r9,%rax
140191c29:	49 f7 e8             	imul   %r8
140191c2c:	4c 8b c2             	mov    %rdx,%r8
140191c2f:	49 c1 f8 02          	sar    $0x2,%r8
140191c33:	49 8b c0             	mov    %r8,%rax
140191c36:	48 c1 e8 3f          	shr    $0x3f,%rax
140191c3a:	4c 03 c0             	add    %rax,%r8
140191c3d:	4d 85 c0             	test   %r8,%r8
140191c40:	7e 30                	jle    0x140191c72
140191c42:	8b 4b 18             	mov    0x18(%rbx),%ecx
140191c45:	b8 93 24 49 92       	mov    $0x92492493,%eax
140191c4a:	41 03 c8             	add    %r8d,%ecx
140191c4d:	f7 e9                	imul   %ecx
140191c4f:	03 d1                	add    %ecx,%edx
140191c51:	c1 fa 02             	sar    $0x2,%edx
140191c54:	8b c2                	mov    %edx,%eax
140191c56:	c1 e8 1f             	shr    $0x1f,%eax
140191c59:	03 d0                	add    %eax,%edx
140191c5b:	6b c2 07             	imul   $0x7,%edx,%eax
140191c5e:	2b c8                	sub    %eax,%ecx
140191c60:	44 01 43 0c          	add    %r8d,0xc(%rbx)
140191c64:	89 4b 18             	mov    %ecx,0x18(%rbx)
140191c67:	44 01 43 1c          	add    %r8d,0x1c(%rbx)
140191c6b:	33 c0                	xor    %eax,%eax
140191c6d:	e9 9f fd ff ff       	jmp    0x140191a11
140191c72:	79 f7                	jns    0x140191c6b
140191c74:	8b 4b 18             	mov    0x18(%rbx),%ecx
140191c77:	b8 93 24 49 92       	mov    $0x92492493,%eax
140191c7c:	44 01 43 0c          	add    %r8d,0xc(%rbx)
140191c80:	83 c1 07             	add    $0x7,%ecx
140191c83:	41 03 c8             	add    %r8d,%ecx
140191c86:	f7 e9                	imul   %ecx
140191c88:	03 d1                	add    %ecx,%edx
140191c8a:	c1 fa 02             	sar    $0x2,%edx
140191c8d:	8b c2                	mov    %edx,%eax
140191c8f:	c1 e8 1f             	shr    $0x1f,%eax
140191c92:	03 d0                	add    %eax,%edx
140191c94:	6b c2 07             	imul   $0x7,%edx,%eax
140191c97:	2b c8                	sub    %eax,%ecx
140191c99:	8b 43 0c             	mov    0xc(%rbx),%eax
140191c9c:	89 4b 18             	mov    %ecx,0x18(%rbx)
140191c9f:	85 c0                	test   %eax,%eax
140191ca1:	7f c4                	jg     0x140191c67
140191ca3:	83 c0 1f             	add    $0x1f,%eax
140191ca6:	c7 43 10 0b 00 00 00 	movl   $0xb,0x10(%rbx)
140191cad:	89 43 0c             	mov    %eax,0xc(%rbx)
140191cb0:	41 8d 80 6d 01 00 00 	lea    0x16d(%r8),%eax
140191cb7:	01 43 1c             	add    %eax,0x1c(%rbx)
140191cba:	ff 4b 14             	decl   0x14(%rbx)
140191cbd:	eb ac                	jmp    0x140191c6b
140191cbf:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
140191cc5:	45 33 c9             	xor    %r9d,%r9d
140191cc8:	45 33 c0             	xor    %r8d,%r8d
140191ccb:	33 d2                	xor    %edx,%edx
140191ccd:	33 c9                	xor    %ecx,%ecx
140191ccf:	e8 e0 98 ff ff       	call   0x14018b5b4
140191cd4:	cc                   	int3
140191cd5:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
140191cdb:	45 33 c9             	xor    %r9d,%r9d
140191cde:	45 33 c0             	xor    %r8d,%r8d
140191ce1:	33 d2                	xor    %edx,%edx
140191ce3:	33 c9                	xor    %ecx,%ecx
140191ce5:	e8 ca 98 ff ff       	call   0x14018b5b4
140191cea:	cc                   	int3
140191ceb:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
140191cf1:	45 33 c9             	xor    %r9d,%r9d
140191cf4:	45 33 c0             	xor    %r8d,%r8d
140191cf7:	33 d2                	xor    %edx,%edx
140191cf9:	33 c9                	xor    %ecx,%ecx
140191cfb:	e8 b4 98 ff ff       	call   0x14018b5b4
140191d00:	cc                   	int3
140191d01:	cc                   	int3
140191d02:	cc                   	int3
140191d03:	cc                   	int3
140191d04:	e9 df fc ff ff       	jmp    0x1401919e8
140191d09:	cc                   	int3
140191d0a:	cc                   	int3
140191d0b:	cc                   	int3
140191d0c:	e9 8b 50 01 00       	jmp    0x1401a6d9c
140191d11:	cc                   	int3
140191d12:	cc                   	int3
140191d13:	cc                   	int3
140191d14:	48 83 ec 58          	sub    $0x58,%rsp
140191d18:	48 8b 05 51 95 11 00 	mov    0x119551(%rip),%rax        # 0x1402ab270
140191d1f:	48 33 c4             	xor    %rsp,%rax
140191d22:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140191d27:	45 33 c9             	xor    %r9d,%r9d
140191d2a:	4c 8b c2             	mov    %rdx,%r8
140191d2d:	41 8b c1             	mov    %r9d,%eax
140191d30:	4c 8b d1             	mov    %rcx,%r10
140191d33:	48 83 f8 20          	cmp    $0x20,%rax
140191d37:	45 8d 59 01          	lea    0x1(%r9),%r11d
140191d3b:	73 71                	jae    0x140191dae
140191d3d:	44 88 4c 04 20       	mov    %r9b,0x20(%rsp,%rax,1)
140191d42:	49 03 c3             	add    %r11,%rax
140191d45:	48 83 f8 20          	cmp    $0x20,%rax
140191d49:	7c f0                	jl     0x140191d3b
140191d4b:	8a 02                	mov    (%rdx),%al
140191d4d:	eb 1f                	jmp    0x140191d6e
140191d4f:	0f b6 d0             	movzbl %al,%edx
140191d52:	48 c1 ea 03          	shr    $0x3,%rdx
140191d56:	0f b6 c0             	movzbl %al,%eax
140191d59:	83 e0 07             	and    $0x7,%eax
140191d5c:	0f b6 4c 14 20       	movzbl 0x20(%rsp,%rdx,1),%ecx
140191d61:	0f ab c1             	bts    %eax,%ecx
140191d64:	4d 03 c3             	add    %r11,%r8
140191d67:	88 4c 14 20          	mov    %cl,0x20(%rsp,%rdx,1)
140191d6b:	41 8a 00             	mov    (%r8),%al
140191d6e:	84 c0                	test   %al,%al
140191d70:	75 dd                	jne    0x140191d4f
140191d72:	44 08 5c 24 20       	or     %r11b,0x20(%rsp)
140191d77:	eb 06                	jmp    0x140191d7f
140191d79:	45 03 cb             	add    %r11d,%r9d
140191d7c:	4d 03 d3             	add    %r11,%r10
140191d7f:	45 0f b6 02          	movzbl (%r10),%r8d
140191d83:	41 8b d3             	mov    %r11d,%edx
140191d86:	41 8b c8             	mov    %r8d,%ecx
140191d89:	49 c1 e8 03          	shr    $0x3,%r8
140191d8d:	83 e1 07             	and    $0x7,%ecx
140191d90:	d3 e2                	shl    %cl,%edx
140191d92:	42 84 54 04 20       	test   %dl,0x20(%rsp,%r8,1)
140191d97:	74 e0                	je     0x140191d79
140191d99:	49 63 c1             	movslq %r9d,%rax
140191d9c:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
140191da1:	48 33 cc             	xor    %rsp,%rcx
140191da4:	e8 27 45 ff ff       	call   0x1401862d0
140191da9:	48 83 c4 58          	add    $0x58,%rsp
140191dad:	c3                   	ret
140191dae:	e8 75 4c ff ff       	call   0x140186a28
140191db3:	cc                   	int3
140191db4:	48 83 ec 28          	sub    $0x28,%rsp
140191db8:	e8 37 36 01 00       	call   0x1401a53f4
140191dbd:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140191dc2:	48 8b 88 90 00 00 00 	mov    0x90(%rax),%rcx
140191dc9:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
140191dce:	48 8b c8             	mov    %rax,%rcx
140191dd1:	e8 f2 5e 01 00       	call   0x1401a7cc8
140191dd6:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
140191ddb:	48 8b 80 f8 00 00 00 	mov    0xf8(%rax),%rax
140191de2:	48 83 c4 28          	add    $0x28,%rsp
140191de6:	c3                   	ret
140191de7:	cc                   	int3
140191de8:	8b c1                	mov    %ecx,%eax
140191dea:	44 8b c1             	mov    %ecx,%r8d
140191ded:	25 03 00 00 80       	and    $0x80000003,%eax
140191df2:	7d 07                	jge    0x140191dfb
140191df4:	ff c8                	dec    %eax
140191df6:	83 c8 fc             	or     $0xfffffffc,%eax
140191df9:	ff c0                	inc    %eax
140191dfb:	41 b9 1f 85 eb 51    	mov    $0x51eb851f,%r9d
140191e01:	85 c0                	test   %eax,%eax
140191e03:	75 1b                	jne    0x140191e20
140191e05:	41 8b c1             	mov    %r9d,%eax
140191e08:	41 f7 e8             	imul   %r8d
140191e0b:	c1 fa 05             	sar    $0x5,%edx
140191e0e:	8b ca                	mov    %edx,%ecx
140191e10:	c1 e9 1f             	shr    $0x1f,%ecx
140191e13:	03 d1                	add    %ecx,%edx
140191e15:	6b d2 64             	imul   $0x64,%edx,%edx
140191e18:	44 3b c2             	cmp    %edx,%r8d
140191e1b:	74 03                	je     0x140191e20
140191e1d:	b0 01                	mov    $0x1,%al
140191e1f:	c3                   	ret
140191e20:	41 8d 88 6c 07 00 00 	lea    0x76c(%r8),%ecx
140191e27:	41 8b c1             	mov    %r9d,%eax
140191e2a:	f7 e9                	imul   %ecx
140191e2c:	c1 fa 07             	sar    $0x7,%edx
140191e2f:	8b c2                	mov    %edx,%eax
140191e31:	c1 e8 1f             	shr    $0x1f,%eax
140191e34:	03 d0                	add    %eax,%edx
140191e36:	69 c2 90 01 00 00    	imul   $0x190,%edx,%eax
140191e3c:	3b c8                	cmp    %eax,%ecx
140191e3e:	0f 94 c0             	sete   %al
140191e41:	c3                   	ret
140191e42:	cc                   	int3
140191e43:	cc                   	int3
140191e44:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140191e49:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140191e4e:	57                   	push   %rdi
140191e4f:	48 83 ec 20          	sub    $0x20,%rsp
140191e53:	44 8d 4a 06          	lea    0x6(%rdx),%r9d
140191e57:	8b f2                	mov    %edx,%esi
140191e59:	44 8b d1             	mov    %ecx,%r10d
140191e5c:	b8 93 24 49 92       	mov    $0x92492493,%eax
140191e61:	41 f7 e9             	imul   %r9d
140191e64:	41 8b c8             	mov    %r8d,%ecx
140191e67:	41 8b d8             	mov    %r8d,%ebx
140191e6a:	41 03 d1             	add    %r9d,%edx
140191e6d:	c1 fa 02             	sar    $0x2,%edx
140191e70:	8b c2                	mov    %edx,%eax
140191e72:	c1 e8 1f             	shr    $0x1f,%eax
140191e75:	03 d0                	add    %eax,%edx
140191e77:	6b c2 07             	imul   $0x7,%edx,%eax
140191e7a:	44 2b c8             	sub    %eax,%r9d
140191e7d:	b8 93 24 49 92       	mov    $0x92492493,%eax
140191e82:	41 2b c9             	sub    %r9d,%ecx
140191e85:	83 c1 07             	add    $0x7,%ecx
140191e88:	f7 e9                	imul   %ecx
140191e8a:	8d 3c 11             	lea    (%rcx,%rdx,1),%edi
140191e8d:	41 8b ca             	mov    %r10d,%ecx
140191e90:	c1 ff 02             	sar    $0x2,%edi
140191e93:	8b c7                	mov    %edi,%eax
140191e95:	c1 e8 1f             	shr    $0x1f,%eax
140191e98:	03 f8                	add    %eax,%edi
140191e9a:	e8 49 ff ff ff       	call   0x140191de8
140191e9f:	44 0f b6 c0          	movzbl %al,%r8d
140191ea3:	2b f3                	sub    %ebx,%esi
140191ea5:	81 c6 73 01 00 00    	add    $0x173,%esi
140191eab:	b8 93 24 49 92       	mov    $0x92492493,%eax
140191eb0:	f7 ee                	imul   %esi
140191eb2:	b8 93 24 49 92       	mov    $0x92492493,%eax
140191eb7:	44 8b cb             	mov    %ebx,%r9d
140191eba:	03 d6                	add    %esi,%edx
140191ebc:	45 2b c8             	sub    %r8d,%r9d
140191ebf:	c1 fa 02             	sar    $0x2,%edx
140191ec2:	8b ca                	mov    %edx,%ecx
140191ec4:	c1 e9 1f             	shr    $0x1f,%ecx
140191ec7:	03 d1                	add    %ecx,%edx
140191ec9:	6b ca 07             	imul   $0x7,%edx,%ecx
140191ecc:	2b f1                	sub    %ecx,%esi
140191ece:	41 8d 88 6d 01 00 00 	lea    0x16d(%r8),%ecx
140191ed5:	03 ce                	add    %esi,%ecx
140191ed7:	f7 e9                	imul   %ecx
140191ed9:	03 d1                	add    %ecx,%edx
140191edb:	c1 fa 02             	sar    $0x2,%edx
140191ede:	8b c2                	mov    %edx,%eax
140191ee0:	c1 e8 1f             	shr    $0x1f,%eax
140191ee3:	03 d0                	add    %eax,%edx
140191ee5:	6b c2 07             	imul   $0x7,%edx,%eax
140191ee8:	2b c8                	sub    %eax,%ecx
140191eea:	41 81 f9 6c 01 00 00 	cmp    $0x16c,%r9d
140191ef1:	7c 05                	jl     0x140191ef8
140191ef3:	83 f9 02             	cmp    $0x2,%ecx
140191ef6:	74 1c                	je     0x140191f14
140191ef8:	41 81 f9 6b 01 00 00 	cmp    $0x16b,%r9d
140191eff:	7c 05                	jl     0x140191f06
140191f01:	83 f9 03             	cmp    $0x3,%ecx
140191f04:	74 0e                	je     0x140191f14
140191f06:	41 81 f9 6a 01 00 00 	cmp    $0x16a,%r9d
140191f0d:	7c 0a                	jl     0x140191f19
140191f0f:	83 f9 04             	cmp    $0x4,%ecx
140191f12:	75 05                	jne    0x140191f19
140191f14:	83 c8 ff             	or     $0xffffffff,%eax
140191f17:	eb 0d                	jmp    0x140191f26
140191f19:	8d 4e fe             	lea    -0x2(%rsi),%ecx
140191f1c:	8b c7                	mov    %edi,%eax
140191f1e:	83 f9 02             	cmp    $0x2,%ecx
140191f21:	77 03                	ja     0x140191f26
140191f23:	8d 47 01             	lea    0x1(%rdi),%eax
140191f26:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140191f2b:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140191f30:	48 83 c4 20          	add    $0x20,%rsp
140191f34:	5f                   	pop    %rdi
140191f35:	c3                   	ret
140191f36:	cc                   	int3
140191f37:	cc                   	int3
140191f38:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140191f3d:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140191f42:	55                   	push   %rbp
140191f43:	56                   	push   %rsi
140191f44:	57                   	push   %rdi
140191f45:	48 8b ec             	mov    %rsp,%rbp
140191f48:	48 83 ec 50          	sub    $0x50,%rsp
140191f4c:	49 8b f0             	mov    %r8,%rsi
140191f4f:	49 8b f9             	mov    %r9,%rdi
140191f52:	44 0f b7 c2          	movzwl %dx,%r8d
140191f56:	41 8b d0             	mov    %r8d,%edx
140191f59:	41 83 f8 5a          	cmp    $0x5a,%r8d
140191f5d:	0f 8e 55 08 00 00    	jle    0x1401927b8
140191f63:	41 b9 62 00 00 00    	mov    $0x62,%r9d
140191f69:	83 fa 6e             	cmp    $0x6e,%edx
140191f6c:	0f 8f 73 04 00 00    	jg     0x1401923e5
140191f72:	0f 84 3a 04 00 00    	je     0x1401923b2
140191f78:	83 ea 61             	sub    $0x61,%edx
140191f7b:	0f 84 cb 03 00 00    	je     0x14019234c
140191f81:	83 ea 01             	sub    $0x1,%edx
140191f84:	0f 84 7c 03 00 00    	je     0x140192306