ObpPushStackInfo

VOID __stdcall ObpPushStackInfo(_OBJECT_HEADER *ObjectHeader, UINT8 IsRef, UINT64 NumTraces, UINT64 Tag){
  unsigned int v4; 
  unsigned int v7; 
  __int64 v8; 
  signed __int32 v9; 
  UINT64 v10; 
  int v11; 
  UINT64 Taga; 
  _OBJECT_REF_TRACE BackTrace; 

  v4 = NumTraces;
  v7 = Tag;
  memset(&BackTrace, 0i64, sizeof(BackTrace));
  if( (xmmword_140CFB490 & 0x80u) != 0i64 )
    EtwTraceObjectOperation(4403 - (IsRef != 0), ObjectHeader, v4, v7);
  if( (ObpTraceFlags & 0x73) != 0 && (ObjectHeader->TraceFlags & 1) != 0 && ObGetCurrentIrql() <= 2u )
  {
    v8 = RtlCaptureStackBackTrace(1ui64, 0x10ui64, BackTrace.StackTrace, 0i64);
    if( (_WORD)v8 )
    {
      if( (unsigned int)v8 < 0x10 )
        memset(&BackTrace.StackTrace[v8], 0i64, 8 * (16 - v8));
      v9 = _InterlockedExchangeAdd(&dword_140C25A10, 1u);
      MmCanThreadFault();
      LODWORD(Taga) = v7;
      v10 = (unsigned int)(v9 + 1);
      if( v11 )
        ObpPushRefDerefInfo(ObjectHeader, IsRef, v4, v10, &BackTrace, Taga);
      else
        ObpDeferPushRefDerefInfo(ObjectHeader, IsRef, v4, v10, &BackTrace, Taga);
    }
  }
}

Referenced by:

CmpCreateKeyBody
ExAllocatePoolWithQuotaTag
ExpApplyPriorityBoost
ExpSetResourceOwnerPointerEx
IoGetAttachedDeviceReference
IopAllocRealFileObject
IopCallDriverReference
IopQueueIrpToFileObject
IopVerifierExAllocatePoolWithQuota_1
NtCancelTimer
ObCreateObjectEx
ObDereferenceObjectDeferDelete
ObDereferenceObjectDeferDeleteWithTag
ObReferenceFileObjectForWrite
ObReferenceObjectByPointer
ObReferenceObjectByPointerWithTag
ObReferenceObjectExWithTag
ObReferenceObjectSafe
ObReferenceObjectSafeWithTag
ObWaitForMultipleObjects
ObfDereferenceObjectWithTag
ObfReferenceObject
ObfReferenceObjectWithTag
ObpReferenceObjectByHandleWithTag
ObpReferenceProcessObjectByHandle
ObpTraceObjectDereferenceIfActive
PsGetThreadProperty
PsImpersonateContainerOfThread
PspReferenceCidTableEntry