AdtpGetCategoryAndSubCategoryId

INT64 __stdcall AdtpGetCategoryAndSubCategoryId(UINT64 FlatSubCategoryId, UINT64 *CategoryId, UINT64 *SubCategoryId){
  unsigned int v3; 
  unsigned int v4; 
  unsigned int v6; 
  __int64 *i; 
  unsigned int v8; 
  v3 = 0;
  v4 = FlatSubCategoryId - 100;
  if( v4 > 0x3A || !CategoryId && !SubCategoryId )
    return 3221225485i64;
  v6 = 0;
  for( i = AdtpPerCategoryCount; ; i = (__int64 *)((char *)i + 2) )
  {
    v8 = v3 + *(unsigned __int16 *)i;
    if( v8 > v4 )
      break;
    ++v6;
    v3 = v8;
    if( v6 >= 9 )
      return 3221225473i64;
  }
  if( CategoryId )
    *(_DWORD *)CategoryId = v6;
  if( SubCategoryId )
    *(_DWORD *)SubCategoryId = v4 - v3;
  return 0i64;
}

Referenced by:

AdtpWriteToEtw
AdtpWriteToEtwEx