MiLocateKernelSections

VOID __stdcall MiLocateKernelSections(_KLDR_DATA_TABLE_ENTRY *DataTableEntry){
  char *DllBase; 
  __int64 v2; 
  int v3; 
  int *v4; 
  int v5; 
  unsigned int v6; 
  unsigned int v7; 
  char *v8; 

  DllBase = (char *)DataTableEntry->DllBase;
  LODWORD(v2) = RtlImageNtHeader((UINT64)DllBase);
  v3 = *(unsigned __int16 *)(v2 + 6);
  v4 = (int *)(*(unsigned __int16 *)(v2 + 20) + v2 + 24);
  if( *(_WORD *)(v2 + 6) )
  {
    do
    {
      v5 = *v4;
      v6 = v4[4];
      v7 = v4[2];
      if( *v4 == 1987011374 || v5 == 1953655086 )
      {
        MiFlags |= 0x400u;
      }
      else if( v5 == 1280266064 )
      {
        v8 = &DllBase[v4[3]];
        if( v4[1] == 1162104643 )
        {
          ExPoolCodeStart = (__int64)&DllBase[v4[3]];
          if( v6 < v7 )
            v6 = v7;
          ExPoolCodeEnd = ((unsigned __int64)&v8[v6 + 4095] & 0xFFFFFFFFFFFFF000ui64) - 1;
        }
      }
      --v3;
      v4 += 10;
    }
    while( v3 > 0 );
  }
}

Referenced by:

MiInitializeLoadedModuleList