CmOpenCommonClassRegKey
__int64 __fastcall CmOpenCommonClassRegKey(
__int64 a1,
const WCHAR *a2,
unsigned int a3,
unsigned int a4,
int a5,
char a6,
__int64 a7,
_DWORD *a8){
unsigned int v11;
__int64(__fastcall *v12)(__int64, const WCHAR *, _QWORD, __int64, int, _DWORD *);
int v13;
int v14;
int v15;
int v17;
_DWORD result[4];
unsigned int v20;
int v21;
int v22;
char v23;
void **v24;
int v25[14];
memset((INT64)result, 0i64);
if( (unsigned __int8)a3 == 32 )
{
v11 = 2;
}
else
{
if( (unsigned __int8)a3 != 64 )
{
v15 = -1073741811;
goto LABEL_7;
}
v11 = 4;
}
v12 = *(__int64(__fastcall **)(__int64, const WCHAR *, _QWORD, __int64, int, _DWORD *))(a1 + 504);
v22 = a5;
v21 = a4;
v24 = (void **)a7;
v23 = a6;
v20 = a3;
if( v12 )
{
v13 = v12(a1, a2, v11, 11i64, 1, result);
if( v13 == -1073741822 )
{
v12 = 0i64;
}
else
{
if( v13 == -1073741536 )
goto LABEL_17;
if( v13 )
return(unsigned int)-1073741595;
}
}
v14 = CmOpenCommonClassRegKeyWorker(a1, a2, v20, v21, v22, v23, v24, v25);
v15 = v14;
if( !v12 )
goto LABEL_7;
result[0] = v14;
v17 = v12(a1, a2, v11, 11i64, 2, result);
if( v17 == -1073741822 )
goto LABEL_7;
if( v17 == -1073741536 )
{
LABEL_17:
v15 = result[0];
goto LABEL_7;
}
if( v17 )
return(unsigned int)-1073741595;
LABEL_7:
if( v15 >= 0 && a8 )
*a8 = v25[0];
return(unsigned int)v15;
}Referenced by:
CmOpenInstallerClassRegKey
CmOpenInterfaceClassRegKey