CmpStartRMLogs
__int64 __fastcall CmpStartRMLogs(__int64 a1){
int v1;
unsigned int v3;
bool v5;
__int64 v6;
NTSTATUS started;
UUID Uuid;
v1 = *(_DWORD *)(a1 + 104);
v3 = 0;
Uuid = 0i64;
if( (v1 & 8) != 0 )
{
return(unsigned int)-1073741431;
}
else if( (v1 & 1) == 0 )
{
v5 = CmpUuidCreate(&Uuid) >= 0;
v6 = (*(_DWORD *)(a1 + 104) & 2) != 0 ? 4 : 0;
CmpLockRegistryFreezeAware(0);
started = CmpStartRMLog((_CM_RM *)a1, 0i64);
v3 = started;
if( started < 0 && started != -1073741697 && started != -1073741757 && started != -1073741670 && v5 )
{
*(_DWORD *)(a1 + 104) &= ~2u;
v3 = CmpStartRMLog((_CM_RM *)a1, &Uuid);
}
CmpUnlockRegistry();
*(_DWORD *)(v6 + a1 + 108) = v3;
}
return v3;
}Referenced by:
CmpTransInitializeTransaction