LocalConvertSidToStringSidW

NTSTATUS __stdcall LocalConvertSidToStringSidW(VOID *Sid, WCHAR **StringSid){
  NTSTATUS result; 
  UINT8 v4; 
  UINT64 v5; 
  __int64 Length; 
  WCHAR *v7; 
  _UNICODE_STRING UnicodeString; 

  UnicodeString = 0i64;
  if( !Sid || !StringSid )
    return -1073741811;
  result = RtlConvertSidToUnicodeString(&UnicodeString, Sid, 1u);
  if( result >= 0 )
  {
    Length = UnicodeString.Length;
    v7 = (WCHAR *)SddlpAlloc(UnicodeString.Length + 2i64, v4, v5);
    *StringSid = v7;
    if( v7 )
    {
      result = RtlStringCbCopyNW(v7, Length + 2, UnicodeString.Buffer, (unsigned int)Length);
      if( result >= 0 )
      {
        RtlFreeAnsiString(&UnicodeString);
        return 0;
      }
    }
    else
    {
      RtlFreeAnsiString(&UnicodeString);
      return -1073741801;
    }
  }
  return result;
}

Referenced by:

LocalConvertAclToString
LocalGetStringForSid
SeConvertSidToStringSid