CmpCleanupDiscardReplacePost

BOOL __fastcall CmpCleanupDiscardReplacePost(_CM_KEY_CONTROL_BLOCK *Kcb, VOID *Context){
  __int64 v2; 
  _QWORD *v3; 
  _QWORD *v5; 
  __int64 v6; 
  v3 = (_QWORD *)(v2 + 16);
  v5 = *(_QWORD **)(v2 + 16);
  if( v5[1] != v2 + 16 || (v6 = *v5, *(_QWORD **)(*v5 + 8i64) != v5) )
    __fastfail(3u);
  *v3 = v6;
  *(_QWORD *)(v6 + 8) = v3;
  CmpDereferenceKeyControlBlockWithLock((ULONG_PTR)Kcb, (INT64)Context, 0);
  CmpDereferenceKeyControlBlockWithLock((ULONG_PTR)(v5 - 15), (INT64)Context, 0);
  return *v3 == (_QWORD)v3;
}

Referenced by:

CmpCleanupDiscardReplaceContext