1800588cc:	48 8b 4f 20          	mov    0x20(%rdi),%rcx
1800588d0:	48 85 c9             	test   %rcx,%rcx
1800588d3:	74 06                	je     0x1800588db
1800588d5:	48 83 c1 58          	add    $0x58,%rcx
1800588d9:	eb 08                	jmp    0x1800588e3
1800588db:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1800588df:	48 83 c1 50          	add    $0x50,%rcx
1800588e3:	3b 71 08             	cmp    0x8(%rcx),%esi
1800588e6:	0f b6 db             	movzbl %bl,%ebx
1800588e9:	41 0f 44 db          	cmove  %r11d,%ebx
1800588ed:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1800588f2:	8a c3                	mov    %bl,%al
1800588f4:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800588f9:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1800588fe:	48 83 c4 20          	add    $0x20,%rsp
180058902:	5f                   	pop    %rdi
180058903:	c3                   	ret
180058904:	cc                   	int3
180058905:	cc                   	int3
180058906:	cc                   	int3
180058907:	cc                   	int3
180058908:	48 8b c4             	mov    %rsp,%rax
18005890b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18005890f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180058913:	48 89 70 18          	mov    %rsi,0x18(%rax)
180058917:	48 89 78 20          	mov    %rdi,0x20(%rax)
18005891b:	41 55                	push   %r13
18005891d:	41 56                	push   %r14
18005891f:	41 57                	push   %r15
180058921:	48 83 ec 20          	sub    $0x20,%rsp
180058925:	45 33 ff             	xor    %r15d,%r15d
180058928:	48 8b da             	mov    %rdx,%rbx
18005892b:	48 8b f1             	mov    %rcx,%rsi
18005892e:	45 33 f6             	xor    %r14d,%r14d
180058931:	41 8d 7f 01          	lea    0x1(%r15),%edi
180058935:	48 8b 46 20          	mov    0x20(%rsi),%rax
180058939:	48 85 c0             	test   %rax,%rax
18005893c:	74 06                	je     0x180058944
18005893e:	48 83 c0 58          	add    $0x58,%rax
180058942:	eb 08                	jmp    0x18005894c
180058944:	48 8b 46 08          	mov    0x8(%rsi),%rax
180058948:	48 83 c0 50          	add    $0x50,%rax
18005894c:	44 3b 70 10          	cmp    0x10(%rax),%r14d
180058950:	0f 83 2d 01 00 00    	jae    0x180058a83
180058956:	48 8b 06             	mov    (%rsi),%rax
180058959:	41 8b d6             	mov    %r14d,%edx
18005895c:	48 8b ce             	mov    %rsi,%rcx
18005895f:	48 8b 80 c0 00 00 00 	mov    0xc0(%rax),%rax
180058966:	ff d0                	call   *%rax
180058968:	0f 1f 00             	nopl   (%rax)
18005896b:	3b c7                	cmp    %edi,%eax
18005896d:	74 19                	je     0x180058988
18005896f:	7e 1d                	jle    0x18005898e
180058971:	83 f8 03             	cmp    $0x3,%eax
180058974:	7e 0a                	jle    0x180058980
180058976:	83 f8 04             	cmp    $0x4,%eax
180058979:	75 13                	jne    0x18005898e
18005897b:	44 8b ff             	mov    %edi,%r15d
18005897e:	eb 0e                	jmp    0x18005898e
180058980:	41 bf 02 00 00 00    	mov    $0x2,%r15d
180058986:	eb 06                	jmp    0x18005898e
180058988:	41 bf 03 00 00 00    	mov    $0x3,%r15d
18005898e:	8b 03                	mov    (%rbx),%eax
180058990:	41 3b c7             	cmp    %r15d,%eax
180058993:	41 0f 4d c7          	cmovge %r15d,%eax
180058997:	33 ed                	xor    %ebp,%ebp
180058999:	89 03                	mov    %eax,(%rbx)
18005899b:	40 38 6e 2b          	cmp    %bpl,0x2b(%rsi)
18005899f:	0f 86 d6 00 00 00    	jbe    0x180058a7b
1800589a5:	44 8b c5             	mov    %ebp,%r8d
1800589a8:	41 8b d6             	mov    %r14d,%edx
1800589ab:	48 8b ce             	mov    %rsi,%rcx
1800589ae:	e8 9d 89 ff ff       	call   0x180051350
1800589b3:	4c 8b e8             	mov    %rax,%r13
1800589b6:	0f b6 48 02          	movzbl 0x2(%rax),%ecx
1800589ba:	83 e1 0f             	and    $0xf,%ecx
1800589bd:	01 7c 8b 2c          	add    %edi,0x2c(%rbx,%rcx,4)
1800589c1:	0f b6 48 02          	movzbl 0x2(%rax),%ecx
1800589c5:	48 c1 e9 04          	shr    $0x4,%rcx
1800589c9:	01 7c 8b 50          	add    %edi,0x50(%rbx,%rcx,4)
1800589cd:	41 83 ff 03          	cmp    $0x3,%r15d
1800589d1:	0f 84 96 00 00 00    	je     0x180058a6d
1800589d7:	83 78 14 ff          	cmpl   $0xffffffff,0x14(%rax)
1800589db:	0f 85 8c 00 00 00    	jne    0x180058a6d
1800589e1:	48 8b 06             	mov    (%rsi),%rax
1800589e4:	48 8b ce             	mov    %rsi,%rcx
1800589e7:	48 8b 80 a8 00 00 00 	mov    0xa8(%rax),%rax
1800589ee:	ff d0                	call   *%rax
1800589f0:	0f 1f 00             	nopl   (%rax)
1800589f3:	84 c0                	test   %al,%al
1800589f5:	74 03                	je     0x1800589fa
1800589f7:	01 7b 04             	add    %edi,0x4(%rbx)
1800589fa:	48 8b 06             	mov    (%rsi),%rax
1800589fd:	44 8b c5             	mov    %ebp,%r8d
180058a00:	41 8b d6             	mov    %r14d,%edx
180058a03:	48 8b ce             	mov    %rsi,%rcx
180058a06:	48 8b 80 a0 00 00 00 	mov    0xa0(%rax),%rax
180058a0d:	ff d0                	call   *%rax
180058a0f:	0f 1f 00             	nopl   (%rax)
180058a12:	84 c0                	test   %al,%al
180058a14:	75 03                	jne    0x180058a19
180058a16:	01 7b 08             	add    %edi,0x8(%rbx)
180058a19:	41 8a 45 02          	mov    0x2(%r13),%al
180058a1d:	8a c8                	mov    %al,%cl
180058a1f:	80 e1 0f             	and    $0xf,%cl
180058a22:	80 f9 02             	cmp    $0x2,%cl
180058a25:	74 22                	je     0x180058a49
180058a27:	76 44                	jbe    0x180058a6d
180058a29:	80 f9 04             	cmp    $0x4,%cl
180058a2c:	76 10                	jbe    0x180058a3e
180058a2e:	80 f9 06             	cmp    $0x6,%cl
180058a31:	77 3a                	ja     0x180058a6d
180058a33:	24 f0                	and    $0xf0,%al
180058a35:	3c 80                	cmp    $0x80,%al
180058a37:	74 2c                	je     0x180058a65
180058a39:	01 7b 20             	add    %edi,0x20(%rbx)
180058a3c:	eb 2f                	jmp    0x180058a6d
180058a3e:	24 f0                	and    $0xf0,%al
180058a40:	3c 80                	cmp    $0x80,%al
180058a42:	74 21                	je     0x180058a65
180058a44:	01 7b 18             	add    %edi,0x18(%rbx)
180058a47:	eb 24                	jmp    0x180058a6d
180058a49:	48 8b 06             	mov    (%rsi),%rax
180058a4c:	44 8b c5             	mov    %ebp,%r8d
180058a4f:	41 8b d6             	mov    %r14d,%edx
180058a52:	48 8b ce             	mov    %rsi,%rcx
180058a55:	48 8b 80 a8 00 00 00 	mov    0xa8(%rax),%rax
180058a5c:	ff d0                	call   *%rax
180058a5e:	0f 1f 00             	nopl   (%rax)
180058a61:	84 c0                	test   %al,%al
180058a63:	74 05                	je     0x180058a6a
180058a65:	01 7b 14             	add    %edi,0x14(%rbx)
180058a68:	eb 03                	jmp    0x180058a6d
180058a6a:	01 7b 1c             	add    %edi,0x1c(%rbx)
180058a6d:	0f b6 46 2b          	movzbl 0x2b(%rsi),%eax
180058a71:	03 ef                	add    %edi,%ebp
180058a73:	3b e8                	cmp    %eax,%ebp
180058a75:	0f 82 2a ff ff ff    	jb     0x1800589a5
180058a7b:	44 03 f7             	add    %edi,%r14d
180058a7e:	e9 b2 fe ff ff       	jmp    0x180058935
180058a83:	83 7b 14 00          	cmpl   $0x0,0x14(%rbx)
180058a87:	76 09                	jbe    0x180058a92
180058a89:	8b 03                	mov    (%rbx),%eax
180058a8b:	3b c7                	cmp    %edi,%eax
180058a8d:	0f 4c f8             	cmovl  %eax,%edi
180058a90:	89 3b                	mov    %edi,(%rbx)
180058a92:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180058a97:	33 c0                	xor    %eax,%eax
180058a99:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180058a9e:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180058aa3:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
180058aa8:	48 83 c4 20          	add    $0x20,%rsp
180058aac:	41 5f                	pop    %r15
180058aae:	41 5e                	pop    %r14
180058ab0:	41 5d                	pop    %r13
180058ab2:	c3                   	ret
180058ab3:	cc                   	int3
180058ab4:	48 8b c4             	mov    %rsp,%rax
180058ab7:	48 89 58 10          	mov    %rbx,0x10(%rax)
180058abb:	48 89 68 18          	mov    %rbp,0x18(%rax)
180058abf:	48 89 70 20          	mov    %rsi,0x20(%rax)
180058ac3:	57                   	push   %rdi
180058ac4:	41 54                	push   %r12
180058ac6:	41 55                	push   %r13
180058ac8:	41 56                	push   %r14
180058aca:	41 57                	push   %r15
180058acc:	48 83 ec 20          	sub    $0x20,%rsp
180058ad0:	33 db                	xor    %ebx,%ebx
180058ad2:	49 8b f1             	mov    %r9,%rsi
180058ad5:	89 58 08             	mov    %ebx,0x8(%rax)
180058ad8:	4d 8b f0             	mov    %r8,%r14
180058adb:	48 8b 41 20          	mov    0x20(%rcx),%rax
180058adf:	48 8b f9             	mov    %rcx,%rdi
180058ae2:	44 8b eb             	mov    %ebx,%r13d
180058ae5:	48 85 c0             	test   %rax,%rax
180058ae8:	74 06                	je     0x180058af0
180058aea:	48 83 c0 58          	add    $0x58,%rax
180058aee:	eb 08                	jmp    0x180058af8
180058af0:	48 8b 41 08          	mov    0x8(%rcx),%rax
180058af4:	48 83 c0 50          	add    $0x50,%rax
180058af8:	83 78 10 01          	cmpl   $0x1,0x10(%rax)
180058afc:	75 0a                	jne    0x180058b08
180058afe:	48 8b 41 08          	mov    0x8(%rcx),%rax
180058b02:	48 8b 48 70          	mov    0x70(%rax),%rcx
180058b06:	eb 0d                	jmp    0x180058b15
180058b08:	8a 49 2a             	mov    0x2a(%rcx),%cl
180058b0b:	b8 01 00 00 00       	mov    $0x1,%eax
180058b10:	48 d3 e0             	shl    %cl,%rax
180058b13:	8b c8                	mov    %eax,%ecx
180058b15:	48 8b 47 40          	mov    0x40(%rdi),%rax
180058b19:	48 85 c0             	test   %rax,%rax
180058b1c:	74 10                	je     0x180058b2e
180058b1e:	48 39 58 28          	cmp    %rbx,0x28(%rax)
180058b22:	74 0a                	je     0x180058b2e
180058b24:	bb bb 00 00 c0       	mov    $0xc00000bb,%ebx
180058b29:	e9 be 01 00 00       	jmp    0x180058cec
180058b2e:	48 8d 41 ff          	lea    -0x1(%rcx),%rax
180058b32:	48 23 c2             	and    %rdx,%rax
180058b35:	48 2b c8             	sub    %rax,%rcx
180058b38:	4c 3b f1             	cmp    %rcx,%r14
180058b3b:	76 0a                	jbe    0x180058b47
180058b3d:	bb 01 00 00 c0       	mov    $0xc0000001,%ebx
180058b42:	e9 a5 01 00 00       	jmp    0x180058cec
180058b47:	48 8b 07             	mov    (%rdi),%rax
180058b4a:	4c 8d 44 24 50       	lea    0x50(%rsp),%r8
180058b4f:	48 8b cf             	mov    %rdi,%rcx
180058b52:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
180058b59:	ff d0                	call   *%rax
180058b5b:	0f 1f 00             	nopl   (%rax)
180058b5e:	8a 57 2b             	mov    0x2b(%rdi),%dl
180058b61:	4c 8b f8             	mov    %rax,%r15
180058b64:	80 fa 01             	cmp    $0x1,%dl
180058b67:	75 1c                	jne    0x180058b85
180058b69:	48 8b 47 20          	mov    0x20(%rdi),%rax
180058b6d:	48 85 c0             	test   %rax,%rax
180058b70:	74 06                	je     0x180058b78
180058b72:	48 83 c0 58          	add    $0x58,%rax
180058b76:	eb 08                	jmp    0x180058b80
180058b78:	48 8b 47 08          	mov    0x8(%rdi),%rax
180058b7c:	48 83 c0 50          	add    $0x50,%rax
180058b80:	39 58 04             	cmp    %ebx,0x4(%rax)
180058b83:	74 4c                	je     0x180058bd1
180058b85:	80 3e 03             	cmpb   $0x3,(%rsi)
180058b88:	75 9a                	jne    0x180058b24
180058b8a:	8b 4e 0c             	mov    0xc(%rsi),%ecx
180058b8d:	83 cd ff             	or     $0xffffffff,%ebp
180058b90:	41 b8 01 00 00 00    	mov    $0x1,%r8d
180058b96:	3b cd                	cmp    %ebp,%ecx
180058b98:	74 05                	je     0x180058b9f
180058b9a:	41 d3 e0             	shl    %cl,%r8d
180058b9d:	eb 08                	jmp    0x180058ba7
180058b9f:	8a ca                	mov    %dl,%cl
180058ba1:	41 d3 e0             	shl    %cl,%r8d
180058ba4:	41 ff c8             	dec    %r8d
180058ba7:	48 8b 07             	mov    (%rdi),%rax
180058baa:	4d 8b cf             	mov    %r15,%r9
180058bad:	8b 54 24 50          	mov    0x50(%rsp),%edx
180058bb1:	48 8b cf             	mov    %rdi,%rcx
180058bb4:	48 8b 80 90 00 00 00 	mov    0x90(%rax),%rax
180058bbb:	ff d0                	call   *%rax
180058bbd:	0f 1f 00             	nopl   (%rax)
180058bc0:	44 8b e8             	mov    %eax,%r13d
180058bc3:	3b c5                	cmp    %ebp,%eax
180058bc5:	75 0a                	jne    0x180058bd1
180058bc7:	bb 0e 00 00 c0       	mov    $0xc000000e,%ebx
180058bcc:	e9 1b 01 00 00       	jmp    0x180058cec
180058bd1:	44 8b 64 24 50       	mov    0x50(%rsp),%r12d
180058bd6:	45 8b c5             	mov    %r13d,%r8d
180058bd9:	41 8b d4             	mov    %r12d,%edx
180058bdc:	48 8b cf             	mov    %rdi,%rcx
180058bdf:	e8 6c 87 ff ff       	call   0x180051350
180058be4:	0f b6 0e             	movzbl (%rsi),%ecx
180058be7:	48 8b e8             	mov    %rax,%rbp
180058bea:	83 e9 03             	sub    $0x3,%ecx
180058bed:	74 78                	je     0x180058c67
180058bef:	83 e9 01             	sub    $0x1,%ecx
180058bf2:	74 58                	je     0x180058c4c
180058bf4:	83 f9 0a             	cmp    $0xa,%ecx
180058bf7:	0f 85 93 00 00 00    	jne    0x180058c90
180058bfd:	8a 48 02             	mov    0x2(%rax),%cl
180058c00:	80 e1 0f             	and    $0xf,%cl
180058c03:	8d 41 ff             	lea    -0x1(%rcx),%eax
180058c06:	a8 fa                	test   $0xfa,%al
180058c08:	0f 85 2f ff ff ff    	jne    0x180058b3d
180058c0e:	80 f9 02             	cmp    $0x2,%cl
180058c11:	0f 84 26 ff ff ff    	je     0x180058b3d
180058c17:	8b 46 04             	mov    0x4(%rsi),%eax
180058c1a:	3d 13 00 00 80       	cmp    $0x80000013,%eax
180058c1f:	75 22                	jne    0x180058c43
180058c21:	48 8b 47 20          	mov    0x20(%rdi),%rax
180058c25:	48 85 c0             	test   %rax,%rax
180058c28:	74 06                	je     0x180058c30
180058c2a:	48 83 c0 58          	add    $0x58,%rax
180058c2e:	eb 08                	jmp    0x180058c38
180058c30:	48 8b 47 08          	mov    0x8(%rdi),%rax
180058c34:	48 83 c0 50          	add    $0x50,%rax
180058c38:	83 78 10 01          	cmpl   $0x1,0x10(%rax)
180058c3c:	74 52                	je     0x180058c90
180058c3e:	e9 e1 fe ff ff       	jmp    0x180058b24
180058c43:	3d 1c 00 00 80       	cmp    $0x8000001c,%eax
180058c48:	75 46                	jne    0x180058c90
180058c4a:	eb d5                	jmp    0x180058c21
180058c4c:	8a 48 02             	mov    0x2(%rax),%cl
180058c4f:	80 e1 0f             	and    $0xf,%cl
180058c52:	8d 41 ff             	lea    -0x1(%rcx),%eax
180058c55:	a8 fa                	test   $0xfa,%al
180058c57:	0f 85 e0 fe ff ff    	jne    0x180058b3d
180058c5d:	80 f9 02             	cmp    $0x2,%cl
180058c60:	75 2e                	jne    0x180058c90
180058c62:	e9 d6 fe ff ff       	jmp    0x180058b3d
180058c67:	8a 48 03             	mov    0x3(%rax),%cl
180058c6a:	8a 40 02             	mov    0x2(%rax),%al
180058c6d:	80 e1 0f             	and    $0xf,%cl
180058c70:	24 0f                	and    $0xf,%al
180058c72:	3c 01                	cmp    $0x1,%al
180058c74:	75 04                	jne    0x180058c7a
180058c76:	84 c9                	test   %cl,%cl
180058c78:	eb 03                	jmp    0x180058c7d
180058c7a:	80 f9 01             	cmp    $0x1,%cl
180058c7d:	0f 85 ba fe ff ff    	jne    0x180058b3d
180058c83:	4b 8d 04 37          	lea    (%r15,%r14,1),%rax
180058c87:	48 87 45 18          	xchg   %rax,0x18(%rbp)
180058c8b:	44 8b 64 24 50       	mov    0x50(%rsp),%r12d
180058c90:	48 8b d5             	mov    %rbp,%rdx
180058c93:	48 8b cf             	mov    %rdi,%rcx
180058c96:	e8 69 87 ff ff       	call   0x180051404
180058c9b:	48 8b c8             	mov    %rax,%rcx
180058c9e:	48 8b 40 18          	mov    0x18(%rax),%rax
180058ca2:	48 03 45 08          	add    0x8(%rbp),%rax
180058ca6:	4c 03 f8             	add    %rax,%r15
180058ca9:	48 8b 46 10          	mov    0x10(%rsi),%rax
180058cad:	48 85 c0             	test   %rax,%rax
180058cb0:	75 16                	jne    0x180058cc8
180058cb2:	44 89 66 08          	mov    %r12d,0x8(%rsi)
180058cb6:	44 89 6e 0c          	mov    %r13d,0xc(%rsi)
180058cba:	48 8b 41 08          	mov    0x8(%rcx),%rax
180058cbe:	48 89 46 10          	mov    %rax,0x10(%rsi)
180058cc2:	4c 89 7e 20          	mov    %r15,0x20(%rsi)
180058cc6:	eb 19                	jmp    0x180058ce1
180058cc8:	48 3b 41 08          	cmp    0x8(%rcx),%rax
180058ccc:	75 19                	jne    0x180058ce7
180058cce:	48 8b 56 18          	mov    0x18(%rsi),%rdx
180058cd2:	48 8b 4e 20          	mov    0x20(%rsi),%rcx
180058cd6:	48 03 ca             	add    %rdx,%rcx
180058cd9:	49 3b cf             	cmp    %r15,%rcx
180058cdc:	75 09                	jne    0x180058ce7
180058cde:	4c 03 f2             	add    %rdx,%r14
180058ce1:	4c 89 76 18          	mov    %r14,0x18(%rsi)
180058ce5:	eb 05                	jmp    0x180058cec
180058ce7:	bb 02 00 e7 00       	mov    $0xe70002,%ebx
180058cec:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
180058cf1:	8b c3                	mov    %ebx,%eax
180058cf3:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180058cf8:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
180058cfd:	48 83 c4 20          	add    $0x20,%rsp
180058d01:	41 5f                	pop    %r15
180058d03:	41 5e                	pop    %r14
180058d05:	41 5d                	pop    %r13
180058d07:	41 5c                	pop    %r12
180058d09:	5f                   	pop    %rdi
180058d0a:	c3                   	ret
180058d0b:	cc                   	int3
180058d0c:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
180058d11:	55                   	push   %rbp
180058d12:	56                   	push   %rsi
180058d13:	57                   	push   %rdi
180058d14:	41 54                	push   %r12
180058d16:	41 55                	push   %r13
180058d18:	41 56                	push   %r14
180058d1a:	41 57                	push   %r15