*** EVOL-1 - Polymorphic Encryption Module by MnemoniX - v1.00 1995 ***

About:
        This module, when attached to any virus, will render the virus
        more difficult to scan for. This module is for experienced
        programmers only, and not for many of the clueless schmoes on
        the fringe of the virus world.

        The module will encrypt any code it is given with a unique key
        and create a self-decrypting module that contains this code.
        The decryption routine for this module will vary wildly from
        specimen to specimen.

        The module should generally work with any virus if used properly,
        but you may have to modify the virus to better accommodate for it.

        Version 1.00 of the module is 2051 bytes long.

        This module will probably not function properly on an 8088. In these
        days when the 8088 is considered only slightly above a slide rule in
        terms of technology, I do not deem this a grave problem.

Usage:
        At the beginning of your virus, include the line:

                extern _EVOL:near

        Before calling module, set up registers with the following
        parameters:

               DS:SI - offset of code to encrypt
               ES:DI - address to store encrypted module
                       (decryption module will be about 80-300 bytes long)
               CX - size of code
               DX - offset where code will be run from
               BL - special wildcard mutation function
                       0 - none
                       1 - wildcard mutation

        Then include the line:

                call    _EVOL

        On return, CX will hold the size of the encrypted program, and
        DS:DX will point to it in memory.

        You should leave enough workspace in memory for your virus code, the
        EVOL-1 module code (2051 bytes), and at least 350 or so bytes for a
        decryption routine. 

Wildcard mutation:

        Wildcard mutation is a special feature I included in this module
        which allows for more variety in the code produced. When this
        function is on, EVOL-1 will sometimes produce random code which
        sometimes will do nothing, and other times could crash the program.
        This function can be powerful, and can make for even less scannable
        variants of the virus, but be aware if you turn it on that some of
        the code produced may be worthless. Wildcard mutation is turned on
        by making BL equal to 1 when EVOL-1 is called.

Disclaimer:

        You used it, I didn't, and hence I, MnemoniX, the omnipotent omni-
        scient Virus God, the writer of this program, am not responsible for
        any damage that this program may do to you. Although I don't possibly
        see how it could do any on its own. Oh well ... just be warned.

                                        MnemoniX - 11/95