180043d72:	e8 9d 2b 00 00       	call   0x180046914
180043d77:	48 89 47 08          	mov    %rax,0x8(%rdi)
180043d7b:	48 85 c0             	test   %rax,%rax
180043d7e:	75 0a                	jne    0x180043d8a
180043d80:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
180043d85:	e9 c1 00 00 00       	jmp    0x180043e4b
180043d8a:	48 8b ce             	mov    %rsi,%rcx
180043d8d:	e8 82 2b 00 00       	call   0x180046914
180043d92:	48 89 47 10          	mov    %rax,0x10(%rdi)
180043d96:	48 85 c0             	test   %rax,%rax
180043d99:	74 e5                	je     0x180043d80
180043d9b:	8b 4f 04             	mov    0x4(%rdi),%ecx
180043d9e:	ba 01 00 00 00       	mov    $0x1,%edx
180043da3:	44 8b c3             	mov    %ebx,%r8d
180043da6:	8d 41 ff             	lea    -0x1(%rcx),%eax
180043da9:	85 c0                	test   %eax,%eax
180043dab:	74 2b                	je     0x180043dd8
180043dad:	48 8b 47 08          	mov    0x8(%rdi),%rax
180043db1:	8b ca                	mov    %edx,%ecx
180043db3:	44 89 04 88          	mov    %r8d,(%rax,%rcx,4)
180043db7:	48 8b 47 10          	mov    0x10(%rdi),%rax
180043dbb:	41 8b c8             	mov    %r8d,%ecx
180043dbe:	89 14 88             	mov    %edx,(%rax,%rcx,4)
180043dc1:	03 d2                	add    %edx,%edx
180043dc3:	8b 4f 04             	mov    0x4(%rdi),%ecx
180043dc6:	85 ca                	test   %ecx,%edx
180043dc8:	74 03                	je     0x180043dcd
180043dca:	83 f2 13             	xor    $0x13,%edx
180043dcd:	41 ff c0             	inc    %r8d
180043dd0:	8d 41 ff             	lea    -0x1(%rcx),%eax
180043dd3:	44 3b c0             	cmp    %eax,%r8d
180043dd6:	72 d5                	jb     0x180043dad
180043dd8:	8b 07                	mov    (%rdi),%eax
180043dda:	8d 70 fe             	lea    -0x2(%rax),%esi
180043ddd:	03 f1                	add    %ecx,%esi
180043ddf:	0f af c6             	imul   %esi,%eax
180043de2:	8b c8                	mov    %eax,%ecx
180043de4:	e8 2b 2b 00 00       	call   0x180046914
180043de9:	48 89 47 18          	mov    %rax,0x18(%rdi)
180043ded:	48 85 c0             	test   %rax,%rax
180043df0:	74 8e                	je     0x180043d80
180043df2:	44 8b cb             	mov    %ebx,%r9d
180043df5:	85 f6                	test   %esi,%esi
180043df7:	74 52                	je     0x180043e4b
180043df9:	8b 4f 04             	mov    0x4(%rdi),%ecx
180043dfc:	33 d2                	xor    %edx,%edx
180043dfe:	44 8b d3             	mov    %ebx,%r10d
180043e01:	8d 41 ff             	lea    -0x1(%rcx),%eax
180043e04:	41 03 c1             	add    %r9d,%eax
180043e07:	ff c9                	dec    %ecx
180043e09:	f7 f1                	div    %ecx
180043e0b:	48 8b 47 10          	mov    0x10(%rdi),%rax
180043e0f:	48 63 ca             	movslq %edx,%rcx
180043e12:	8b 0c 88             	mov    (%rax,%rcx,4),%ecx
180043e15:	89 4c 24 38          	mov    %ecx,0x38(%rsp)
180043e19:	39 1f                	cmp    %ebx,(%rdi)
180043e1b:	76 26                	jbe    0x180043e43
180043e1d:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
180043e21:	48 8d 44 24 38       	lea    0x38(%rsp),%rax
180043e26:	44 0f a3 10          	bt     %r10d,(%rax)
180043e2a:	8b 07                	mov    (%rdi),%eax
180043e2c:	41 0f 92 c0          	setb   %r8b
180043e30:	41 0f af c1          	imul   %r9d,%eax
180043e34:	41 03 c2             	add    %r10d,%eax
180043e37:	41 ff c2             	inc    %r10d
180043e3a:	44 88 04 08          	mov    %r8b,(%rax,%rcx,1)
180043e3e:	44 3b 17             	cmp    (%rdi),%r10d
180043e41:	72 da                	jb     0x180043e1d
180043e43:	41 ff c1             	inc    %r9d
180043e46:	44 3b ce             	cmp    %esi,%r9d
180043e49:	72 ae                	jb     0x180043df9
180043e4b:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180043e50:	8b c3                	mov    %ebx,%eax
180043e52:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180043e57:	48 83 c4 20          	add    $0x20,%rsp
180043e5b:	5f                   	pop    %rdi
180043e5c:	c3                   	ret
180043e5d:	cc                   	int3
180043e5e:	cc                   	int3
180043e5f:	cc                   	int3
180043e60:	4c 8b d1             	mov    %rcx,%r10
180043e63:	85 d2                	test   %edx,%edx
180043e65:	74 31                	je     0x180043e98
180043e67:	45 85 c0             	test   %r8d,%r8d
180043e6a:	74 2c                	je     0x180043e98
180043e6c:	4c 8b 49 08          	mov    0x8(%rcx),%r9
180043e70:	8b 49 04             	mov    0x4(%rcx),%ecx
180043e73:	8b c2                	mov    %edx,%eax
180043e75:	41 8b d0             	mov    %r8d,%edx
180043e78:	45 8b 04 81          	mov    (%r9,%rax,4),%r8d
180043e7c:	8d 41 ff             	lea    -0x1(%rcx),%eax
180043e7f:	45 03 04 91          	add    (%r9,%rdx,4),%r8d
180043e83:	33 d2                	xor    %edx,%edx
180043e85:	41 03 c0             	add    %r8d,%eax
180043e88:	ff c9                	dec    %ecx
180043e8a:	f7 f1                	div    %ecx
180043e8c:	49 8b 42 10          	mov    0x10(%r10),%rax
180043e90:	48 63 ca             	movslq %edx,%rcx
180043e93:	8b 04 88             	mov    (%rax,%rcx,4),%eax
180043e96:	c3                   	ret
180043e97:	cc                   	int3
180043e98:	33 c0                	xor    %eax,%eax
180043e9a:	c3                   	ret
180043e9b:	cc                   	int3
180043e9c:	41 8b c0             	mov    %r8d,%eax
180043e9f:	4c 8b d1             	mov    %rcx,%r10
180043ea2:	85 d2                	test   %edx,%edx
180043ea4:	75 04                	jne    0x180043eaa
180043ea6:	33 c0                	xor    %eax,%eax
180043ea8:	c3                   	ret
180043ea9:	cc                   	int3
180043eaa:	4c 8b 41 08          	mov    0x8(%rcx),%r8
180043eae:	44 8b 49 04          	mov    0x4(%rcx),%r9d
180043eb2:	8b d2                	mov    %edx,%edx
180043eb4:	41 8b 0c 80          	mov    (%r8,%rax,4),%ecx
180043eb8:	41 8b 04 90          	mov    (%r8,%rdx,4),%eax
180043ebc:	33 d2                	xor    %edx,%edx
180043ebe:	2b c1                	sub    %ecx,%eax
180043ec0:	41 8d 49 ff          	lea    -0x1(%r9),%ecx
180043ec4:	ff c8                	dec    %eax
180043ec6:	41 03 c1             	add    %r9d,%eax
180043ec9:	f7 f1                	div    %ecx
180043ecb:	49 8b 42 10          	mov    0x10(%r10),%rax
180043ecf:	48 63 ca             	movslq %edx,%rcx
180043ed2:	8b 04 88             	mov    (%rax,%rcx,4),%eax
180043ed5:	c3                   	ret
180043ed6:	cc                   	int3
180043ed7:	cc                   	int3
180043ed8:	40 53                	rex push %rbx
180043eda:	48 83 ec 20          	sub    $0x20,%rsp
180043ede:	44 89 41 08          	mov    %r8d,0x8(%rcx)
180043ee2:	48 8b d9             	mov    %rcx,%rbx
180043ee5:	45 0f af c1          	imul   %r9d,%r8d
180043ee9:	48 89 11             	mov    %rdx,(%rcx)
180043eec:	44 89 49 0c          	mov    %r9d,0xc(%rcx)
180043ef0:	41 c1 e0 02          	shl    $0x2,%r8d
180043ef4:	41 8b c8             	mov    %r8d,%ecx
180043ef7:	e8 18 2a 00 00       	call   0x180046914
180043efc:	48 89 43 10          	mov    %rax,0x10(%rbx)
180043f00:	48 f7 d8             	neg    %rax
180043f03:	1b c0                	sbb    %eax,%eax
180043f05:	f7 d0                	not    %eax
180043f07:	25 9a 00 00 c0       	and    $0xc000009a,%eax
180043f0c:	48 83 c4 20          	add    $0x20,%rsp
180043f10:	5b                   	pop    %rbx
180043f11:	c3                   	ret
180043f12:	cc                   	int3
180043f13:	cc                   	int3
180043f14:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180043f19:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180043f1e:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
180043f23:	45 33 db             	xor    %r11d,%r11d
180043f26:	41 8b f8             	mov    %r8d,%edi
180043f29:	8b f2                	mov    %edx,%esi
180043f2b:	48 8b d9             	mov    %rcx,%rbx
180043f2e:	44 39 59 0c          	cmp    %r11d,0xc(%rcx)
180043f32:	76 3e                	jbe    0x180043f72
180043f34:	44 8b 4b 0c          	mov    0xc(%rbx),%r9d
180043f38:	41 8b c1             	mov    %r9d,%eax
180043f3b:	4c 8b 43 10          	mov    0x10(%rbx),%r8
180043f3f:	0f af c6             	imul   %esi,%eax
180043f42:	44 0f af cf          	imul   %edi,%r9d
180043f46:	41 03 c3             	add    %r11d,%eax
180043f49:	45 03 cb             	add    %r11d,%r9d
180043f4c:	45 8b 14 80          	mov    (%r8,%rax,4),%r10d
180043f50:	43 8b 0c 88          	mov    (%r8,%r9,4),%ecx
180043f54:	41 89 0c 80          	mov    %ecx,(%r8,%rax,4)
180043f58:	8b cf                	mov    %edi,%ecx
180043f5a:	0f af 4b 0c          	imul   0xc(%rbx),%ecx
180043f5e:	48 8b 43 10          	mov    0x10(%rbx),%rax
180043f62:	41 03 cb             	add    %r11d,%ecx
180043f65:	41 ff c3             	inc    %r11d
180043f68:	44 89 14 88          	mov    %r10d,(%rax,%rcx,4)
180043f6c:	44 3b 5b 0c          	cmp    0xc(%rbx),%r11d
180043f70:	72 c2                	jb     0x180043f34
180043f72:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
180043f77:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
180043f7c:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
180043f81:	c3                   	ret
180043f82:	cc                   	int3
180043f83:	cc                   	int3
180043f84:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180043f89:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180043f8e:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180043f93:	57                   	push   %rdi
180043f94:	41 56                	push   %r14
180043f96:	41 57                	push   %r15
180043f98:	48 83 ec 20          	sub    $0x20,%rsp
180043f9c:	33 ff                	xor    %edi,%edi
180043f9e:	41 8b e9             	mov    %r9d,%ebp
180043fa1:	45 8b f0             	mov    %r8d,%r14d
180043fa4:	44 8b fa             	mov    %edx,%r15d
180043fa7:	48 8b f1             	mov    %rcx,%rsi
180043faa:	39 79 0c             	cmp    %edi,0xc(%rcx)
180043fad:	76 33                	jbe    0x180043fe2
180043faf:	44 8b 4e 0c          	mov    0xc(%rsi),%r9d
180043fb3:	44 8b c5             	mov    %ebp,%r8d
180043fb6:	48 8b 5e 10          	mov    0x10(%rsi),%rbx
180043fba:	45 8b d9             	mov    %r9d,%r11d
180043fbd:	48 8b 0e             	mov    (%rsi),%rcx
180043fc0:	45 0f af ce          	imul   %r14d,%r9d
180043fc4:	45 0f af df          	imul   %r15d,%r11d
180043fc8:	44 03 cf             	add    %edi,%r9d
180043fcb:	44 03 df             	add    %edi,%r11d
180043fce:	42 8b 14 8b          	mov    (%rbx,%r9,4),%edx
180043fd2:	e8 89 fe ff ff       	call   0x180043e60
180043fd7:	42 31 04 9b          	xor    %eax,(%rbx,%r11,4)
180043fdb:	ff c7                	inc    %edi
180043fdd:	3b 7e 0c             	cmp    0xc(%rsi),%edi
180043fe0:	72 cd                	jb     0x180043faf
180043fe2:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180043fe7:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180043fec:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180043ff1:	48 83 c4 20          	add    $0x20,%rsp
180043ff5:	41 5f                	pop    %r15
180043ff7:	41 5e                	pop    %r14
180043ff9:	5f                   	pop    %rdi
180043ffa:	c3                   	ret
180043ffb:	cc                   	int3
180043ffc:	48 8b c4             	mov    %rsp,%rax
180043fff:	48 89 58 08          	mov    %rbx,0x8(%rax)
180044003:	48 89 68 10          	mov    %rbp,0x10(%rax)
180044007:	48 89 70 18          	mov    %rsi,0x18(%rax)
18004400b:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004400f:	41 56                	push   %r14
180044011:	48 83 ec 20          	sub    $0x20,%rsp
180044015:	8b 41 0c             	mov    0xc(%rcx),%eax
180044018:	33 ff                	xor    %edi,%edi
18004401a:	41 8b e8             	mov    %r8d,%ebp
18004401d:	44 8b f2             	mov    %edx,%r14d
180044020:	48 8b f1             	mov    %rcx,%rsi
180044023:	85 c0                	test   %eax,%eax
180044025:	74 28                	je     0x18004404f
180044027:	4c 8b 5e 10          	mov    0x10(%rsi),%r11
18004402b:	44 8b c5             	mov    %ebp,%r8d
18004402e:	48 8b 0e             	mov    (%rsi),%rcx
180044031:	41 0f af c6          	imul   %r14d,%eax
180044035:	03 c7                	add    %edi,%eax
180044037:	8b d8                	mov    %eax,%ebx
180044039:	41 8b 14 83          	mov    (%r11,%rax,4),%edx
18004403d:	e8 5a fe ff ff       	call   0x180043e9c
180044042:	41 89 04 9b          	mov    %eax,(%r11,%rbx,4)
180044046:	ff c7                	inc    %edi
180044048:	8b 46 0c             	mov    0xc(%rsi),%eax
18004404b:	3b f8                	cmp    %eax,%edi
18004404d:	72 d8                	jb     0x180044027
18004404f:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180044054:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180044059:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18004405e:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
180044063:	48 83 c4 20          	add    $0x20,%rsp
180044067:	41 5e                	pop    %r14
180044069:	c3                   	ret
18004406a:	cc                   	int3
18004406b:	cc                   	int3
18004406c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180044071:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180044076:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18004407b:	57                   	push   %rdi
18004407c:	41 56                	push   %r14
18004407e:	41 57                	push   %r15
180044080:	48 83 ec 20          	sub    $0x20,%rsp
180044084:	8b 79 0c             	mov    0xc(%rcx),%edi
180044087:	45 33 db             	xor    %r11d,%r11d
18004408a:	33 db                	xor    %ebx,%ebx
18004408c:	41 8b e8             	mov    %r8d,%ebp
18004408f:	85 ff                	test   %edi,%edi
180044091:	74 5f                	je     0x1800440f2
180044093:	4c 8b 79 10          	mov    0x10(%rcx),%r15
180044097:	8b f7                	mov    %edi,%esi
180044099:	4c 8b 31             	mov    (%rcx),%r14
18004409c:	0f af f2             	imul   %edx,%esi
18004409f:	8d 04 1e             	lea    (%rsi,%rbx,1),%eax
1800440a2:	44 8b c5             	mov    %ebp,%r8d
1800440a5:	41 8b 14 87          	mov    (%r15,%rax,4),%edx
1800440a9:	49 8b ce             	mov    %r14,%rcx
1800440ac:	e8 eb fd ff ff       	call   0x180043e9c
1800440b1:	45 33 d2             	xor    %r10d,%r10d
1800440b4:	85 c0                	test   %eax,%eax
1800440b6:	74 31                	je     0x1800440e9
1800440b8:	45 8b 0e             	mov    (%r14),%r9d
1800440bb:	8b c8                	mov    %eax,%ecx
1800440bd:	49 8b 46 08          	mov    0x8(%r14),%rax
1800440c1:	44 8b 04 88          	mov    (%rax,%rcx,4),%r8d
1800440c5:	45 0f af c1          	imul   %r9d,%r8d
1800440c9:	45 0f af c9          	imul   %r9d,%r9d
1800440cd:	4d 03 46 18          	add    0x18(%r14),%r8
1800440d1:	45 85 c9             	test   %r9d,%r9d
1800440d4:	74 13                	je     0x1800440e9
1800440d6:	41 8b d1             	mov    %r9d,%edx
1800440d9:	41 0f b6 08          	movzbl (%r8),%ecx
1800440dd:	49 ff c0             	inc    %r8
1800440e0:	44 03 d1             	add    %ecx,%r10d
1800440e3:	48 83 ea 01          	sub    $0x1,%rdx
1800440e7:	75 f0                	jne    0x1800440d9
1800440e9:	45 03 da             	add    %r10d,%r11d
1800440ec:	ff c3                	inc    %ebx
1800440ee:	3b df                	cmp    %edi,%ebx
1800440f0:	72 ad                	jb     0x18004409f
1800440f2:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1800440f7:	41 8b c3             	mov    %r11d,%eax
1800440fa:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
1800440ff:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180044104:	48 83 c4 20          	add    $0x20,%rsp
180044108:	41 5f                	pop    %r15
18004410a:	41 5e                	pop    %r14
18004410c:	5f                   	pop    %rdi
18004410d:	c3                   	ret
18004410e:	cc                   	int3
18004410f:	cc                   	int3
180044110:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180044115:	44 8b 51 0c          	mov    0xc(%rcx),%r10d
180044119:	45 33 c0             	xor    %r8d,%r8d
18004411c:	44 89 44 24 08       	mov    %r8d,0x8(%rsp)
180044121:	45 8b c8             	mov    %r8d,%r9d
180044124:	45 85 d2             	test   %r10d,%r10d
180044127:	74 2b                	je     0x180044154
180044129:	48 8b 59 10          	mov    0x10(%rcx),%rbx
18004412d:	45 8b da             	mov    %r10d,%r11d
180044130:	44 0f af da          	imul   %edx,%r11d
180044134:	43 8d 04 0b          	lea    (%r11,%r9,1),%eax
180044138:	44 39 04 83          	cmp    %r8d,(%rbx,%rax,4)
18004413c:	74 09                	je     0x180044147
18004413e:	48 8d 44 24 08       	lea    0x8(%rsp),%rax
180044143:	44 0f ab 08          	bts    %r9d,(%rax)
180044147:	41 ff c1             	inc    %r9d
18004414a:	45 3b ca             	cmp    %r10d,%r9d
18004414d:	72 e5                	jb     0x180044134
18004414f:	44 8b 44 24 08       	mov    0x8(%rsp),%r8d
180044154:	48 8b 5c 24 10       	mov    0x10(%rsp),%rbx
180044159:	41 8b c0             	mov    %r8d,%eax
18004415c:	c3                   	ret
18004415d:	cc                   	int3
18004415e:	cc                   	int3
18004415f:	cc                   	int3
180044160:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180044165:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18004416a:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
18004416f:	55                   	push   %rbp
180044170:	41 54                	push   %r12
180044172:	41 55                	push   %r13
180044174:	41 56                	push   %r14
180044176:	41 57                	push   %r15
180044178:	48 8b ec             	mov    %rsp,%rbp
18004417b:	48 83 ec 40          	sub    $0x40,%rsp
18004417f:	44 8b 49 0c          	mov    0xc(%rcx),%r9d
180044183:	48 8b d9             	mov    %rcx,%rbx
180044186:	44 8b 41 08          	mov    0x8(%rcx),%r8d
18004418a:	48 8b 11             	mov    (%rcx),%rdx
18004418d:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx