BcdInitializeBcdSyncMutant

VOID __stdcall BcdInitializeBcdSyncMutant(){
  struct _OBJECT_ATTRIBUTES ObjectAttributes; 
  void *MutantHandle; 
  MutantHandle = 0i64;
  *(&ObjectAttributes.Length + 1) = 0;
  *(&ObjectAttributes.Attributes + 1) = 0;
  ObjectAttributes.RootDirectory = 0i64;
  ObjectAttributes.SecurityQualityOfService = 0i64;
  ObjectAttributes.ObjectName = (_UNICODE_STRING *)L"8:";
  ObjectAttributes.SecurityDescriptor = BiBcdMutantDescriptor;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 592;
  if( ZwCreateMutant(&MutantHandle, 0x1F0001ui64, &ObjectAttributes, 0) >= 0 )
  {
    if( _InterlockedCompareExchange64((volatile signed __int64 *)&BcdMutantHandle, (signed __int64)MutantHandle, 0i64) )
      ZwClose(MutantHandle);
  }
}

Referenced by:

Phase1InitializationDiscard