SmcCacheInitialize

VOID __stdcall SmcCacheInitialize(_SMC_CACHE *Cache){
  _SMC_CACHE *v2; 
  _SMC_CACHE *v3; 
  _EX_RUNDOWN_REF *v4; 

  memset(Cache, 0i64, 0x428u);
  StEtaInitialize(Cache + 26);
  *((_QWORD *)Cache + 20) = 0i64;
  v2 = Cache + 42;
  v3 = v2 + 96;
  if( v2 < v2 + 96 )
  {
    v4 = (_EX_RUNDOWN_REF *)(v2 + 4);
    do
    {
      *v2 = -1;
      ExInitializePushLock(&v4->Count);
      ExWaitForRundownProtectionRelease(v4);
      v2 += 6;
      v4 += 3;
    }
    while( v2 < v3 );
  }
}

Referenced by:

SmcProcessCreateRequest