SMKM_STORE::SmStOutSwapPrepareStore
__int64 __fastcall SMKM_STORE::SmStOutSwapPrepareStore(__int64 a1){
char *PoolWithTag;
signed __int64 v3;
if( _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 6568), -1i64, 0i64) )
return 3221226614i64;
PoolWithTag = (char *)ExAllocatePoolWithTag(
NonPagedPoolNx,
4 * (((unsigned __int64)*(unsigned int *)(a1 + 6212) + 31) >> 5) + 24,
0x77536D73ui64);
v3 = (signed __int64)PoolWithTag;
if( PoolWithTag )
{
*(_OWORD *)PoolWithTag = 0i64;
*((_QWORD *)PoolWithTag + 2) = 0i64;
*((_DWORD *)PoolWithTag + 2) = *(_DWORD *)(a1 + 6212);
*((_QWORD *)PoolWithTag + 2) = PoolWithTag + 24;
RtlSetAllBits((RTL_BITMAP *)(PoolWithTag + 8));
_InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 6568), v3, -1i64);
return 0i64;
}
else
{
_InterlockedExchange64((volatile __int64 *)(a1 + 6568), 0i64);
return 3221225626i64;
}
}
Referenced by:
No references.