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