def decode_file(source, destination, major, minor):
    'Decrypt a file from source to destination.'
    _check_major(major)
    _check_minor(minor)
    map_1 = _decode_map_1(minor)
    map_2 = _decode_map_2(major)
    string = source.read(2 ** 20 / 5 * 4)
    while string:
        tail_len = len(string) % 4
        if tail_len == 0:
            destination.write(_decode(string, map_1, map_2))
            string = source.read(2 ** 20 / 5 * 4)
        else:
            destination.write(_decode(string[:-tail_len], map_1, map_2))
            return string[-tail_len:]
    return ''
Decrypt a file from source to destination.
recipes/Python/572159_SPICE/recipe-572159.py