def get_interesting_calls(c, user_defined=[]):
    """Not all functions are created equal.
    We are interested in functions with certain names or substrings in it.

    :param c: a :class:`controlFlowinator` object
    :type c: :class:`controlFlowinator`
    :param user_defined: a list of names (or substrings), if not supplied a     hard-coded default list will be used.
    :type user_defined: list, optional
    :return: a list of :class:`callObj`
    :rtype: list
    """
    default_list = ['check', 'log', 'assert', 'cpy', 'copy', 'alloc',
        'move', 'memset']
    interesting_calls = user_defined or default_list
    result = []
    for co in c.calls:
        for f_name in interesting_calls:
            if f_name in co.name.lower():
                result.append(co)
    return result
