50091e:	ba 01 00 00 00       	mov    $0x1,%edx
500923:	8b 78 04             	mov    0x4(%eax),%edi
500926:	ff 17                	call   *(%edi)
500928:	89 43 10             	mov    %eax,0x10(%ebx)
50092b:	8b c6                	mov    %esi,%eax
50092d:	b9 00 04 00 00       	mov    $0x400,%ecx
500932:	ba 01 00 00 00       	mov    $0x1,%edx
500937:	8b 70 04             	mov    0x4(%eax),%esi
50093a:	ff 16                	call   *(%esi)
50093c:	89 43 14             	mov    %eax,0x14(%ebx)
50093f:	33 c0                	xor    %eax,%eax
500941:	ba 80 ff ff ff       	mov    $0xffffff80,%edx
500946:	69 ca e9 66 01 00    	imul   $0x166e9,%edx,%ecx
50094c:	81 c1 00 80 00 00    	add    $0x8000,%ecx
500952:	8b 73 08             	mov    0x8(%ebx),%esi
500955:	c1 f9 10             	sar    $0x10,%ecx
500958:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
50095b:	69 ca a2 c5 01 00    	imul   $0x1c5a2,%edx,%ecx
500961:	81 c1 00 80 00 00    	add    $0x8000,%ecx
500967:	8b 73 0c             	mov    0xc(%ebx),%esi
50096a:	c1 f9 10             	sar    $0x10,%ecx
50096d:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
500970:	69 ca 2e 49 ff ff    	imul   $0xffff492e,%edx,%ecx
500976:	8b 73 10             	mov    0x10(%ebx),%esi
500979:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
50097c:	69 ca e6 a7 ff ff    	imul   $0xffffa7e6,%edx,%ecx
500982:	8b 73 14             	mov    0x14(%ebx),%esi
500985:	81 c1 00 80 00 00    	add    $0x8000,%ecx
50098b:	42                   	inc    %edx
50098c:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
50098f:	40                   	inc    %eax
500990:	3d ff 00 00 00       	cmp    $0xff,%eax
500995:	7e af                	jle    0x500946
500997:	5f                   	pop    %edi
500998:	5e                   	pop    %esi
500999:	5b                   	pop    %ebx
50099a:	c3                   	ret
50099b:	90                   	nop
50099c:	55                   	push   %ebp
50099d:	8b ec                	mov    %esp,%ebp
50099f:	83 c4 cc             	add    $0xffffffcc,%esp
5009a2:	53                   	push   %ebx
5009a3:	56                   	push   %esi
5009a4:	57                   	push   %edi
5009a5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5009a8:	89 55 fc             	mov    %edx,-0x4(%ebp)
5009ab:	8b 90 c0 01 00 00    	mov    0x1c0(%eax),%edx
5009b1:	8b 48 6c             	mov    0x6c(%eax),%ecx
5009b4:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5009b7:	8b 88 3c 01 00 00    	mov    0x13c(%eax),%ecx
5009bd:	8b 42 08             	mov    0x8(%edx),%eax
5009c0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5009c3:	8b 42 0c             	mov    0xc(%edx),%eax
5009c6:	89 45 e0             	mov    %eax,-0x20(%ebp)
5009c9:	8b 42 10             	mov    0x10(%edx),%eax
5009cc:	89 45 dc             	mov    %eax,-0x24(%ebp)
5009cf:	8b 52 14             	mov    0x14(%edx),%edx
5009d2:	89 55 d8             	mov    %edx,-0x28(%ebp)
5009d5:	e9 b5 00 00 00       	jmp    0x500a8f
5009da:	8b 45 fc             	mov    -0x4(%ebp),%eax
5009dd:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5009e0:	8b 75 f8             	mov    -0x8(%ebp),%esi
5009e3:	33 ff                	xor    %edi,%edi
5009e5:	8b 10                	mov    (%eax),%edx
5009e7:	8b 45 f8             	mov    -0x8(%ebp),%eax
5009ea:	8b 14 82             	mov    (%edx,%eax,4),%edx
5009ed:	8b 45 fc             	mov    -0x4(%ebp),%eax
5009f0:	8b 40 04             	mov    0x4(%eax),%eax
5009f3:	8b 1c 98             	mov    (%eax,%ebx,4),%ebx
5009f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
5009f9:	8b 40 08             	mov    0x8(%eax),%eax
5009fc:	8b 34 b0             	mov    (%eax,%esi,4),%esi
5009ff:	ff 45 f8             	incl   -0x8(%ebp)
500a02:	8b 45 0c             	mov    0xc(%ebp),%eax
500a05:	8b 00                	mov    (%eax),%eax
500a07:	83 45 0c 04          	addl   $0x4,0xc(%ebp)
500a0b:	89 7d ec             	mov    %edi,-0x14(%ebp)
500a0e:	89 75 cc             	mov    %esi,-0x34(%ebp)
500a11:	89 5d d0             	mov    %ebx,-0x30(%ebp)
500a14:	89 55 d4             	mov    %edx,-0x2c(%ebp)
500a17:	8b 55 ec             	mov    -0x14(%ebp),%edx
500a1a:	3b 55 e8             	cmp    -0x18(%ebp),%edx
500a1d:	73 70                	jae    0x500a8f
500a1f:	8b 55 d4             	mov    -0x2c(%ebp),%edx
500a22:	8b 5d d0             	mov    -0x30(%ebp),%ebx
500a25:	0f b6 12             	movzbl (%edx),%edx
500a28:	0f b6 1b             	movzbl (%ebx),%ebx
500a2b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
500a2e:	8b 5d cc             	mov    -0x34(%ebp),%ebx
500a31:	0f b6 1b             	movzbl (%ebx),%ebx
500a34:	89 5d f0             	mov    %ebx,-0x10(%ebp)
500a37:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
500a3a:	8b 75 f0             	mov    -0x10(%ebp),%esi
500a3d:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500a40:	8d 34 11             	lea    (%ecx,%edx,1),%esi
500a43:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
500a46:	88 58 02             	mov    %bl,0x2(%eax)
500a49:	8b 5d d8             	mov    -0x28(%ebp),%ebx
500a4c:	8b 75 f4             	mov    -0xc(%ebp),%esi
500a4f:	8b 7d f0             	mov    -0x10(%ebp),%edi
500a52:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500a55:	8b 75 dc             	mov    -0x24(%ebp),%esi
500a58:	03 1c be             	add    (%esi,%edi,4),%ebx
500a5b:	8d 34 11             	lea    (%ecx,%edx,1),%esi
500a5e:	c1 fb 10             	sar    $0x10,%ebx
500a61:	8d 14 11             	lea    (%ecx,%edx,1),%edx
500a64:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
500a67:	88 58 01             	mov    %bl,0x1(%eax)
500a6a:	8b 5d e0             	mov    -0x20(%ebp),%ebx
500a6d:	8b 75 f4             	mov    -0xc(%ebp),%esi
500a70:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500a73:	8a 14 1a             	mov    (%edx,%ebx,1),%dl
500a76:	88 10                	mov    %dl,(%eax)
500a78:	83 c0 03             	add    $0x3,%eax
500a7b:	ff 45 ec             	incl   -0x14(%ebp)
500a7e:	ff 45 cc             	incl   -0x34(%ebp)
500a81:	ff 45 d0             	incl   -0x30(%ebp)
500a84:	ff 45 d4             	incl   -0x2c(%ebp)
500a87:	8b 55 ec             	mov    -0x14(%ebp),%edx
500a8a:	3b 55 e8             	cmp    -0x18(%ebp),%edx
500a8d:	72 90                	jb     0x500a1f
500a8f:	ff 4d 08             	decl   0x8(%ebp)
500a92:	0f 89 42 ff ff ff    	jns    0x5009da
500a98:	5f                   	pop    %edi
500a99:	5e                   	pop    %esi
500a9a:	5b                   	pop    %ebx
500a9b:	8b e5                	mov    %ebp,%esp
500a9d:	5d                   	pop    %ebp
500a9e:	c2 08 00             	ret    $0x8
500aa1:	90                   	nop
500aa2:	90                   	nop
500aa3:	90                   	nop
500aa4:	55                   	push   %ebp
500aa5:	8b ec                	mov    %esp,%ebp
500aa7:	83 c4 f0             	add    $0xfffffff0,%esp
500aaa:	53                   	push   %ebx
500aab:	56                   	push   %esi
500aac:	57                   	push   %edi
500aad:	8b 58 20             	mov    0x20(%eax),%ebx
500ab0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
500ab3:	8b 40 6c             	mov    0x6c(%eax),%eax
500ab6:	89 45 f8             	mov    %eax,-0x8(%ebp)
500ab9:	eb 4a                	jmp    0x500b05
500abb:	33 c0                	xor    %eax,%eax
500abd:	89 45 f4             	mov    %eax,-0xc(%ebp)
500ac0:	8b c2                	mov    %edx,%eax
500ac2:	89 45 f0             	mov    %eax,-0x10(%ebp)
500ac5:	8b 45 f4             	mov    -0xc(%ebp),%eax
500ac8:	3b 45 fc             	cmp    -0x4(%ebp),%eax
500acb:	7d 33                	jge    0x500b00
500acd:	8b 45 f0             	mov    -0x10(%ebp),%eax
500ad0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
500ad3:	8b 7d f8             	mov    -0x8(%ebp),%edi
500ad6:	8b 33                	mov    (%ebx),%esi
500ad8:	8b 00                	mov    (%eax),%eax
500ada:	03 75 f4             	add    -0xc(%ebp),%esi
500add:	85 ff                	test   %edi,%edi
500adf:	8b 04 88             	mov    (%eax,%ecx,4),%eax
500ae2:	76 0d                	jbe    0x500af1
500ae4:	8a 18                	mov    (%eax),%bl
500ae6:	88 1e                	mov    %bl,(%esi)
500ae8:	40                   	inc    %eax
500ae9:	03 75 fc             	add    -0x4(%ebp),%esi
500aec:	4f                   	dec    %edi
500aed:	85 ff                	test   %edi,%edi
500aef:	77 f3                	ja     0x500ae4
500af1:	ff 45 f4             	incl   -0xc(%ebp)
500af4:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
500af8:	8b 45 f4             	mov    -0xc(%ebp),%eax
500afb:	3b 45 fc             	cmp    -0x4(%ebp),%eax
500afe:	7c cd                	jl     0x500acd
500b00:	41                   	inc    %ecx
500b01:	83 45 0c 04          	addl   $0x4,0xc(%ebp)
500b05:	ff 4d 08             	decl   0x8(%ebp)
500b08:	79 b1                	jns    0x500abb
500b0a:	5f                   	pop    %edi
500b0b:	5e                   	pop    %esi
500b0c:	5b                   	pop    %ebx
500b0d:	8b e5                	mov    %ebp,%esp
500b0f:	5d                   	pop    %ebp
500b10:	c2 08 00             	ret    $0x8
500b13:	90                   	nop
500b14:	55                   	push   %ebp
500b15:	8b ec                	mov    %esp,%ebp
500b17:	53                   	push   %ebx
500b18:	6a 00                	push   $0x0
500b1a:	8b 5d 08             	mov    0x8(%ebp),%ebx
500b1d:	53                   	push   %ebx
500b1e:	8b 40 6c             	mov    0x6c(%eax),%eax
500b21:	50                   	push   %eax
500b22:	8b 02                	mov    (%edx),%eax
500b24:	8b d1                	mov    %ecx,%edx
500b26:	8b 4d 0c             	mov    0xc(%ebp),%ecx
500b29:	e8 66 70 00 00       	call   0x507b94
500b2e:	5b                   	pop    %ebx
500b2f:	5d                   	pop    %ebp
500b30:	c2 08 00             	ret    $0x8
500b33:	90                   	nop
500b34:	55                   	push   %ebp
500b35:	8b ec                	mov    %esp,%ebp
500b37:	51                   	push   %ecx
500b38:	53                   	push   %ebx
500b39:	56                   	push   %esi
500b3a:	57                   	push   %edi
500b3b:	8b 40 6c             	mov    0x6c(%eax),%eax
500b3e:	89 45 fc             	mov    %eax,-0x4(%ebp)
500b41:	eb 2e                	jmp    0x500b71
500b43:	8b 02                	mov    (%edx),%eax
500b45:	8b 5d 0c             	mov    0xc(%ebp),%ebx
500b48:	33 ff                	xor    %edi,%edi
500b4a:	8b 04 88             	mov    (%eax,%ecx,4),%eax
500b4d:	8b 33                	mov    (%ebx),%esi
500b4f:	41                   	inc    %ecx
500b50:	83 45 0c 04          	addl   $0x4,0xc(%ebp)
500b54:	3b 7d fc             	cmp    -0x4(%ebp),%edi
500b57:	73 18                	jae    0x500b71
500b59:	8a 18                	mov    (%eax),%bl
500b5b:	47                   	inc    %edi
500b5c:	88 5e 02             	mov    %bl,0x2(%esi)
500b5f:	8a 18                	mov    (%eax),%bl
500b61:	88 5e 01             	mov    %bl,0x1(%esi)
500b64:	8a 18                	mov    (%eax),%bl
500b66:	40                   	inc    %eax
500b67:	88 1e                	mov    %bl,(%esi)
500b69:	83 c6 03             	add    $0x3,%esi
500b6c:	3b 7d fc             	cmp    -0x4(%ebp),%edi
500b6f:	72 e8                	jb     0x500b59
500b71:	ff 4d 08             	decl   0x8(%ebp)
500b74:	79 cd                	jns    0x500b43
500b76:	5f                   	pop    %edi
500b77:	5e                   	pop    %esi
500b78:	5b                   	pop    %ebx
500b79:	59                   	pop    %ecx
500b7a:	5d                   	pop    %ebp
500b7b:	c2 08 00             	ret    $0x8
500b7e:	90                   	nop
500b7f:	90                   	nop
500b80:	55                   	push   %ebp
500b81:	8b ec                	mov    %esp,%ebp
500b83:	83 c4 c4             	add    $0xffffffc4,%esp
500b86:	53                   	push   %ebx
500b87:	56                   	push   %esi
500b88:	57                   	push   %edi
500b89:	89 4d f8             	mov    %ecx,-0x8(%ebp)
500b8c:	89 55 fc             	mov    %edx,-0x4(%ebp)
500b8f:	8b 90 c0 01 00 00    	mov    0x1c0(%eax),%edx
500b95:	8b 48 6c             	mov    0x6c(%eax),%ecx
500b98:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
500b9b:	8b 88 3c 01 00 00    	mov    0x13c(%eax),%ecx
500ba1:	8b 42 08             	mov    0x8(%edx),%eax
500ba4:	89 45 e0             	mov    %eax,-0x20(%ebp)
500ba7:	8b 42 0c             	mov    0xc(%edx),%eax
500baa:	89 45 dc             	mov    %eax,-0x24(%ebp)
500bad:	8b 42 10             	mov    0x10(%edx),%eax
500bb0:	89 45 d8             	mov    %eax,-0x28(%ebp)
500bb3:	8b 52 14             	mov    0x14(%edx),%edx
500bb6:	89 55 d4             	mov    %edx,-0x2c(%ebp)
500bb9:	e9 ed 00 00 00       	jmp    0x500cab
500bbe:	8b 45 fc             	mov    -0x4(%ebp),%eax
500bc1:	8b 5d f8             	mov    -0x8(%ebp),%ebx
500bc4:	8b 75 f8             	mov    -0x8(%ebp),%esi
500bc7:	33 ff                	xor    %edi,%edi
500bc9:	8b 10                	mov    (%eax),%edx
500bcb:	8b 45 f8             	mov    -0x8(%ebp),%eax
500bce:	8b 14 82             	mov    (%edx,%eax,4),%edx
500bd1:	8b 45 fc             	mov    -0x4(%ebp),%eax
500bd4:	8b 40 04             	mov    0x4(%eax),%eax
500bd7:	8b 1c 98             	mov    (%eax,%ebx,4),%ebx
500bda:	8b 45 fc             	mov    -0x4(%ebp),%eax
500bdd:	8b 40 08             	mov    0x8(%eax),%eax
500be0:	8b 04 b0             	mov    (%eax,%esi,4),%eax
500be3:	89 45 ec             	mov    %eax,-0x14(%ebp)
500be6:	8b 45 fc             	mov    -0x4(%ebp),%eax
500be9:	8b 75 f8             	mov    -0x8(%ebp),%esi
500bec:	8b 40 0c             	mov    0xc(%eax),%eax
500bef:	8b 34 b0             	mov    (%eax,%esi,4),%esi
500bf2:	ff 45 f8             	incl   -0x8(%ebp)
500bf5:	8b 45 0c             	mov    0xc(%ebp),%eax
500bf8:	8b 00                	mov    (%eax),%eax
500bfa:	83 45 0c 04          	addl   $0x4,0xc(%ebp)
500bfe:	89 7d e8             	mov    %edi,-0x18(%ebp)
500c01:	89 75 c4             	mov    %esi,-0x3c(%ebp)
500c04:	8b 75 ec             	mov    -0x14(%ebp),%esi
500c07:	89 75 c8             	mov    %esi,-0x38(%ebp)
500c0a:	89 5d cc             	mov    %ebx,-0x34(%ebp)
500c0d:	89 55 d0             	mov    %edx,-0x30(%ebp)
500c10:	8b 55 e8             	mov    -0x18(%ebp),%edx
500c13:	3b 55 e4             	cmp    -0x1c(%ebp),%edx
500c16:	0f 83 8f 00 00 00    	jae    0x500cab
500c1c:	8b 55 d0             	mov    -0x30(%ebp),%edx
500c1f:	8b 5d cc             	mov    -0x34(%ebp),%ebx
500c22:	0f b6 12             	movzbl (%edx),%edx
500c25:	0f b6 1b             	movzbl (%ebx),%ebx
500c28:	89 5d f4             	mov    %ebx,-0xc(%ebp)
500c2b:	8b 5d c8             	mov    -0x38(%ebp),%ebx
500c2e:	0f b6 1b             	movzbl (%ebx),%ebx
500c31:	89 5d f0             	mov    %ebx,-0x10(%ebp)
500c34:	8b 5d e0             	mov    -0x20(%ebp),%ebx
500c37:	8b 75 f0             	mov    -0x10(%ebp),%esi
500c3a:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500c3d:	be ff 00 00 00       	mov    $0xff,%esi
500c42:	03 da                	add    %edx,%ebx
500c44:	2b f3                	sub    %ebx,%esi
500c46:	8a 1c 31             	mov    (%ecx,%esi,1),%bl
500c49:	88 18                	mov    %bl,(%eax)
500c4b:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
500c4e:	8b 75 f4             	mov    -0xc(%ebp),%esi
500c51:	8b 7d f0             	mov    -0x10(%ebp),%edi
500c54:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500c57:	8b 75 d8             	mov    -0x28(%ebp),%esi
500c5a:	03 1c be             	add    (%esi,%edi,4),%ebx
500c5d:	be ff 00 00 00       	mov    $0xff,%esi
500c62:	c1 fb 10             	sar    $0x10,%ebx
500c65:	03 da                	add    %edx,%ebx
500c67:	2b f3                	sub    %ebx,%esi
500c69:	8a 1c 31             	mov    (%ecx,%esi,1),%bl
500c6c:	88 58 01             	mov    %bl,0x1(%eax)
500c6f:	8b 5d dc             	mov    -0x24(%ebp),%ebx
500c72:	8b 75 f4             	mov    -0xc(%ebp),%esi
500c75:	03 14 b3             	add    (%ebx,%esi,4),%edx
500c78:	bb ff 00 00 00       	mov    $0xff,%ebx
500c7d:	2b da                	sub    %edx,%ebx
500c7f:	8a 14 19             	mov    (%ecx,%ebx,1),%dl
500c82:	88 50 02             	mov    %dl,0x2(%eax)
500c85:	8b 55 c4             	mov    -0x3c(%ebp),%edx
500c88:	8a 12                	mov    (%edx),%dl
500c8a:	88 50 03             	mov    %dl,0x3(%eax)
500c8d:	83 c0 04             	add    $0x4,%eax
500c90:	ff 45 e8             	incl   -0x18(%ebp)
500c93:	ff 45 c4             	incl   -0x3c(%ebp)
500c96:	ff 45 c8             	incl   -0x38(%ebp)
500c99:	ff 45 cc             	incl   -0x34(%ebp)
500c9c:	ff 45 d0             	incl   -0x30(%ebp)
500c9f:	8b 55 e8             	mov    -0x18(%ebp),%edx
500ca2:	3b 55 e4             	cmp    -0x1c(%ebp),%edx
500ca5:	0f 82 71 ff ff ff    	jb     0x500c1c
500cab:	ff 4d 08             	decl   0x8(%ebp)
500cae:	0f 89 0a ff ff ff    	jns    0x500bbe
500cb4:	5f                   	pop    %edi
500cb5:	5e                   	pop    %esi
500cb6:	5b                   	pop    %ebx
500cb7:	8b e5                	mov    %ebp,%esp
500cb9:	5d                   	pop    %ebp
500cba:	c2 08 00             	ret    $0x8
500cbd:	90                   	nop
500cbe:	90                   	nop
500cbf:	90                   	nop
500cc0:	c3                   	ret
500cc1:	90                   	nop
500cc2:	90                   	nop