CmGetDeviceInstanceKeyPath

void __fastcall CmGetDeviceInstanceKeyPath(
        __int64 a1,
        __int64 a2,
        __int16 a3,
        int a4,
        int a5,
        NTSTRSAFE_PWSTR pszDest,
        size_t cchDest,
        __int64 a8){
  __int64 v8; 
  unsigned __int64 v9; 
  __int64 v10; 
  unsigned __int64 v11; 
  __int64 v12; 
  unsigned __int64 v13; 
  UINT64 dwFlags; 
  if( (a3 & 0x200) != 0 )
  {
    if( a4 )
    {
      if( a4 != -1 )
      {
        v12 = -1i64;
        do
          ++v12;
        while( *(_WORD *)(a2 + 2 * v12) );
        v13 = v12 + 79;
        if( v13 <= 0xFFFFFFFF )
        {
          if( a8 )
            *(_DWORD *)a8 = v13;
          if( (unsigned int)v13 <= (unsigned int)cchDest )
          {
            LODWORD(dwFlags) = 2048;
            RtlStringCchPrintfExW(
              pszDest,
              (unsigned int)cchDest,
              0i64,
              0i64,
              dwFlags,
              L"%s\\%04u\\%s\\%s",
              L"System\\CurrentControlSet\\Hardware Profiles",
              a4,
              L"System\\CurrentControlSet\\Enum",
              a2);
          }
        }
      }
    }
    else
    {
      v10 = -1i64;
      do
        ++v10;
      while( *(_WORD *)(a2 + 2 * v10) );
      v11 = v10 + 82;
      if( v11 <= 0xFFFFFFFF )
      {
        if( a8 )
          *(_DWORD *)a8 = v11;
        if( (unsigned int)v11 <= (unsigned int)cchDest )
        {
          LODWORD(dwFlags) = 2048;
          RtlStringCchPrintfExW(
            pszDest,
            (unsigned int)cchDest,
            0i64,
            0i64,
            dwFlags,
            (const WCHAR *)L"%s\\%s\\%s",
            L"System\\CurrentControlSet\\Hardware Profiles\\Current",
            L"System\\CurrentControlSet\\Enum",
            a2);
        }
      }
    }
  }
  else
  {
    v8 = -1i64;
    do
      ++v8;
    while( *(_WORD *)(a2 + 2 * v8) );
    v9 = v8 + 31;
    if( v9 <= 0xFFFFFFFF )
    {
      if( a8 )
        *(_DWORD *)a8 = v9;
      if( (unsigned int)v9 <= (unsigned int)cchDest )
      {
        LODWORD(dwFlags) = 2048;
        RtlStringCchPrintfExW(
          pszDest,
          (unsigned int)cchDest,
          0i64,
          0i64,
          dwFlags,
          L"%s\\%s",
          L"System\\CurrentControlSet\\Enum",
          a2);
      }
    }
  }
}

Referenced by:

CmGetDeviceRegKeyPath