DrvDbSetRegValueMappedProperty

NTSTATUS __stdcall DrvDbSetRegValueMappedProperty(
        VOID *ObjectBaseKey,
        _DRVDB_PROPERTY_REG_VALUE_MAP *PropertyRegValue,
        UINT64 PropertyType,
        UINT8 *PropertyBuffer,
        UINT64 PropertySize){
  int v5; 
  int *v7; 
  int v8; 
  NTSTATUS result; 
  WCHAR *v10; 
  _OBJECT_TYPE *v11; 
  UINT64 v12; 
  _UNICODE_STRING DestinationString; 
  int v14; 
  UINT64 v15; 

  v5 = 0;
  v14 = 0;
  if( (_DWORD)PropertyBuffer )
  {
    if( (_DWORD)PropertyBuffer == 17 )
    {
      if( (_DWORD)v15 == 1 )
      {
        LOBYTE(v5) = *(_BYTE *)PropertySize == 0xFF;
        v14 = v5;
LABEL_8:
        v8 = 4;
        v7 = &v14;
        goto LABEL_5;
      }
    }
    else
    {
      if( (_DWORD)PropertyBuffer != 5 )
      {
        v7 = (int *)PropertySize;
        v8 = v15;
LABEL_5:
        LODWORD(v12) = v8;
        return RegRtlSetValue(
                 PropertyRegValue,
                 *(const wchar_t **)(PropertyType + 16),
                 *(_DWORD *)(PropertyType + 24),
                 v7,
                 v12);
      }
      if( (_DWORD)v15 == 2 )
      {
        v14 = *(unsigned __int16 *)PropertySize;
        goto LABEL_8;
      }
    }
    return -1073741811;
  }
  else
  {
    v10 = *(WCHAR **)(PropertyType + 16);
    DestinationString = 0i64;
    result = RtlInitUnicodeStringEx(&DestinationString, v10);
    if( result >= 0 )
      result = ZwDeleteValueKey(PropertyRegValue, &DestinationString, v11);
    if( result == -1073741772 )
      return -1073741275;
  }
  return result;
}

Referenced by:

DrvDbSetDeviceIdMappedProperty
DrvDbSetDriverDatabaseMappedProperty
DrvDbSetDriverFileMappedProperty
DrvDbSetDriverInfFileMappedProperty
DrvDbSetDriverPackageMappedProperty