ST_STORE::StDeviceWorkItemCleanup
VOID *__fastcall ST_STORE::StDeviceWorkItemCleanup(_DWORD *a1, __int64 a2){
int v4;
int v5;
VOID *result;
ST_STORE::StRegionReadDereference((__int64)a1, *(_DWORD *)(a2 + 24) >> a1[203]);
v4 = a1[450];
if( (v4 & 1) != 0 && (*(_QWORD *)(a2 + 16) | 1i64) == *((_QWORD *)a1 + 225) )
a1[450] = v4 & 0xFFFFFFFE;
else
ExFreePoolWithTag(*(PVOID *)(a2 + 16), 0);
v5 = a1[452];
if( (v5 & 1) == 0 )
return ExFreePoolWithTag((PVOID)a2, 0);
result = (VOID *)(a2 | 1);
if( (a2 | 1) != *((_QWORD *)a1 + 226) )
return ExFreePoolWithTag((PVOID)a2, 0);
a1[452] = v5 & 0xFFFFFFFE;
return result;
}
Referenced by:
No references.