PoIssueCoalescingNotification

VOID __stdcall PoIssueCoalescingNotification(VOID *Registration, PO_COALESCING_MSG Message){
  _ETHREAD *CurrentThread; 
  INT64 *i; 
  signed __int64 *v4; 
  _EX_RUNDOWN_REF *v5; 
  _EX_RUNDOWN_REF *v6; 
  signed __int64 v7; 
  signed __int64 v8; 
  _DWORD v9[2]; 
  __int64 v10; 

  v9[0] = 0;
  v10 = 0i64;
  v9[1] = Message;
  LOBYTE(v9[0]) = *((_BYTE *)Registration + 32);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquirePushLockSharedEx((_EX_PUSH_LOCK *)&stru_140C23628 + 415, 0i64);
  for( i = (INT64 *)PopCoalRegistrationList; i != (INT64 *)&PopCoalRegistrationList; i = (INT64 *)*i )
  {
    v4 = i + 2;
    v5 = ExReferenceCallBackBlock(i + 2);
    v6 = v5;
    if( v5 )
    {
      if( *((_BYTE *)i - 16) != LOBYTE(v9[0]) )
        ((void(__fastcall *)(_EX_RUNDOWN_REF *, _DWORD *, __int64))v5[1].Count)(v5, v9, v10);
      _m_prefetchw(v4);
      v7 = *v4;
      while( ((unsigned __int64)v6 ^ v7) < 0xF )
      {
        v8 = v7;
        v7 = _InterlockedCompareExchange64(v4, v7 + 1, v7);
        if( v8 == v7 )
          goto LABEL_9;
      }
      ExReleaseRundownProtection(v6);
    }
LABEL_9:
    ;
  }
  PopReleaseRwLock((_POP_RW_LOCK *)((char *)&stru_140C23628 + 3320));
}

Referenced by:

CmpIssueNewDirtyCallback
PopCoalescingCallbackWorker