HalpPmTimerConfigure
NTSTATUS __stdcall HalpPmTimerConfigure(INT64 a1, INT64 a2, INT64 a3){
NTSTATUS v3;
__int64 v4;
__int64 v6;
v3 = -1073741637;
if( *(_BYTE *)(a1 + 8) >= 5u && *(_BYTE *)(a1 + 91) )
{
if( *(_BYTE *)(a1 + 208) )
{
if( *(_BYTE *)(a1 + 208) == 1 )
{
*(_BYTE *)(a2 + 1) = 0;
v4 = *(unsigned int *)(a1 + 212);
*(_QWORD *)(a2 + 8) = v4;
*(_QWORD *)(a3 + 16) = HalpPmTimerQueryCounterIoPort;
return v4 == 0 ? 0xC00000BB : 0;
}
}
else
{
*(_BYTE *)(a2 + 1) = 1;
*(_DWORD *)(a2 + 28) = *(unsigned __int8 *)(a1 + 91);
*(_QWORD *)(a2 + 16) = *(_QWORD *)(a1 + 208);
*(_DWORD *)(a2 + 24) = *(_DWORD *)(a1 + 216);
*(_QWORD *)(a3 + 16) = HalpPmTimerQueryCounterMemory;
return *(_QWORD *)(a2 + 20) == 0i64 ? 0xC00000BB : 0;
}
}
else if( *(_DWORD *)(a1 + 76) )
{
*(_BYTE *)(a2 + 1) = 0;
v3 = 0;
v6 = *(unsigned int *)(a1 + 76);
*(_QWORD *)(a3 + 16) = HalpPmTimerQueryCounterIoPort;
*(_QWORD *)(a2 + 8) = v6;
}
return v3;
}Referenced by:
HalpPmTimerDiscover