vsnprintf_s

int __cdecl vsnprintf_s(char *DstBuf, size_t SizeInBytes, size_t MaxCount, const char *Format, va_list ArgList){
  int result; 
  if( !Format )
    goto LABEL_12;
  if( MaxCount )
  {
    if( !DstBuf )
    {
LABEL_12:
      xHalTimerWatchdogStop(0i64, 0i64);
      return -1;
    }
  }
  else if( !DstBuf )
  {
    if( !SizeInBytes )
      return 0;
    goto LABEL_12;
  }
  if( !SizeInBytes )
    goto LABEL_12;
  if( SizeInBytes > MaxCount )
  {
    result = soutput_s(DstBuf, MaxCount + 1, (char *)Format, (int *)ArgList);
    if( result == -2 )
      return -1;
    goto LABEL_10;
  }
  result = soutput_s(DstBuf, SizeInBytes, (char *)Format, (int *)ArgList);
  if( result != -2 )
  {
LABEL_10:
    if( result >= 0 )
      return result;
    goto LABEL_11;
  }
  if( MaxCount == -1i64 )
    return -1;
LABEL_11:
  *DstBuf = 0;
  if( result == -2 )
    goto LABEL_12;
  return -1;
}

Referenced by:

snprintf_s