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 );
}
}