SmKmStoreHelperCommandCleanup

VOID __stdcall SmKmStoreHelperCommandCleanup(
        _SMKM_STORE_HELPER *Helper,
        _SMKM_STORE_HELPER_COMMAND Command,
        _SMKM_STORE_HELPER_PARAMS *Params){
  __int32 v5; 
  __int32 v6; 
  __int32 v7; 
  _SMKM_STORE_HELPER_PARAMS v8; 
  _SMKM_STORE_HELPER_PARAMS Paramsa[2]; 
  __int64 v10; 
  __int128 v11; 
  __int128 v12; 

  v11 = 0i64;
  v12 = 0i64;
  v5 = Command - 2;
  if( v5 )
  {
    v6 = v5 - 1;
    if( v6 )
    {
      v7 = v6 - 1;
      if( v7 )
      {
        if( v7 == 1 )
          (*(void(__fastcall **)(_SMKM_STORE_HELPER *, _QWORD, __int64))Params)(Helper, *((_QWORD *)Params + 1), 1i64);
      }
      else if( Params[10] >= 0 )
      {
        SmKmUnlockMdl(*((PMDL *)Params + 3), *((_SM_FORWARD_PROGRESS_CTX **)Helper + 15), Helper);
        SmFpFree(*((_SM_FORWARD_PROGRESS_CTX **)Helper + 15), SmFpResourceLockMdl, Helper, *((VOID **)Params + 3));
      }
    }
  }
  else if( Params[10] >= 0 )
  {
    v8 = Params[8];
    *(_QWORD *)Paramsa = *((_QWORD *)Params + 3);
    v10 = *((_QWORD *)Params + 1);
    LODWORD(v11) = ((unsigned __int8)v11 ^ (unsigned __int8)v8) & 1 ^ v11;
    SmKmStoreHelperCommandProcess(Helper, SmKmHelperFree, Paramsa);
  }
}

Referenced by:

SmKmStoreHelperWorker