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.