DbgEnumerateCallback

_LIST_ENTRY *__stdcall DbgEnumerateCallback(VOID **EnumerationContext){
  _EX_RUNDOWN_REF **v2; 
  unsigned __int64 v3; 
  _EX_RUNDOWN_REF *v4; 
  _LIST_ENTRY *Count; 

  ExAcquireSpinLockSharedAtDpcLevel((PEX_SPIN_LOCK)&unk_140CEC520);
  v2 = (_EX_RUNDOWN_REF **)((char *)&stru_140C00F40 + 7136);
  if( *EnumerationContext )
    v2 = (_EX_RUNDOWN_REF **)*EnumerationContext;
  v3 = (unsigned __int64)*EnumerationContext & -(__int64)(*EnumerationContext != 0i64);
  v4 = *v2;
  Count = 0i64;
  while( v4 != (_EX_RUNDOWN_REF *)((char *)&stru_140C00F40 + 7136) )
  {
    if( ExAcquireRundownProtection(v4 - 2) )
    {
      Count = (_LIST_ENTRY *)v4[-1].Count;
      *EnumerationContext = v4;
      break;
    }
    v4 = (_EX_RUNDOWN_REF *)v4->Count;
  }
  ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)&unk_140CEC520);
  if( v3 )
    ExReleaseRundownProtection((_EX_RUNDOWN_REF *)(v3 - 16));
  return Count;
}

Referenced by:

No references.