HalpIvtpInitializeReservedDomain

NTSTATUS __stdcall HalpIvtpInitializeReservedDomain(INT64 a1, INT64 a2){
  _QWORD *v2; 
  _DWORD *v5; 
  NTSTATUS v6; 
  NTSTATUS result; 
  UINT64 v8; 
  INT64 v9; 
  _DWORD *v10; 
  UINT64 v11; 
  INT64 v12; 
  INT64 v13; 
  INT64 v14; 
  INT64 v15[10]; 

  v2 = *(_QWORD **)(a2 + 8);
  v5 = (_DWORD *)*v2;
  if( *(_DWORD *)*v2 != 1 )
    return 0;
  if( *((unsigned __int16 *)v5 + 4) != *(_DWORD *)(a1 + 212) )
    return -1073741811;
  result = IvtAllocateContextTable(a1, *((unsigned __int16 *)v5 + 6));
  v6 = result;
  if( result < 0 )
    return result;
  memset(v15, 0i64, sizeof(v15));
  LODWORD(v15[3]) = *(_DWORD *)a2;
  v15[2] = v2[2];
  v10 = (_DWORD *)*v2;
  v15[0] = 0x200000001i64;
  v11 = *((unsigned __int16 *)v10 + 6);
  if( (*(_DWORD *)(a1 + 184) & 0x1000000) != 0 )
  {
    LODWORD(v14) = 1;
    IvtUpdateExtendedContextEntry(a1, v11, v8, v9, (INT64)v15, v13, v14, 0i64);
  }
  else
  {
    LODWORD(v12) = 1;
    IvtUpdateContextEntry(a1, v11, (INT64)v15, v9, v12, 0i64);
  }
  return v6;
}

Referenced by:

IvtProcessDeviceExceptions