HvlpLogGuestStateScrubbingStatus

VOID __stdcall HvlpLogGuestStateScrubbingStatus(){
  LONGLONG *v0; 
  LONGLONG *v1; 
  __int16 v2; 
  unsigned int v3; 
  int v4; 
  unsigned int v5; 
  unsigned int v6; 
  unsigned int v7; 
  unsigned int v8; 
  unsigned int v9; 
  unsigned int v10; 
  unsigned int v11; 
  unsigned int v12; 
  _BYTE v13[40]; 
  PHYSICAL_ADDRESS v14[4]; 
  EVENT_DATA_DESCRIPTOR v15; 
  unsigned int *v16; 
  __int64 v17; 
  unsigned int *v18; 
  __int64 v19; 
  _BYTE *v20; 
  __int64 v21; 
  struct _EVENT_DATA_DESCRIPTOR UserData; 
  unsigned int *v23; 
  __int64 v24; 
  unsigned int *v25; 
  __int64 v26; 
  unsigned int *v27; 
  __int64 v28; 
  unsigned int *v29; 
  __int64 v30; 
  unsigned int *v31; 
  __int64 v32; 
  unsigned int *v33; 
  __int64 v34; 
  unsigned int *v35; 
  __int64 v36; 
  char v37[16]; 
  char v38[2064]; 
  HvlpGuestStateScrubbingStatus = 0;
  memset(v14, 0, sizeof(v14));
  memset(&v13[8], 0, 32);
  v0 = HvlpAcquireHypercallPage(v14, 1, (__int64)v37, 8i64);
  v1 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)&v13[8], 2, (__int64)v38, 1032i64);
  *(_DWORD *)v0 = 25;
  HvcallInitiateHypercall();
  if( !v2 )
    HvlpGuestStateScrubbingStatus = *(_DWORD *)v1;
  HvlpReleaseHypercallPage((unsigned int *)&v13[8]);
  HvlpReleaseHypercallPage((unsigned int *)v14);
  if( HvlpGuestStateScrubbingStatus )
  {
    *(_QWORD *)&UserData.Size = 4i64;
    v24 = 4i64;
    v4 = HvlpGuestStateScrubbingStatus & 1;
    UserData.Ptr = (unsigned __int64)&v4;
    v26 = 4i64;
    v28 = 4i64;
    v3 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 1) & 1;
    v23 = &v3;
    v30 = 4i64;
    v5 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 2) & 1;
    v25 = &v5;
    v32 = 4i64;
    v6 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 3) & 1;
    v27 = &v6;
    v34 = 4i64;
    v7 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 4) & 1;
    v29 = &v7;
    v36 = 4i64;
    v8 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 5) & 1;
    v31 = &v8;
    v9 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 7) & 1;
    v10 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 8) & 1;
    v33 = &v9;
    v35 = &v10;
    HvlpWriteEventLog((EVENT_DESCRIPTOR *)&HV_EVENTLOG_GUEST_STATE_SCRUBBING, 8ui64, &UserData);
    *(_QWORD *)&v15.Size = 4i64;
    v11 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 11) & 1;
    v15.Ptr = (unsigned __int64)&v11;
    v17 = 4i64;
    v3 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 1) & 1;
    v16 = &v3;
    v19 = 4i64;
    v12 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 9) & 1;
    v18 = &v12;
    v20 = v13;
    *(_DWORD *)v13 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 10) & 1;
    v21 = 4i64;
    HvlpWriteEventLog((EVENT_DESCRIPTOR *)&HV_EVENTLOG_MDS_MITIGATION_STATUS, 4ui64, &v15);
    if( (HvlpGuestStateScrubbingStatus & 0x40) != 0 )
      HvlpWriteEventLog((EVENT_DESCRIPTOR *)&HV_EVENTLOG_GUEST_STATE_SCRUBBING_DISABLED_CORE_SCHEDULER, 0i64, 0i64);
  }
}

Referenced by:

HvlPhase2Initialize