ObSetSecurityObjectByPointer

NTSTATUS __stdcall ObSetSecurityObjectByPointer(VOID *Object, UINT64 SecurityInformation, VOID *SecurityDescriptor){
  __int64 v3; 
  char PreviousMode; 
  int v6; 

  v6 = SecurityInformation;
  v3 = ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ (unsigned __int8)*((char *)Object - 24) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)((_WORD)Object - 48) >> 8)];
  PreviousMode = KeGetCurrentThread()->PreviousMode;
  return(*(__int64(__fastcall **)(VOID *, _QWORD, int *, VOID *, _QWORD, char *, _DWORD, __int64, char))(v3 + 152))(
           Object,
           0i64,
           &v6,
           SecurityDescriptor,
           0i64,
           (char *)Object - 8,
           *(_DWORD *)(v3 + 100),
           v3 + 76,
           PreviousMode);
}

Referenced by:

IoCreateDeviceSecure
NtSetSecurityObject
PiSwGetChildPdo
PipChangeDeviceObjectFromRegistryProperties
SepAppendAceToTokenObjectAcl
VRegSetup