ObSetSecurityObjectByPointer

NTSTATUS __stdcall ObSetSecurityObjectByPointer(PVOID Object, UINT64 SecurityInformation, PVOID SecurityDescriptor){
  __int64 v3; 
  char v5; 
  int v6; 
  v6 = SecurityInformation;
  v3 = ObTypeIndexTable[(unsigned __int8)ObHeaderCookie ^ (unsigned __int8)*((char *)Object - 24) ^ (unsigned __int64)(unsigned __int8)((unsigned __int16)((_WORD)Object - 48) >> 8)];
  v5 = *((_BYTE *)KeGetCurrentThread() + 562);
  return(*(__int64(__fastcall **)(PVOID, _QWORD, int *, PVOID, _QWORD, char *, _DWORD, __int64, char))(v3 + 152))(
           Object,
           0i64,
           &v6,
           SecurityDescriptor,
           0i64,
           (char *)Object - 8,
           *(_DWORD *)(v3 + 100),
           v3 + 76,
           v5);
}

Referenced by:

IoCreateDeviceSecure
NtSetSecurityObject
PiSwGetChildPdo
PipChangeDeviceObjectFromRegistryProperties
SepAppendAceToTokenObjectAcl
VRegSetup