# SQUEEZ > [HTML Version](squeez_sbr.htm) _Written March 2021_ **xcall SQUEEZ, outbuf, cbout, inbuf\{, cbin\}** SQUEEZ implements the data "squeeze" algorithm used by the MX\_FILEHOOK File-Based File Hook Handler. **Parameters** _outbuf_ (X) \[out\] Receives the squeezed version of the data in _inbuf_. Note that it should either be dynamic (X,0) or a fixed size greater than or equal to two times the size of _inbuf_. Although in most cases the squeezed data will be much smaller than the original, the worst case could be twice as large. _cbout_ (Signed [Num](num.htm.md)) \[out\] Receives the number of bytes written to _outbuf_. A negative value indicates an error, most likely that the _outbuf_ wasn't large enough. Note that you should use this value rather than the size of _outbuf_ to determine how much of its contents to process. _inbuf_ (X) \[in\] The raw data to be squeezed. cbin ([Num](num.htm.md)) \[in\] If specified, this determines the number of bytes in _inbuf_ to process. If omitted, the entire contents of _inbuf_ is processed. **Comments** You can use the Fn'Hooklog'Read'Squeezed() function in [fnfhooklog.bsi in SOSLIB:\[907,10\]](https://bitbucket.org/microsabio/soslib/src/master/907010/fnfhooklog.bsi) to unsqueeze the data. Note that unlike the actual file hook routine, SQUEEZ doesn't automatically include any envelope with the data. You should probably include your own envelope, or at least a designated packet start byte make sure that your unsqueeze operation is in sync with the data. See [File-Based File Hook Handler](file-basedfilehookhandler.htm.md) for details on the squeeze algorithm. **History** 2021 March, A-Shell 6.5.1699: Add function to A-Shell.