CmGetKeyLastWriteTime

__int64 __fastcall CmGetKeyLastWriteTime(__int64 a1, __int64 a2, __int64 a3){
  __int64 v4; 
  LIST_ENTRY *v6; 
  __int64 v7; 
  __int64 v8; 
  LIST_ENTRY *ListIterator; 

  ListIterator = 0i64;
  if( a2 )
  {
    v4 = *(_QWORD *)(a2 + 4);
    if( !a1 )
      return v4;
  }
  else
  {
    v4 = *(_QWORD *)(a1 + 168);
  }
  if( a3 )
  {
    v6 = (LIST_ENTRY *)(a1 + 208);
    while( 1 )
    {
      LODWORD(v7) = CmListGetPrevElement(v6, &ListIterator, a3);
      v8 = v7;
      if( !v7 )
        break;
      if( CmEqualTrans(*(_QWORD *)(v7 + 56), a3) && *(_DWORD *)(v8 + 68) == 8 )
        return *(_QWORD *)(v8 + 88);
    }
  }
  return v4;
}

Referenced by:

CmpQueryKeyDataFromCache
CmpQueryKeyDataFromNode