Need a customer management plugin

I am looking for a membership/affiliate program that will handle a reseller customer relationship. I have previously used DAP but don't think it has all of the capabilities that I need.

Here are the specs of what I need
Product:
- Library of script files for CAD/CAM software (trial or purchase)
- DLL to run any script (free)

Accounts:
- types: admin, affiliate, and customer/referral
- all new customers require referred affiliate or admin approval
- all new affiliates require admin approval
- access privileges are controlled by admin
- company-based (primary grouping of data). Can have multiple users under a company

Customers:
- if not referred*:
> company and affiliate are required on sign up
> receive an email for account creation request after sign up
> an email indicating they have been approved to use the account
- if the new customer is referred some of the above requirements can be omitted
- search, trial, purchase and manage existing products
- payment at end of trial should be optional
- trial a given product a certain number of times
- notified if a new version of a purchased product is available perhaps by email
- notified if a trial product is nearing expiry perhaps by email

*referral may be via direct link on an affiliate website, or by a personalized link.

Affiliates:
- search and download products
> download of trial products are subject to admin approval
- search and download referral company products
- manage (add) referral user accounts: contact info, primary/secondary contact for the company. Admin must approve edits.
- manage (add) referral companies: license data. Admin must approve edits.
- notifications between admin and affiliates
> info requests should be marked in email or dashboard
> any notifications from admin should be marked in email or dashboard
- view company report: products, paid/unpaid, validation status, license data etc
- view user accounts of a company
- receive email for new accounts:

Admin:
- search and download all products (library, affiliate, and company)
- manage (add/edit) all user accounts:
> license data (see below)
> elevate user privileges (does not require admin approval)
>> trial downloads
>> edits to accounts and companies info
- manage (add/edit) all companies
- manage all requests from affiliates and users: read, unread and delete. Would be nice to receive a notification of unread requests if logged in
- access admin tools currently developed
- account activity log
- method for importing company and user account data via CSV or similar file
- control commission provided to affiliates based on affiliate level (basic/preferred)
- control commission provided to affiliates based on the level of sales in a previous period of time. We would set global parameters for this that apply to all affiliates
- override commission provided to an affiliate on an individual basis
- company-based licensing management:
> track/change trials (# of downloads and expiration)
> track purchases
> integrate with our licensing API on every trial, purchased or altered product download e.g. if expiration date is changed. Our API embeds the license into each product and stores it on a remote file server. I already have an upload handler, albeit