wcsncpy_s

NTSTATUS __stdcall wcsncpy_s(WCHAR *Dst, UINT64 SizeInWords, WCHAR *Src, UINT64 Count){
  NTSTATUS v5; 
  WCHAR *v6; 
  UINT64 v7; 
  signed __int64 v8; 
  WCHAR v9; 
  signed __int64 v10; 
  WCHAR v11; 

  if( Count )
  {
    if( !Dst )
      goto LABEL_4;
  }
  else if( !Dst )
  {
    if( SizeInWords )
    {
LABEL_4:
      xHalTimerWatchdogStop(0i64, 0i64);
      return 22;
    }
    return 0;
  }
  if( !SizeInWords )
    goto LABEL_4;
  if( !Count )
  {
    *Dst = 0;
    return 0;
  }
  if( Src )
  {
    v6 = Dst;
    v7 = SizeInWords;
    if( Count == -1i64 )
    {
      v8 = (char *)Dst - (char *)Src;
      do
      {
        v9 = *Src;
        *(WCHAR *)((char *)Src + v8) = *Src;
        ++Src;
        if( !v9 )
          break;
        --v7;
      }
      while( v7 );
    }
    else
    {
      v10 = (char *)Src - (char *)Dst;
      do
      {
        v11 = *(WCHAR *)((char *)v6 + v10);
        *v6++ = v11;
        if( !v11 )
          break;
        if( !--v7 )
          break;
        --Count;
      }
      while( Count );
      if( !Count )
        *v6 = 0;
    }
    if( v7 )
      return 0;
    if( Count == -1i64 )
    {
      Dst[SizeInWords - 1] = 0;
      return 80;
    }
    v5 = 34;
  }
  else
  {
    v5 = 22;
  }
  *Dst = 0;
  xHalTimerWatchdogStop(0i64, 0i64);
  return v5;
}

Referenced by:

Amd64AddProfileSource
EmonAddProfileSource
EtwSetPerformanceTraceInformation
EtwpLoadMicroarchitecturalProfileSource
ExpFindArcName
ExpParseSignatureName
GetOperatorIndexByName
HalpKdEnumerateDebuggingDevices
LocalGetAclForString
LocalGetStringForControl
wsplitpath_s