SmpPageWrite
INT64 __fastcall SmpPageWrite(_DWORD *a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5, INT64 a6, INT64 a7){
int v7;
int v10;
int v11;
unsigned int v12;
unsigned int v13;
struct _EX_RUNDOWN_REF *v15;
int v16;
v7 = a3;
v16 = a3;
v10 = -1;
if( (*(_DWORD *)(a2 + 8) & 3) != 0
|| (v11 = SmpKeyedStoreReference((volatile INT64 *)&qword_140D23188, (INT64)&SmGlobals, *(_QWORD *)a2),
v10 = v11,
v11 == -1) )
{
v12 = v16;
}
else
{
v12 = v11 & 0x3FF | v7 & 0xFFFFF800;
v16 = v12;
}
if( (v12 & 0x7FF) != 1024 )
goto LABEL_7;
if( dword_140D231B0 != -1 )
{
v16 = dword_140D231B0 & 0x3FF | v12 & 0xFFFFF800;
LABEL_7:
v13 = SMKM_STORE_MGR::SmPageWrite((__int64)&SmGlobals, a1, v16, a4, a5 & 0x7FFFFFFFFFFFFFFFi64, a6, a7);
goto LABEL_8;
}
v13 = -1073741285;
LABEL_8:
if( v10 != -1 )
{
v15 = (struct _EX_RUNDOWN_REF *)SmKmStoreRefFromStoreIndex((INT64)&SmGlobals, v10 & 0x3FF);
ExReleaseRundownProtection(v15 + 1);
}
return v13;
}Referenced by:
MiStoreWriteIssue