180056a7e:	0f 88 00 01 00 00    	js     0x180056b84
180056a84:	48 8b 43 18          	mov    0x18(%rbx),%rax
180056a88:	33 d2                	xor    %edx,%edx
180056a8a:	48 8b 7d 68          	mov    0x68(%rbp),%rdi
180056a8e:	48 8b 5b 08          	mov    0x8(%rbx),%rbx
180056a92:	48 8b cf             	mov    %rdi,%rcx
180056a95:	44 8b c6             	mov    %esi,%r8d
180056a98:	44 8b 60 0c          	mov    0xc(%rax),%r12d
180056a9c:	44 8b 68 10          	mov    0x10(%rax),%r13d
180056aa0:	4c 03 e0             	add    %rax,%r12
180056aa3:	44 8b 70 08          	mov    0x8(%rax),%r14d
180056aa7:	e8 d4 f1 0d 00       	call   0x180135c80
180056aac:	41 bf 1c 00 00 00    	mov    $0x1c,%r15d
180056ab2:	44 89 3f             	mov    %r15d,(%rdi)
180056ab5:	8b 03                	mov    (%rbx),%eax
180056ab7:	89 47 04             	mov    %eax,0x4(%rdi)
180056aba:	44 89 77 08          	mov    %r14d,0x8(%rdi)
180056abe:	45 85 ed             	test   %r13d,%r13d
180056ac1:	74 33                	je     0x180056af6
180056ac3:	8b 4b 08             	mov    0x8(%rbx),%ecx
180056ac6:	33 d2                	xor    %edx,%edx
180056ac8:	44 89 6f 10          	mov    %r13d,0x10(%rdi)
180056acc:	44 8d 49 1b          	lea    0x1b(%rcx),%r9d
180056ad0:	41 8b c1             	mov    %r9d,%eax
180056ad3:	f7 f1                	div    %ecx
180056ad5:	44 2b ca             	sub    %edx,%r9d
180056ad8:	44 89 4f 0c          	mov    %r9d,0xc(%rdi)
180056adc:	4d 85 e4             	test   %r12,%r12
180056adf:	74 15                	je     0x180056af6
180056ae1:	41 8b c9             	mov    %r9d,%ecx
180056ae4:	45 8b c5             	mov    %r13d,%r8d
180056ae7:	48 03 cf             	add    %rdi,%rcx
180056aea:	49 8b d4             	mov    %r12,%rdx
180056aed:	e8 ce ee 0d 00       	call   0x1801359c0
180056af2:	44 8b 77 08          	mov    0x8(%rdi),%r14d
180056af6:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
180056afb:	44 8b 85 88 00 00 00 	mov    0x88(%rbp),%r8d
180056b02:	8b 95 84 00 00 00    	mov    0x84(%rbp),%edx
180056b08:	e8 43 a8 ff ff       	call   0x180051350
180056b0d:	48 8b d0             	mov    %rax,%rdx
180056b10:	48 8b d8             	mov    %rax,%rbx
180056b13:	e8 ec a8 ff ff       	call   0x180051404
180056b18:	4c 8b 4d 70          	mov    0x70(%rbp),%r9
180056b1c:	4c 8b 40 18          	mov    0x18(%rax),%r8
180056b20:	4c 03 43 08          	add    0x8(%rbx),%r8
180056b24:	4c 03 45 78          	add    0x78(%rbp),%r8
180056b28:	41 f6 c6 01          	test   $0x1,%r14b
180056b2c:	75 50                	jne    0x180056b7e
180056b2e:	8b 57 18             	mov    0x18(%rdi),%edx
180056b31:	85 d2                	test   %edx,%edx
180056b33:	75 1a                	jne    0x180056b4f
180056b35:	8b 4f 10             	mov    0x10(%rdi),%ecx
180056b38:	85 c9                	test   %ecx,%ecx
180056b3a:	74 07                	je     0x180056b43
180056b3c:	44 8b 7f 0c          	mov    0xc(%rdi),%r15d
180056b40:	44 03 f9             	add    %ecx,%r15d
180056b43:	41 8b c7             	mov    %r15d,%eax
180056b46:	48 83 c0 07          	add    $0x7,%rax
180056b4a:	83 e0 f8             	and    $0xfffffff8,%eax
180056b4d:	eb 05                	jmp    0x180056b54
180056b4f:	8b 47 14             	mov    0x14(%rdi),%eax
180056b52:	03 c2                	add    %edx,%eax
180056b54:	2b f0                	sub    %eax,%esi
180056b56:	83 fe 10             	cmp    $0x10,%esi
180056b59:	72 23                	jb     0x180056b7e
180056b5b:	8b 4f 14             	mov    0x14(%rdi),%ecx
180056b5e:	85 c9                	test   %ecx,%ecx
180056b60:	75 05                	jne    0x180056b67
180056b62:	89 47 14             	mov    %eax,0x14(%rdi)
180056b65:	8b c8                	mov    %eax,%ecx
180056b67:	48 03 cf             	add    %rdi,%rcx
180056b6a:	48 8b c2             	mov    %rdx,%rax
180056b6d:	48 83 e0 f0          	and    $0xfffffffffffffff0,%rax
180056b71:	4c 89 04 08          	mov    %r8,(%rax,%rcx,1)
180056b75:	4c 89 4c 08 08       	mov    %r9,0x8(%rax,%rcx,1)
180056b7a:	83 47 18 10          	addl   $0x10,0x18(%rdi)
180056b7e:	41 b9 2d 02 00 c0    	mov    $0xc000022d,%r9d
180056b84:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180056b89:	41 8b c1             	mov    %r9d,%eax
180056b8c:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
180056b91:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
180056b96:	48 83 c4 20          	add    $0x20,%rsp
180056b9a:	41 5f                	pop    %r15
180056b9c:	41 5e                	pop    %r14
180056b9e:	41 5d                	pop    %r13
180056ba0:	41 5c                	pop    %r12
180056ba2:	5f                   	pop    %rdi
180056ba3:	c3                   	ret
180056ba4:	cc                   	int3
180056ba5:	cc                   	int3
180056ba6:	cc                   	int3
180056ba7:	cc                   	int3
180056ba8:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
180056bad:	53                   	push   %rbx
180056bae:	55                   	push   %rbp
180056baf:	56                   	push   %rsi
180056bb0:	57                   	push   %rdi
180056bb1:	41 54                	push   %r12
180056bb3:	41 55                	push   %r13
180056bb5:	41 56                	push   %r14
180056bb7:	41 57                	push   %r15
180056bb9:	48 83 ec 28          	sub    $0x28,%rsp
180056bbd:	8b 82 a0 00 00 00    	mov    0xa0(%rdx),%eax
180056bc3:	33 ed                	xor    %ebp,%ebp
180056bc5:	21 6c 24 78          	and    %ebp,0x78(%rsp)
180056bc9:	4c 8b ca             	mov    %rdx,%r9
180056bcc:	48 8b 7a 70          	mov    0x70(%rdx),%rdi
180056bd0:	4c 8b d1             	mov    %rcx,%r10
180056bd3:	89 84 24 80 00 00 00 	mov    %eax,0x80(%rsp)
180056bda:	33 d2                	xor    %edx,%edx
180056bdc:	48 8b 47 28          	mov    0x28(%rdi),%rax
180056be0:	8b 58 1c             	mov    0x1c(%rax),%ebx
180056be3:	48 03 d8             	add    %rax,%rbx
180056be6:	c7 03 01 00 00 00    	movl   $0x1,(%rbx)
180056bec:	48 8b 47 08          	mov    0x8(%rdi),%rax
180056bf0:	39 50 18             	cmp    %edx,0x18(%rax)
180056bf3:	74 12                	je     0x180056c07
180056bf5:	8b 48 14             	mov    0x14(%rax),%ecx
180056bf8:	44 8d 41 23          	lea    0x23(%rcx),%r8d
180056bfc:	41 8b c0             	mov    %r8d,%eax
180056bff:	f7 f1                	div    %ecx
180056c01:	03 57 20             	add    0x20(%rdi),%edx
180056c04:	41 2b d0             	sub    %r8d,%edx
180056c07:	4c 8b 77 40          	mov    0x40(%rdi),%r14
180056c0b:	44 8d 7a f0          	lea    -0x10(%rdx),%r15d
180056c0f:	48 8b 47 18          	mov    0x18(%rdi),%rax
180056c13:	4c 8b 67 38          	mov    0x38(%rdi),%r12
180056c17:	41 c1 ef 04          	shr    $0x4,%r15d
180056c1b:	4d 03 e6             	add    %r14,%r12
180056c1e:	8b 70 08             	mov    0x8(%rax),%esi
180056c21:	c1 ee 1c             	shr    $0x1c,%esi
180056c24:	40 80 e6 01          	and    $0x1,%sil
180056c28:	4d 3b f4             	cmp    %r12,%r14
180056c2b:	0f 83 9b 00 00 00    	jae    0x180056ccc
180056c31:	4d 8d 69 18          	lea    0x18(%r9),%r13
180056c35:	41 8a 4a 2a          	mov    0x2a(%r10),%cl
180056c39:	4c 8d 44 24 78       	lea    0x78(%rsp),%r8
180056c3e:	ba 01 00 00 00       	mov    $0x1,%edx
180056c43:	48 d3 e2             	shl    %cl,%rdx
180056c46:	49 8b cc             	mov    %r12,%rcx
180056c49:	49 2b ce             	sub    %r14,%rcx
180056c4c:	48 8d 42 ff          	lea    -0x1(%rdx),%rax
180056c50:	49 23 c6             	and    %r14,%rax
180056c53:	48 2b d0             	sub    %rax,%rdx
180056c56:	8b c2                	mov    %edx,%eax
180056c58:	48 3b c8             	cmp    %rax,%rcx
180056c5b:	0f 43 ca             	cmovae %edx,%ecx
180056c5e:	49 8b d6             	mov    %r14,%rdx
180056c61:	8b c1                	mov    %ecx,%eax
180056c63:	49 8b ca             	mov    %r10,%rcx
180056c66:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
180056c6d:	00
180056c6e:	49 8b 02             	mov    (%r10),%rax
180056c71:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
180056c78:	ff d0                	call   *%rax
180056c7a:	0f 1f 00             	nopl   (%rax)
180056c7d:	49 8b 45 00          	mov    0x0(%r13),%rax
180056c81:	49 3b c5             	cmp    %r13,%rax
180056c84:	74 18                	je     0x180056c9e
180056c86:	8b 4c 24 78          	mov    0x78(%rsp),%ecx
180056c8a:	48 8d 68 d8          	lea    -0x28(%rax),%rbp
180056c8e:	39 8d 84 00 00 00    	cmp    %ecx,0x84(%rbp)
180056c94:	74 08                	je     0x180056c9e
180056c96:	48 8b 00             	mov    (%rax),%rax
180056c99:	49 3b c5             	cmp    %r13,%rax
180056c9c:	75 ec                	jne    0x180056c8a
180056c9e:	48 8b 45 68          	mov    0x68(%rbp),%rax
180056ca2:	8b 50 1c             	mov    0x1c(%rax),%edx
180056ca5:	48 03 d0             	add    %rax,%rdx
180056ca8:	33 c0                	xor    %eax,%eax
180056caa:	44 8b 42 0c          	mov    0xc(%rdx),%r8d
180056cae:	45 85 c0             	test   %r8d,%r8d
180056cb1:	74 15                	je     0x180056cc8
180056cb3:	48 8d 4a 18          	lea    0x18(%rdx),%rcx
180056cb7:	48 83 39 00          	cmpq   $0x0,(%rcx)
180056cbb:	75 37                	jne    0x180056cf4
180056cbd:	ff c0                	inc    %eax
180056cbf:	48 83 c1 10          	add    $0x10,%rcx
180056cc3:	41 3b c0             	cmp    %r8d,%eax
180056cc6:	72 ef                	jb     0x180056cb7
180056cc8:	c6 47 58 01          	movb   $0x1,0x58(%rdi)
180056ccc:	8b 53 0c             	mov    0xc(%rbx),%edx
180056ccf:	48 8b 4f 28          	mov    0x28(%rdi),%rcx
180056cd3:	ff c2                	inc    %edx
180056cd5:	8b 84 24 80 00 00 00 	mov    0x80(%rsp),%eax
180056cdc:	c1 e2 04             	shl    $0x4,%edx
180056cdf:	89 51 20             	mov    %edx,0x20(%rcx)
180056ce2:	48 83 c4 28          	add    $0x28,%rsp
180056ce6:	41 5f                	pop    %r15
180056ce8:	41 5e                	pop    %r14
180056cea:	41 5d                	pop    %r13
180056cec:	41 5c                	pop    %r12
180056cee:	5f                   	pop    %rdi
180056cef:	5e                   	pop    %rsi
180056cf0:	5d                   	pop    %rbp
180056cf1:	5b                   	pop    %rbx
180056cf2:	c3                   	ret
180056cf3:	cc                   	int3
180056cf4:	44 8b c0             	mov    %eax,%r8d
180056cf7:	8b 43 0c             	mov    0xc(%rbx),%eax
180056cfa:	4d 03 c0             	add    %r8,%r8
180056cfd:	4e 8b 4c c2 18       	mov    0x18(%rdx,%r8,8),%r9
180056d02:	4c 39 8c 24 88 00 00 	cmp    %r9,0x88(%rsp)
180056d09:	00
180056d0a:	4c 0f 42 8c 24 88 00 	cmovb  0x88(%rsp),%r9
180056d11:	00 00
180056d13:	41 3b c7             	cmp    %r15d,%eax
180056d16:	73 20                	jae    0x180056d38
180056d18:	48 8d 48 01          	lea    0x1(%rax),%rcx
180056d1c:	4a 8b 44 c2 10       	mov    0x10(%rdx,%r8,8),%rax
180056d21:	48 03 c9             	add    %rcx,%rcx
180056d24:	48 89 04 cb          	mov    %rax,(%rbx,%rcx,8)
180056d28:	8b 43 0c             	mov    0xc(%rbx),%eax
180056d2b:	48 03 c0             	add    %rax,%rax
180056d2e:	4c 89 4c c3 18       	mov    %r9,0x18(%rbx,%rax,8)
180056d33:	ff 43 0c             	incl   0xc(%rbx)
180056d36:	eb 09                	jmp    0x180056d41
180056d38:	c6 47 58 01          	movb   $0x1,0x58(%rdi)
180056d3c:	40 84 f6             	test   %sil,%sil
180056d3f:	75 8b                	jne    0x180056ccc
180056d41:	40 84 f6             	test   %sil,%sil
180056d44:	75 03                	jne    0x180056d49
180056d46:	ff 43 08             	incl   0x8(%rbx)
180056d49:	4e 01 4c c2 10       	add    %r9,0x10(%rdx,%r8,8)
180056d4e:	4d 03 f1             	add    %r9,%r14
180056d51:	4e 29 4c c2 18       	sub    %r9,0x18(%rdx,%r8,8)
180056d56:	4d 3b f4             	cmp    %r12,%r14
180056d59:	0f 83 6d ff ff ff    	jae    0x180056ccc
180056d5f:	4c 8b 54 24 70       	mov    0x70(%rsp),%r10
180056d64:	e9 cc fe ff ff       	jmp    0x180056c35
180056d69:	cc                   	int3
180056d6a:	cc                   	int3
180056d6b:	cc                   	int3
180056d6c:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
180056d71:	55                   	push   %rbp
180056d72:	56                   	push   %rsi
180056d73:	57                   	push   %rdi
180056d74:	41 54                	push   %r12
180056d76:	41 55                	push   %r13
180056d78:	41 56                	push   %r14
180056d7a:	41 57                	push   %r15
180056d7c:	48 8d 6c 24 d9       	lea    -0x27(%rsp),%rbp
180056d81:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
180056d88:	83 65 67 00          	andl   $0x0,0x67(%rbp)
180056d8c:	4c 8b f9             	mov    %rcx,%r15
180056d8f:	48 8b 49 20          	mov    0x20(%rcx),%rcx
180056d93:	4d 8b f1             	mov    %r9,%r14
180056d96:	48 8b f2             	mov    %rdx,%rsi
180056d99:	49 8b 47 08          	mov    0x8(%r15),%rax
180056d9d:	48 85 c9             	test   %rcx,%rcx
180056da0:	74 06                	je     0x180056da8
180056da2:	48 83 c1 38          	add    $0x38,%rcx
180056da6:	eb 04                	jmp    0x180056dac
180056da8:	48 8d 48 30          	lea    0x30(%rax),%rcx
180056dac:	48 8b 40 70          	mov    0x70(%rax),%rax
180056db0:	4e 8d 2c 06          	lea    (%rsi,%r8,1),%r13
180056db4:	33 d2                	xor    %edx,%edx
180056db6:	48 f7 71 08          	divq   0x8(%rcx)
180056dba:	41 8a 4f 2a          	mov    0x2a(%r15),%cl
180056dbe:	4c 8b e0             	mov    %rax,%r12
180056dc1:	49 d3 e4             	shl    %cl,%r12
180056dc4:	e9 62 01 00 00       	jmp    0x180056f2b
180056dc9:	41 8a 4f 2a          	mov    0x2a(%r15),%cl
180056dcd:	4c 8d 45 67          	lea    0x67(%rbp),%r8
180056dd1:	ba 01 00 00 00       	mov    $0x1,%edx
180056dd6:	48 d3 e2             	shl    %cl,%rdx
180056dd9:	49 8b cd             	mov    %r13,%rcx
180056ddc:	48 2b ce             	sub    %rsi,%rcx
180056ddf:	48 8b d9             	mov    %rcx,%rbx
180056de2:	48 89 4d 6f          	mov    %rcx,0x6f(%rbp)
180056de6:	48 8d 42 ff          	lea    -0x1(%rdx),%rax
180056dea:	48 23 c6             	and    %rsi,%rax
180056ded:	48 2b d0             	sub    %rax,%rdx
180056df0:	8b c2                	mov    %edx,%eax
180056df2:	48 8b d6             	mov    %rsi,%rdx
180056df5:	48 3b c8             	cmp    %rax,%rcx
180056df8:	49 8b cf             	mov    %r15,%rcx
180056dfb:	48 0f 43 d8          	cmovae %rax,%rbx
180056dff:	49 8b 07             	mov    (%r15),%rax
180056e02:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
180056e09:	ff d0                	call   *%rax
180056e0b:	0f 1f 00             	nopl   (%rax)
180056e0e:	41 8a 4f 2a          	mov    0x2a(%r15),%cl
180056e12:	41 b8 01 00 00 00    	mov    $0x1,%r8d
180056e18:	49 d3 e0             	shl    %cl,%r8
180056e1b:	4c 8b d0             	mov    %rax,%r10
180056e1e:	45 8b c0             	mov    %r8d,%r8d
180056e21:	48 8b fb             	mov    %rbx,%rdi
180056e24:	49 3b d8             	cmp    %r8,%rbx
180056e27:	75 36                	jne    0x180056e5f
180056e29:	41 f6 47 28 04       	testb  $0x4,0x28(%r15)
180056e2e:	74 2f                	je     0x180056e5f
180056e30:	48 8b 7d 6f          	mov    0x6f(%rbp),%rdi
180056e34:	33 d2                	xor    %edx,%edx
180056e36:	48 8b c6             	mov    %rsi,%rax
180056e39:	49 f7 f4             	div    %r12
180056e3c:	49 8b c4             	mov    %r12,%rax
180056e3f:	48 2b c2             	sub    %rdx,%rax
180056e42:	48 3b f8             	cmp    %rax,%rdi
180056e45:	48 0f 43 f8          	cmovae %rax,%rdi
180056e49:	49 3b f8             	cmp    %r8,%rdi
180056e4c:	72 0f                	jb     0x180056e5d
180056e4e:	49 8d 40 ff          	lea    -0x1(%r8),%rax
180056e52:	41 8b d8             	mov    %r8d,%ebx
180056e55:	48 f7 d0             	not    %rax
180056e58:	4c 23 d0             	and    %rax,%r10
180056e5b:	eb 02                	jmp    0x180056e5f
180056e5d:	8b fb                	mov    %ebx,%edi
180056e5f:	49 8b 46 18          	mov    0x18(%r14),%rax
180056e63:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180056e68:	44 8b 45 67          	mov    0x67(%rbp),%r8d
180056e6c:	44 8b 48 08          	mov    0x8(%rax),%r9d
180056e70:	41 c1 e9 1c          	shr    $0x1c,%r9d
180056e74:	41 80 e1 01          	and    $0x1,%r9b
180056e78:	e8 eb 00 ff ff       	call   0x180046f68
180056e7d:	83 4d 83 04          	orl    $0x4,-0x7d(%rbp)
180056e81:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180056e86:	41 f6 d9             	neg    %r9b
180056e89:	44 89 45 cb          	mov    %r8d,-0x35(%rbp)
180056e8d:	41 b0 14             	mov    $0x14,%r8b
180056e90:	4c 89 55 bf          	mov    %r10,-0x41(%rbp)
180056e94:	1a c0                	sbb    %al,%al
180056e96:	89 5d c7             	mov    %ebx,-0x39(%rbp)
180056e99:	24 16                	and    $0x16,%al
180056e9b:	c6 45 e0 0d          	movb   $0xd,-0x20(%rbp)
180056e9f:	fe c0                	inc    %al
180056ea1:	4c 89 7d 17          	mov    %r15,0x17(%rbp)
180056ea5:	49 8b cf             	mov    %r15,%rcx
180056ea8:	88 45 e1             	mov    %al,-0x1f(%rbp)
180056eab:	4c 89 7d 1f          	mov    %r15,0x1f(%rbp)
180056eaf:	e8 5c 06 ff ff       	call   0x180047510
180056eb4:	41 b0 0e             	mov    $0xe,%r8b
180056eb7:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180056ebc:	49 8b cf             	mov    %r15,%rcx
180056ebf:	e8 4c 06 ff ff       	call   0x180047510
180056ec4:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180056ec9:	49 8b cf             	mov    %r15,%rcx
180056ecc:	e8 e7 b4 ff ff       	call   0x1800523b8
180056ed1:	8b 5d e7             	mov    -0x19(%rbp),%ebx
180056ed4:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180056ed9:	e8 5a 01 ff ff       	call   0x180047038
180056ede:	49 8b 06             	mov    (%r14),%rax
180056ee1:	49 8b ce             	mov    %r14,%rcx
180056ee4:	41 89 5e 48          	mov    %ebx,0x48(%r14)
180056ee8:	48 8b 00             	mov    (%rax),%rax
180056eeb:	ff d0                	call   *%rax
180056eed:	0f 1f 00             	nopl   (%rax)
180056ef0:	84 c0                	test   %al,%al
180056ef2:	75 67                	jne    0x180056f5b
180056ef4:	49 8b 46 28          	mov    0x28(%r14),%rax