codegen: generalize extract_args for varargs