LocalConvertSidToStringSidW

INT64 __stdcall LocalConvertSidToStringSidW(VOID *Sid, WCHAR **StringSid){
  INT64 result; 
  UINT64 v4; 
  __int64 Length; 
  WCHAR *v6; 
  struct _UNICODE_STRING UnicodeString; 
  UnicodeString = 0i64;
  if( !Sid || !StringSid )
    return 3221225485i64;
  LODWORD(result) = RtlConvertSidToUnicodeString(&UnicodeString, Sid, 1u);
  if( (int)result >= 0 )
  {
    Length = UnicodeString.Length;
    SddlpAlloc(LOBYTE(UnicodeString.Length) + 2, v4);
    *StringSid = v6;
    if( v6 )
    {
      LODWORD(result) = RtlStringCbCopyNW(v6, Length + 2, UnicodeString.Buffer, (unsigned int)Length);
      if( (int)result >= 0 )
      {
        RtlFreeAnsiString(&UnicodeString);
        return 0i64;
      }
    }
    else
    {
      RtlFreeAnsiString(&UnicodeString);
      return 3221225495i64;
    }
  }
  return result;
}

Referenced by:

LocalConvertAclToString
LocalGetStringForSid
SeConvertSidToStringSid