ViCtxEqualExtendedState

UINT8 __stdcall ViCtxEqualExtendedState(XSAVE_AREA *Left, XSAVE_AREA *Right){
  char v2; 
  unsigned __int64 v5; 
  unsigned int v6; 
  unsigned int *i; 
  v5 = KUSER_SHARED_DATA.XState.EnabledFeatures & Right->Header.Mask & Left->Header.Mask;
  if( (v5 & 1) == 0
    || v2
    || Left->LegacyState.ControlWord == Right->LegacyState.ControlWord
    && Left->LegacyState.StatusWord == Right->LegacyState.StatusWord
    && Left->LegacyState.TagWord == Right->LegacyState.TagWord
    && !memcmp(Left->LegacyState.FloatRegisters, Right->LegacyState.FloatRegisters, 0x80ui64) )
  {
    v6 = 2;
    if( (v5 & 2) == 0
      || Left->LegacyState.MxCsr == Right->LegacyState.MxCsr
      && Left->LegacyState.MxCsr_Mask == Right->LegacyState.MxCsr_Mask
      && !memcmp(&Left->LegacyState.XmmRegisters[6], &Right->LegacyState.XmmRegisters[6], 0xA0ui64) )
    {
      for( i = (_DWORD *)(&KUSER_SHARED_DATA + 1028);
            !_bittest64((const __int64 *)&v5, v6) || !memcmp((char *)Left + *(i - 1), (char *)Right + *(i - 1), *i);
            i += 2 )
      {
        if( ++v6 >= 0x40 )
          return 1;
      }
    }
  }
  return 0;
}

Referenced by:

ViCtxCheckAndReleaseIsrState