INT64 __fastcall SmHpBufferCleanup(INT64 a1, _WORD *a2){
int v4;
INT64 result;
SmHpBufferUpdateFullness(a1, a2, (unsigned __int16)-a2[5]);
v4 = *(_DWORD *)(*(_QWORD *)a2 + 16i64);
ExFreePoolWithTag(*(PVOID *)a2, 0);
*(_QWORD *)a2 = 0i64;
result = *(unsigned int *)(a1 + 544);
*((_DWORD *)a2 + 2) = result;
*(_DWORD *)(a1 + 544) = v4;
return result;
}