CmpQueryKeyData
INT64 __fastcall CmpQueryKeyData(INT64 a1, UINT64 a2, INT64 a3, UINT64 a4, UINT64 *a5, INT64 a6){
unsigned int v6;
int v7;
unsigned int KeyDataFromNode;
INT64 v12;
UINT64 v13;
int v14[6];
v14[0] = -1;
v6 = a2;
v14[1] = 0;
v7 = a4;
if( (_DWORD)a2 == 4 )
{
return(unsigned int)CmpQueryKeyDataFromCache(
(_CM_KEY_CONTROL_BLOCK *)a1,
KeyCachedInformation,
(VOID *)a3,
a4,
a5,
(_CM_TRANS *)a6);
}
else
{
v12 = (*(__int64(__fastcall **)(_QWORD, _QWORD, int *))(*(_QWORD *)(a1 + 32) + 8i64))(
*(_QWORD *)(a1 + 32),
*(unsigned int *)(a1 + 40),
v14);
if( v12 )
{
LODWORD(v13) = v7;
KeyDataFromNode = CmpQueryKeyDataFromNode(*(_QWORD *)(a1 + 32), v12, v6, a3, v13, a5, (LIST_ENTRY *)a1, a6);
(*(void(__fastcall **)(_QWORD, int *))(*(_QWORD *)(a1 + 32) + 16i64))(*(_QWORD *)(a1 + 32), v14);
}
else
{
return(unsigned int)-1073741670;
}
}
return KeyDataFromNode;
}Referenced by:
CmQueryKey