The function appears to be doing a character-wise substitution on the input string, replacing each character with another character according to a fixed pattern. The substitution is case-insensitive and does not affect numbers.

[CODE]:
def approx_function(input_string):
    substitution_dict = {
        'a': 'g', 'b': 'v', 'c': 'a', 'd': 'l', 'e': 'c', 'f': 'x', 'g': 'u',
        'h': 'o', 'i': 'b', 'j': 't', 'k': 'p', 'l': 'n', 'm': 'w', 'n': 'h',
        'o': 'f', 'p': 'q', 'q': 'k', 'r': 'i', 's': 'm', 't': 'j', 'u': 's',
        'v': 'y', 'w': 'r', 'x': 'd', 'y': 'z', 'z': 'e'
    }
    output_string = ""
    for char in input_string:
        if char.isalpha():
            output_string += substitution_dict[char.lower()]
        else:
            output_string += char

    return output_string