Add _PyObject_VaCallFunctionObjArgs() private function

Issue #28915: Similar to _PyObject_CallFunctionObjArgs() but use va_list to
pass arguments.
diff --git a/Include/abstract.h b/Include/abstract.h
index 09efd11..5981d69 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -437,6 +437,12 @@
 PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *callable,
                                                     ...);
 
+#ifndef Py_LIMITED_API
+PyAPI_FUNC(PyObject *) _PyObject_VaCallFunctionObjArgs(
+    PyObject *callable,
+    va_list vargs);
+#endif
+
   /*
 Call the method named 'name' of object 'obj' with a variable number of
 C arguments.  The C arguments are provided as PyObject *
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 5c3344c..2c5057d 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -2706,8 +2706,8 @@
     return retval;
 }
 
-static PyObject *
-_PyObject_FastCallVa(PyObject *callable, va_list vargs)
+PyObject *
+_PyObject_VaCallFunctionObjArgs(PyObject *callable, va_list vargs)
 {
     PyObject *small_stack[5];
     PyObject **stack;
@@ -2773,7 +2773,7 @@
     }
 
     va_start(vargs, name);
-    result = _PyObject_FastCallVa(callable, vargs);
+    result = _PyObject_VaCallFunctionObjArgs(callable, vargs);
     va_end(vargs);
 
     Py_DECREF(callable);
@@ -2797,7 +2797,7 @@
     }
 
     va_start(vargs, name);
-    result = _PyObject_FastCallVa(callable, vargs);
+    result = _PyObject_VaCallFunctionObjArgs(callable, vargs);
     va_end(vargs);
 
     Py_DECREF(callable);
@@ -2811,7 +2811,7 @@
     PyObject *result;
 
     va_start(vargs, callable);
-    result = _PyObject_FastCallVa(callable, vargs);
+    result = _PyObject_VaCallFunctionObjArgs(callable, vargs);
     va_end(vargs);
 
     return result;