18004695e:	48 83 ec 20          	sub    $0x20,%rsp
180046962:	48 8b d9             	mov    %rcx,%rbx
180046965:	e8 92 36 05 00       	call   0x180099ffc
18004696a:	85 c0                	test   %eax,%eax
18004696c:	79 08                	jns    0x180046976
18004696e:	48 8b cb             	mov    %rbx,%rcx
180046971:	e8 ba 11 05 00       	call   0x180097b30
180046976:	48 83 c4 20          	add    $0x20,%rsp
18004697a:	5b                   	pop    %rbx
18004697b:	c3                   	ret
18004697c:	cc                   	int3
18004697d:	cc                   	int3
18004697e:	cc                   	int3
18004697f:	cc                   	int3
180046980:	48 8b c4             	mov    %rsp,%rax
180046983:	53                   	push   %rbx
180046984:	48 83 ec 40          	sub    $0x40,%rsp
180046988:	33 db                	xor    %ebx,%ebx
18004698a:	48 8d 91 ff 0f 00 00 	lea    0xfff(%rcx),%rdx
180046991:	89 58 e8             	mov    %ebx,-0x18(%rax)
180046994:	48 8d 48 08          	lea    0x8(%rax),%rcx
180046998:	48 89 58 e0          	mov    %rbx,-0x20(%rax)
18004699c:	45 33 c9             	xor    %r9d,%r9d
18004699f:	48 c1 ea 0c          	shr    $0xc,%rdx
1800469a3:	41 b8 12 00 00 d0    	mov    $0xd0000012,%r8d
1800469a9:	89 58 d8             	mov    %ebx,-0x28(%rax)
1800469ac:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800469b0:	e8 3f 0e 05 00       	call   0x1800977f4
1800469b5:	85 c0                	test   %eax,%eax
1800469b7:	48 0f 49 5c 24 50    	cmovns 0x50(%rsp),%rbx
1800469bd:	48 8b c3             	mov    %rbx,%rax
1800469c0:	48 83 c4 40          	add    $0x40,%rsp
1800469c4:	5b                   	pop    %rbx
1800469c5:	c3                   	ret
1800469c6:	cc                   	int3
1800469c7:	cc                   	int3
1800469c8:	0f 57 c0             	xorps  %xmm0,%xmm0
1800469cb:	33 c0                	xor    %eax,%eax
1800469cd:	0f 11 01             	movups %xmm0,(%rcx)
1800469d0:	c7 01 01 00 00 00    	movl   $0x1,(%rcx)
1800469d6:	c3                   	ret
1800469d7:	cc                   	int3
1800469d8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800469dd:	55                   	push   %rbp
1800469de:	48 8d 6c 24 b1       	lea    -0x4f(%rsp),%rbp
1800469e3:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
1800469ea:	4c 8b d1             	mov    %rcx,%r10
1800469ed:	44 8a da             	mov    %dl,%r11b
1800469f0:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800469f5:	e8 6e 05 00 00       	call   0x180046f68
1800469fa:	45 85 c9             	test   %r9d,%r9d
1800469fd:	74 0b                	je     0x180046a0a
1800469ff:	4c 89 45 d7          	mov    %r8,-0x29(%rbp)
180046a03:	c7 45 cf 02 00 00 00 	movl   $0x2,-0x31(%rbp)
180046a0a:	48 8b 45 7f          	mov    0x7f(%rbp),%rax
180046a0e:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180046a13:	49 8b 8a d8 00 00 00 	mov    0xd8(%r10),%rcx
180046a1a:	83 4d ab 04          	orl    $0x4,-0x55(%rbp)
180046a1e:	48 89 45 e7          	mov    %rax,-0x19(%rbp)
180046a22:	41 8b 82 84 00 00 00 	mov    0x84(%r10),%eax
180046a29:	89 45 f3             	mov    %eax,-0xd(%rbp)
180046a2c:	41 8b 82 88 00 00 00 	mov    0x88(%r10),%eax
180046a33:	89 45 f7             	mov    %eax,-0x9(%rbp)
180046a36:	41 8a 82 9a 00 00 00 	mov    0x9a(%r10),%al
180046a3d:	88 45 09             	mov    %al,0x9(%rbp)
180046a40:	49 8b 82 d0 00 00 00 	mov    0xd0(%r10),%rax
180046a47:	48 89 45 3f          	mov    %rax,0x3f(%rbp)
180046a4b:	44 89 4d ef          	mov    %r9d,-0x11(%rbp)
180046a4f:	44 88 5d 07          	mov    %r11b,0x7(%rbp)
180046a53:	48 89 4d 47          	mov    %rcx,0x47(%rbp)
180046a57:	48 8b 01             	mov    (%rcx),%rax
180046a5a:	48 8b 40 08          	mov    0x8(%rax),%rax
180046a5e:	ff d0                	call   *%rax
180046a60:	0f 1f 00             	nopl   (%rax)
180046a63:	8b 5d 0f             	mov    0xf(%rbp),%ebx
180046a66:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180046a6b:	e8 c8 05 00 00       	call   0x180047038
180046a70:	8b c3                	mov    %ebx,%eax
180046a72:	48 8b 9c 24 10 01 00 	mov    0x110(%rsp),%rbx
180046a79:	00
180046a7a:	48 81 c4 00 01 00 00 	add    $0x100,%rsp
180046a81:	5d                   	pop    %rbp
180046a82:	c3                   	ret
180046a83:	cc                   	int3
180046a84:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180046a89:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180046a8e:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180046a93:	57                   	push   %rdi
180046a94:	48 83 ec 20          	sub    $0x20,%rsp
180046a98:	48 8b d9             	mov    %rcx,%rbx
180046a9b:	41 8b f9             	mov    %r9d,%edi
180046a9e:	b9 f0 00 00 00       	mov    $0xf0,%ecx
180046aa3:	49 8b f0             	mov    %r8,%rsi
180046aa6:	40 8a ea             	mov    %dl,%bpl
180046aa9:	e8 66 fe ff ff       	call   0x180046914
180046aae:	48 8b c8             	mov    %rax,%rcx
180046ab1:	48 85 c0             	test   %rax,%rax
180046ab4:	74 21                	je     0x180046ad7
180046ab6:	e8 ad 04 00 00       	call   0x180046f68
180046abb:	48 83 a1 e0 00 00 00 	andq   $0x0,0xe0(%rcx)
180046ac2:	00
180046ac3:	4c 8d 05 4e c9 0f 00 	lea    0xfc94e(%rip),%r8        # 0x180143418
180046aca:	48 83 a1 e8 00 00 00 	andq   $0x0,0xe8(%rcx)
180046ad1:	00
180046ad2:	4c 89 01             	mov    %r8,(%rcx)
180046ad5:	eb 02                	jmp    0x180046ad9
180046ad7:	33 c9                	xor    %ecx,%ecx
180046ad9:	48 85 c9             	test   %rcx,%rcx
180046adc:	75 07                	jne    0x180046ae5
180046ade:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
180046ae3:	eb 7b                	jmp    0x180046b60
180046ae5:	48 89 71 68          	mov    %rsi,0x68(%rcx)
180046ae9:	c7 41 60 02 00 00 00 	movl   $0x2,0x60(%rcx)
180046af0:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
180046af5:	48 8b d1             	mov    %rcx,%rdx
180046af8:	48 89 41 78          	mov    %rax,0x78(%rcx)
180046afc:	89 b9 80 00 00 00    	mov    %edi,0x80(%rcx)
180046b02:	8b 83 84 00 00 00    	mov    0x84(%rbx),%eax
180046b08:	89 81 84 00 00 00    	mov    %eax,0x84(%rcx)
180046b0e:	8b 83 88 00 00 00    	mov    0x88(%rbx),%eax
180046b14:	89 81 88 00 00 00    	mov    %eax,0x88(%rcx)
180046b1a:	40 88 a9 98 00 00 00 	mov    %bpl,0x98(%rcx)
180046b21:	8a 83 9a 00 00 00    	mov    0x9a(%rbx),%al
180046b27:	88 81 9a 00 00 00    	mov    %al,0x9a(%rcx)
180046b2d:	48 8b 83 d8 00 00 00 	mov    0xd8(%rbx),%rax
180046b34:	48 89 81 d8 00 00 00 	mov    %rax,0xd8(%rcx)
180046b3b:	48 8b 44 24 58       	mov    0x58(%rsp),%rax
180046b40:	48 89 81 e0 00 00 00 	mov    %rax,0xe0(%rcx)
180046b47:	48 8b 44 24 60       	mov    0x60(%rsp),%rax
180046b4c:	48 89 81 e8 00 00 00 	mov    %rax,0xe8(%rcx)
180046b53:	48 8b cb             	mov    %rbx,%rcx
180046b56:	e8 51 05 00 00       	call   0x1800470ac
180046b5b:	b8 03 01 00 00       	mov    $0x103,%eax
180046b60:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180046b65:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180046b6a:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180046b6f:	48 83 c4 20          	add    $0x20,%rsp
180046b73:	5f                   	pop    %rdi
180046b74:	c3                   	ret
180046b75:	cc                   	int3
180046b76:	cc                   	int3
180046b77:	cc                   	int3
180046b78:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
180046b7d:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
180046b82:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
180046b87:	c3                   	ret
180046b88:	cc                   	int3
180046b89:	cc                   	int3
180046b8a:	cc                   	int3
180046b8b:	cc                   	int3
180046b8c:	b8 00 00 00 08       	mov    $0x8000000,%eax
180046b91:	c3                   	ret
180046b92:	cc                   	int3
180046b93:	cc                   	int3
180046b94:	b8 00 00 00 02       	mov    $0x2000000,%eax
180046b99:	c3                   	ret
180046b9a:	cc                   	int3
180046b9b:	cc                   	int3
180046b9c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180046ba1:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180046ba6:	57                   	push   %rdi
180046ba7:	48 83 ec 20          	sub    $0x20,%rsp
180046bab:	48 8b f9             	mov    %rcx,%rdi
180046bae:	33 db                	xor    %ebx,%ebx
180046bb0:	8b ca                	mov    %edx,%ecx
180046bb2:	8b f2                	mov    %edx,%esi
180046bb4:	83 e9 02             	sub    $0x2,%ecx
180046bb7:	74 24                	je     0x180046bdd
180046bb9:	83 f9 01             	cmp    $0x1,%ecx
180046bbc:	74 07                	je     0x180046bc5
180046bbe:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180046bc3:	eb 1e                	jmp    0x180046be3
180046bc5:	41 8b c9             	mov    %r9d,%ecx
180046bc8:	e8 47 fd ff ff       	call   0x180046914
180046bcd:	48 89 47 08          	mov    %rax,0x8(%rdi)
180046bd1:	48 85 c0             	test   %rax,%rax
180046bd4:	75 0b                	jne    0x180046be1
180046bd6:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
180046bdb:	eb 06                	jmp    0x180046be3
180046bdd:	4c 89 47 08          	mov    %r8,0x8(%rdi)
180046be1:	89 37                	mov    %esi,(%rdi)
180046be3:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
180046be8:	8b c3                	mov    %ebx,%eax
180046bea:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180046bef:	48 83 c4 20          	add    $0x20,%rsp
180046bf3:	5f                   	pop    %rdi
180046bf4:	c3                   	ret
180046bf5:	cc                   	int3
180046bf6:	cc                   	int3
180046bf7:	cc                   	int3
180046bf8:	48 8b 41 08          	mov    0x8(%rcx),%rax
180046bfc:	c3                   	ret
180046bfd:	cc                   	int3
180046bfe:	cc                   	int3
180046bff:	cc                   	int3
180046c00:	48 8b 41 08          	mov    0x8(%rcx),%rax
180046c04:	48 8b 88 e8 00 00 00 	mov    0xe8(%rax),%rcx
180046c0b:	eb 0a                	jmp    0x180046c17
180046c0d:	48 8b c1             	mov    %rcx,%rax
180046c10:	48 8b 89 e8 00 00 00 	mov    0xe8(%rcx),%rcx
180046c17:	48 85 c9             	test   %rcx,%rcx
180046c1a:	75 f1                	jne    0x180046c0d
180046c1c:	8b 40 78             	mov    0x78(%rax),%eax
180046c1f:	c3                   	ret
180046c20:	cc                   	int3
180046c21:	cc                   	int3
180046c22:	cc                   	int3
180046c23:	cc                   	int3
180046c24:	4c 8b dc             	mov    %rsp,%r11
180046c27:	48 83 ec 38          	sub    $0x38,%rsp
180046c2b:	48 8b 01             	mov    (%rcx),%rax
180046c2e:	4d 8d 53 08          	lea    0x8(%r11),%r10
180046c32:	49 83 63 08 00       	andq   $0x0,0x8(%r11)
180046c37:	4d 89 53 f0          	mov    %r10,-0x10(%r11)
180046c3b:	4c 8b 54 24 60       	mov    0x60(%rsp),%r10
180046c40:	48 8b 40 58          	mov    0x58(%rax),%rax
180046c44:	4d 89 53 e8          	mov    %r10,-0x18(%r11)
180046c48:	ff d0                	call   *%rax
180046c4a:	0f 1f 00             	nopl   (%rax)
180046c4d:	48 83 c4 38          	add    $0x38,%rsp
180046c51:	c3                   	ret
180046c52:	cc                   	int3
180046c53:	cc                   	int3
180046c54:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
180046c59:	48 83 20 00          	andq   $0x0,(%rax)
180046c5d:	b8 10 00 00 c0       	mov    $0xc0000010,%eax
180046c62:	c3                   	ret
180046c63:	cc                   	int3
180046c64:	33 c0                	xor    %eax,%eax
180046c66:	48 3b 51 10          	cmp    0x10(%rcx),%rdx
180046c6a:	48 0f 44 c1          	cmove  %rcx,%rax
180046c6e:	c3                   	ret
180046c6f:	cc                   	int3
180046c70:	33 c0                	xor    %eax,%eax
180046c72:	48 89 01             	mov    %rax,(%rcx)
180046c75:	89 41 08             	mov    %eax,0x8(%rcx)
180046c78:	48 89 41 10          	mov    %rax,0x10(%rcx)
180046c7c:	48 89 41 18          	mov    %rax,0x18(%rcx)
180046c80:	48 89 41 20          	mov    %rax,0x20(%rcx)
180046c84:	48 8b c1             	mov    %rcx,%rax
180046c87:	c3                   	ret
180046c88:	cc                   	int3
180046c89:	cc                   	int3
180046c8a:	cc                   	int3
180046c8b:	cc                   	int3
180046c8c:	48 83 ec 28          	sub    $0x28,%rsp
180046c90:	48 8b 49 20          	mov    0x20(%rcx),%rcx
180046c94:	48 85 c9             	test   %rcx,%rcx
180046c97:	74 05                	je     0x180046c9e
180046c99:	e8 be fc ff ff       	call   0x18004695c
180046c9e:	48 83 c4 28          	add    $0x28,%rsp
180046ca2:	c3                   	ret
180046ca3:	cc                   	int3
180046ca4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180046ca9:	57                   	push   %rdi
180046caa:	48 83 ec 20          	sub    $0x20,%rsp
180046cae:	48 8b d9             	mov    %rcx,%rbx
180046cb1:	41 8d 40 07          	lea    0x7(%r8),%eax
180046cb5:	b9 f8 ff ff ff       	mov    $0xfffffff8,%ecx
180046cba:	83 c2 07             	add    $0x7,%edx
180046cbd:	23 d1                	and    %ecx,%edx
180046cbf:	23 c1                	and    %ecx,%eax
180046cc1:	33 ff                	xor    %edi,%edi
180046cc3:	89 53 04             	mov    %edx,0x4(%rbx)
180046cc6:	89 43 08             	mov    %eax,0x8(%rbx)
180046cc9:	8d 4a 08             	lea    0x8(%rdx),%ecx
180046ccc:	c7 03 01 00 00 00    	movl   $0x1,(%rbx)
180046cd2:	03 c8                	add    %eax,%ecx
180046cd4:	e8 3b fc ff ff       	call   0x180046914
180046cd9:	48 89 43 20          	mov    %rax,0x20(%rbx)
180046cdd:	48 85 c0             	test   %rax,%rax
180046ce0:	75 07                	jne    0x180046ce9
180046ce2:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
180046ce7:	eb 16                	jmp    0x180046cff
180046ce9:	8b 4b 04             	mov    0x4(%rbx),%ecx
180046cec:	48 8d 50 07          	lea    0x7(%rax),%rdx
180046cf0:	48 83 e2 f8          	and    $0xfffffffffffffff8,%rdx
180046cf4:	48 03 ca             	add    %rdx,%rcx
180046cf7:	48 89 53 10          	mov    %rdx,0x10(%rbx)
180046cfb:	48 89 4b 18          	mov    %rcx,0x18(%rbx)
180046cff:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180046d04:	8b c7                	mov    %edi,%eax
180046d06:	48 83 c4 20          	add    $0x20,%rsp
180046d0a:	5f                   	pop    %rdi
180046d0b:	c3                   	ret
180046d0c:	cc                   	int3
180046d0d:	cc                   	int3
180046d0e:	cc                   	int3
180046d0f:	cc                   	int3
180046d10:	48 8b 41 10          	mov    0x10(%rcx),%rax
180046d14:	c3                   	ret
180046d15:	cc                   	int3
180046d16:	cc                   	int3
180046d17:	cc                   	int3
180046d18:	48 8b 41 18          	mov    0x18(%rcx),%rax
180046d1c:	41 b9 1c 00 00 00    	mov    $0x1c,%r9d
180046d22:	44 8b 50 10          	mov    0x10(%rax),%r10d
180046d26:	45 85 d2             	test   %r10d,%r10d
180046d29:	74 1a                	je     0x180046d45
180046d2b:	48 8b 41 08          	mov    0x8(%rcx),%rax
180046d2f:	33 d2                	xor    %edx,%edx
180046d31:	44 8b 40 08          	mov    0x8(%rax),%r8d
180046d35:	45 8d 48 1b          	lea    0x1b(%r8),%r9d
180046d39:	41 8b c1             	mov    %r9d,%eax
180046d3c:	41 f7 f0             	div    %r8d
180046d3f:	44 2b ca             	sub    %edx,%r9d
180046d42:	45 03 ca             	add    %r10d,%r9d
180046d45:	48 8b 49 28          	mov    0x28(%rcx),%rcx
180046d49:	41 8b c1             	mov    %r9d,%eax
180046d4c:	48 83 c0 07          	add    $0x7,%rax
180046d50:	48 c1 e8 03          	shr    $0x3,%rax
180046d54:	8d 04 c5 10 00 00 00 	lea    0x10(,%rax,8),%eax
180046d5b:	48 85 c9             	test   %rcx,%rcx
180046d5e:	74 11                	je     0x180046d71
180046d60:	44 8b 41 20          	mov    0x20(%rcx),%r8d
180046d64:	8b 49 1c             	mov    0x1c(%rcx),%ecx
180046d67:	44 03 c1             	add    %ecx,%r8d
180046d6a:	41 3b c0             	cmp    %r8d,%eax
180046d6d:	41 0f 46 c0          	cmovbe %r8d,%eax
180046d71:	c3                   	ret
180046d72:	cc                   	int3
180046d73:	cc                   	int3
180046d74:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180046d79:	57                   	push   %rdi
180046d7a:	48 83 ec 20          	sub    $0x20,%rsp
180046d7e:	8b da                	mov    %edx,%ebx
180046d80:	48 8b f9             	mov    %rcx,%rdi
180046d83:	e8 1c 00 00 00       	call   0x180046da4
180046d88:	f6 c3 01             	test   $0x1,%bl
180046d8b:	74 08                	je     0x180046d95
180046d8d:	48 8b cf             	mov    %rdi,%rcx
180046d90:	e8 c7 fb ff ff       	call   0x18004695c
180046d95:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180046d9a:	48 8b c7             	mov    %rdi,%rax
180046d9d:	48 83 c4 20          	add    $0x20,%rsp
180046da1:	5f                   	pop    %rdi
180046da2:	c3                   	ret
180046da3:	cc                   	int3
180046da4:	40 53                	rex push %rbx
180046da6:	48 83 ec 20          	sub    $0x20,%rsp
180046daa:	48 8d 05 6f c6 0f 00 	lea    0xfc66f(%rip),%rax        # 0x180143420
180046db1:	48 8b d9             	mov    %rcx,%rbx
180046db4:	48 89 01             	mov    %rax,(%rcx)
180046db7:	48 8b 89 00 01 00 00 	mov    0x100(%rcx),%rcx
180046dbe:	48 85 c9             	test   %rcx,%rcx
180046dc1:	74 05                	je     0x180046dc8
180046dc3:	e8 94 fb ff ff       	call   0x18004695c
180046dc8:	48 8d 05 99 c0 0f 00 	lea    0xfc099(%rip),%rax        # 0x180142e68
180046dcf:	48 8b cb             	mov    %rbx,%rcx
180046dd2:	48 89 03             	mov    %rax,(%rbx)