VslStartSecureProcessor

NTSTATUS __stdcall VslStartSecureProcessor(ULONG a1, INT64 a2){
  VOID **PoolWithTag; 
  VOID **v5; 
  NTSTATUS result; 
  unsigned __int64 Prcb; 
  VOID *v8; 
  int v9; 
  INT64 v10[10]; 
  INT64 v11[10]; 
  INT64 v12[14]; 

  memset(v11, 0i64, 0x48u);
  memset(v12, 0i64, 0x68u);
  memset(v10, 0i64, 0x48u);
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x100ui64, 1416850774i64);
  v5 = PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  Prcb = KeLoaderBlock_0->Prcb;
  *(_DWORD *)PoolWithTag = a1;
  *((_DWORD *)PoolWithTag + 1) = *(unsigned __int8 *)(Prcb + 209) | (*(unsigned __int8 *)(Prcb + 208) << 8);
  *((_OWORD *)PoolWithTag + 2) = *(_OWORD *)a2;
  *((_OWORD *)PoolWithTag + 3) = *(_OWORD *)(a2 + 16);
  *((_OWORD *)PoolWithTag + 4) = *(_OWORD *)(a2 + 32);
  *((_OWORD *)PoolWithTag + 5) = *(_OWORD *)(a2 + 48);
  *((_OWORD *)PoolWithTag + 6) = *(_OWORD *)(a2 + 64);
  *((_OWORD *)PoolWithTag + 7) = *(_OWORD *)(a2 + 80);
  *((_OWORD *)PoolWithTag + 8) = *(_OWORD *)(a2 + 96);
  *((_OWORD *)PoolWithTag + 9) = *(_OWORD *)(a2 + 112);
  *((_OWORD *)PoolWithTag + 10) = *(_OWORD *)(a2 + 128);
  *((_OWORD *)PoolWithTag + 11) = *(_OWORD *)(a2 + 144);
  *((_OWORD *)PoolWithTag + 12) = *(_OWORD *)(a2 + 160);
  *((_OWORD *)PoolWithTag + 13) = *(_OWORD *)(a2 + 176);
  *((_OWORD *)PoolWithTag + 14) = *(_OWORD *)(a2 + 192);
  *((_OWORD *)PoolWithTag + 15) = *(_OWORD *)(a2 + 208);
  result = VslpLockPagesForTransfer((INT64)v11, Prcb - 384, 0xB080ui64, 2i64, 2);
  if( result >= 0 )
  {
    v5[1] = (VOID *)v11[0];
    v5[2] = (VOID *)v11[7];
    LODWORD(v8) = MmGetPhysicalAddress(*(_QWORD *)(a2 + 176));
    v5[3] = v8;
    v9 = VslpLockPagesForTransfer((INT64)v10, (INT64)v5, 0x100ui64, 0i64, 0);
    if( v9 >= 0 )
    {
      v12[1] = v10[0];
      v12[2] = v10[7];
      v9 = VslpEnterIumSecureMode(2u, 2, 0i64, (INT64)v12);
      VslpUnlockPagesForTransfer((INT64 **)v10);
    }
    VslpUnlockPagesForTransfer((INT64 **)v11);
    ExFreePoolWithTag(v5, 0);
    return v9;
  }
  return result;
}

Referenced by:

HvlHalStartVirtualProcessor