VslIumEfiRuntimeService

NTSTATUS __stdcall VslIumEfiRuntimeService(){
  INT64 v0; 
  unsigned int v1; 
  unsigned int v2; 
  _OWORD *v3; 
  INT64 v4; 
  INT64 v5; 
  unsigned int v6; 
  _OWORD *v7; 
  NTSTATUS result; 
  __int128 v9; 
  unsigned __int8 CurrentIrql; 
  NTSTATUS v11; 
  __int128 v12; 
  NTSTATUS v13; 
  INT64 v14[10]; 
  INT64 v15[14]; 

  v4 = v0;
  v5 = v1;
  v6 = v2;
  v7 = v3;
  memset(v15, 0i64, 0x68u);
  memset(v14, 0i64, 0x48u);
  if( !v4 || (result = VslpLockPagesForTransfer((INT64)v14, v4, v6, 2i64, 1), result >= 0) )
  {
    v15[2] = v14[0];
    v15[3] = v14[7];
    v15[1] = v5;
    if( v7 )
    {
      v9 = v7[1];
      *(_OWORD *)&v15[5] = *v7;
      *(_OWORD *)&v15[7] = v9;
    }
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(0xFui64);
    ExAcquireSpinLockExclusiveAtDpcLevel((INT64 *)&stru_140C452E0 + 958);
    v11 = VslpEnterIumSecureMode(2u, 250, 0i64, (INT64)v15);
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&stru_140C452E0 + 958);
    __writecr8(CurrentIrql);
    if( v7 )
    {
      v12 = *(_OWORD *)&v15[7];
      *v7 = *(_OWORD *)&v15[5];
      v7[1] = v12;
    }
    if( v11 == -1073741811 )
    {
      v13 = 2;
    }
    else if( v11 == -1073741801 )
    {
      v13 = 9;
    }
    else
    {
      v13 = v15[4];
      if( v11 )
        v13 = 3;
    }
    if( v14[0] )
      VslpUnlockPagesForTransfer((INT64 **)v14);
    return v13;
  }
  return result;
}

Referenced by:

No references.