KeGetTbSize

NTSTATUS __stdcall KeGetTbSize(){
  unsigned __int8 CpuVendor; 
  unsigned __int32 v1; 
  __int64 v2; 
  unsigned int v3; 
  __int64 *v4; 
  unsigned int v5; 
  unsigned int v6; 
  int *v7; 
  __int64 v8; 
  unsigned int i; 
  unsigned int v10; 
  int *v11; 
  __int128 v13; 
  __int128 v14; 
  char v15; 
  __int64 v16; 
  char v17; 
  __int64 v18; 
  char v19; 
  __int64 v20; 
  char v21; 
  __int64 v22; 
  char v23; 
  __int64 v24; 

  v15 = -76;
  v18 = 512i64;
  v24 = 512i64;
  v16 = 256i64;
  v17 = 100;
  CpuVendor = KeGetCurrentPrcb()->CpuVendor;
  v19 = -63;
  v20 = 1024i64;
  v21 = -61;
  v22 = 1536i64;
  v23 = -54;
  if( CpuVendor == 1 )
  {
    if( (unsigned int)EAX(__cpuid(0x80000000, 0)) >= 0x80000006 )
    {
      LODWORD(v8) = ((unsigned int)EBX(__cpuid(-2147483642, 0)) >> 16) & 0xFFF;
      return v8;
    }
  }
  else if( CpuVendor == 2 )
  {
    v1 = EAX(__cpuid(0, 0));
    if( v1 >= 2 )
    {
      v2 = __cpuid(2, 0);
      *(_QWORD *)&v13 = __PAIR64__(EBX(v2), EAX(v2));
      *((_QWORD *)&v13 + 1) = __PAIR64__(EDX(v2), ECX(v2));
      v14 = v13;
      if( v1 >= 0x18 )
      {
        for( i = 0; i < 0x20; i += 8 )
        {
          v10 = 0;
          v11 = (int *)&v14;
          do
          {
            if( *v11 >= 0 && (unsigned __int8)((unsigned int)*v11 >> i) == 0xFE )
            {
              LODWORD(v8) = KiGetTbLeafInfo();
              return v8;
            }
            ++v10;
            ++v11;
          }
          while( v10 < 4 );
        }
      }
      v3 = 0;
      v4 = &v16;
      do
      {
        v5 = 0;
        while( 2 )
        {
          v6 = 0;
          v7 = (int *)&v14;
          do
          {
            if( *v7 >= 0 && (unsigned __int8)((unsigned int)*v7 >> v5) == *((unsigned __int8 *)v4 - 8) )
              return *v4;
            ++v6;
            ++v7;
          }
          while( v6 < 4 );
          v5 += 8;
          if( v5 < 0x20 )
            continue;
          break;
        }
        ++v3;
        v4 += 2;
      }
      while( v3 < 5 );
    }
  }
  LODWORD(v8) = 0;
  return v8;
}

Referenced by:

MiInitializeTbFlushing