508a5b:	ff 12                	call   *(%edx)
508a5d:	33 d2                	xor    %edx,%edx
508a5f:	8b c3                	mov    %ebx,%eax
508a61:	8b 88 50 01 00 00    	mov    0x150(%eax),%ecx
508a67:	ff 51 04             	call   *0x4(%ecx)
508a6a:	85 c0                	test   %eax,%eax
508a6c:	75 0f                	jne    0x508a7d
508a6e:	8b 03                	mov    (%ebx),%eax
508a70:	c7 40 14 16 00 00 00 	movl   $0x16,0x14(%eax)
508a77:	8b c3                	mov    %ebx,%eax
508a79:	8b 10                	mov    (%eax),%edx
508a7b:	ff 12                	call   *(%edx)
508a7d:	46                   	inc    %esi
508a7e:	3b b3 e8 00 00 00    	cmp    0xe8(%ebx),%esi
508a84:	72 bd                	jb     0x508a43
508a86:	8b c3                	mov    %ebx,%eax
508a88:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
508a8e:	ff 52 08             	call   *0x8(%edx)
508a91:	8b 8b 44 01 00 00    	mov    0x144(%ebx),%ecx
508a97:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
508a9b:	74 98                	je     0x508a35
508a9d:	8b c3                	mov    %ebx,%eax
508a9f:	8b 90 54 01 00 00    	mov    0x154(%eax),%edx
508aa5:	ff 52 10             	call   *0x10(%edx)
508aa8:	8b c3                	mov    %ebx,%eax
508aaa:	8b 50 14             	mov    0x14(%eax),%edx
508aad:	ff 52 10             	call   *0x10(%edx)
508ab0:	8b c3                	mov    %ebx,%eax
508ab2:	e8 39 f1 ff ff       	call   0x507bf0
508ab7:	5e                   	pop    %esi
508ab8:	5b                   	pop    %ebx
508ab9:	c3                   	ret
508aba:	90                   	nop
508abb:	90                   	nop
508abc:	55                   	push   %ebp
508abd:	8b ec                	mov    %esp,%ebp
508abf:	53                   	push   %ebx
508ac0:	8b d8                	mov    %eax,%ebx
508ac2:	56                   	push   %esi
508ac3:	57                   	push   %edi
508ac4:	83 bb d8 00 00 00 00 	cmpl   $0x0,0xd8(%ebx)
508acb:	8b f9                	mov    %ecx,%edi
508acd:	8b f2                	mov    %edx,%esi
508acf:	75 12                	jne    0x508ae3
508ad1:	8b 43 10             	mov    0x10(%ebx),%eax
508ad4:	83 f8 65             	cmp    $0x65,%eax
508ad7:	74 1f                	je     0x508af8
508ad9:	83 f8 66             	cmp    $0x66,%eax
508adc:	74 1a                	je     0x508af8
508ade:	83 f8 67             	cmp    $0x67,%eax
508ae1:	74 15                	je     0x508af8
508ae3:	8b 03                	mov    (%ebx),%eax
508ae5:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508aec:	8b 53 10             	mov    0x10(%ebx),%edx
508aef:	89 50 18             	mov    %edx,0x18(%eax)
508af2:	8b c3                	mov    %ebx,%eax
508af4:	8b 10                	mov    (%eax),%edx
508af6:	ff 12                	call   *(%edx)
508af8:	8b c3                	mov    %ebx,%eax
508afa:	8b 4d 08             	mov    0x8(%ebp),%ecx
508afd:	51                   	push   %ecx
508afe:	8b cf                	mov    %edi,%ecx
508b00:	8b 98 54 01 00 00    	mov    0x154(%eax),%ebx
508b06:	8b d6                	mov    %esi,%edx
508b08:	ff 13                	call   *(%ebx)
508b0a:	5f                   	pop    %edi
508b0b:	5e                   	pop    %esi
508b0c:	5b                   	pop    %ebx
508b0d:	5d                   	pop    %ebp
508b0e:	c2 04 00             	ret    $0x4
508b11:	90                   	nop
508b12:	90                   	nop
508b13:	90                   	nop
508b14:	53                   	push   %ebx
508b15:	8b d8                	mov    %eax,%ebx
508b17:	83 7b 10 64          	cmpl   $0x64,0x10(%ebx)
508b1b:	74 15                	je     0x508b32
508b1d:	8b 03                	mov    (%ebx),%eax
508b1f:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508b26:	8b 53 10             	mov    0x10(%ebx),%edx
508b29:	89 50 18             	mov    %edx,0x18(%eax)
508b2c:	8b c3                	mov    %ebx,%eax
508b2e:	8b 10                	mov    (%eax),%edx
508b30:	ff 12                	call   *(%edx)
508b32:	8b c3                	mov    %ebx,%eax
508b34:	8b 10                	mov    (%eax),%edx
508b36:	ff 52 10             	call   *0x10(%edx)
508b39:	8b c3                	mov    %ebx,%eax
508b3b:	8b 50 14             	mov    0x14(%eax),%edx
508b3e:	ff 52 08             	call   *0x8(%edx)
508b41:	8b c3                	mov    %ebx,%eax
508b43:	e8 74 08 00 00       	call   0x5093bc
508b48:	8b c3                	mov    %ebx,%eax
508b4a:	8b 90 54 01 00 00    	mov    0x154(%eax),%edx
508b50:	ff 52 14             	call   *0x14(%edx)
508b53:	8b c3                	mov    %ebx,%eax
508b55:	8b 50 14             	mov    0x14(%eax),%edx
508b58:	ff 52 10             	call   *0x10(%edx)
508b5b:	8b c3                	mov    %ebx,%eax
508b5d:	e8 8e f0 ff ff       	call   0x507bf0
508b62:	5b                   	pop    %ebx
508b63:	c3                   	ret
508b64:	53                   	push   %ebx
508b65:	8b d8                	mov    %eax,%ebx
508b67:	33 d2                	xor    %edx,%edx
508b69:	8b c3                	mov    %ebx,%eax
508b6b:	e8 08 13 00 00       	call   0x509e78
508b70:	83 bb a8 00 00 00 00 	cmpl   $0x0,0xa8(%ebx)
508b77:	75 17                	jne    0x508b90
508b79:	8b c3                	mov    %ebx,%eax
508b7b:	e8 c4 26 00 00       	call   0x50b244
508b80:	8b c3                	mov    %ebx,%eax
508b82:	e8 a9 30 00 00       	call   0x50bc30
508b87:	33 d2                	xor    %edx,%edx
508b89:	8b c3                	mov    %ebx,%eax
508b8b:	e8 a0 19 00 00       	call   0x50a530
508b90:	8b c3                	mov    %ebx,%eax
508b92:	e8 bd 36 00 00       	call   0x50c254
508b97:	83 bb ac 00 00 00 00 	cmpl   $0x0,0xac(%ebx)
508b9e:	74 11                	je     0x508bb1
508ba0:	8b 13                	mov    (%ebx),%edx
508ba2:	8b c3                	mov    %ebx,%eax
508ba4:	c7 42 14 01 00 00 00 	movl   $0x1,0x14(%edx)
508bab:	8b 10                	mov    (%eax),%edx
508bad:	ff 12                	call   *(%edx)
508baf:	eb 19                	jmp    0x508bca
508bb1:	83 bb dc 00 00 00 00 	cmpl   $0x0,0xdc(%ebx)
508bb8:	74 09                	je     0x508bc3
508bba:	8b c3                	mov    %ebx,%eax
508bbc:	e8 bb 41 00 00       	call   0x50cd7c
508bc1:	eb 07                	jmp    0x508bca
508bc3:	8b c3                	mov    %ebx,%eax
508bc5:	e8 ce 52 00 00       	call   0x50de98
508bca:	83 bb a0 00 00 00 01 	cmpl   $0x1,0xa0(%ebx)
508bd1:	7f 0d                	jg     0x508be0
508bd3:	83 bb b0 00 00 00 00 	cmpl   $0x0,0xb0(%ebx)
508bda:	75 04                	jne    0x508be0
508bdc:	33 d2                	xor    %edx,%edx
508bde:	eb 05                	jmp    0x508be5
508be0:	ba 01 00 00 00       	mov    $0x1,%edx
508be5:	8b c3                	mov    %ebx,%eax
508be7:	e8 54 21 00 00       	call   0x50ad40
508bec:	33 d2                	xor    %edx,%edx
508bee:	8b c3                	mov    %ebx,%eax
508bf0:	e8 23 14 00 00       	call   0x50a018
508bf5:	8b c3                	mov    %ebx,%eax
508bf7:	e8 c0 07 00 00       	call   0x5093bc
508bfc:	8b c3                	mov    %ebx,%eax
508bfe:	8b 50 04             	mov    0x4(%eax),%edx
508c01:	ff 52 18             	call   *0x18(%edx)
508c04:	8b c3                	mov    %ebx,%eax
508c06:	8b 90 54 01 00 00    	mov    0x154(%eax),%edx
508c0c:	ff 52 04             	call   *0x4(%edx)
508c0f:	5b                   	pop    %ebx
508c10:	c3                   	ret
508c11:	8d 40 00             	lea    0x0(%eax),%eax
508c14:	53                   	push   %ebx
508c15:	8b d8                	mov    %eax,%ebx
508c17:	56                   	push   %esi
508c18:	8b 43 14             	mov    0x14(%ebx),%eax
508c1b:	8b 08                	mov    (%eax),%ecx
508c1d:	ff 00                	incl   (%eax)
508c1f:	88 11                	mov    %dl,(%ecx)
508c21:	ff 48 04             	decl   0x4(%eax)
508c24:	75 1a                	jne    0x508c40
508c26:	8b f0                	mov    %eax,%esi
508c28:	8b c3                	mov    %ebx,%eax
508c2a:	ff 56 0c             	call   *0xc(%esi)
508c2d:	85 c0                	test   %eax,%eax
508c2f:	75 0f                	jne    0x508c40
508c31:	8b 13                	mov    (%ebx),%edx
508c33:	8b c3                	mov    %ebx,%eax
508c35:	c7 42 14 16 00 00 00 	movl   $0x16,0x14(%edx)
508c3c:	8b 10                	mov    (%eax),%edx
508c3e:	ff 12                	call   *(%edx)
508c40:	5e                   	pop    %esi
508c41:	5b                   	pop    %ebx
508c42:	c3                   	ret
508c43:	90                   	nop
508c44:	53                   	push   %ebx
508c45:	56                   	push   %esi
508c46:	8b f2                	mov    %edx,%esi
508c48:	8b d8                	mov    %eax,%ebx
508c4a:	ba ff 00 00 00       	mov    $0xff,%edx
508c4f:	8b c3                	mov    %ebx,%eax
508c51:	e8 be ff ff ff       	call   0x508c14
508c56:	8b d6                	mov    %esi,%edx
508c58:	8b c3                	mov    %ebx,%eax
508c5a:	e8 b5 ff ff ff       	call   0x508c14
508c5f:	5e                   	pop    %esi
508c60:	5b                   	pop    %ebx
508c61:	c3                   	ret
508c62:	90                   	nop
508c63:	90                   	nop
508c64:	53                   	push   %ebx
508c65:	56                   	push   %esi
508c66:	8b f2                	mov    %edx,%esi
508c68:	8b d8                	mov    %eax,%ebx
508c6a:	8b d6                	mov    %esi,%edx
508c6c:	8b c3                	mov    %ebx,%eax
508c6e:	c1 fa 08             	sar    $0x8,%edx
508c71:	81 e2 ff 00 00 00    	and    $0xff,%edx
508c77:	e8 98 ff ff ff       	call   0x508c14
508c7c:	8b d6                	mov    %esi,%edx
508c7e:	8b c3                	mov    %ebx,%eax
508c80:	81 e2 ff 00 00 00    	and    $0xff,%edx
508c86:	e8 89 ff ff ff       	call   0x508c14
508c8b:	5e                   	pop    %esi
508c8c:	5b                   	pop    %ebx
508c8d:	c3                   	ret
508c8e:	90                   	nop
508c8f:	90                   	nop
508c90:	53                   	push   %ebx
508c91:	56                   	push   %esi
508c92:	57                   	push   %edi
508c93:	55                   	push   %ebp
508c94:	83 c4 f4             	add    $0xfffffff4,%esp
508c97:	89 14 24             	mov    %edx,(%esp)
508c9a:	8b f0                	mov    %eax,%esi
508c9c:	8b 04 24             	mov    (%esp),%eax
508c9f:	8b 6c 86 40          	mov    0x40(%esi,%eax,4),%ebp
508ca3:	85 ed                	test   %ebp,%ebp
508ca5:	75 15                	jne    0x508cbc
508ca7:	8b 06                	mov    (%esi),%eax
508ca9:	c7 40 14 33 00 00 00 	movl   $0x33,0x14(%eax)
508cb0:	8b 14 24             	mov    (%esp),%edx
508cb3:	89 50 18             	mov    %edx,0x18(%eax)
508cb6:	8b c6                	mov    %esi,%eax
508cb8:	8b 10                	mov    (%eax),%edx
508cba:	ff 12                	call   *(%edx)
508cbc:	33 ff                	xor    %edi,%edi
508cbe:	33 db                	xor    %ebx,%ebx
508cc0:	8b c5                	mov    %ebp,%eax
508cc2:	66 81 38 ff 00       	cmpw   $0xff,(%eax)
508cc7:	76 05                	jbe    0x508cce
508cc9:	bf 01 00 00 00       	mov    $0x1,%edi
508cce:	43                   	inc    %ebx
508ccf:	83 c0 02             	add    $0x2,%eax
508cd2:	83 fb 40             	cmp    $0x40,%ebx
508cd5:	7c eb                	jl     0x508cc2
508cd7:	83 bd 80 00 00 00 00 	cmpl   $0x0,0x80(%ebp)
508cde:	0f 85 83 00 00 00    	jne    0x508d67
508ce4:	ba db 00 00 00       	mov    $0xdb,%edx
508ce9:	8b c6                	mov    %esi,%eax
508ceb:	e8 54 ff ff ff       	call   0x508c44
508cf0:	85 ff                	test   %edi,%edi
508cf2:	74 07                	je     0x508cfb
508cf4:	ba 83 00 00 00       	mov    $0x83,%edx
508cf9:	eb 05                	jmp    0x508d00
508cfb:	ba 43 00 00 00       	mov    $0x43,%edx
508d00:	8b c6                	mov    %esi,%eax
508d02:	e8 5d ff ff ff       	call   0x508c64
508d07:	8b d7                	mov    %edi,%edx
508d09:	8b c6                	mov    %esi,%eax
508d0b:	c1 e2 04             	shl    $0x4,%edx
508d0e:	03 14 24             	add    (%esp),%edx
508d11:	e8 fe fe ff ff       	call   0x508c14
508d16:	c7 44 24 08 64 d9 68 	movl   $0x68d964,0x8(%esp)
508d1d:	00
508d1e:	33 db                	xor    %ebx,%ebx
508d20:	8b 44 24 08          	mov    0x8(%esp),%eax
508d24:	85 ff                	test   %edi,%edi
508d26:	8b 10                	mov    (%eax),%edx
508d28:	0f b7 4c 55 00       	movzwl 0x0(%ebp,%edx,2),%ecx
508d2d:	89 4c 24 04          	mov    %ecx,0x4(%esp)
508d31:	74 0e                	je     0x508d41
508d33:	8b 54 24 04          	mov    0x4(%esp),%edx
508d37:	8b c6                	mov    %esi,%eax
508d39:	c1 ea 08             	shr    $0x8,%edx
508d3c:	e8 d3 fe ff ff       	call   0x508c14
508d41:	8b 54 24 04          	mov    0x4(%esp),%edx
508d45:	8b c6                	mov    %esi,%eax
508d47:	81 e2 ff 00 00 00    	and    $0xff,%edx
508d4d:	e8 c2 fe ff ff       	call   0x508c14
508d52:	43                   	inc    %ebx
508d53:	83 44 24 08 04       	addl   $0x4,0x8(%esp)
508d58:	83 fb 40             	cmp    $0x40,%ebx
508d5b:	7c c3                	jl     0x508d20
508d5d:	c7 85 80 00 00 00 01 	movl   $0x1,0x80(%ebp)
508d64:	00 00 00
508d67:	8b c7                	mov    %edi,%eax
508d69:	83 c4 0c             	add    $0xc,%esp
508d6c:	5d                   	pop    %ebp
508d6d:	5f                   	pop    %edi
508d6e:	5e                   	pop    %esi
508d6f:	5b                   	pop    %ebx
508d70:	c3                   	ret
508d71:	90                   	nop
508d72:	90                   	nop
508d73:	90                   	nop
508d74:	53                   	push   %ebx
508d75:	56                   	push   %esi
508d76:	57                   	push   %edi
508d77:	55                   	push   %ebp
508d78:	83 c4 f4             	add    $0xfffffff4,%esp
508d7b:	89 14 24             	mov    %edx,(%esp)
508d7e:	8b f0                	mov    %eax,%esi
508d80:	85 c9                	test   %ecx,%ecx
508d82:	74 0d                	je     0x508d91
508d84:	8b 04 24             	mov    (%esp),%eax
508d87:	8b 7c 86 60          	mov    0x60(%esi,%eax,4),%edi
508d8b:	83 04 24 10          	addl   $0x10,(%esp)
508d8f:	eb 07                	jmp    0x508d98
508d91:	8b 04 24             	mov    (%esp),%eax
508d94:	8b 7c 86 50          	mov    0x50(%esi,%eax,4),%edi
508d98:	85 ff                	test   %edi,%edi
508d9a:	75 15                	jne    0x508db1
508d9c:	8b 06                	mov    (%esi),%eax
508d9e:	c7 40 14 31 00 00 00 	movl   $0x31,0x14(%eax)
508da5:	8b 14 24             	mov    (%esp),%edx
508da8:	89 50 18             	mov    %edx,0x18(%eax)
508dab:	8b c6                	mov    %esi,%eax
508dad:	8b 10                	mov    (%eax),%edx
508daf:	ff 12                	call   *(%edx)
508db1:	83 bf 14 01 00 00 00 	cmpl   $0x0,0x114(%edi)
508db8:	0f 85 89 00 00 00    	jne    0x508e47
508dbe:	ba c4 00 00 00       	mov    $0xc4,%edx
508dc3:	8b c6                	mov    %esi,%eax
508dc5:	e8 7a fe ff ff       	call   0x508c44
508dca:	33 ed                	xor    %ebp,%ebp
508dcc:	bb 01 00 00 00       	mov    $0x1,%ebx
508dd1:	8d 47 01             	lea    0x1(%edi),%eax
508dd4:	33 d2                	xor    %edx,%edx
508dd6:	43                   	inc    %ebx
508dd7:	8a 10                	mov    (%eax),%dl
508dd9:	40                   	inc    %eax
508dda:	03 ea                	add    %edx,%ebp
508ddc:	83 fb 10             	cmp    $0x10,%ebx
508ddf:	7e f3                	jle    0x508dd4
508de1:	8d 55 13             	lea    0x13(%ebp),%edx
508de4:	8b c6                	mov    %esi,%eax
508de6:	e8 79 fe ff ff       	call   0x508c64
508deb:	8b 14 24             	mov    (%esp),%edx
508dee:	8b c6                	mov    %esi,%eax
508df0:	e8 1f fe ff ff       	call   0x508c14
508df5:	bb 01 00 00 00       	mov    $0x1,%ebx
508dfa:	8d 47 01             	lea    0x1(%edi),%eax
508dfd:	89 44 24 04          	mov    %eax,0x4(%esp)
508e01:	8b 54 24 04          	mov    0x4(%esp),%edx
508e05:	0f b6 12             	movzbl (%edx),%edx
508e08:	8b c6                	mov    %esi,%eax
508e0a:	e8 05 fe ff ff       	call   0x508c14
508e0f:	43                   	inc    %ebx
508e10:	ff 44 24 04          	incl   0x4(%esp)
508e14:	83 fb 10             	cmp    $0x10,%ebx
508e17:	7e e8                	jle    0x508e01
508e19:	33 db                	xor    %ebx,%ebx
508e1b:	8d 47 11             	lea    0x11(%edi),%eax
508e1e:	89 44 24 08          	mov    %eax,0x8(%esp)
508e22:	3b eb                	cmp    %ebx,%ebp