VslCapturePgoData

NTSTATUS __stdcall VslCapturePgoData(SIZE_T Size, PVOID a2){
  INT64 v4; 
  NTSTATUS v5; 
  unsigned int v6; 
  INT64 v8[10]; 
  INT64 result[14]; 
  memset((INT64)result, 0i64);
  memset((INT64)v8, 0i64);
  v4 = 0i64;
  v5 = 0;
  memset((INT64)a2, 0i64);
  if( Size )
  {
    while( 1 )
    {
      v6 = Size;
      if( 2072576 - ((unsigned __int16)a2 & 0xFFFu) < Size )
        v6 = 2072576 - ((unsigned __int16)a2 & 0xFFF);
      v5 = VslpLockPagesForTransfer((INT64)v8, (INT64)a2, v6, 1i64, 0);
      if( v5 < 0 )
        break;
      result[2] = v8[0];
      result[3] = v8[7];
      result[1] = v4;
      v5 = VslpEnterIumSecureMode(2u, 74, 0i64, (INT64)result);
      VslpUnlockPagesForTransfer((INT64 **)v8);
      if( v5 == -2147483622 )
        return 0;
      if( v5 >= 0 )
      {
        a2 = (char *)a2 + v6;
        v4 += v6;
        Size -= v6;
        if( Size )
          continue;
      }
      return v5;
    }
  }
  return v5;
}

Referenced by:

No references.