SdbGetTagDataSize

INT64 __fastcall SdbGetTagDataSize(INT64 a1, UINT64 a2){
  int v2; 
  int v4; 
  INT64 result; 
  unsigned int v6; 
  v2 = a2;
  v4 = SdbGetTagFromTagID(a1, a2) & 0xF000;
  switch( v4 )
  {
    case 12288:
      result = 2i64;
      break;
    case 24576:
    case 16384:
      result = 4i64;
      break;
    case 20480:
      result = 8i64;
      break;
    case 4096:
      result = 0i64;
      break;
    case 8192:
      result = 1i64;
      break;
    default:
      v6 = 0;
      if( !(unsigned int)SdbpReadMappedData(a1, (unsigned int)(v2 + 2), &v6, 4ui64) )
        AslLogCallPrintf(1ui64, "SdbGetTagDataSize", 0x116ui64, "Error reading size data");
      result = v6;
      break;
  }
  if( (int)result + v2 < (unsigned int)result || (unsigned int)(result + v2) > *(_DWORD *)(a1 + 20) )
  {
    AslLogCallPrintf(1ui64, "SdbGetTagDataSize", 0x121ui64, "Error reading size data");
    return 0xFFFFFFFFi64;
  }
  return result;
}

Referenced by:

KsepDbReadKData
SdbQueryDataExTagID
SdbpGetFirstIndexedRecord
SdbpGetIndex
SdbpGetMatchingTextAttributes
SdbpGetNextIndexedRecord
SdbpGetNextTagId
SdbpGetRegistryMatchingAttributes
SdbpReadTagData