void __fastcall IoFreeMapRegistersV2(__int64 a1, __int64 a2, unsigned int a3){
__int64 v3;
char v5;
unsigned __int8 CurrentIrql;
v3 = *(_QWORD *)(a1 + 152);
if( v3 && a2 )
{
v5 = 0;
CurrentIrql = 0;
if( KeGetCurrentIrql() < 2u )
{
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
v5 = 1;
}
if( a3 )
HalpDmaFreeMapRegisters(a1, a2, a3);
HalpDmaProcessMapRegisterQueueV2(v3, *(_BYTE *)(a1 + 434));
if( v5 )
__writecr8(CurrentIrql);
}
}