CmpInitializeDelayedCloseTable

VOID __stdcall CmpInitializeDelayedCloseTable(){
  unsigned __int64 v0; 
  __int64 v1; 
  __int128 *v2; 
  __int64 v3; 
  int v4; 
  __int64 v5; 
  __int64 v6; 
  _QWORD *v7; 
  char *v8; 
  unsigned int v9; 
  unsigned __int64 v10; 
  __int64 v11; 
  unsigned __int64 v12; 
  __int128 *v13; 
  __int64 v14; 
  int v15; 
  __int64 v16; 
  __int64 v17; 
  __int64 v18; 
  CmpDelayCloseWorkItem.Parameter = 0i64;
  CmpDelayCloseWorkItem.List.Flink = 0i64;
  CmpDelayCloseWorkItem.WorkerRoutine = (void(__fastcall *)(void *))CmpDelayCloseWorker;
  KeInitializeGuardedMutex(&CmpDelayedCloseTableLock);
  qword_140C47D08 = (__int64)&CmpDelayedLRUListHead;
  CmpDelayedLRUListHead = (__int64)&CmpDelayedLRUListHead;
  _mm_lfence();
  if( !qword_140C4C460 )
  {
    v0 = __rdtsc();
    v1 = (41929663 * (unsigned int)((((unsigned __int64)HIDWORD(v0) << 32) | (unsigned int)v0) >> 4)) ^ 0x5A4i64;
    if( !v1 )
      v1 = 1i64;
    qword_140C4C460 = v1;
    v2 = &KeServiceDescriptorTable;
    v3 = (41929663 * (unsigned int)(__rdtsc() >> 4)) ^ 0x5A4i64;
    qword_140C4C468 = v3;
    _mm_prefetchnta(&KeServiceDescriptorTable);
    v4 = 64;
    v5 = v1;
    v6 = 8i64;
    do
    {
      v5 = __ROR8__(v5 - *(_QWORD *)v2, v3);
      v2 = (__int128 *)((char *)v2 + 8);
      v4 -= 8;
      --v6;
    }
    while( v6 );
    for( ; v4; --v4 )
    {
      v16 = *(unsigned __int8 *)v2;
      v2 = (__int128 *)((char *)v2 + 1);
      v5 = __ROR8__(v5 - v16, v3);
    }
    v7 = (_QWORD *)KeServiceDescriptorTable;
    v8 = (char *)KeServiceDescriptorTable;
    v9 = 4 * xmmword_140E018D0;
    v10 = KeServiceDescriptorTable + (unsigned int)(4 * xmmword_140E018D0);
    qword_140C4C478 = v5;
    if( (unsigned __int64)KeServiceDescriptorTable < v10 )
    {
      do
      {
        _mm_prefetchnta(v8);
        v8 += 64;
      }
      while( (unsigned __int64)v8 < v10 );
    }
    v11 = v1;
    if( v9 >= 8 )
    {
      v12 = (unsigned __int64)v9 >> 3;
      do
      {
        v11 = __ROR8__(v11 - *v7++, v3);
        v9 -= 8;
        --v12;
      }
      while( v12 );
    }
    for( ; v9; --v9 )
    {
      v17 = *(unsigned __int8 *)v7;
      v7 = (_QWORD *)((char *)v7 + 1);
      v11 = __ROR8__(v11 - v17, v3);
    }
    qword_140C4C480 = v11;
    v13 = &KeServiceDescriptorTableShadow;
    _mm_prefetchnta(&KeServiceDescriptorTableShadow);
    v14 = 4i64;
    v15 = 32;
    do
    {
      v1 = __ROR8__(v1 - *(_QWORD *)v13, v3);
      v13 = (__int128 *)((char *)v13 + 8);
      v15 -= 8;
      --v14;
    }
    while( v14 );
    for( ; v15; --v15 )
    {
      v18 = *(unsigned __int8 *)v13;
      v13 = (__int128 *)((char *)v13 + 1);
      v1 = __ROR8__(v1 - v18, v3);
    }
    qword_140C4C488 = v1;
    qword_140C4C470 = KiQueryUnbiasedInterruptTime(1u) + 41929663 * (__rdtsc() >> 4) % 0x12A05F2000i64 + 288000000000i64;
  }
}

Referenced by:

CmInitSystem1