HalpHvStartVirtualProcessor

NTSTATUS __stdcall HalpHvStartVirtualProcessor(UINT64 a1){
  _DWORD *v1; 
  unsigned __int8 v2; 
  NTSTATUS v3; 
  _OWORD *v4; 
  _OWORD *v5; 
  __int64 v6; 
  int v8[1024]; 

  v1 = (_DWORD *)((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64);
  v2 = a1;
  if( qword_140C4A1F8 )
    return qword_140C4A1F8((unsigned int)a1);
  *v1 = -1073741823;
  if( HalpIsXboxNanovisorPresent() )
  {
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1000) = *v4;
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1010) = v4[1];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1020) = v4[2];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1030) = v4[3];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1040) = v4[4];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1050) = v4[5];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1060) = v4[6];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1070) = v4[7];
    v5 = v4 + 8;
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1080) = *v5;
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x1090) = v5[1];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x10A0) = v5[2];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x10B0) = v5[3];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x10C0) = v5[4];
    *(_OWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x10D0) = v5[5];
    *(_QWORD *)(((unsigned __int64)v8 & 0xFFFFFFFFFFFFF000ui64) + 0x10B8) |= 0x400ui64;
    LODWORD(v6) = MmGetPhysicalAddress((UINT64)(v1 + 1024));
    __writemsr(0x40000074u, v6 & 0xFFFFFFFFFFFFF000ui64 | v2);
    v3 = 0;
    *v1 = 0;
  }
  return v3;
}

Referenced by:

HalpHvStartProcessor