HalpClaimDebugResource
INT64 __fastcall HalpClaimDebugResource(UINT64 a1, INT64 a2){
INT64 result;
__int64 v4;
__int64 v5;
int v6;
__int64 v7;
*(_QWORD *)a1 = HalpAddressUsageList;
result = HalpDebugPortTable;
*(_DWORD *)(a1 + 8) = 1;
*(_BYTE *)(a1 + 12) = 33;
*(_QWORD *)(a1 + 13) = a2;
*(_QWORD *)(a1 + 21) = 8i64;
*(_QWORD *)(a1 + 29) = 0i64;
*(_QWORD *)(a1 + 37) = 0i64;
HalpAddressUsageList = a1;
if( result && *(_BYTE *)(result + 40) == 1 )
{
LODWORD(v4) = 0;
v5 = 0i64;
LOWORD(result) = 1016;
while( (unsigned __int16)result != a2 )
{
v4 = (unsigned int)(v4 + 1);
v5 = (unsigned int)v4;
result = (unsigned __int16)HalpComPortIrqMapping[2 * v4];
if( !(_WORD)result )
return result;
}
v6 = (unsigned __int16)word_1400300A2[2 * v5];
v7 = (unsigned int)(v6 + 48);
HalpIDTUsageFlags[v7] = 35;
result = 5 * v7;
HalpIDTUsage[result] = 15;
*(_DWORD *)&byte_140D57D61[result] = v6;
}
return result;
}Referenced by:
HalpReportResourceUsage