SeQueryUserSidToken

NTSTATUS __stdcall SeQueryUserSidToken(VOID *AccessToken, VOID *UserSid, UINT64 Length, UINT64 *RequiredLength){
  _ETHREAD *CurrentThread; 
  unsigned int v6; 
  NTSTATUS v9; 
  unsigned __int8 *v10; 
  unsigned int v11; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v6 = Length;
  v9 = -1073741789;
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireResourceSharedLite(*((_QWORD *)AccessToken + 6), 1);
  v10 = (unsigned __int8 *)**((_QWORD **)AccessToken + 19);
  v11 = 4 * v10[1] + 8;
  if( v6 >= v11 )
  {
    RtlCopySid(v11, UserSid, v10);
    v9 = 0;
  }
  ExReleaseResourceLite(*((PERESOURCE *)AccessToken + 6));
  KeLeaveCriticalRegion();
  if( RequiredLength )
    *(_DWORD *)RequiredLength = v11;
  return v9;
}

Referenced by:

AlpcpCheckConnectionSecurity
AlpcpPortQueryConnectedSidInfo
AlpcpQuerySidToken
CmpGetVirtualizationID
CmpLogHiveFileInaccessible
EtwQueryProcessTelemetryInfo
EtwpGetSidExtendedHeaderItem
ExpGetProcessInformation
ExpWnfQueryCurrentUserSID
MiFindProcessImageHotPatchRecord
PiDqOpenUserObjectRegKey
PiDqSameUserHive
PopEtGetProcessSidAndPackageIdentity
PspAssignProcessQuotaBlock