EmonPebsOverflowHandler
INT64 __fastcall EmonPebsOverflowHandler(){
__int64 v0;
__int64 v1;
__int64 v2;
__int64 v3;
unsigned int v4;
unsigned __int64 v5;
INT64 result;
LODWORD(v0) = *((_DWORD *)KeGetPcr() + 105);
v1 = EmonReservedResourcesList;
v2 = EmonDsManagementAreas + 160 * v0;
while( (__int64 *)v1 != &EmonReservedResourcesList )
{
if( *(_QWORD *)(v1 + 24) )
{
if( EmonPebs64Bit )
{
v3 = *(_QWORD *)(v2 + 32);
v4 = EmonPebsEntrySizeInUse;
v5 = (*(_QWORD *)(v2 + 40) - v3) / (unsigned __int64)(unsigned int)EmonPebsEntrySizeInUse;
}
else
{
v3 = *(unsigned int *)(v2 + 16);
v4 = EmonPebsEntrySizeInUse;
v5 = (*(_DWORD *)(v2 + 20) - (int)v3) / (unsigned int)EmonPebsEntrySizeInUse;
}
(*(void(__fastcall **)(__int64, _QWORD, unsigned __int64))(v1 + 24))(v3, v4, v5);
break;
}
v1 = *(_QWORD *)v1;
}
if( EmonPebs64Bit )
{
result = *(_QWORD *)(v2 + 32);
*(_QWORD *)(v2 + 40) = result;
}
else
{
result = *(unsigned int *)(v2 + 16);
*(_DWORD *)(v2 + 20) = result;
}
return result;
}Referenced by:
EmonOverflowHandler