SMKM_STORE::SmStOutSwapPrepareStore

__int64 __fastcall SMKM_STORE::SmStOutSwapPrepareStore(__int64 a1){
  VOID **PoolWithTag; 
  signed __int64 v3; 

  if( _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 6568), -1i64, 0i64) )
    return 3221226614i64;
  PoolWithTag = ExAllocatePoolWithTag(
                  0x200ui64,
                  4 * (((unsigned __int64)*(unsigned int *)(a1 + 6212) + 31) >> 5) + 24,
                  2001956211i64);
  v3 = (signed __int64)PoolWithTag;
  if( PoolWithTag )
  {
    *(_OWORD *)PoolWithTag = 0i64;
    PoolWithTag[2] = 0i64;
    *((_DWORD *)PoolWithTag + 2) = *(_DWORD *)(a1 + 6212);
    PoolWithTag[2] = PoolWithTag + 3;
    RtlSetAllBits((PRTL_BITMAP)(PoolWithTag + 1));
    _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 6568), v3, -1i64);
    return 0i64;
  }
  else
  {
    _InterlockedExchange64((volatile __int64 *)(a1 + 6568), 0i64);
    return 3221225626i64;
  }
}

Referenced by:

No references.