SdbpGetNextTagId

UINT64 __stdcall SdbpGetNextTagId(_DB *pdb, UINT64 tiWhich){
  unsigned int v2; 
  int TagHeadSize; 
  int TagDataSize; 

  v2 = tiWhich;
  if( (SdbGetTagFromTagID(pdb, tiWhich) & 0xF000) == 28672 && (unsigned int)SdbGetTagDataSize(pdb, v2) == -1 )
  {
    AslLogCallPrintf(1ui64, (INT8 *)"SdbpGetNextTagId", 0x4DDui64, (INT8 *)"Reading from unfinished list");
    return(unsigned int)pdb[5];
  }
  TagHeadSize = SdbpGetTagHeadSize(pdb, v2);
  if( !TagHeadSize )
    return(unsigned int)pdb[5];
  TagDataSize = SdbGetTagDataSize(pdb, v2);
  if( (pdb[332] & 1) == 0 )
    TagDataSize = (TagDataSize + 1) & 0xFFFFFFFE;
  return v2 + TagHeadSize + TagDataSize;
}

Referenced by:

SdbGetFirstChild
SdbGetNextChild
SdbpGetNextIndexedRecord