HalpInterruptMaskLevelTriggeredLines
INT64 __stdcall HalpInterruptMaskLevelTriggeredLines(){
ULONG_PTR *v0;
__int64 v1;
__int64 v2;
__int64 *v3;
__int64 *v4;
int v5;
int v6;
__int64 v7;
__int64 v8;
int v9;
__m128i v11;
__int128 v12;
__int128 v13;
__int64 v14;
__int64 v15;
ULONG_PTR *v16;
v15 = 0i64;
v0 = (ULONG_PTR *)HalpRegisteredInterruptControllers;
v14 = 0i64;
v11 = 0i64;
v12 = 0i64;
v13 = 0i64;
while( v0 != &HalpRegisteredInterruptControllers )
{
v1 = (__int64)v0;
v16 = v0;
v0 = (ULONG_PTR *)*v0;
v2 = v1 + 240;
v3 = *(__int64 **)(v1 + 240);
if( v3 != (__int64 *)(v1 + 240) )
{
do
{
v4 = v3;
v5 = 0;
v6 = *((_DWORD *)v3 + 6) - *((_DWORD *)v3 + 5);
v3 = (__int64 *)*v3;
if( v6 > 0 )
{
v7 = 0i64;
do
{
v8 = v4[5];
if( (*(_DWORD *)(v7 + v8 + 12) & 0x10) != 0 && !*(_DWORD *)(v7 + v8 + 8) )
{
v11 = *(__m128i *)(v7 + v8);
v12 = *(_OWORD *)(v7 + v8 + 16);
v13 = *(_OWORD *)(v7 + v8 + 32);
v14 = *(_QWORD *)(v7 + v8 + 48);
v11.m128i_i32[3] = HIDWORD(_mm_srli_si128(v11, 8).m128i_u64[0]) & 0xFFFFFFEF;
LODWORD(v15) = *(_DWORD *)(v1 + 232);
HIDWORD(v15) = v5 + *((_DWORD *)v4 + 5);
v9 = HalpInterruptSetLineStateInternal(v1, (__int64)&v15, (__int64)&v11);
if( v9 < 0 )
{
HalpInterruptRestoreAllControllerState();
return(unsigned int)v9;
}
v1 = (__int64)v16;
}
++v5;
v7 += 56i64;
}
while( v5 < *((_DWORD *)v4 + 6) - *((_DWORD *)v4 + 5) );
}
}
while( v3 != (__int64 *)v2 );
}
}
return 0;
}Referenced by:
No references.