PnprSwapFinalize
VOID __fastcall PnprSwapFinalize(){
UINT64 v0;
int MillisecondCounter;
UINT64 v2;
UINT64 v3;
int v4;
int v5;
if( *(_DWORD *)(*(_QWORD *)(PnprContext + 24) + 4i64) && (*(_DWORD *)(PnprContext + 64) & 8) == 0 )
PnprRecopyMirrorPages();
v0 = PnprContext;
*(_DWORD *)(PnprContext + 64) &= ~4u;
if( (*(_DWORD *)(v0 + 64) & 0x20) == 0 )
__wbinvd();
if( *(_QWORD *)(PnprContext + 20944) )
{
MillisecondCounter = PnprGetMillisecondCounter(0);
v2 = PnprContext;
*(_DWORD *)(PnprContext + 21012) = MillisecondCounter;
if( (*(int(__fastcall **)(_QWORD))(v2 + 20944))(*(_QWORD *)(v2 + 20880)) < 0 )
{
v3 = PnprContext;
v4 = *(_DWORD *)(PnprContext + 20984);
if( !v4 )
v4 = 2980;
*(_DWORD *)(PnprContext + 20984) = v4;
v5 = *(_DWORD *)(v3 + 20988);
if( !v5 )
v5 = 8;
*(_DWORD *)(v3 + 20988) = v5;
}
*(_DWORD *)(PnprContext + 21016) = PnprGetMillisecondCounter(0);
}
}Referenced by:
PnprSwap