HalpInterruptLocalErrorService
CHAR __stdcall HalpInterruptLocalErrorService(){
int v0;
unsigned __int64 v1;
__int64 v2;
__int64(__fastcall *v3)(__int64);
void(__fastcall *v4)(__int64);
__int64 v5;
v0 = 0;
v1 = (unsigned __int8)HalpAcquireHighLevelLock(&HalpInterruptLocalUnitErrorLock);
v2 = HalpInterruptLocalUnitErrorCount & 0x7F;
v3 = *(__int64(__fastcall **)(__int64))(HalpInterruptController + 56);
v4 = *(void(__fastcall **)(__int64))(HalpInterruptController + 64);
v5 = *(_QWORD *)(HalpInterruptController + 16);
++HalpInterruptLocalUnitErrorCount;
if( v3 )
v0 = v3(v5);
if( v4 )
v4(v5);
HalpInterruptLocalUnitErrorLog[v2] = v0;
HalpInterruptLocalUnitErrorLogProcessor[v2] = *((_DWORD *)KeGetPcr() + 105);
KxReleaseSpinLock(&HalpInterruptLocalUnitErrorLock);
__writecr8(v1);
return 1;
}Referenced by:
No references.