SdbpReadTagData

NTSTATUS __stdcall SdbpReadTagData(_DB *pdb, UINT64 tiWhich, VOID *pBuffer, UINT64 dwBufferSize){
  unsigned int v4; 
  unsigned int v6; 
  unsigned int TagDataSize; 
  int TagHeadSize; 

  v4 = dwBufferSize;
  v6 = tiWhich;
  TagDataSize = SdbGetTagDataSize(pdb, tiWhich);
  if( TagDataSize > v4 )
  {
    AslLogCallPrintf(1ui64, (INT8 *)"SdbpReadTagData", 0x160ui64, (INT8 *)"Buffer too small. Avail: %d, Need: %d");
  }
  else
  {
    TagHeadSize = SdbpGetTagHeadSize(pdb, v6);
    if( SdbpReadMappedData(pdb, v6 + TagHeadSize, pBuffer, TagDataSize) )
      return 1;
    AslLogCallPrintf(1ui64, (INT8 *)"SdbpReadTagData", 0x167ui64, (INT8 *)"Error reading tag data");
  }
  return 0;
}

Referenced by:

SdbReadBinaryTag
SdbReadDWORDTag
SdbReadQWORDTag
SdbReadWORDTag
SdbpReadStringRef