CmpEnumerateKcbCacheBucket
__int64 __fastcall CmpEnumerateKcbCacheBucket(
__int64 a1,
__int64 a2,
__int64 (__fastcall *a3)(__int64, __int64),
__int64 a4){
__int64 v4;
__int64 result;
__int64 v9;
unsigned int v10;
unsigned int v11;
unsigned int v12;
__int64 v13;
__int64 v14;
v4 = *(_QWORD *)(a2 + 16);
while( v4 )
{
v9 = v4 - 16;
v10 = *(_DWORD *)(v4 - 16 + 8);
v4 = *(_QWORD *)(v4 + 8);
v11 = (v10 >> 21) & 0x3FF;
v12 = (*(_DWORD *)(a1 + 8) >> 21) & 0x3FF;
if( v12 < v11 )
{
v13 = v9;
v14 = v11 - v12;
do
{
v13 = *(_QWORD *)(v13 + 72);
--v14;
}
while( v14 );
if( v13 == a1 )
{
result = a3(v9, a4);
if( (_DWORD)result )
return result;
}
}
}
return 0i64;
}Referenced by:
CmpEnumerateAllOpenSubKeys