BiDeleteRegistryValue

INT64 __stdcall BiDeleteRegistryValue(PVOID ParentHandle, WCHAR *ValueName, WCHAR *KeyName){
  void *v5; 
  PVOID v6; 
  int v7; 
  PVOID v8; 
  unsigned int v9; 
  _UNICODE_STRING ValueNamea; 
  PVOID Handle; 
  ValueNamea = 0i64;
  RtlInitUnicodeString(&ValueNamea, ValueName, (WCHAR)KeyName);
  LODWORD(v5) = BiSanitizeHandle(ParentHandle);
  Handle = 0i64;
  v6 = v5;
  if( !KeyName )
  {
    v8 = v5;
    goto LABEL_3;
  }
  v7 = BiOpenKey(v5, KeyName, 0x2001Fui64, &Handle);
  v8 = Handle;
  v9 = v7;
  if( v7 >= 0 )
LABEL_3:
    v9 = BiZwDeleteValueKey(v8, &ValueNamea);
  if( v8 != v6 && v8 )
    CmSiCloseSection(v8);
  return v9;
}

Referenced by:

BiMarkTreatAsSystemStore
BiSetFirmwareModified