HvlpLogGuestStateScrubbingStatus

VOID __stdcall HvlpLogGuestStateScrubbingStatus(){
  _DWORD *v0; 
  int *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; 
  unsigned int v13; 
  __int128 v14; 
  __int128 v15; 
  PHYSICAL_ADDRESS PageInfo_8[4]; 
  _EVENT_DATA_DESCRIPTOR v17; 
  unsigned int *v18; 
  __int64 v19; 
  unsigned int *v20; 
  __int64 v21; 
  unsigned int *v22; 
  __int64 v23; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  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; 
  unsigned int *v37; 
  __int64 v38; 
  char StackBuffer[16]; 
  char v40[2064]; 

  HvlpGuestStateScrubbingStatus = 0;
  memset(PageInfo_8, 0, sizeof(PageInfo_8));
  v14 = 0i64;
  v15 = 0i64;
  v0 = HvlpAcquireHypercallPage(PageInfo_8, 1ui64, StackBuffer, 8ui64);
  v1 = (int *)HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)&v14, 2ui64, v40, 0x408ui64);
  *v0 = 25;
  HvcallInitiateHypercall();
  if( !v2 )
    HvlpGuestStateScrubbingStatus = *v1;
  HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)&v14);
  HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)PageInfo_8);
  if( HvlpGuestStateScrubbingStatus )
  {
    *(_QWORD *)&UserData.Size = 4i64;
    v26 = 4i64;
    v4 = HvlpGuestStateScrubbingStatus & 1;
    UserData.Ptr = (unsigned __int64)&v4;
    v28 = 4i64;
    v30 = 4i64;
    v3 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 1) & 1;
    v25 = &v3;
    v32 = 4i64;
    v5 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 2) & 1;
    v27 = &v5;
    v34 = 4i64;
    v6 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 3) & 1;
    v29 = &v6;
    v36 = 4i64;
    v7 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 4) & 1;
    v31 = &v7;
    v38 = 4i64;
    v8 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 5) & 1;
    v33 = &v8;
    v9 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 7) & 1;
    v10 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 8) & 1;
    v35 = &v9;
    v37 = &v10;
    HvlpWriteEventLog(&HV_EVENTLOG_GUEST_STATE_SCRUBBING, 8u, &UserData);
    *(_QWORD *)&v17.Size = 4i64;
    v11 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 11) & 1;
    v17.Ptr = (unsigned __int64)&v11;
    v19 = 4i64;
    v3 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 1) & 1;
    v18 = &v3;
    v21 = 4i64;
    v12 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 9) & 1;
    v20 = &v12;
    v22 = &v13;
    v13 = ((unsigned int)HvlpGuestStateScrubbingStatus >> 10) & 1;
    v23 = 4i64;
    HvlpWriteEventLog(&HV_EVENTLOG_MDS_MITIGATION_STATUS, 4u, &v17);
    if( (HvlpGuestStateScrubbingStatus & 0x40) != 0 )
      HvlpWriteEventLog(&HV_EVENTLOG_GUEST_STATE_SCRUBBING_DISABLED_CORE_SCHEDULER, 0, 0i64);
  }
}

Referenced by:

HvlPhase2Initialize