HalpInterruptGetIdentifiers
NTSTATUS __stdcall HalpInterruptGetIdentifiers(INT64 a1, INT64 a2, UINT64 **a3, INT64 a4){
unsigned int v4;
int v5;
char *v6;
unsigned int v7;
char *v8;
int v10;
v4 = 0;
v5 = a1;
if( (_DWORD)qword_140C50640 )
{
v6 = (char *)HalpInterruptProcessorState + 13;
while( 1 )
{
if( !v6[43] )
{
if( *v6 )
{
--v5;
if( *(_DWORD *)(v6 + 7) == (_DWORD)a1 )
break;
}
}
++v4;
v6 += 64;
if( v4 >= (unsigned int)qword_140C50640 )
goto LABEL_7;
}
if( a2 )
*(_DWORD *)a2 = *(_DWORD *)(v6 - 13);
if( a3 )
{
v10 = *(_DWORD *)(v6 - 9);
goto LABEL_25;
}
return 0;
}
else
{
LABEL_7:
v7 = 0;
if( (_DWORD)qword_140C50640 )
{
v8 = (char *)HalpInterruptProcessorState + 12;
do
{
if( !v8[1] && !*v8 && !v8[44] )
{
if( !v5 )
{
if( a2 )
*(_DWORD *)a2 = *((_DWORD *)v8 - 3);
if( !a3 )
return 0;
v10 = *((_DWORD *)v8 - 2);
LABEL_25:
*(_DWORD *)a3 = v10;
return 0;
}
--v5;
}
++v7;
v8 += 64;
}
while( v7 < (unsigned int)qword_140C50640 );
}
return -1073741275;
}
}Referenced by:
HalpConnectThermalInterrupt
HalpNumaQueryProcessorNode
HalpNumaSwapP0NodeToFront