CmpStartRMLogs

NTSTATUS __stdcall CmpStartRMLogs(CM_RM *CmRm){
  unsigned int RmFlags; 
  NTSTATUS v3; 
  bool v5; 
  __int64 v6; 
  INT64 v7; 
  int started; 
  INT64 v9; 
  UUID Uuid; 

  RmFlags = CmRm->RmFlags;
  v3 = 0;
  Uuid = 0i64;
  if( (RmFlags & 8) != 0 )
    return -1073741431;
  if( (RmFlags & 1) == 0 )
  {
    v5 = CmpUuidCreate(&Uuid) >= 0;
    v6 = (CmRm->RmFlags & 2) != 0 ? 4 : 0;
    CmpLockRegistryFreezeAware(0);
    started = CmpStartRMLog((char *)CmRm, 0i64, v7);
    v3 = started;
    if( started < 0 && started != -1073741697 && started != -1073741757 && started != -1073741670 && v5 )
    {
      CmRm->RmFlags &= ~2u;
      v3 = CmpStartRMLog((char *)CmRm, (_LIST_ENTRY *)&Uuid, v9);
    }
    CmpUnlockRegistry();
    *(int *)((char *)&CmRm->LogStartStatus1 + v6) = v3;
  }
  return v3;
}

Referenced by:

CmpTransInitializeTransaction