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