580905:	8b 43 04             	mov    0x4(%ebx),%eax
580908:	89 46 04             	mov    %eax,0x4(%esi)
58090b:	8b 43 08             	mov    0x8(%ebx),%eax
58090e:	89 46 08             	mov    %eax,0x8(%esi)
580911:	8b 43 0c             	mov    0xc(%ebx),%eax
580914:	89 46 0c             	mov    %eax,0xc(%esi)
580917:	8b 43 10             	mov    0x10(%ebx),%eax
58091a:	89 46 10             	mov    %eax,0x10(%esi)
58091d:	8b 43 14             	mov    0x14(%ebx),%eax
580920:	89 46 14             	mov    %eax,0x14(%esi)
580923:	8b 43 18             	mov    0x18(%ebx),%eax
580926:	89 46 18             	mov    %eax,0x18(%esi)
580929:	8b 43 1c             	mov    0x1c(%ebx),%eax
58092c:	89 46 1c             	mov    %eax,0x1c(%esi)
58092f:	8b 43 20             	mov    0x20(%ebx),%eax
580932:	89 46 20             	mov    %eax,0x20(%esi)
580935:	8b 43 24             	mov    0x24(%ebx),%eax
580938:	89 46 24             	mov    %eax,0x24(%esi)
58093b:	68 e2 36 1a 3f       	push   $0x3f1a36e2
580940:	68 2d 43 1c eb       	push   $0xeb1c432d
580945:	8d 46 04             	lea    0x4(%esi),%eax
580948:	e8 e3 ed ff ff       	call   0x57f730
58094d:	85 c0                	test   %eax,%eax
58094f:	75 03                	jne    0x580954
580951:	83 0e 01             	orl    $0x1,(%esi)
580954:	b8 00 01 00 00       	mov    $0x100,%eax
580959:	e8 4e 1e e8 ff       	call   0x4027ac
58095e:	89 44 24 08          	mov    %eax,0x8(%esp)
580962:	33 c0                	xor    %eax,%eax
580964:	89 44 24 14          	mov    %eax,0x14(%esp)
580968:	8b 46 28             	mov    0x28(%esi),%eax
58096b:	48                   	dec    %eax
58096c:	85 c0                	test   %eax,%eax
58096e:	72 79                	jb     0x5809e9
580970:	40                   	inc    %eax
580971:	89 44 24 18          	mov    %eax,0x18(%esp)
580975:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
58097c:	00
58097d:	b8 00 02 00 00       	mov    $0x200,%eax
580982:	e8 25 1e e8 ff       	call   0x4027ac
580987:	8b f8                	mov    %eax,%edi
580989:	8b 44 24 10          	mov    0x10(%esp),%eax
58098d:	89 7c 86 3c          	mov    %edi,0x3c(%esi,%eax,4)
580991:	8b 04 24             	mov    (%esp),%eax
580994:	8b 00                	mov    (%eax),%eax
580996:	50                   	push   %eax
580997:	8b 5c 24 04          	mov    0x4(%esp),%ebx
58099b:	b9 00 01 00 00       	mov    $0x100,%ecx
5809a0:	ba 01 00 00 00       	mov    $0x1,%edx
5809a5:	8b 44 24 0c          	mov    0xc(%esp),%eax
5809a9:	ff 93 ec 03 00 00    	call   *0x3ec(%ebx)
5809af:	33 db                	xor    %ebx,%ebx
5809b1:	8b 44 24 08          	mov    0x8(%esp),%eax
5809b5:	0f b6 04 18          	movzbl (%eax,%ebx,1),%eax
5809b9:	e8 c6 ed ff ff       	call   0x57f784
5809be:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
5809c2:	43                   	inc    %ebx
5809c3:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
5809c9:	75 e6                	jne    0x5809b1
5809cb:	8b 44 24 10          	mov    0x10(%esp),%eax
5809cf:	8b 44 86 3c          	mov    0x3c(%esi,%eax,4),%eax
5809d3:	8b 56 30             	mov    0x30(%esi),%edx
5809d6:	e8 f1 ed ff ff       	call   0x57f7cc
5809db:	01 44 24 14          	add    %eax,0x14(%esp)
5809df:	ff 44 24 10          	incl   0x10(%esp)
5809e3:	ff 4c 24 18          	decl   0x18(%esp)
5809e7:	75 94                	jne    0x58097d
5809e9:	8b 44 24 14          	mov    0x14(%esp),%eax
5809ed:	3b 46 28             	cmp    0x28(%esi),%eax
5809f0:	75 03                	jne    0x5809f5
5809f2:	83 26 fd             	andl   $0xfffffffd,(%esi)
5809f5:	8b 44 24 08          	mov    0x8(%esp),%eax
5809f9:	e8 ce 1d e8 ff       	call   0x4027cc
5809fe:	8b 56 28             	mov    0x28(%esi),%edx
580a01:	8b 46 38             	mov    0x38(%esi),%eax
580a04:	e8 2f ee ff ff       	call   0x57f838
580a09:	f7 6e 2c             	imull  0x2c(%esi)
580a0c:	89 44 24 0c          	mov    %eax,0xc(%esp)
580a10:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
580a15:	0f 8e 8b 00 00 00    	jle    0x580aa6
580a1b:	8b 44 24 0c          	mov    0xc(%esp),%eax
580a1f:	03 c0                	add    %eax,%eax
580a21:	e8 86 1d e8 ff       	call   0x4027ac
580a26:	8b f8                	mov    %eax,%edi
580a28:	8b 44 24 0c          	mov    0xc(%esp),%eax
580a2c:	e8 7b 1d e8 ff       	call   0x4027ac
580a31:	89 44 24 08          	mov    %eax,0x8(%esp)
580a35:	8b 04 24             	mov    (%esp),%eax
580a38:	8b 00                	mov    (%eax),%eax
580a3a:	50                   	push   %eax
580a3b:	8b 5c 24 04          	mov    0x4(%esp),%ebx
580a3f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
580a43:	ba 01 00 00 00       	mov    $0x1,%edx
580a48:	8b 44 24 0c          	mov    0xc(%esp),%eax
580a4c:	ff 93 ec 03 00 00    	call   *0x3ec(%ebx)
580a52:	89 be bc 00 00 00    	mov    %edi,0xbc(%esi)
580a58:	8b 44 24 0c          	mov    0xc(%esp),%eax
580a5c:	03 c0                	add    %eax,%eax
580a5e:	89 86 c0 00 00 00    	mov    %eax,0xc0(%esi)
580a64:	8b 44 24 0c          	mov    0xc(%esp),%eax
580a68:	48                   	dec    %eax
580a69:	85 c0                	test   %eax,%eax
580a6b:	72 2e                	jb     0x580a9b
580a6d:	40                   	inc    %eax
580a6e:	89 44 24 18          	mov    %eax,0x18(%esp)
580a72:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
580a79:	00
580a7a:	8b 44 24 08          	mov    0x8(%esp),%eax
580a7e:	8b 54 24 10          	mov    0x10(%esp),%edx
580a82:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
580a86:	e8 f9 ec ff ff       	call   0x57f784
580a8b:	66 89 07             	mov    %ax,(%edi)
580a8e:	83 c7 02             	add    $0x2,%edi
580a91:	ff 44 24 10          	incl   0x10(%esp)
580a95:	ff 4c 24 18          	decl   0x18(%esp)
580a99:	75 df                	jne    0x580a7a
580a9b:	8b 44 24 08          	mov    0x8(%esp),%eax
580a9f:	e8 28 1d e8 ff       	call   0x4027cc
580aa4:	eb 13                	jmp    0x580ab9
580aa6:	33 c0                	xor    %eax,%eax
580aa8:	89 86 bc 00 00 00    	mov    %eax,0xbc(%esi)
580aae:	33 c0                	xor    %eax,%eax
580ab0:	89 86 c0 00 00 00    	mov    %eax,0xc0(%esi)
580ab6:	83 26 ef             	andl   $0xffffffef,(%esi)
580ab9:	b8 00 01 00 00       	mov    $0x100,%eax
580abe:	e8 e9 1c e8 ff       	call   0x4027ac
580ac3:	89 44 24 08          	mov    %eax,0x8(%esp)
580ac7:	33 c0                	xor    %eax,%eax
580ac9:	89 44 24 14          	mov    %eax,0x14(%esp)
580acd:	8b 46 2c             	mov    0x2c(%esi),%eax
580ad0:	48                   	dec    %eax
580ad1:	85 c0                	test   %eax,%eax
580ad3:	72 7b                	jb     0x580b50
580ad5:	40                   	inc    %eax
580ad6:	89 44 24 18          	mov    %eax,0x18(%esp)
580ada:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
580ae1:	00
580ae2:	b8 00 02 00 00       	mov    $0x200,%eax
580ae7:	e8 c0 1c e8 ff       	call   0x4027ac
580aec:	8b f8                	mov    %eax,%edi
580aee:	8b 44 24 10          	mov    0x10(%esp),%eax
580af2:	89 7c 86 7c          	mov    %edi,0x7c(%esi,%eax,4)
580af6:	8b 04 24             	mov    (%esp),%eax
580af9:	8b 00                	mov    (%eax),%eax
580afb:	50                   	push   %eax
580afc:	8b 5c 24 04          	mov    0x4(%esp),%ebx
580b00:	b9 00 01 00 00       	mov    $0x100,%ecx
580b05:	ba 01 00 00 00       	mov    $0x1,%edx
580b0a:	8b 44 24 0c          	mov    0xc(%esp),%eax
580b0e:	ff 93 ec 03 00 00    	call   *0x3ec(%ebx)
580b14:	33 db                	xor    %ebx,%ebx
580b16:	8b 44 24 08          	mov    0x8(%esp),%eax
580b1a:	0f b6 04 18          	movzbl (%eax,%ebx,1),%eax
580b1e:	e8 61 ec ff ff       	call   0x57f784
580b23:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
580b27:	43                   	inc    %ebx
580b28:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
580b2e:	75 e6                	jne    0x580b16
580b30:	8b 44 24 10          	mov    0x10(%esp),%eax
580b34:	8b 44 86 7c          	mov    0x7c(%esi,%eax,4),%eax
580b38:	ba 00 01 00 00       	mov    $0x100,%edx
580b3d:	e8 8a ec ff ff       	call   0x57f7cc
580b42:	01 44 24 14          	add    %eax,0x14(%esp)
580b46:	ff 44 24 10          	incl   0x10(%esp)
580b4a:	ff 4c 24 18          	decl   0x18(%esp)
580b4e:	75 92                	jne    0x580ae2
580b50:	8b 44 24 14          	mov    0x14(%esp),%eax
580b54:	3b 46 2c             	cmp    0x2c(%esi),%eax
580b57:	75 03                	jne    0x580b5c
580b59:	83 26 f7             	andl   $0xfffffff7,(%esi)
580b5c:	8b 44 24 08          	mov    0x8(%esp),%eax
580b60:	e8 67 1c e8 ff       	call   0x4027cc
580b65:	8d 96 c4 00 00 00    	lea    0xc4(%esi),%edx
580b6b:	8b 46 30             	mov    0x30(%esi),%eax
580b6e:	e8 d9 ec ff ff       	call   0x57f84c
580b73:	8d 96 fa 00 00 00    	lea    0xfa(%esi),%edx
580b79:	8b 46 34             	mov    0x34(%esi),%eax
580b7c:	e8 cb ec ff ff       	call   0x57f84c
580b81:	8d 86 30 01 00 00    	lea    0x130(%esi),%eax
580b87:	50                   	push   %eax
580b88:	8b 4e 2c             	mov    0x2c(%esi),%ecx
580b8b:	8b 56 28             	mov    0x28(%esi),%edx
580b8e:	8b 46 38             	mov    0x38(%esi),%eax
580b91:	e8 9a fb ff ff       	call   0x580730
580b96:	8b 04 24             	mov    (%esp),%eax
580b99:	81 78 0c 20 62 61 4c 	cmpl   $0x4c616220,0xc(%eax)
580ba0:	75 0f                	jne    0x580bb1
580ba2:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
580ba6:	8b 54 24 04          	mov    0x4(%esp),%edx
580baa:	8b c6                	mov    %esi,%eax
580bac:	e8 e7 fb ff ff       	call   0x580798
580bb1:	83 c4 48             	add    $0x48,%esp
580bb4:	5f                   	pop    %edi
580bb5:	5e                   	pop    %esi
580bb6:	5b                   	pop    %ebx
580bb7:	c3                   	ret
580bb8:	b8 02 00 00 00       	mov    $0x2,%eax
580bbd:	c3                   	ret
580bbe:	8b c0                	mov    %eax,%eax
580bc0:	55                   	push   %ebp
580bc1:	8b ec                	mov    %esp,%ebp
580bc3:	8b 45 08             	mov    0x8(%ebp),%eax
580bc6:	8b 40 fc             	mov    -0x4(%eax),%eax
580bc9:	0f b6 00             	movzbl (%eax),%eax
580bcc:	8b 55 08             	mov    0x8(%ebp),%edx
580bcf:	89 42 f8             	mov    %eax,-0x8(%edx)
580bd2:	8b 45 08             	mov    0x8(%ebp),%eax
580bd5:	ff 40 fc             	incl   -0x4(%eax)
580bd8:	8b 45 08             	mov    0x8(%ebp),%eax
580bdb:	8b 40 fc             	mov    -0x4(%eax),%eax
580bde:	8a 00                	mov    (%eax),%al
580be0:	8b 55 08             	mov    0x8(%ebp),%edx
580be3:	8b 52 f4             	mov    -0xc(%edx),%edx
580be6:	88 02                	mov    %al,(%edx)
580be8:	8b 45 08             	mov    0x8(%ebp),%eax
580beb:	ff 40 f4             	incl   -0xc(%eax)
580bee:	8b 45 08             	mov    0x8(%ebp),%eax
580bf1:	ff 40 fc             	incl   -0x4(%eax)
580bf4:	8b 45 08             	mov    0x8(%ebp),%eax
580bf7:	8a 40 f8             	mov    -0x8(%eax),%al
580bfa:	8b 55 08             	mov    0x8(%ebp),%edx
580bfd:	8b 52 f4             	mov    -0xc(%edx),%edx
580c00:	88 02                	mov    %al,(%edx)
580c02:	8b 45 08             	mov    0x8(%ebp),%eax
580c05:	ff 40 f4             	incl   -0xc(%eax)
580c08:	5d                   	pop    %ebp
580c09:	c3                   	ret
580c0a:	8b c0                	mov    %eax,%eax
580c0c:	55                   	push   %ebp
580c0d:	8b ec                	mov    %esp,%ebp
580c0f:	83 c4 f4             	add    $0xfffffff4,%esp
580c12:	53                   	push   %ebx
580c13:	8b d9                	mov    %ecx,%ebx
580c15:	d1 eb                	shr    $1,%ebx
580c17:	43                   	inc    %ebx
580c18:	89 45 fc             	mov    %eax,-0x4(%ebp)
580c1b:	89 55 f4             	mov    %edx,-0xc(%ebp)
580c1e:	4b                   	dec    %ebx
580c1f:	eb 08                	jmp    0x580c29
580c21:	55                   	push   %ebp
580c22:	e8 99 ff ff ff       	call   0x580bc0
580c27:	59                   	pop    %ecx
580c28:	4b                   	dec    %ebx
580c29:	f6 c3 07             	test   $0x7,%bl
580c2c:	75 f3                	jne    0x580c21
580c2e:	c1 eb 03             	shr    $0x3,%ebx
580c31:	4b                   	dec    %ebx
580c32:	85 db                	test   %ebx,%ebx
580c34:	7c 3d                	jl     0x580c73
580c36:	55                   	push   %ebp
580c37:	e8 84 ff ff ff       	call   0x580bc0
580c3c:	59                   	pop    %ecx
580c3d:	55                   	push   %ebp
580c3e:	e8 7d ff ff ff       	call   0x580bc0
580c43:	59                   	pop    %ecx
580c44:	55                   	push   %ebp
580c45:	e8 76 ff ff ff       	call   0x580bc0
580c4a:	59                   	pop    %ecx
580c4b:	55                   	push   %ebp
580c4c:	e8 6f ff ff ff       	call   0x580bc0
580c51:	59                   	pop    %ecx
580c52:	55                   	push   %ebp
580c53:	e8 68 ff ff ff       	call   0x580bc0
580c58:	59                   	pop    %ecx
580c59:	55                   	push   %ebp
580c5a:	e8 61 ff ff ff       	call   0x580bc0
580c5f:	59                   	pop    %ecx
580c60:	55                   	push   %ebp
580c61:	e8 5a ff ff ff       	call   0x580bc0
580c66:	59                   	pop    %ecx
580c67:	55                   	push   %ebp
580c68:	e8 53 ff ff ff       	call   0x580bc0
580c6d:	59                   	pop    %ecx
580c6e:	4b                   	dec    %ebx
580c6f:	85 db                	test   %ebx,%ebx
580c71:	7d c3                	jge    0x580c36
580c73:	5b                   	pop    %ebx
580c74:	8b e5                	mov    %ebp,%esp
580c76:	5d                   	pop    %ebp
580c77:	c3                   	ret
580c78:	8b ca                	mov    %edx,%ecx
580c7a:	03 c9                	add    %ecx,%ecx
580c7c:	8b d0                	mov    %eax,%edx
580c7e:	e8 89 ff ff ff       	call   0x580c0c
580c83:	c3                   	ret
580c84:	53                   	push   %ebx
580c85:	56                   	push   %esi
580c86:	57                   	push   %edi
580c87:	55                   	push   %ebp
580c88:	83 c4 c4             	add    $0xffffffc4,%esp
580c8b:	8b da                	mov    %edx,%ebx
580c8d:	89 04 24             	mov    %eax,(%esp)
580c90:	8d 74 24 0c          	lea    0xc(%esp),%esi
580c94:	8b 04 24             	mov    (%esp),%eax
580c97:	8b 00                	mov    (%eax),%eax
580c99:	50                   	push   %eax
580c9a:	e8 19 ff ff ff       	call   0x580bb8
580c9f:	ba 2e 00 00 00       	mov    $0x2e,%edx
580ca4:	2b d0                	sub    %eax,%edx
580ca6:	8b c6                	mov    %esi,%eax
580ca8:	8b 7c 24 04          	mov    0x4(%esp),%edi
580cac:	b9 01 00 00 00       	mov    $0x1,%ecx
580cb1:	ff 97 ec 03 00 00    	call   *0x3ec(%edi)
580cb7:	c7 03 1a 00 00 00    	movl   $0x1a,(%ebx)
580cbd:	33 c0                	xor    %eax,%eax
580cbf:	8a 46 02             	mov    0x2(%esi),%al
580cc2:	89 43 38             	mov    %eax,0x38(%ebx)
580cc5:	33 c0                	xor    %eax,%eax
580cc7:	8a 06                	mov    (%esi),%al
580cc9:	89 43 28             	mov    %eax,0x28(%ebx)
580ccc:	33 c0                	xor    %eax,%eax
580cce:	8a 46 01             	mov    0x1(%esi),%al
580cd1:	89 43 2c             	mov    %eax,0x2c(%ebx)
580cd4:	8d 46 28             	lea    0x28(%esi),%eax
580cd7:	e8 cc aa ff ff       	call   0x57b7a8
580cdc:	8d 46 2a             	lea    0x2a(%esi),%eax
580cdf:	e8 c4 aa ff ff       	call   0x57b7a8
580ce4:	0f b7 46 28          	movzwl 0x28(%esi),%eax
580ce8:	89 43 30             	mov    %eax,0x30(%ebx)
580ceb:	0f b7 46 2a          	movzwl 0x2a(%esi),%eax
580cef:	89 43 34             	mov    %eax,0x34(%ebx)
580cf2:	8d 46 04             	lea    0x4(%esi),%eax
580cf5:	e8 ba aa ff ff       	call   0x57b7b4
580cfa:	8d 46 08             	lea    0x8(%esi),%eax
580cfd:	e8 b2 aa ff ff       	call   0x57b7b4
580d02:	8d 46 0c             	lea    0xc(%esi),%eax
580d05:	e8 aa aa ff ff       	call   0x57b7b4
580d0a:	8d 46 10             	lea    0x10(%esi),%eax
580d0d:	e8 a2 aa ff ff       	call   0x57b7b4
580d12:	8d 46 14             	lea    0x14(%esi),%eax
580d15:	e8 9a aa ff ff       	call   0x57b7b4
580d1a:	8d 46 18             	lea    0x18(%esi),%eax
580d1d:	e8 92 aa ff ff       	call   0x57b7b4
580d22:	8d 46 1c             	lea    0x1c(%esi),%eax
580d25:	e8 8a aa ff ff       	call   0x57b7b4
580d2a:	8d 46 20             	lea    0x20(%esi),%eax
580d2d:	e8 82 aa ff ff       	call   0x57b7b4
580d32:	8d 46 24             	lea    0x24(%esi),%eax
580d35:	e8 7a aa ff ff       	call   0x57b7b4
580d3a:	8b 46 04             	mov    0x4(%esi),%eax
580d3d:	89 43 04             	mov    %eax,0x4(%ebx)
580d40:	8b 46 08             	mov    0x8(%esi),%eax
580d43:	89 43 08             	mov    %eax,0x8(%ebx)
580d46:	8b 46 0c             	mov    0xc(%esi),%eax
580d49:	89 43 0c             	mov    %eax,0xc(%ebx)
580d4c:	8b 46 10             	mov    0x10(%esi),%eax
580d4f:	89 43 10             	mov    %eax,0x10(%ebx)
580d52:	8b 46 14             	mov    0x14(%esi),%eax
580d55:	89 43 14             	mov    %eax,0x14(%ebx)
580d58:	8b 46 18             	mov    0x18(%esi),%eax