BcdCreateObject

INT64 __fastcall BcdCreateObject(__int64 a1, __int64 a2, _DWORD *a3, __int64 *a4){
  UINT8 IsOfflineHandle; 
  INT64 result; 
  int Object; 
  IsOfflineHandle = BiIsOfflineHandle((_HHIVE *)a1, a2, (_UNICODE_STRING *)a3, (_UNICODE_STRING *)a4);
  result = BiAcquireBcdSyncMutant(IsOfflineHandle);
  if( (int)result >= 0 )
  {
    Object = BiCreateObject(a1, a2, a3, 0i64, a4);
    if( Object >= 0 )
    {
      if( BiIsLinkedToFirmwareVariable((VOID *)*a4, 0i64) )
        BiSetFirmwareModified((PVOID)a1, 1u);
    }
    BiReleaseBcdSyncMutant(IsOfflineHandle);
    return(unsigned int)Object;
  }
  return result;
}

Referenced by:

BiBindEfiBootManager
PopBcdRegenerateResumeObject
WheaPersistBadPageToBcd