LocalGetStringForSid

NTSTATUS __stdcall LocalGetStringForSid(
        VOID *Sid,
        WCHAR **String,
        VOID *RootDomainSid,
        VOID *DefaultToDomain,
        _STRSD_SID_LOOKUP *tSidLookupDomOrRootDomRelativeTable,
        UINT8 DefaultToDomaina){
  NTSTATUS v6; 
  _STRSD_SID_LOOKUP *v9; 
  UINT8 v10; 
  UINT64 v11; 
  _STRSD_SID_LOOKUP *v12; 
  NTSTATUS v13; 
  UINT64 v14; 
  WCHAR *v15; 
  wchar_t *v16; 
  VOID **v18; 

  v6 = 0;
  if( !Sid || !String )
    return 87;
  v9 = LookupSidInTable(0i64, Sid, RootDomainSid, (UINT8)DefaultToDomain, v18, DefaultToDomaina);
  v12 = v9;
  if( v9 )
  {
    v14 = 2i64 * (unsigned int)v9[3] + 2;
    v15 = (WCHAR *)SddlpAlloc(v14, v10, v11);
    *String = v15;
    if( v15 )
    {
      v16 = (wchar_t *)v12 + 1;
      if( !v12 )
        v16 = (wchar_t *)L"SA";
      wcscpy_s(v15, v14 >> 1, v16);
    }
    else
    {
      return 8;
    }
  }
  else
  {
    v13 = LocalConvertSidToStringSidW(Sid, String);
    if( v13 < 0 )
      return RtlNtStatusToDosError((unsigned int)v13);
  }
  return v6;
}

Referenced by:

GetPrintableOperandValue
LocalConvertSDToStringSD_Rev1
LocalGetStringForRelativeAttribute