KsepDbCacheReadDeviceInternal

NTSTATUS __fastcall KsepDbCacheReadDeviceInternal(VOID *hSDB, tagSDBBMACHINEINFO *a2, WCHAR *a3, VOID *a4){
  unsigned int DatabaseMatch; 
  NTSTATUS result; 
  _DB *v8; 
  unsigned int i; 
  unsigned int v10; 
  unsigned int j; 
  unsigned int v12; 
  UINT64 ptiWhich; 
  _DB *ppdb; 
  INT64 a3a[2]; 
  __int128 v16; 
  __int64 v17; 

  LODWORD(ptiWhich) = 0;
  ppdb = 0i64;
  *(_OWORD *)a3a = 0i64;
  v17 = 0i64;
  v16 = 0i64;
  DatabaseMatch = SdbGetDatabaseMatchEx(hSDB, 1i64, a3, a4, 0i64, 0i64, a2);
  if( !DatabaseMatch || !SdbTagRefToTagID(hSDB, DatabaseMatch, &ppdb, &ptiWhich) )
    return -1073741275;
  v8 = ppdb;
  for( i = SdbFindFirstTag(ppdb, (unsigned int)ptiWhich, 0x7013u); ; i = SdbFindNextTag(
                                                                            v8,
                                                                            (unsigned int)ptiWhich,
                                                                            v10) )
  {
    v10 = i;
    if( !i )
      break;
    result = KsepDbReadKFlag(v8, i, (INT64)a3a);
    if( result < 0 )
      return result;
    result = KsepCacheDeviceInsertData((__int64)a4, (wchar_t *)a3a[0], (const VOID *)v16, a3a[1], HIDWORD(a3a[1]));
    if( result < 0 )
      return result;
  }
  for( j = SdbFindFirstTag(v8, (unsigned int)ptiWhich, 0x7028u); ; j = SdbFindNextTag(v8, (unsigned int)ptiWhich, v12) )
  {
    v12 = j;
    if( !j )
      break;
    result = KsepDbReadKData(v8, j, (INT64)a3a);
    if( result < 0 )
      return result;
    result = KsepCacheDeviceInsertData((__int64)a4, (wchar_t *)a3a[0], (const VOID *)v16, a3a[1], HIDWORD(a3a[1]));
    if( result < 0 )
      return result;
  }
  return 0;
}

Referenced by:

KsepDbCacheReadDevice