complete va_func