def find_next_free_port(start_port):
    """
    Finds next free port starting from a given port using the psutil module.
    For port numbers smaller than 1, starts search with the first registered port (1024),
    returns None, if no free port can be found between start_port and the biggest port number (65535)
    """
    import psutil
    max_port = 65535
    if start_port < 1:
        port = 1024
    else:
        port = start_port
    while port <= max_port:
        isFree = True
        for conn in psutil.net_connections():
            if conn.status == 'LISTEN' and conn.laddr.port == port:
                port += 1
                isFree = False
                break
        if isFree:
            return port
    return None
