HalpInterruptFindControllerAndLineState
__int64 __fastcall HalpInterruptFindControllerAndLineState(unsigned int a1, ULONG_PTR **a2, ULONG_PTR *a3){
ULONG_PTR v4;
__int64 result;
ULONG_PTR *v7;
ULONG_PTR *Lines;
_QWORD v9[3];
v4 = 0i64;
v9[0] = 0i64;
if( (int)HalpInterruptGsiToLine(a1, v9) < 0 )
{
result = 3221225485i64;
LABEL_7:
HalpInterruptLastProblem = 18;
goto LABEL_8;
}
v7 = HalpInterruptLookupController(v9[0]);
if( v7 )
{
Lines = HalpInterruptFindLines((int *)v9);
if( Lines )
{
*a2 = v7;
result = 0i64;
v4 = Lines[5];
goto LABEL_10;
}
*(ULONG_PTR *)((char *)v7 + 292) = 18i64;
v7[38] = (ULONG_PTR)"minkernel\\hals\\lib\\interrupts\\common\\connect.c";
result = 3221226021i64;
*((_DWORD *)v7 + 78) = 643;
goto LABEL_7;
}
HalpInterruptLastProblem = 17;
result = 3221226021i64;
LABEL_8:
*a2 = 0i64;
LABEL_10:
*a3 = v4;
return result;
}Referenced by:
HalpInterruptGetRemappedLineState
HalpInterruptSetRemappedDestinationHv