1800449f2:	48 8b 01             	mov    (%rcx),%rax
1800449f5:	33 db                	xor    %ebx,%ebx
1800449f7:	4d 8b e9             	mov    %r9,%r13
1800449fa:	45 8b f0             	mov    %r8d,%r14d
1800449fd:	8b ea                	mov    %edx,%ebp
1800449ff:	48 8b f9             	mov    %rcx,%rdi
180044a02:	8b f3                	mov    %ebx,%esi
180044a04:	44 8b d3             	mov    %ebx,%r10d
180044a07:	44 8b 20             	mov    (%rax),%r12d
180044a0a:	49 89 19             	mov    %rbx,(%r9)
180044a0d:	44 8b 79 08          	mov    0x8(%rcx),%r15d
180044a11:	44 89 64 24 20       	mov    %r12d,0x20(%rsp)
180044a16:	45 85 ff             	test   %r15d,%r15d
180044a19:	0f 84 88 00 00 00    	je     0x180044aa7
180044a1f:	44 8b 49 0c          	mov    0xc(%rcx),%r9d
180044a23:	44 8b c3             	mov    %ebx,%r8d
180044a26:	45 85 c9             	test   %r9d,%r9d
180044a29:	74 58                	je     0x180044a83
180044a2b:	4c 8b 6f 10          	mov    0x10(%rdi),%r13
180044a2f:	45 8b f1             	mov    %r9d,%r14d
180044a32:	4c 8b 27             	mov    (%rdi),%r12
180044a35:	45 0f af f2          	imul   %r10d,%r14d
180044a39:	43 8d 04 06          	lea    (%r14,%r8,1),%eax
180044a3d:	8b eb                	mov    %ebx,%ebp
180044a3f:	41 8b 44 85 00       	mov    0x0(%r13,%rax,4),%eax
180044a44:	85 c0                	test   %eax,%eax
180044a46:	74 31                	je     0x180044a79
180044a48:	45 8b 1c 24          	mov    (%r12),%r11d
180044a4c:	8b c8                	mov    %eax,%ecx
180044a4e:	49 8b 44 24 08       	mov    0x8(%r12),%rax
180044a53:	8b 0c 88             	mov    (%rax,%rcx,4),%ecx
180044a56:	41 0f af cb          	imul   %r11d,%ecx
180044a5a:	45 0f af db          	imul   %r11d,%r11d
180044a5e:	49 03 4c 24 18       	add    0x18(%r12),%rcx
180044a63:	45 85 db             	test   %r11d,%r11d
180044a66:	74 11                	je     0x180044a79
180044a68:	41 8b d3             	mov    %r11d,%edx
180044a6b:	0f b6 01             	movzbl (%rcx),%eax
180044a6e:	48 ff c1             	inc    %rcx
180044a71:	03 e8                	add    %eax,%ebp
180044a73:	48 83 ea 01          	sub    $0x1,%rdx
180044a77:	75 f2                	jne    0x180044a6b
180044a79:	03 f5                	add    %ebp,%esi
180044a7b:	41 ff c0             	inc    %r8d
180044a7e:	45 3b c1             	cmp    %r9d,%r8d
180044a81:	72 b6                	jb     0x180044a39
180044a83:	41 ff c2             	inc    %r10d
180044a86:	45 3b d7             	cmp    %r15d,%r10d
180044a89:	72 98                	jb     0x180044a23
180044a8b:	44 8b 64 24 20       	mov    0x20(%rsp),%r12d
180044a90:	4c 8b ac 24 98 00 00 	mov    0x98(%rsp),%r13
180044a97:	00
180044a98:	8b ac 24 88 00 00 00 	mov    0x88(%rsp),%ebp
180044a9f:	44 8b b4 24 90 00 00 	mov    0x90(%rsp),%r14d
180044aa6:	00
180044aa7:	8b ce                	mov    %esi,%ecx
180044aa9:	c1 e1 02             	shl    $0x2,%ecx
180044aac:	48 83 c1 20          	add    $0x20,%rcx
180044ab0:	e8 5f 1e 00 00       	call   0x180046914
180044ab5:	4c 8b c8             	mov    %rax,%r9
180044ab8:	48 85 c0             	test   %rax,%rax
180044abb:	75 0a                	jne    0x180044ac7
180044abd:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
180044ac2:	e9 0e 01 00 00       	jmp    0x180044bd5
180044ac7:	44 89 70 14          	mov    %r14d,0x14(%rax)
180044acb:	44 8b db             	mov    %ebx,%r11d
180044ace:	45 8b f4             	mov    %r12d,%r14d
180044ad1:	4c 89 48 08          	mov    %r9,0x8(%rax)
180044ad5:	45 0f af f4          	imul   %r12d,%r14d
180044ad9:	4c 89 08             	mov    %r9,(%rax)
180044adc:	89 68 10             	mov    %ebp,0x10(%rax)
180044adf:	89 70 18             	mov    %esi,0x18(%rax)
180044ae2:	39 5f 08             	cmp    %ebx,0x8(%rdi)
180044ae5:	0f 86 e6 00 00 00    	jbe    0x180044bd1
180044aeb:	44 8b eb             	mov    %ebx,%r13d
180044aee:	44 8b 57 0c          	mov    0xc(%rdi),%r10d
180044af2:	8b f3                	mov    %ebx,%esi
180044af4:	45 85 d2             	test   %r10d,%r10d
180044af7:	0f 84 bf 00 00 00    	je     0x180044bbc
180044afd:	48 8b 47 10          	mov    0x10(%rdi),%rax
180044b01:	41 8b ca             	mov    %r10d,%ecx
180044b04:	41 0f af cb          	imul   %r11d,%ecx
180044b08:	03 ce                	add    %esi,%ecx
180044b0a:	8b 14 88             	mov    (%rax,%rcx,4),%edx
180044b0d:	41 8b c2             	mov    %r10d,%eax
180044b10:	85 d2                	test   %edx,%edx
180044b12:	0f 84 97 00 00 00    	je     0x180044baf
180044b18:	4c 8b 07             	mov    (%rdi),%r8
180044b1b:	49 8b 40 08          	mov    0x8(%r8),%rax
180044b1f:	8b 2c 90             	mov    (%rax,%rdx,4),%ebp
180044b22:	41 8b c2             	mov    %r10d,%eax
180044b25:	41 0f af 28          	imul   (%r8),%ebp
180044b29:	49 03 68 18          	add    0x18(%r8),%rbp
180044b2d:	44 8b c3             	mov    %ebx,%r8d
180044b30:	45 85 f6             	test   %r14d,%r14d
180044b33:	74 7a                	je     0x180044baf
180044b35:	8b bc 24 88 00 00 00 	mov    0x88(%rsp),%edi
180044b3c:	38 5d 00             	cmp    %bl,0x0(%rbp)
180044b3f:	74 58                	je     0x180044b99
180044b41:	45 8b d5             	mov    %r13d,%r10d
180044b44:	8b cf                	mov    %edi,%ecx
180044b46:	45 85 db             	test   %r11d,%r11d
180044b49:	74 0e                	je     0x180044b59
180044b4b:	41 8b d3             	mov    %r11d,%edx
180044b4e:	8d 41 ff             	lea    -0x1(%rcx),%eax
180044b51:	23 c8                	and    %eax,%ecx
180044b53:	48 83 ea 01          	sub    $0x1,%rdx
180044b57:	75 f5                	jne    0x180044b4e
180044b59:	0f bc c1             	bsf    %ecx,%eax
180044b5c:	8b 8c 24 90 00 00 00 	mov    0x90(%rsp),%ecx
180044b63:	33 d2                	xor    %edx,%edx
180044b65:	43 88 44 91 1c       	mov    %al,0x1c(%r9,%r10,4)
180044b6a:	41 8b c0             	mov    %r8d,%eax
180044b6d:	41 f7 f4             	div    %r12d
180044b70:	43 88 54 91 1d       	mov    %dl,0x1d(%r9,%r10,4)
180044b75:	44 8b f8             	mov    %eax,%r15d
180044b78:	85 f6                	test   %esi,%esi
180044b7a:	74 0d                	je     0x180044b89
180044b7c:	8b d6                	mov    %esi,%edx
180044b7e:	8d 41 ff             	lea    -0x1(%rcx),%eax
180044b81:	23 c8                	and    %eax,%ecx
180044b83:	48 83 ea 01          	sub    $0x1,%rdx
180044b87:	75 f5                	jne    0x180044b7e
180044b89:	0f bc c1             	bsf    %ecx,%eax
180044b8c:	47 88 7c 91 1f       	mov    %r15b,0x1f(%r9,%r10,4)
180044b91:	41 ff c5             	inc    %r13d
180044b94:	43 88 44 91 1e       	mov    %al,0x1e(%r9,%r10,4)
180044b99:	41 ff c0             	inc    %r8d
180044b9c:	48 ff c5             	inc    %rbp
180044b9f:	45 3b c6             	cmp    %r14d,%r8d
180044ba2:	72 98                	jb     0x180044b3c
180044ba4:	48 8b bc 24 80 00 00 	mov    0x80(%rsp),%rdi
180044bab:	00
180044bac:	8b 47 0c             	mov    0xc(%rdi),%eax
180044baf:	ff c6                	inc    %esi
180044bb1:	44 8b d0             	mov    %eax,%r10d
180044bb4:	3b f0                	cmp    %eax,%esi
180044bb6:	0f 82 41 ff ff ff    	jb     0x180044afd
180044bbc:	41 ff c3             	inc    %r11d
180044bbf:	44 3b 5f 08          	cmp    0x8(%rdi),%r11d
180044bc3:	0f 82 25 ff ff ff    	jb     0x180044aee
180044bc9:	4c 8b ac 24 98 00 00 	mov    0x98(%rsp),%r13
180044bd0:	00
180044bd1:	4d 89 4d 00          	mov    %r9,0x0(%r13)
180044bd5:	8b c3                	mov    %ebx,%eax
180044bd7:	48 83 c4 38          	add    $0x38,%rsp
180044bdb:	41 5f                	pop    %r15
180044bdd:	41 5e                	pop    %r14
180044bdf:	41 5d                	pop    %r13
180044be1:	41 5c                	pop    %r12
180044be3:	5f                   	pop    %rdi
180044be4:	5e                   	pop    %rsi
180044be5:	5d                   	pop    %rbp
180044be6:	5b                   	pop    %rbx
180044be7:	c3                   	ret
180044be8:	cc                   	int3
180044be9:	cc                   	int3
180044bea:	cc                   	int3
180044beb:	cc                   	int3
180044bec:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180044bf1:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180044bf6:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180044bfb:	57                   	push   %rdi
180044bfc:	41 56                	push   %r14
180044bfe:	41 57                	push   %r15
180044c00:	48 83 ec 20          	sub    $0x20,%rsp
180044c04:	8b 74 24 60          	mov    0x60(%rsp),%esi
180044c08:	45 8b f9             	mov    %r9d,%r15d
180044c0b:	41 8b e8             	mov    %r8d,%ebp
180044c0e:	44 8b f2             	mov    %edx,%r14d
180044c11:	48 8b d9             	mov    %rcx,%rbx
180044c14:	85 f6                	test   %esi,%esi
180044c16:	75 07                	jne    0x180044c1f
180044c18:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180044c1d:	eb 6d                	jmp    0x180044c8c
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