SmKmStoreHelperCommandCleanup
VOID __fastcall SmKmStoreHelperCommandCleanup(INT64 a1, INT64 a2, INT64 a3){
int v5;
int v6;
int v7;
int v8;
INT64 v9[2];
__int128 v10;
__int128 v11;
v10 = 0i64;
v11 = 0i64;
v5 = a2 - 2;
if( v5 )
{
v6 = v5 - 1;
if( v6 )
{
v7 = v6 - 1;
if( v7 )
{
if( v7 == 1 )
(*(void(__fastcall **)(INT64, _QWORD, __int64))a3)(a1, *(_QWORD *)(a3 + 8), 1i64);
}
else if( *(int *)(a3 + 40) >= 0 )
{
SmKmUnlockMdl(*(MDL **)(a3 + 24), *(_QWORD *)(a1 + 120), a1);
SmFpFree(*(_QWORD *)(a1 + 120), 2i64, a1, *(_QWORD *)(a3 + 24));
}
}
}
else if( *(int *)(a3 + 40) >= 0 )
{
v8 = *(_DWORD *)(a3 + 32);
v9[0] = *(_QWORD *)(a3 + 24);
v9[1] = *(_QWORD *)(a3 + 8);
LODWORD(v10) = ((unsigned __int8)v10 ^ (unsigned __int8)v8) & 1 ^ v10;
SmKmStoreHelperCommandProcess(a1, 3i64, (INT64)v9);
}
}Referenced by:
SmKmStoreHelperWorker