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