PfpPrefetchSharedConflictNotifyStart

__int64 __fastcall PfpPrefetchSharedConflictNotifyStart(
        __int64 *a1,
        __int64 a2,
        void (__fastcall **a3)(volatile signed __int64 *a1, unsigned __int64 a2)){
  unsigned int v3; 
  void(__fastcall *v5)(volatile signed __int64 *, unsigned __int64); 
  void(__fastcall *v6)(volatile signed __int64 *, unsigned __int64); 
  v3 = 0;
  v5 = 0i64;
  ++dword_140C5016C;
  if( a1 )
  {
    *((_DWORD *)a1 + 18) = 1;
    _InterlockedAdd((volatile signed __int32 *)a1 + 28, 1u);
    *((_DWORD *)a1 + 15) = 0;
    if( _InterlockedIncrement64(a1 + 15) <= 1 )
      __fastfail(0xEu);
    if( !a1[16] )
      goto LABEL_6;
  }
  else
  {
    a1 = &PfGlobals;
  }
  LODWORD(v6) = KeAbPreAcquire(a1, 0i64, 0i64);
  v5 = v6;
  if( v6 )
  {
    KeAbPreWait(v6);
    goto LABEL_9;
  }
LABEL_6:
  v3 = -1073741670;
LABEL_9:
  a3[1] = v5;
  *a3 = (void(__fastcall *)(volatile signed __int64 *, unsigned __int64))PfpPrefetchSharedConflictNotifyEnd;
  return v3;
}

Referenced by:

No references.