VslGetOnDemandDebugChallenge

NTSTATUS __fastcall VslGetOnDemandDebugChallenge(__int64 a1, VOID *a2, size_t a3, _DWORD *a4){
  NTSTATUS result; 
  NTSTATUS v9; 
  size_t v10; 
  INT64 v11[10]; 
  INT64 v12[14]; 
  INT64 Src[512]; 

  memset(v12, 0i64, 0x68u);
  memset(v11, 0i64, 0x48u);
  result = VslpLockPagesForTransfer((INT64)v11, (INT64)Src, 0x1000ui64, 1i64, 0);
  if( result >= 0 )
  {
    v12[1] = *(_QWORD *)(a1 + 992);
    v12[2] = v11[0];
    v12[3] = v11[7];
    v9 = VslpEnterIumSecureMode(2u, 18, 0i64, (INT64)v12);
    VslpUnlockPagesForTransfer((INT64 **)v11);
    if( v9 >= 0 )
    {
      v10 = v12[2];
      *a4 = v12[2];
      if( v10 <= a3 )
      {
        if( a2 )
          memmove(a2, Src, v10);
      }
      else
      {
        return -1073741789;
      }
    }
    return v9;
  }
  return result;
}

Referenced by:

PsIumGetOnDemandDebugChallenge