CmpAddDockingInfo

INT64 __fastcall CmpAddDockingInfo(VOID *a1, INT64 a2){
  INT64 result; 
  UINT64 DataSize; 
  UINT64 DataSizea; 
  UINT64 DataSizeb; 
  UINT64 DataSizec; 
  int Data; 

  Data = *(unsigned __int16 *)(a2 + 4);
  LODWORD(DataSize) = 4;
  LODWORD(result) = NtSetValueKey(a1, (_UNICODE_STRING *)&CmpStrDockingStateString, 0i64, 4ui64, &Data, DataSize);
  if( (int)result >= 0 )
  {
    Data = *(unsigned __int16 *)(a2 + 6);
    LODWORD(DataSizea) = 4;
    LODWORD(result) = NtSetValueKey(a1, (_UNICODE_STRING *)&CmpStrCapabilitiesString, 0i64, 4ui64, &Data, DataSizea);
    if( (int)result >= 0 )
    {
      Data = *(_DWORD *)(a2 + 8);
      LODWORD(DataSizeb) = 4;
      LODWORD(result) = NtSetValueKey(a1, (_UNICODE_STRING *)&CmpStrDockIdString, 0i64, 4ui64, &Data, DataSizeb);
      if( (int)result >= 0 )
      {
        Data = *(_DWORD *)(a2 + 12);
        LODWORD(DataSizec) = 4;
        LODWORD(result) = NtSetValueKey(a1, (_UNICODE_STRING *)&CmpStrSerialNumberString, 0i64, 4ui64, &Data, DataSizec);
      }
    }
  }
  return result;
}

Referenced by:

CmpAddAliasEntry
CmpCreateHardwareProfiles