HsaBuildInterruptRemappingEntry

NTSTATUS __stdcall HsaBuildInterruptRemappingEntry(INT64 a1, INT64 a2, INT64 a3){
  __int64 v3; 
  unsigned int v4; 
  __int64 v5; 

  LODWORD(v3) = 0;
  *(_QWORD *)(a3 + 16) = 0i64;
  if( *(_DWORD *)(a1 + 176) )
  {
    *(_QWORD *)(a3 + 16) = 0x2000000000000001i64;
    _BitScanForward(&v4, *(_DWORD *)(a2 + 20));
    v3 = (2i64 * (v4 & 0xF)) | 0x2000000000000001i64;
    *(_QWORD *)(a3 + 16) = v3;
    v5 = v3 | *(_QWORD *)a2 & 0xFFFFFFFFFFFC0i64 | 0x400000000000000i64;
  }
  else
  {
    v5 = 0x1000000000000020i64;
  }
  *(_QWORD *)(a3 + 16) = v5;
  return v3;
}

Referenced by:

HsaBuildDeviceTableEntry
HsaUpdateRemappingTableInDeviceTableEntry