SmSanitizeString

VOID __stdcall SmSanitizeString(WCHAR *String, UINT64 Size){
  WCHAR *v2; 
  unsigned __int64 v3; 
  WCHAR *v4; 
  unsigned __int64 v5; 
  unsigned int v6; 
  __int16 v7; 

  v2 = String;
  v3 = 0i64;
  v4 = &String[((unsigned __int64)(unsigned int)Size >> 1) - 1];
  v5 = (unsigned __int64)((char *)v4 - (char *)String + 1) >> 1;
  if( String > v4 )
    v5 = 0i64;
  if( v5 )
  {
    while( 1 )
    {
      v6 = *v2;
      if( (_WORD)v6 )
        break;
      LOWORD(v6) = 126;
LABEL_13:
      *v2 = v6;
      ++v3;
      ++v2;
      if( v3 >= v5 )
        goto LABEL_14;
    }
    if( (unsigned __int16)v6 > 0xFFu )
    {
      v7 = *v2 % 0x57u;
    }
    else
    {
      if( isprint(*v2) )
        goto LABEL_11;
      v7 = v6 % 0x57;
    }
    LOWORD(v6) = v7 + 36;
LABEL_11:
    if( (_WORD)v6 == 92 )
      LOWORD(v6) = 95;
    goto LABEL_13;
  }
LABEL_14:
  *v2 = 0;
}

Referenced by:

SmKmVolumeQueryUniqueId