HalpInterruptGetIdentifiers
INT64 __fastcall HalpInterruptGetIdentifiers(INT64 a1, _DWORD *a2, _DWORD *a3){
unsigned int v3;
int v4;
ULONG_PTR v5;
unsigned int v6;
_BYTE *v7;
int v9;
v3 = 0;
v4 = a1;
if( (_DWORD)HalpInterruptProcessorCount )
{
v5 = HalpInterruptProcessorState + 13;
while( 1 )
{
if( !*(_BYTE *)(v5 + 43) )
{
if( *(_BYTE *)v5 )
{
--v4;
if( *(_DWORD *)(v5 + 7) == (_DWORD)a1 )
break;
}
}
++v3;
v5 += 64i64;
if( v3 >= (unsigned int)HalpInterruptProcessorCount )
goto LABEL_7;
}
if( a2 )
*a2 = *(_DWORD *)(v5 - 13);
if( a3 )
{
v9 = *(_DWORD *)(v5 - 9);
goto LABEL_25;
}
return 0i64;
}
else
{
LABEL_7:
v6 = 0;
if( (_DWORD)HalpInterruptProcessorCount )
{
v7 = (_BYTE *)(HalpInterruptProcessorState + 12);
do
{
if( !v7[1] && !*v7 && !v7[44] )
{
if( !v4 )
{
if( a2 )
*a2 = *((_DWORD *)v7 - 3);
if( !a3 )
return 0i64;
v9 = *((_DWORD *)v7 - 2);
LABEL_25:
*a3 = v9;
return 0i64;
}
--v4;
}
++v6;
v7 += 64;
}
while( v6 < (unsigned int)HalpInterruptProcessorCount );
}
return 3221226021i64;
}
}Referenced by:
HalpConnectThermalInterrupt
HalpNumaQueryProcessorNode
HalpNumaSwapP0NodeToFront