180044c1f:	48 83 c1 08          	add    $0x8,%rcx
180044c23:	e8 20 f1 ff ff       	call   0x180043d48
180044c28:	85 c0                	test   %eax,%eax
180044c2a:	78 60                	js     0x180044c8c
180044c2c:	89 73 34             	mov    %esi,0x34(%rbx)
180044c2f:	48 8d 53 08          	lea    0x8(%rbx),%rdx
180044c33:	48 8d 73 38          	lea    0x38(%rbx),%rsi
180044c37:	44 89 73 28          	mov    %r14d,0x28(%rbx)
180044c3b:	48 8b ce             	mov    %rsi,%rcx
180044c3e:	89 6b 2c             	mov    %ebp,0x2c(%rbx)
180044c41:	45 8b ce             	mov    %r14d,%r9d
180044c44:	44 89 7b 30          	mov    %r15d,0x30(%rbx)
180044c48:	44 8b c5             	mov    %ebp,%r8d
180044c4b:	e8 88 f2 ff ff       	call   0x180043ed8
180044c50:	85 c0                	test   %eax,%eax
180044c52:	78 38                	js     0x180044c8c
180044c54:	8b 53 30             	mov    0x30(%rbx),%edx
180044c57:	48 8b ce             	mov    %rsi,%rcx
180044c5a:	e8 c9 f6 ff ff       	call   0x180044328
180044c5f:	8b 4b 2c             	mov    0x2c(%rbx),%ecx
180044c62:	4c 8d 4b 50          	lea    0x50(%rbx),%r9
180044c66:	8b 43 28             	mov    0x28(%rbx),%eax
180044c69:	41 ba 01 00 00 00    	mov    $0x1,%r10d
180044c6f:	41 8b d2             	mov    %r10d,%edx
180044c72:	45 8b c2             	mov    %r10d,%r8d
180044c75:	d3 e2                	shl    %cl,%edx
180044c77:	8b c8                	mov    %eax,%ecx
180044c79:	41 d3 e0             	shl    %cl,%r8d
180044c7c:	41 2b d2             	sub    %r10d,%edx
180044c7f:	d3 e2                	shl    %cl,%edx
180044c81:	45 2b c2             	sub    %r10d,%r8d
180044c84:	48 8b ce             	mov    %rsi,%rcx
180044c87:	e8 44 fd ff ff       	call   0x1800449d0
180044c8c:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180044c91:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180044c96:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180044c9b:	48 83 c4 20          	add    $0x20,%rsp
180044c9f:	41 5f                	pop    %r15
180044ca1:	41 5e                	pop    %r14
180044ca3:	5f                   	pop    %rdi
180044ca4:	c3                   	ret
180044ca5:	cc                   	int3
180044ca6:	cc                   	int3
180044ca7:	cc                   	int3
180044ca8:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180044cad:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
180044cb2:	56                   	push   %rsi
180044cb3:	57                   	push   %rdi
180044cb4:	41 56                	push   %r14
180044cb6:	48 83 ec 20          	sub    $0x20,%rsp
180044cba:	8b 41 28             	mov    0x28(%rcx),%eax
180044cbd:	49 8b f0             	mov    %r8,%rsi
180044cc0:	03 41 2c             	add    0x2c(%rcx),%eax
180044cc3:	44 8b f2             	mov    %edx,%r14d
180044cc6:	48 8b f9             	mov    %rcx,%rdi
180044cc9:	33 db                	xor    %ebx,%ebx
180044ccb:	33 d2                	xor    %edx,%edx
180044ccd:	89 5c 24 40          	mov    %ebx,0x40(%rsp)
180044cd1:	48 8b ce             	mov    %rsi,%rcx
180044cd4:	44 8d 04 c5 10 00 00 	lea    0x10(,%rax,8),%r8d
180044cdb:	00
180044cdc:	e8 9f 0f 0f 00       	call   0x180135c80
180044ce1:	39 5f 2c             	cmp    %ebx,0x2c(%rdi)
180044ce4:	76 28                	jbe    0x180044d0e
180044ce6:	8b d3                	mov    %ebx,%edx
180044ce8:	48 8d 4f 38          	lea    0x38(%rdi),%rcx
180044cec:	e8 1f f4 ff ff       	call   0x180044110
180044cf1:	41 85 c6             	test   %eax,%r14d
180044cf4:	74 0d                	je     0x180044d03
180044cf6:	8b 4f 28             	mov    0x28(%rdi),%ecx
180044cf9:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
180044cfe:	03 cb                	add    %ebx,%ecx
180044d00:	0f ab 08             	bts    %ecx,(%rax)
180044d03:	ff c3                	inc    %ebx
180044d05:	3b 5f 2c             	cmp    0x2c(%rdi),%ebx
180044d08:	72 dc                	jb     0x180044ce6
180044d0a:	8b 5c 24 40          	mov    0x40(%rsp),%ebx
180044d0e:	48 8b 47 50          	mov    0x50(%rdi),%rax
180044d12:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
180044d17:	89 5e 08             	mov    %ebx,0x8(%rsi)
180044d1a:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
180044d1f:	48 89 06             	mov    %rax,(%rsi)
180044d22:	48 83 c4 20          	add    $0x20,%rsp
180044d26:	41 5e                	pop    %r14
180044d28:	5f                   	pop    %rdi
180044d29:	5e                   	pop    %rsi
180044d2a:	c3                   	ret
180044d2b:	cc                   	int3
180044d2c:	89 54 24 10          	mov    %edx,0x10(%rsp)
180044d30:	55                   	push   %rbp
180044d31:	53                   	push   %rbx
180044d32:	56                   	push   %rsi
180044d33:	57                   	push   %rdi
180044d34:	41 54                	push   %r12
180044d36:	41 55                	push   %r13
180044d38:	41 56                	push   %r14
180044d3a:	41 57                	push   %r15
180044d3c:	48 8b ec             	mov    %rsp,%rbp
180044d3f:	48 83 ec 28          	sub    $0x28,%rsp
180044d43:	83 65 58 00          	andl   $0x0,0x58(%rbp)
180044d47:	45 33 ff             	xor    %r15d,%r15d
180044d4a:	45 33 ed             	xor    %r13d,%r13d
180044d4d:	c6 45 48 00          	movb   $0x0,0x48(%rbp)
180044d51:	4d 8b f1             	mov    %r9,%r14
180044d54:	41 8b f0             	mov    %r8d,%esi
180044d57:	8b fa                	mov    %edx,%edi
180044d59:	48 8b d9             	mov    %rcx,%rbx
180044d5c:	4d 85 c9             	test   %r9,%r9
180044d5f:	74 18                	je     0x180044d79
180044d61:	8b 41 2c             	mov    0x2c(%rcx),%eax
180044d64:	33 d2                	xor    %edx,%edx
180044d66:	03 41 28             	add    0x28(%rcx),%eax
180044d69:	49 8b c9             	mov    %r9,%rcx
180044d6c:	44 8d 04 c5 10 00 00 	lea    0x10(,%rax,8),%r8d
180044d73:	00
180044d74:	e8 07 0f 0f 00       	call   0x180135c80
180044d79:	0b f7                	or     %edi,%esi
180044d7b:	33 d2                	xor    %edx,%edx
180044d7d:	89 75 58             	mov    %esi,0x58(%rbp)
180044d80:	39 53 2c             	cmp    %edx,0x2c(%rbx)
180044d83:	76 30                	jbe    0x180044db5
180044d85:	8b 4b 28             	mov    0x28(%rbx),%ecx
180044d88:	48 8d 45 50          	lea    0x50(%rbp),%rax
180044d8c:	03 ca                	add    %edx,%ecx
180044d8e:	0f a3 08             	bt     %ecx,(%rax)
180044d91:	73 18                	jae    0x180044dab
180044d93:	48 8d 4b 38          	lea    0x38(%rbx),%rcx
180044d97:	e8 74 f3 ff ff       	call   0x180044110
180044d9c:	8b 7d 50             	mov    0x50(%rbp),%edi
180044d9f:	44 0b f8             	or     %eax,%r15d
180044da2:	23 c6                	and    %esi,%eax
180044da4:	0b f8                	or     %eax,%edi
180044da6:	89 7d 50             	mov    %edi,0x50(%rbp)
180044da9:	eb 03                	jmp    0x180044dae
180044dab:	8b 7d 50             	mov    0x50(%rbp),%edi
180044dae:	ff c2                	inc    %edx
180044db0:	3b 53 2c             	cmp    0x2c(%rbx),%edx
180044db3:	72 d0                	jb     0x180044d85
180044db5:	33 d2                	xor    %edx,%edx
180044db7:	39 53 30             	cmp    %edx,0x30(%rbx)
180044dba:	76 41                	jbe    0x180044dfd
180044dbc:	48 8d 4b 38          	lea    0x38(%rbx),%rcx
180044dc0:	e8 4b f3 ff ff       	call   0x180044110
180044dc5:	8b 4b 28             	mov    0x28(%rbx),%ecx
180044dc8:	89 45 50             	mov    %eax,0x50(%rbp)
180044dcb:	03 ca                	add    %edx,%ecx
180044dcd:	48 8d 45 50          	lea    0x50(%rbp),%rax
180044dd1:	0f ab 08             	bts    %ecx,(%rax)
180044dd4:	8b 4d 50             	mov    0x50(%rbp),%ecx
180044dd7:	85 cf                	test   %ecx,%edi
180044dd9:	74 1b                	je     0x180044df6
180044ddb:	45 8b c5             	mov    %r13d,%r8d
180044dde:	23 ce                	and    %esi,%ecx
180044de0:	74 14                	je     0x180044df6
180044de2:	8d 41 ff             	lea    -0x1(%rcx),%eax
180044de5:	41 ff c0             	inc    %r8d
180044de8:	23 c8                	and    %eax,%ecx
180044dea:	75 f6                	jne    0x180044de2
180044dec:	41 83 f8 01          	cmp    $0x1,%r8d
180044df0:	0f 87 8b 00 00 00    	ja     0x180044e81
180044df6:	ff c2                	inc    %edx
180044df8:	3b 53 30             	cmp    0x30(%rbx),%edx
180044dfb:	72 bf                	jb     0x180044dbc
180044dfd:	44 8b e7             	mov    %edi,%r12d
180044e00:	89 7d 60             	mov    %edi,0x60(%rbp)
180044e03:	33 d2                	xor    %edx,%edx
180044e05:	39 53 2c             	cmp    %edx,0x2c(%rbx)
180044e08:	76 54                	jbe    0x180044e5e
180044e0a:	8b 4b 28             	mov    0x28(%rbx),%ecx
180044e0d:	8d 04 11             	lea    (%rcx,%rdx,1),%eax
180044e10:	4c 8d 45 58          	lea    0x58(%rbp),%r8
180044e14:	41 0f a3 00          	bt     %eax,(%r8)
180044e18:	72 3a                	jb     0x180044e54
180044e1a:	48 8d 4b 38          	lea    0x38(%rbx),%rcx
180044e1e:	e8 ed f2 ff ff       	call   0x180044110
180044e23:	8b 4b 28             	mov    0x28(%rbx),%ecx
180044e26:	4c 8d 45 50          	lea    0x50(%rbp),%r8
180044e2a:	89 45 50             	mov    %eax,0x50(%rbp)
180044e2d:	8d 04 11             	lea    (%rcx,%rdx,1),%eax
180044e30:	41 0f ab 00          	bts    %eax,(%r8)
180044e34:	41 8b c4             	mov    %r12d,%eax
180044e37:	23 45 50             	and    0x50(%rbp),%eax
180044e3a:	74 18                	je     0x180044e54
180044e3c:	44 0b 7d 50          	or     0x50(%rbp),%r15d
180044e40:	4c 8d 45 60          	lea    0x60(%rbp),%r8
180044e44:	0f bc c0             	bsf    %eax,%eax
180044e47:	41 0f b3 00          	btr    %eax,(%r8)
180044e4b:	44 8b 65 60          	mov    0x60(%rbp),%r12d
180044e4f:	45 85 e4             	test   %r12d,%r12d
180044e52:	74 07                	je     0x180044e5b
180044e54:	ff c2                	inc    %edx
180044e56:	3b 53 2c             	cmp    0x2c(%rbx),%edx
180044e59:	72 b2                	jb     0x180044e0d
180044e5b:	8b 75 58             	mov    0x58(%rbp),%esi
180044e5e:	8b 4b 28             	mov    0x28(%rbx),%ecx
180044e61:	8b c6                	mov    %esi,%eax
180044e63:	f7 d0                	not    %eax
180044e65:	44 23 f8             	and    %eax,%r15d
180044e68:	b8 01 00 00 00       	mov    $0x1,%eax
180044e6d:	d3 e0                	shl    %cl,%eax
180044e6f:	ff c8                	dec    %eax
180044e71:	41 85 c4             	test   %eax,%r12d
180044e74:	74 1a                	je     0x180044e90
180044e76:	41 bd 0b 00 e7 c0    	mov    $0xc0e7000b,%r13d
180044e7c:	e9 a5 00 00 00       	jmp    0x180044f26
180044e81:	c6 45 48 01          	movb   $0x1,0x48(%rbp)
180044e85:	44 8b e6             	mov    %esi,%r12d
180044e88:	89 75 60             	mov    %esi,0x60(%rbp)
180044e8b:	e9 73 ff ff ff       	jmp    0x180044e03
180044e90:	4d 85 f6             	test   %r14,%r14
180044e93:	0f 84 8d 00 00 00    	je     0x180044f26
180044e99:	41 8b c7             	mov    %r15d,%eax
180044e9c:	d3 f8                	sar    %cl,%eax
180044e9e:	85 c0                	test   %eax,%eax
180044ea0:	75 09                	jne    0x180044eab
180044ea2:	48 8b 43 50          	mov    0x50(%rbx),%rax
180044ea6:	49 89 06             	mov    %rax,(%r14)
180044ea9:	eb 77                	jmp    0x180044f22
180044eab:	44 38 6d 48          	cmp    %r13b,0x48(%rbp)
180044eaf:	0f 45 fe             	cmovne %esi,%edi
180044eb2:	32 c9                	xor    %cl,%cl
180044eb4:	48 8d 73 58          	lea    0x58(%rbx),%rsi
180044eb8:	33 d2                	xor    %edx,%edx
180044eba:	48 8b 06             	mov    (%rsi),%rax
180044ebd:	48 3b c6             	cmp    %rsi,%rax
180044ec0:	74 15                	je     0x180044ed7
180044ec2:	48 8b d0             	mov    %rax,%rdx
180044ec5:	39 78 10             	cmp    %edi,0x10(%rax)
180044ec8:	75 06                	jne    0x180044ed0
180044eca:	44 39 78 14          	cmp    %r15d,0x14(%rax)
180044ece:	74 05                	je     0x180044ed5
180044ed0:	48 8b 00             	mov    (%rax),%rax
180044ed3:	eb e8                	jmp    0x180044ebd
180044ed5:	b1 01                	mov    $0x1,%cl
180044ed7:	f6 d9                	neg    %cl
180044ed9:	48 1b c0             	sbb    %rax,%rax
180044edc:	48 23 c2             	and    %rdx,%rax
180044edf:	49 89 06             	mov    %rax,(%r14)
180044ee2:	75 39                	jne    0x180044f1d
180044ee4:	48 8d 4b 38          	lea    0x38(%rbx),%rcx
180044ee8:	4d 8b ce             	mov    %r14,%r9
180044eeb:	45 8b c7             	mov    %r15d,%r8d
180044eee:	8b d7                	mov    %edi,%edx
180044ef0:	e8 7f f6 ff ff       	call   0x180044574
180044ef5:	44 8b e8             	mov    %eax,%r13d
180044ef8:	85 c0                	test   %eax,%eax
180044efa:	78 21                	js     0x180044f1d
180044efc:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
180044f00:	49 8b 06             	mov    (%r14),%rax
180044f03:	48 39 31             	cmp    %rsi,(%rcx)
180044f06:	74 07                	je     0x180044f0f
180044f08:	b9 03 00 00 00       	mov    $0x3,%ecx
180044f0d:	cd 29                	int    $0x29
180044f0f:	48 89 30             	mov    %rsi,(%rax)
180044f12:	48 89 48 08          	mov    %rcx,0x8(%rax)
180044f16:	48 89 01             	mov    %rax,(%rcx)
180044f19:	48 89 46 08          	mov    %rax,0x8(%rsi)
180044f1d:	45 85 ed             	test   %r13d,%r13d
180044f20:	78 04                	js     0x180044f26
180044f22:	45 89 7e 08          	mov    %r15d,0x8(%r14)
180044f26:	41 8b c5             	mov    %r13d,%eax
180044f29:	48 83 c4 28          	add    $0x28,%rsp
180044f2d:	41 5f                	pop    %r15
180044f2f:	41 5e                	pop    %r14
180044f31:	41 5d                	pop    %r13
180044f33:	41 5c                	pop    %r12
180044f35:	5f                   	pop    %rdi
180044f36:	5e                   	pop    %rsi
180044f37:	5b                   	pop    %rbx
180044f38:	5d                   	pop    %rbp
180044f39:	c3                   	ret
180044f3a:	cc                   	int3
180044f3b:	cc                   	int3
180044f3c:	48 8b c4             	mov    %rsp,%rax
180044f3f:	48 89 58 10          	mov    %rbx,0x10(%rax)
180044f43:	44 88 48 20          	mov    %r9b,0x20(%rax)
180044f47:	44 89 40 18          	mov    %r8d,0x18(%rax)
180044f4b:	48 89 48 08          	mov    %rcx,0x8(%rax)
180044f4f:	55                   	push   %rbp
180044f50:	56                   	push   %rsi
180044f51:	57                   	push   %rdi
180044f52:	41 54                	push   %r12
180044f54:	41 55                	push   %r13
180044f56:	41 56                	push   %r14
180044f58:	41 57                	push   %r15
180044f5a:	48 83 ec 30          	sub    $0x30,%rsp
180044f5e:	8b 41 34             	mov    0x34(%rcx),%eax
180044f61:	4c 8b e2             	mov    %rdx,%r12
180044f64:	33 d2                	xor    %edx,%edx
180044f66:	33 ff                	xor    %edi,%edi
180044f68:	f7 71 08             	divl   0x8(%rcx)
180044f6b:	45 8b e8             	mov    %r8d,%r13d
180044f6e:	48 8b e9             	mov    %rcx,%rbp
180044f71:	44 8b f8             	mov    %eax,%r15d
180044f74:	45 85 c0             	test   %r8d,%r8d
180044f77:	0f 84 e9 00 00 00    	je     0x180045066
180044f7d:	49 8b 1c 24          	mov    (%r12),%rbx
180044f81:	33 f6                	xor    %esi,%esi
180044f83:	83 64 24 24 00       	andl   $0x0,0x24(%rsp)
180044f88:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
180044f8d:	39 73 18             	cmp    %esi,0x18(%rbx)
180044f90:	0f 86 c4 00 00 00    	jbe    0x18004505a
180044f96:	8b 6c 24 24          	mov    0x24(%rsp),%ebp
180044f9a:	44 8a ac 24 88 00 00 	mov    0x88(%rsp),%r13b
180044fa1:	00
180044fa2:	44 0f b6 44 b3 1c    	movzbl 0x1c(%rbx,%rsi,4),%r8d
180044fa8:	4f 8b 4c c4 10       	mov    0x10(%r12,%r8,8),%r9
180044fad:	4d 85 c9             	test   %r9,%r9
180044fb0:	0f 84 8c 00 00 00    	je     0x180045042
180044fb6:	44 0f b6 74 b3 1d    	movzbl 0x1d(%rbx,%rsi,4),%r14d
180044fbc:	0f b6 44 b3 1e       	movzbl 0x1e(%rbx,%rsi,4),%eax
180044fc1:	41 8b ce             	mov    %r14d,%ecx
180044fc4:	41 0f af cf          	imul   %r15d,%ecx
180044fc8:	44 8b df             	mov    %edi,%r11d
180044fcb:	4d 8b 54 c4 10       	mov    0x10(%r12,%rax,8),%r10
180044fd0:	49 03 cb             	add    %r11,%rcx
180044fd3:	4c 03 c9             	add    %rcx,%r9
180044fd6:	4d 85 d2             	test   %r10,%r10
180044fd9:	74 67                	je     0x180045042
180044fdb:	0f b6 4c b3 1f       	movzbl 0x1f(%rbx,%rsi,4),%ecx
180044fe0:	41 0f af cf          	imul   %r15d,%ecx
180044fe4:	49 03 cb             	add    %r11,%rcx
180044fe7:	4c 03 d1             	add    %rcx,%r10
180044fea:	41 3b e8             	cmp    %r8d,%ebp
180044fed:	74 08                	je     0x180044ff7
180044fef:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
180044ff4:	41 8b e8             	mov    %r8d,%ebp
180044ff7:	45 84 ed             	test   %r13b,%r13b
180044ffa:	75 1b                	jne    0x180045017
180044ffc:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
180045001:	44 0f ab 30          	bts    %r14d,(%rax)
180045005:	72 10                	jb     0x180045017
180045007:	4d 8b c7             	mov    %r15,%r8
18004500a:	49 8b d2             	mov    %r10,%rdx
18004500d:	49 8b c9             	mov    %r9,%rcx
180045010:	e8 ab 09 0f 00       	call   0x1801359c0
180045015:	eb 2b                	jmp    0x180045042
180045017:	41 8b c7             	mov    %r15d,%eax
18004501a:	c1 e8 07             	shr    $0x7,%eax
18004501d:	85 c0                	test   %eax,%eax
18004501f:	74 21                	je     0x180045042
180045021:	8b d0                	mov    %eax,%edx
180045023:	b9 10 00 00 00       	mov    $0x10,%ecx
180045028:	49 8b 02             	mov    (%r10),%rax
18004502b:	49 83 c2 08          	add    $0x8,%r10
18004502f:	49 31 01             	xor    %rax,(%r9)
180045032:	49 83 c1 08          	add    $0x8,%r9
180045036:	48 83 e9 01          	sub    $0x1,%rcx
18004503a:	75 ec                	jne    0x180045028
18004503c:	48 83 ea 01          	sub    $0x1,%rdx