140dd29aa:	85 db                	test   %ebx,%ebx
140dd29ac:	0f 49 f8             	cmovns %eax,%edi
140dd29af:	48 63 df             	movslq %edi,%rbx
140dd29b2:	48 8b cb             	mov    %rbx,%rcx
140dd29b5:	e8 62 8c 04 00       	call   0x140e1b61c
140dd29ba:	48 8b e8             	mov    %rax,%rbp
140dd29bd:	49 8b 0f             	mov    (%r15),%rcx
140dd29c0:	48 83 c9 01          	or     $0x1,%rcx
140dd29c4:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
140dd29c9:	4c 89 64 24 20       	mov    %r12,0x20(%rsp)
140dd29ce:	4d 8b ce             	mov    %r14,%r9
140dd29d1:	4c 8b c3             	mov    %rbx,%r8
140dd29d4:	48 8b d0             	mov    %rax,%rdx
140dd29d7:	e8 8c cb 05 00       	call   0x140e2f568
140dd29dc:	8b d8                	mov    %eax,%ebx
140dd29de:	85 c0                	test   %eax,%eax
140dd29e0:	0f 48 de             	cmovs  %esi,%ebx
140dd29e3:	85 db                	test   %ebx,%ebx
140dd29e5:	78 04                	js     0x140dd29eb
140dd29e7:	3b df                	cmp    %edi,%ebx
140dd29e9:	7c 0c                	jl     0x140dd29f7
140dd29eb:	48 8b cd             	mov    %rbp,%rcx
140dd29ee:	e8 51 87 04 00       	call   0x140e1b144
140dd29f3:	8b ef                	mov    %edi,%ebp
140dd29f5:	eb a9                	jmp    0x140dd29a0
140dd29f7:	4c 63 c3             	movslq %ebx,%r8
140dd29fa:	48 8b d5             	mov    %rbp,%rdx
140dd29fd:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
140dd2a02:	e8 79 b7 3d ff       	call   0x1401ae180
140dd2a07:	48 8b cd             	mov    %rbp,%rcx
140dd2a0a:	e8 35 87 04 00       	call   0x140e1b144
140dd2a0f:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
140dd2a14:	48 8b 8c 24 50 04 00 	mov    0x450(%rsp),%rcx
140dd2a1b:	00
140dd2a1c:	48 33 cc             	xor    %rsp,%rcx
140dd2a1f:	e8 dc 8a 04 00       	call   0x140e1b500
140dd2a24:	48 81 c4 68 04 00 00 	add    $0x468,%rsp
140dd2a2b:	41 5f                	pop    %r15
140dd2a2d:	41 5e                	pop    %r14
140dd2a2f:	41 5d                	pop    %r13
140dd2a31:	41 5c                	pop    %r12
140dd2a33:	5f                   	pop    %rdi
140dd2a34:	5e                   	pop    %rsi
140dd2a35:	5d                   	pop    %rbp
140dd2a36:	5b                   	pop    %rbx
140dd2a37:	c3                   	ret
140dd2a38:	cc                   	int3
140dd2a39:	cc                   	int3
140dd2a3a:	cc                   	int3
140dd2a3b:	cc                   	int3
140dd2a3c:	cc                   	int3
140dd2a3d:	cc                   	int3
140dd2a3e:	cc                   	int3
140dd2a3f:	cc                   	int3
140dd2a40:	0f b6 02             	movzbl (%rdx),%eax
140dd2a43:	4c 8b c2             	mov    %rdx,%r8
140dd2a46:	3d 80 00 00 00       	cmp    $0x80,%eax
140dd2a4b:	73 08                	jae    0x140dd2a55
140dd2a4d:	89 01                	mov    %eax,(%rcx)
140dd2a4f:	b8 01 00 00 00       	mov    $0x1,%eax
140dd2a54:	c3                   	ret
140dd2a55:	0f b6 52 01          	movzbl 0x1(%rdx),%edx
140dd2a59:	0f ba fa 07          	btc    $0x7,%edx
140dd2a5d:	f6 c2 c0             	test   $0xc0,%dl
140dd2a60:	0f 85 98 00 00 00    	jne    0x140dd2afe
140dd2a66:	3d e0 00 00 00       	cmp    $0xe0,%eax
140dd2a6b:	73 22                	jae    0x140dd2a8f
140dd2a6d:	3d c0 00 00 00       	cmp    $0xc0,%eax
140dd2a72:	0f 82 86 00 00 00    	jb     0x140dd2afe
140dd2a78:	c1 e0 06             	shl    $0x6,%eax
140dd2a7b:	0b c2                	or     %edx,%eax
140dd2a7d:	25 ff 07 00 00       	and    $0x7ff,%eax
140dd2a82:	83 f8 7f             	cmp    $0x7f,%eax
140dd2a85:	76 77                	jbe    0x140dd2afe
140dd2a87:	89 01                	mov    %eax,(%rcx)
140dd2a89:	b8 02 00 00 00       	mov    $0x2,%eax
140dd2a8e:	c3                   	ret
140dd2a8f:	45 0f b6 48 02       	movzbl 0x2(%r8),%r9d
140dd2a94:	41 0f ba f9 07       	btc    $0x7,%r9d
140dd2a99:	41 f6 c1 c0          	test   $0xc0,%r9b
140dd2a9d:	75 5f                	jne    0x140dd2afe
140dd2a9f:	3d f0 00 00 00       	cmp    $0xf0,%eax
140dd2aa4:	73 1e                	jae    0x140dd2ac4
140dd2aa6:	c1 e0 06             	shl    $0x6,%eax
140dd2aa9:	0b c2                	or     %edx,%eax
140dd2aab:	c1 e0 06             	shl    $0x6,%eax
140dd2aae:	41 0b c1             	or     %r9d,%eax
140dd2ab1:	0f b7 d0             	movzwl %ax,%edx
140dd2ab4:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
140dd2aba:	76 42                	jbe    0x140dd2afe
140dd2abc:	89 11                	mov    %edx,(%rcx)
140dd2abe:	b8 03 00 00 00       	mov    $0x3,%eax
140dd2ac3:	c3                   	ret
140dd2ac4:	45 0f b6 50 03       	movzbl 0x3(%r8),%r10d
140dd2ac9:	41 0f ba fa 07       	btc    $0x7,%r10d
140dd2ace:	41 f6 c2 c0          	test   $0xc0,%r10b
140dd2ad2:	75 2a                	jne    0x140dd2afe
140dd2ad4:	3d f8 00 00 00       	cmp    $0xf8,%eax
140dd2ad9:	73 23                	jae    0x140dd2afe
140dd2adb:	83 e0 07             	and    $0x7,%eax
140dd2ade:	c1 e0 06             	shl    $0x6,%eax
140dd2ae1:	0b c2                	or     %edx,%eax
140dd2ae3:	c1 e0 06             	shl    $0x6,%eax
140dd2ae6:	41 0b c1             	or     %r9d,%eax
140dd2ae9:	c1 e0 06             	shl    $0x6,%eax
140dd2aec:	41 0b c2             	or     %r10d,%eax
140dd2aef:	3d ff ff 00 00       	cmp    $0xffff,%eax
140dd2af4:	76 08                	jbe    0x140dd2afe
140dd2af6:	89 01                	mov    %eax,(%rcx)
140dd2af8:	b8 04 00 00 00       	mov    $0x4,%eax
140dd2afd:	c3                   	ret
140dd2afe:	c7 01 fd ff 00 00    	movl   $0xfffd,(%rcx)
140dd2b04:	b8 01 00 00 00       	mov    $0x1,%eax
140dd2b09:	c3                   	ret
140dd2b0a:	cc                   	int3
140dd2b0b:	cc                   	int3
140dd2b0c:	cc                   	int3
140dd2b0d:	cc                   	int3
140dd2b0e:	cc                   	int3
140dd2b0f:	cc                   	int3
140dd2b10:	85 d2                	test   %edx,%edx
140dd2b12:	7e 28                	jle    0x140dd2b3c
140dd2b14:	0f b6 01             	movzbl (%rcx),%eax
140dd2b17:	3c 80                	cmp    $0x80,%al
140dd2b19:	72 1b                	jb     0x140dd2b36
140dd2b1b:	83 fa 01             	cmp    $0x1,%edx
140dd2b1e:	7e 1c                	jle    0x140dd2b3c
140dd2b20:	3c e0                	cmp    $0xe0,%al
140dd2b22:	72 12                	jb     0x140dd2b36
140dd2b24:	83 fa 02             	cmp    $0x2,%edx
140dd2b27:	7e 13                	jle    0x140dd2b3c
140dd2b29:	3c f0                	cmp    $0xf0,%al
140dd2b2b:	72 09                	jb     0x140dd2b36
140dd2b2d:	33 c0                	xor    %eax,%eax
140dd2b2f:	83 fa 03             	cmp    $0x3,%edx
140dd2b32:	0f 9f c0             	setg   %al
140dd2b35:	c3                   	ret
140dd2b36:	b8 01 00 00 00       	mov    $0x1,%eax
140dd2b3b:	c3                   	ret
140dd2b3c:	33 c0                	xor    %eax,%eax
140dd2b3e:	c3                   	ret
140dd2b3f:	cc                   	int3
140dd2b40:	44 8b 02             	mov    (%rdx),%r8d
140dd2b43:	41 83 f8 7f          	cmp    $0x7f,%r8d
140dd2b47:	77 09                	ja     0x140dd2b52
140dd2b49:	b8 01 00 00 00       	mov    $0x1,%eax
140dd2b4e:	44 88 01             	mov    %r8b,(%rcx)
140dd2b51:	c3                   	ret
140dd2b52:	41 81 f8 ff 07 00 00 	cmp    $0x7ff,%r8d
140dd2b59:	77 1c                	ja     0x140dd2b77
140dd2b5b:	41 8b c0             	mov    %r8d,%eax
140dd2b5e:	41 80 e0 3f          	and    $0x3f,%r8b
140dd2b62:	c1 e8 06             	shr    $0x6,%eax
140dd2b65:	0c c0                	or     $0xc0,%al
140dd2b67:	41 80 c8 80          	or     $0x80,%r8b
140dd2b6b:	88 01                	mov    %al,(%rcx)
140dd2b6d:	44 88 41 01          	mov    %r8b,0x1(%rcx)
140dd2b71:	b8 02 00 00 00       	mov    $0x2,%eax
140dd2b76:	c3                   	ret
140dd2b77:	41 81 f8 ff ff 10 00 	cmp    $0x10ffff,%r8d
140dd2b7e:	b8 fd ff 00 00       	mov    $0xfffd,%eax
140dd2b83:	44 0f 47 c0          	cmova  %eax,%r8d
140dd2b87:	41 8b d0             	mov    %r8d,%edx
140dd2b8a:	45 0f b6 c8          	movzbl %r8b,%r9d
140dd2b8e:	c1 ea 06             	shr    $0x6,%edx
140dd2b91:	41 80 e1 3f          	and    $0x3f,%r9b
140dd2b95:	80 e2 3f             	and    $0x3f,%dl
140dd2b98:	41 8b c0             	mov    %r8d,%eax
140dd2b9b:	80 ca 80             	or     $0x80,%dl
140dd2b9e:	c1 e8 0c             	shr    $0xc,%eax
140dd2ba1:	41 80 c9 80          	or     $0x80,%r9b
140dd2ba5:	41 81 f8 ff ff 00 00 	cmp    $0xffff,%r8d
140dd2bac:	77 11                	ja     0x140dd2bbf
140dd2bae:	0c e0                	or     $0xe0,%al
140dd2bb0:	88 51 01             	mov    %dl,0x1(%rcx)
140dd2bb3:	88 01                	mov    %al,(%rcx)
140dd2bb5:	b8 03 00 00 00       	mov    $0x3,%eax
140dd2bba:	44 88 49 02          	mov    %r9b,0x2(%rcx)
140dd2bbe:	c3                   	ret
140dd2bbf:	24 3f                	and    $0x3f,%al
140dd2bc1:	41 c1 e8 12          	shr    $0x12,%r8d
140dd2bc5:	0c 80                	or     $0x80,%al
140dd2bc7:	88 51 02             	mov    %dl,0x2(%rcx)
140dd2bca:	41 80 c8 f0          	or     $0xf0,%r8b
140dd2bce:	88 41 01             	mov    %al,0x1(%rcx)
140dd2bd1:	b8 04 00 00 00       	mov    $0x4,%eax
140dd2bd6:	44 88 49 03          	mov    %r9b,0x3(%rcx)
140dd2bda:	44 88 01             	mov    %r8b,(%rcx)
140dd2bdd:	c3                   	ret
140dd2bde:	cc                   	int3
140dd2bdf:	cc                   	int3
140dd2be0:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140dd2be5:	53                   	push   %rbx
140dd2be6:	56                   	push   %rsi
140dd2be7:	57                   	push   %rdi
140dd2be8:	41 54                	push   %r12
140dd2bea:	41 55                	push   %r13
140dd2bec:	41 56                	push   %r14
140dd2bee:	41 57                	push   %r15
140dd2bf0:	48 83 ec 30          	sub    $0x30,%rsp
140dd2bf4:	4c 8b ea             	mov    %rdx,%r13
140dd2bf7:	48 8b f9             	mov    %rcx,%rdi
140dd2bfa:	4c 8b 09             	mov    (%rcx),%r9
140dd2bfd:	4c 8b c2             	mov    %rdx,%r8
140dd2c00:	4d 2b c1             	sub    %r9,%r8
140dd2c03:	49 ba ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r10
140dd2c0a:	aa aa 2a
140dd2c0d:	49 8b c2             	mov    %r10,%rax
140dd2c10:	49 f7 e8             	imul   %r8
140dd2c13:	4c 8b fa             	mov    %rdx,%r15
140dd2c16:	49 c1 ff 02          	sar    $0x2,%r15
140dd2c1a:	49 8b c7             	mov    %r15,%rax
140dd2c1d:	48 c1 e8 3f          	shr    $0x3f,%rax
140dd2c21:	4c 03 f8             	add    %rax,%r15
140dd2c24:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140dd2c28:	49 2b c9             	sub    %r9,%rcx
140dd2c2b:	49 8b c2             	mov    %r10,%rax
140dd2c2e:	48 f7 e9             	imul   %rcx
140dd2c31:	48 c1 fa 02          	sar    $0x2,%rdx
140dd2c35:	48 8b c2             	mov    %rdx,%rax
140dd2c38:	48 c1 e8 3f          	shr    $0x3f,%rax
140dd2c3c:	48 03 d0             	add    %rax,%rdx
140dd2c3f:	49 b8 aa aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaa,%r8
140dd2c46:	aa aa 0a
140dd2c49:	49 3b d0             	cmp    %r8,%rdx
140dd2c4c:	0f 84 c0 01 00 00    	je     0x140dd2e12
140dd2c52:	4c 8d 62 01          	lea    0x1(%rdx),%r12
140dd2c56:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
140dd2c5a:	49 2b c9             	sub    %r9,%rcx
140dd2c5d:	49 8b c2             	mov    %r10,%rax
140dd2c60:	48 f7 e9             	imul   %rcx
140dd2c63:	48 c1 fa 02          	sar    $0x2,%rdx
140dd2c67:	48 8b c2             	mov    %rdx,%rax
140dd2c6a:	48 c1 e8 3f          	shr    $0x3f,%rax
140dd2c6e:	48 03 d0             	add    %rax,%rdx
140dd2c71:	48 8b ca             	mov    %rdx,%rcx
140dd2c74:	48 d1 e9             	shr    $1,%rcx
140dd2c77:	49 8b c0             	mov    %r8,%rax
140dd2c7a:	48 2b c1             	sub    %rcx,%rax
140dd2c7d:	48 3b d0             	cmp    %rax,%rdx
140dd2c80:	0f 87 86 01 00 00    	ja     0x140dd2e0c
140dd2c86:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140dd2c8a:	49 8b f4             	mov    %r12,%rsi
140dd2c8d:	49 3b c4             	cmp    %r12,%rax
140dd2c90:	48 0f 43 f0          	cmovae %rax,%rsi
140dd2c94:	49 3b f0             	cmp    %r8,%rsi
140dd2c97:	0f 87 6f 01 00 00    	ja     0x140dd2e0c
140dd2c9d:	48 8d 04 76          	lea    (%rsi,%rsi,2),%rax
140dd2ca1:	4c 8d 34 c5 00 00 00 	lea    0x0(,%rax,8),%r14
140dd2ca8:	00
140dd2ca9:	48 89 74 24 78       	mov    %rsi,0x78(%rsp)
140dd2cae:	49 81 fe 00 10 00 00 	cmp    $0x1000,%r14
140dd2cb5:	72 29                	jb     0x140dd2ce0
140dd2cb7:	49 8d 4e 27          	lea    0x27(%r14),%rcx
140dd2cbb:	49 3b ce             	cmp    %r14,%rcx
140dd2cbe:	0f 86 48 01 00 00    	jbe    0x140dd2e0c
140dd2cc4:	e8 3f 84 04 00       	call   0x140e1b108
140dd2cc9:	48 85 c0             	test   %rax,%rax
140dd2ccc:	0f 84 46 01 00 00    	je     0x140dd2e18
140dd2cd2:	48 8d 58 27          	lea    0x27(%rax),%rbx
140dd2cd6:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
140dd2cda:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
140dd2cde:	eb 26                	jmp    0x140dd2d06
140dd2ce0:	4d 85 f6             	test   %r14,%r14
140dd2ce3:	74 1a                	je     0x140dd2cff
140dd2ce5:	49 8b ce             	mov    %r14,%rcx
140dd2ce8:	e8 1b 84 04 00       	call   0x140e1b108
140dd2ced:	48 8b d8             	mov    %rax,%rbx
140dd2cf0:	48 89 84 24 80 00 00 	mov    %rax,0x80(%rsp)
140dd2cf7:	00
140dd2cf8:	48 89 74 24 78       	mov    %rsi,0x78(%rsp)
140dd2cfd:	eb 0f                	jmp    0x140dd2d0e
140dd2cff:	33 db                	xor    %ebx,%ebx
140dd2d01:	48 89 74 24 78       	mov    %rsi,0x78(%rsp)
140dd2d06:	48 89 9c 24 80 00 00 	mov    %rbx,0x80(%rsp)
140dd2d0d:	00
140dd2d0e:	4b 8d 04 7f          	lea    (%r15,%r15,2),%rax
140dd2d12:	48 8d 34 c3          	lea    (%rbx,%rax,8),%rsi
140dd2d16:	4c 8d 7e 18          	lea    0x18(%rsi),%r15
140dd2d1a:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
140dd2d1f:	48 c7 06 00 00 00 00 	movq   $0x0,(%rsi)
140dd2d26:	48 c7 46 08 00 00 00 	movq   $0x0,0x8(%rsi)
140dd2d2d:	00
140dd2d2e:	48 c7 46 10 00 00 00 	movq   $0x0,0x10(%rsi)
140dd2d35:	00
140dd2d36:	48 89 b4 24 88 00 00 	mov    %rsi,0x88(%rsp)
140dd2d3d:	00
140dd2d3e:	48 8b 57 08          	mov    0x8(%rdi),%rdx
140dd2d42:	48 8b 0f             	mov    (%rdi),%rcx
140dd2d45:	4c 3b ea             	cmp    %rdx,%r13
140dd2d48:	75 05                	jne    0x140dd2d4f
140dd2d4a:	4c 8b fb             	mov    %rbx,%r15
140dd2d4d:	eb 1d                	jmp    0x140dd2d6c
140dd2d4f:	4c 8b cf             	mov    %rdi,%r9
140dd2d52:	4c 8b c3             	mov    %rbx,%r8
140dd2d55:	49 8b d5             	mov    %r13,%rdx
140dd2d58:	e8 83 cb 8d ff       	call   0x1406af8e0
140dd2d5d:	48 89 9c 24 88 00 00 	mov    %rbx,0x88(%rsp)
140dd2d64:	00
140dd2d65:	49 8b cd             	mov    %r13,%rcx
140dd2d68:	48 8b 57 08          	mov    0x8(%rdi),%rdx
140dd2d6c:	4c 8b cf             	mov    %rdi,%r9
140dd2d6f:	4d 8b c7             	mov    %r15,%r8
140dd2d72:	e8 69 cb 8d ff       	call   0x1406af8e0
140dd2d77:	90                   	nop
140dd2d78:	48 8b 0f             	mov    (%rdi),%rcx
140dd2d7b:	48 85 c9             	test   %rcx,%rcx
140dd2d7e:	74 62                	je     0x140dd2de2
140dd2d80:	4c 8b c7             	mov    %rdi,%r8
140dd2d83:	48 8b 57 08          	mov    0x8(%rdi),%rdx
140dd2d87:	e8 d4 dc 47 ff       	call   0x140250a60
140dd2d8c:	4c 8b 07             	mov    (%rdi),%r8
140dd2d8f:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
140dd2d93:	49 2b c8             	sub    %r8,%rcx
140dd2d96:	48 b8 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%rax
140dd2d9d:	aa aa 2a
140dd2da0:	48 f7 e9             	imul   %rcx
140dd2da3:	48 c1 fa 02          	sar    $0x2,%rdx
140dd2da7:	48 8b c2             	mov    %rdx,%rax
140dd2daa:	48 c1 e8 3f          	shr    $0x3f,%rax
140dd2dae:	48 03 d0             	add    %rax,%rdx
140dd2db1:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
140dd2db5:	48 c1 e2 03          	shl    $0x3,%rdx
140dd2db9:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140dd2dc0:	72 18                	jb     0x140dd2dda
140dd2dc2:	48 83 c2 27          	add    $0x27,%rdx
140dd2dc6:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
140dd2dca:	4c 2b c1             	sub    %rcx,%r8
140dd2dcd:	49 8d 40 f8          	lea    -0x8(%r8),%rax
140dd2dd1:	48 83 f8 1f          	cmp    $0x1f,%rax
140dd2dd5:	77 41                	ja     0x140dd2e18
140dd2dd7:	4c 8b c1             	mov    %rcx,%r8
140dd2dda:	49 8b c8             	mov    %r8,%rcx
140dd2ddd:	e8 62 83 04 00       	call   0x140e1b144
140dd2de2:	48 89 1f             	mov    %rbx,(%rdi)
140dd2de5:	4b 8d 0c 64          	lea    (%r12,%r12,2),%rcx
140dd2de9:	48 8d 14 cb          	lea    (%rbx,%rcx,8),%rdx
140dd2ded:	48 89 57 08          	mov    %rdx,0x8(%rdi)
140dd2df1:	49 8d 0c 1e          	lea    (%r14,%rbx,1),%rcx
140dd2df5:	48 89 4f 10          	mov    %rcx,0x10(%rdi)
140dd2df9:	48 8b c6             	mov    %rsi,%rax
140dd2dfc:	48 83 c4 30          	add    $0x30,%rsp
140dd2e00:	41 5f                	pop    %r15
140dd2e02:	41 5e                	pop    %r14
140dd2e04:	41 5d                	pop    %r13
140dd2e06:	41 5c                	pop    %r12
140dd2e08:	5f                   	pop    %rdi
140dd2e09:	5e                   	pop    %rsi
140dd2e0a:	5b                   	pop    %rbx
140dd2e0b:	c3                   	ret