587a33:	a3 f9 3f 00 00       	mov    %eax,0x3ff9
587a38:	00 00                	add    %al,(%eax)
587a3a:	00 3f                	add    %bh,(%edi)
587a3c:	53                   	push   %ebx
587a3d:	56                   	push   %esi
587a3e:	57                   	push   %edi
587a3f:	81 c4 6c ff ff ff    	add    $0xffffff6c,%esp
587a45:	89 4c 24 04          	mov    %ecx,0x4(%esp)
587a49:	89 14 24             	mov    %edx,(%esp)
587a4c:	8b f0                	mov    %eax,%esi
587a4e:	89 74 24 08          	mov    %esi,0x8(%esp)
587a52:	8b 44 24 04          	mov    0x4(%esp),%eax
587a56:	8b 58 28             	mov    0x28(%eax),%ebx
587a59:	4b                   	dec    %ebx
587a5a:	85 db                	test   %ebx,%ebx
587a5c:	72 17                	jb     0x587a75
587a5e:	43                   	inc    %ebx
587a5f:	8d 74 24 0c          	lea    0xc(%esp),%esi
587a63:	b8 00 10 00 00       	mov    $0x1000,%eax
587a68:	e8 9b 94 ff ff       	call   0x580f08
587a6d:	89 06                	mov    %eax,(%esi)
587a6f:	83 c6 04             	add    $0x4,%esi
587a72:	4b                   	dec    %ebx
587a73:	75 ee                	jne    0x587a63
587a75:	33 ff                	xor    %edi,%edi
587a77:	8b 74 24 08          	mov    0x8(%esp),%esi
587a7b:	89 bc 24 8c 00 00 00 	mov    %edi,0x8c(%esp)
587a82:	33 c0                	xor    %eax,%eax
587a84:	89 84 24 90 00 00 00 	mov    %eax,0x90(%esp)
587a8b:	df ac 24 8c 00 00 00 	fildll 0x8c(%esp)
587a92:	83 c4 f8             	add    $0xfffffff8,%esp
587a95:	dd 1c 24             	fstpl  (%esp)
587a98:	9b                   	fwait
587a99:	b8 00 10 00 00       	mov    $0x1000,%eax
587a9e:	e8 ed 7c ff ff       	call   0x57f790
587aa3:	0f b7 d0             	movzwl %ax,%edx
587aa6:	8b 44 24 04          	mov    0x4(%esp),%eax
587aaa:	8b 58 28             	mov    0x28(%eax),%ebx
587aad:	4b                   	dec    %ebx
587aae:	85 db                	test   %ebx,%ebx
587ab0:	72 0e                	jb     0x587ac0
587ab2:	43                   	inc    %ebx
587ab3:	8d 44 24 4c          	lea    0x4c(%esp),%eax
587ab7:	66 89 10             	mov    %dx,(%eax)
587aba:	83 c0 02             	add    $0x2,%eax
587abd:	4b                   	dec    %ebx
587abe:	75 f7                	jne    0x587ab7
587ac0:	6a 01                	push   $0x1
587ac2:	8d 4c 24 70          	lea    0x70(%esp),%ecx
587ac6:	8d 54 24 50          	lea    0x50(%esp),%edx
587aca:	8b 06                	mov    (%esi),%eax
587acc:	e8 db cc ff ff       	call   0x5847ac
587ad1:	83 c6 04             	add    $0x4,%esi
587ad4:	8b 1c 24             	mov    (%esp),%ebx
587ad7:	4b                   	dec    %ebx
587ad8:	85 db                	test   %ebx,%ebx
587ada:	7e 17                	jle    0x587af3
587adc:	6a 01                	push   $0x1
587ade:	8d 4c 24 70          	lea    0x70(%esp),%ecx
587ae2:	8d 54 24 70          	lea    0x70(%esp),%edx
587ae6:	8b 06                	mov    (%esi),%eax
587ae8:	e8 bf cc ff ff       	call   0x5847ac
587aed:	83 c6 04             	add    $0x4,%esi
587af0:	4b                   	dec    %ebx
587af1:	75 e9                	jne    0x587adc
587af3:	8b 44 24 04          	mov    0x4(%esp),%eax
587af7:	8b 58 28             	mov    0x28(%eax),%ebx
587afa:	4b                   	dec    %ebx
587afb:	85 db                	test   %ebx,%ebx
587afd:	72 1c                	jb     0x587b1b
587aff:	43                   	inc    %ebx
587b00:	8d 44 24 6c          	lea    0x6c(%esp),%eax
587b04:	8d 54 24 0c          	lea    0xc(%esp),%edx
587b08:	8b 0a                	mov    (%edx),%ecx
587b0a:	66 8b 30             	mov    (%eax),%si
587b0d:	66 89 74 79 04       	mov    %si,0x4(%ecx,%edi,2)
587b12:	83 c2 04             	add    $0x4,%edx
587b15:	83 c0 02             	add    $0x2,%eax
587b18:	4b                   	dec    %ebx
587b19:	75 ed                	jne    0x587b08
587b1b:	47                   	inc    %edi
587b1c:	81 ff 00 10 00 00    	cmp    $0x1000,%edi
587b22:	0f 85 4f ff ff ff    	jne    0x587a77
587b28:	83 cf ff             	or     $0xffffffff,%edi
587b2b:	33 db                	xor    %ebx,%ebx
587b2d:	eb 27                	jmp    0x587b56
587b2f:	8b 44 9c 0c          	mov    0xc(%esp,%ebx,4),%eax
587b33:	83 c0 04             	add    $0x4,%eax
587b36:	ba 00 10 00 00       	mov    $0x1000,%edx
587b3b:	e8 e4 fd ff ff       	call   0x587924
587b40:	85 c0                	test   %eax,%eax
587b42:	74 02                	je     0x587b46
587b44:	33 ff                	xor    %edi,%edi
587b46:	8b 44 9c 0c          	mov    0xc(%esp,%ebx,4),%eax
587b4a:	e8 2d fe ff ff       	call   0x58797c
587b4f:	85 c0                	test   %eax,%eax
587b51:	75 02                	jne    0x587b55
587b53:	33 ff                	xor    %edi,%edi
587b55:	43                   	inc    %ebx
587b56:	85 ff                	test   %edi,%edi
587b58:	74 09                	je     0x587b63
587b5a:	8b 44 24 04          	mov    0x4(%esp),%eax
587b5e:	3b 58 28             	cmp    0x28(%eax),%ebx
587b61:	72 cc                	jb     0x587b2f
587b63:	85 ff                	test   %edi,%edi
587b65:	74 23                	je     0x587b8a
587b67:	8b 44 24 04          	mov    0x4(%esp),%eax
587b6b:	8b 58 28             	mov    0x28(%eax),%ebx
587b6e:	4b                   	dec    %ebx
587b6f:	85 db                	test   %ebx,%ebx
587b71:	72 17                	jb     0x587b8a
587b73:	43                   	inc    %ebx
587b74:	8d 74 24 0c          	lea    0xc(%esp),%esi
587b78:	8b 06                	mov    (%esi),%eax
587b7a:	8b 10                	mov    (%eax),%edx
587b7c:	83 c0 04             	add    $0x4,%eax
587b7f:	e8 24 fe ff ff       	call   0x5879a8
587b84:	83 c6 04             	add    $0x4,%esi
587b87:	4b                   	dec    %ebx
587b88:	75 ee                	jne    0x587b78
587b8a:	85 ff                	test   %edi,%edi
587b8c:	74 12                	je     0x587ba0
587b8e:	8d 54 24 0c          	lea    0xc(%esp),%edx
587b92:	b9 01 00 00 00       	mov    $0x1,%ecx
587b97:	8b 44 24 04          	mov    0x4(%esp),%eax
587b9b:	e8 80 9b ff ff       	call   0x581720
587ba0:	8b 44 24 04          	mov    0x4(%esp),%eax
587ba4:	8b 58 28             	mov    0x28(%eax),%ebx
587ba7:	4b                   	dec    %ebx
587ba8:	85 db                	test   %ebx,%ebx
587baa:	72 12                	jb     0x587bbe
587bac:	43                   	inc    %ebx
587bad:	8d 74 24 0c          	lea    0xc(%esp),%esi
587bb1:	8b 06                	mov    (%esi),%eax
587bb3:	e8 f8 94 ff ff       	call   0x5810b0
587bb8:	83 c6 04             	add    $0x4,%esi
587bbb:	4b                   	dec    %ebx
587bbc:	75 f3                	jne    0x587bb1
587bbe:	81 c4 94 00 00 00    	add    $0x94,%esp
587bc4:	5f                   	pop    %edi
587bc5:	5e                   	pop    %esi
587bc6:	5b                   	pop    %ebx
587bc7:	c3                   	ret
587bc8:	6a 01                	push   $0x1
587bca:	91                   	xchg   %eax,%ecx
587bcb:	87 ca                	xchg   %ecx,%edx
587bcd:	e8 da cb ff ff       	call   0x5847ac
587bd2:	b8 01 00 00 00       	mov    $0x1,%eax
587bd7:	c3                   	ret
587bd8:	53                   	push   %ebx
587bd9:	56                   	push   %esi
587bda:	57                   	push   %edi
587bdb:	55                   	push   %ebp
587bdc:	83 c4 ec             	add    $0xffffffec,%esp
587bdf:	8b fa                	mov    %edx,%edi
587be1:	89 04 24             	mov    %eax,(%esp)
587be4:	8b 1c 24             	mov    (%esp),%ebx
587be7:	8b 43 28             	mov    0x28(%ebx),%eax
587bea:	e8 25 fb ff ff       	call   0x587714
587bef:	8b e8                	mov    %eax,%ebp
587bf1:	8b 43 2c             	mov    0x2c(%ebx),%eax
587bf4:	e8 1b fb ff ff       	call   0x587714
587bf9:	89 44 24 0c          	mov    %eax,0xc(%esp)
587bfd:	f7 c7 00 00 ff 00    	test   $0xff0000,%edi
587c03:	74 10                	je     0x587c15
587c05:	8b c7                	mov    %edi,%eax
587c07:	c1 e8 10             	shr    $0x10,%eax
587c0a:	25 ff 00 00 00       	and    $0xff,%eax
587c0f:	89 44 24 04          	mov    %eax,0x4(%esp)
587c13:	eb 0e                	jmp    0x587c23
587c15:	8b d7                	mov    %edi,%edx
587c17:	8b 43 28             	mov    0x28(%ebx),%eax
587c1a:	e8 95 fc ff ff       	call   0x5878b4
587c1f:	89 44 24 04          	mov    %eax,0x4(%esp)
587c23:	e8 38 79 ff ff       	call   0x57f560
587c28:	8b f0                	mov    %eax,%esi
587c2a:	85 f6                	test   %esi,%esi
587c2c:	75 07                	jne    0x587c35
587c2e:	33 c0                	xor    %eax,%eax
587c30:	e9 9b 00 00 00       	jmp    0x587cd0
587c35:	8b 44 24 0c          	mov    0xc(%esp),%eax
587c39:	50                   	push   %eax
587c3a:	8b cd                	mov    %ebp,%ecx
587c3c:	8b 54 24 08          	mov    0x8(%esp),%edx
587c40:	8b c6                	mov    %esi,%eax
587c42:	e8 fd 9e ff ff       	call   0x581b44
587c47:	8b f0                	mov    %eax,%esi
587c49:	c1 e5 03             	shl    $0x3,%ebp
587c4c:	83 cd 02             	or     $0x2,%ebp
587c4f:	8b 44 24 0c          	mov    0xc(%esp),%eax
587c53:	c1 e0 03             	shl    $0x3,%eax
587c56:	83 c8 02             	or     $0x2,%eax
587c59:	89 44 24 08          	mov    %eax,0x8(%esp)
587c5d:	8b d5                	mov    %ebp,%edx
587c5f:	8b c3                	mov    %ebx,%eax
587c61:	e8 96 60 ff ff       	call   0x57dcfc
587c66:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
587c6c:	8b 54 24 08          	mov    0x8(%esp),%edx
587c70:	8b c3                	mov    %ebx,%eax
587c72:	e8 f1 70 ff ff       	call   0x57ed68
587c77:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)
587c7d:	81 7b 28 20 42 47 52 	cmpl   $0x52474220,0x28(%ebx)
587c84:	75 28                	jne    0x587cae
587c86:	81 7b 2c 20 42 47 52 	cmpl   $0x52474220,0x2c(%ebx)
587c8d:	75 1f                	jne    0x587cae
587c8f:	f7 c7 10 00 00 00    	test   $0x10,%edi
587c95:	75 17                	jne    0x587cae
587c97:	8b 04 24             	mov    (%esp),%eax
587c9a:	89 44 24 10          	mov    %eax,0x10(%esp)
587c9e:	8d 44 24 10          	lea    0x10(%esp),%eax
587ca2:	8b ce                	mov    %esi,%ecx
587ca4:	ba 01 00 00 00       	mov    $0x1,%edx
587ca9:	e8 8e fd ff ff       	call   0x587a3c
587cae:	8b 06                	mov    (%esi),%eax
587cb0:	50                   	push   %eax
587cb1:	ba c8 7b 58 00       	mov    $0x587bc8,%edx
587cb6:	8b cb                	mov    %ebx,%ecx
587cb8:	8b c6                	mov    %esi,%eax
587cba:	e8 45 c9 ff ff       	call   0x584604
587cbf:	85 c0                	test   %eax,%eax
587cc1:	75 0b                	jne    0x587cce
587cc3:	8b c6                	mov    %esi,%eax
587cc5:	e8 f2 75 ff ff       	call   0x57f2bc
587cca:	33 c0                	xor    %eax,%eax
587ccc:	eb 02                	jmp    0x587cd0
587cce:	8b c6                	mov    %esi,%eax
587cd0:	83 c4 14             	add    $0x14,%esp
587cd3:	5d                   	pop    %ebp
587cd4:	5f                   	pop    %edi
587cd5:	5e                   	pop    %esi
587cd6:	5b                   	pop    %ebx
587cd7:	c3                   	ret
587cd8:	55                   	push   %ebp
587cd9:	8b ec                	mov    %esp,%ebp
587cdb:	03 c2                	add    %edx,%eax
587cdd:	03 c1                	add    %ecx,%eax
587cdf:	8b 55 08             	mov    0x8(%ebp),%edx
587ce2:	03 42 f8             	add    -0x8(%edx),%eax
587ce5:	8b 55 08             	mov    0x8(%ebp),%edx
587ce8:	8b 52 fc             	mov    -0x4(%edx),%edx
587ceb:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
587cef:	5d                   	pop    %ebp
587cf0:	c3                   	ret
587cf1:	8d 40 00             	lea    0x0(%eax),%eax
587cf4:	55                   	push   %ebp
587cf5:	8b ec                	mov    %esp,%ebp
587cf7:	83 c4 bc             	add    $0xffffffbc,%esp
587cfa:	53                   	push   %ebx
587cfb:	56                   	push   %esi
587cfc:	57                   	push   %edi
587cfd:	89 4d fc             	mov    %ecx,-0x4(%ebp)
587d00:	89 55 f0             	mov    %edx,-0x10(%ebp)
587d03:	89 45 f4             	mov    %eax,-0xc(%ebp)
587d06:	8b 45 08             	mov    0x8(%ebp),%eax
587d09:	8b 40 08             	mov    0x8(%eax),%eax
587d0c:	89 45 c0             	mov    %eax,-0x40(%ebp)
587d0f:	8b 45 08             	mov    0x8(%ebp),%eax
587d12:	8b 50 32             	mov    0x32(%eax),%edx
587d15:	8b 45 f4             	mov    -0xc(%ebp),%eax
587d18:	0f b7 00             	movzwl (%eax),%eax
587d1b:	c1 e8 08             	shr    $0x8,%eax
587d1e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
587d21:	0f b7 49 02          	movzwl 0x2(%ecx),%ecx
587d25:	c1 e9 08             	shr    $0x8,%ecx
587d28:	89 4d ec             	mov    %ecx,-0x14(%ebp)
587d2b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
587d2e:	0f b7 49 04          	movzwl 0x4(%ecx),%ecx
587d32:	c1 e9 08             	shr    $0x8,%ecx
587d35:	89 4d e8             	mov    %ecx,-0x18(%ebp)
587d38:	8b 34 82             	mov    (%edx,%eax,4),%esi
587d3b:	89 75 d0             	mov    %esi,-0x30(%ebp)
587d3e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
587d41:	8b 8c 8a 00 04 00 00 	mov    0x400(%edx,%ecx,4),%ecx
587d48:	89 4d c8             	mov    %ecx,-0x38(%ebp)
587d4b:	8b 4d c8             	mov    -0x38(%ebp),%ecx
587d4e:	89 4d cc             	mov    %ecx,-0x34(%ebp)
587d51:	8b 4d e8             	mov    -0x18(%ebp),%ecx
587d54:	8b 8c 8a 00 08 00 00 	mov    0x800(%edx,%ecx,4),%ecx
587d5b:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
587d5e:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
587d61:	3d ff 00 00 00       	cmp    $0xff,%eax
587d66:	74 06                	je     0x587d6e
587d68:	8b 4d 08             	mov    0x8(%ebp),%ecx
587d6b:	03 71 16             	add    0x16(%ecx),%esi
587d6e:	81 7d ec ff 00 00 00 	cmpl   $0xff,-0x14(%ebp)
587d75:	74 09                	je     0x587d80
587d77:	8b 4d 08             	mov    0x8(%ebp),%ecx
587d7a:	8b 49 12             	mov    0x12(%ecx),%ecx
587d7d:	01 4d c8             	add    %ecx,-0x38(%ebp)
587d80:	81 7d e8 ff 00 00 00 	cmpl   $0xff,-0x18(%ebp)
587d87:	74 09                	je     0x587d92
587d89:	8b 4d 08             	mov    0x8(%ebp),%ecx
587d8c:	8b 49 0e             	mov    0xe(%ecx),%ecx
587d8f:	01 4d c4             	add    %ecx,-0x3c(%ebp)
587d92:	0f b7 84 42 00 0c 00 	movzwl 0xc00(%edx,%eax,2),%eax
587d99:	00
587d9a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
587d9d:	8b 45 ec             	mov    -0x14(%ebp),%eax
587da0:	0f b7 84 42 00 0e 00 	movzwl 0xe00(%edx,%eax,2),%eax
587da7:	00
587da8:	89 45 e0             	mov    %eax,-0x20(%ebp)
587dab:	8b 45 e8             	mov    -0x18(%ebp),%eax
587dae:	0f b7 84 42 00 10 00 	movzwl 0x1000(%edx,%eax,2),%eax
587db5:	00
587db6:	89 45 dc             	mov    %eax,-0x24(%ebp)
587db9:	8b 45 c0             	mov    -0x40(%ebp),%eax
587dbc:	48                   	dec    %eax
587dbd:	85 c0                	test   %eax,%eax
587dbf:	0f 8c 6d 03 00 00    	jl     0x588132
587dc5:	40                   	inc    %eax
587dc6:	89 45 bc             	mov    %eax,-0x44(%ebp)
587dc9:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
587dd0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
587dd3:	3b 45 e0             	cmp    -0x20(%ebp),%eax
587dd6:	7c 76                	jl     0x587e4e
587dd8:	8b 45 e0             	mov    -0x20(%ebp),%eax
587ddb:	3b 45 dc             	cmp    -0x24(%ebp),%eax
587dde:	7c 6e                	jl     0x587e4e
587de0:	55                   	push   %ebp
587de1:	8b cb                	mov    %ebx,%ecx
587de3:	8b 55 cc             	mov    -0x34(%ebp),%edx
587de6:	8b c6                	mov    %esi,%eax
587de8:	e8 eb fe ff ff       	call   0x587cd8
587ded:	59                   	pop    %ecx
587dee:	8b f8                	mov    %eax,%edi
587df0:	55                   	push   %ebp
587df1:	8b cb                	mov    %ebx,%ecx
587df3:	8b 55 cc             	mov    -0x34(%ebp),%edx
587df6:	8b 45 d0             	mov    -0x30(%ebp),%eax
587df9:	e8 da fe ff ff       	call   0x587cd8
587dfe:	59                   	pop    %ecx
587dff:	2b f8                	sub    %eax,%edi
587e01:	89 7d d8             	mov    %edi,-0x28(%ebp)
587e04:	55                   	push   %ebp
587e05:	8b cb                	mov    %ebx,%ecx
587e07:	8b 55 c8             	mov    -0x38(%ebp),%edx
587e0a:	8b c6                	mov    %esi,%eax
587e0c:	e8 c7 fe ff ff       	call   0x587cd8
587e11:	59                   	pop    %ecx
587e12:	8b f8                	mov    %eax,%edi
587e14:	55                   	push   %ebp
587e15:	8b cb                	mov    %ebx,%ecx
587e17:	8b 55 cc             	mov    -0x34(%ebp),%edx
587e1a:	8b c6                	mov    %esi,%eax
587e1c:	e8 b7 fe ff ff       	call   0x587cd8
587e21:	59                   	pop    %ecx
587e22:	2b f8                	sub    %eax,%edi
587e24:	89 7d d4             	mov    %edi,-0x2c(%ebp)
587e27:	55                   	push   %ebp
587e28:	8b 4d c4             	mov    -0x3c(%ebp),%ecx