The WRITE command, when passed no argument, does a reflexion on the system.

Well, it simply list/write all defined variables in current stack level, something you can perform using standard Object Script commands and functions, no need to look at Write source code.

To do that you can use $order,  $query, and indirection, with some trick needed for the variables you use to perform the listing, or, maybe simpler, you can use output redirection (to a string for example) and then...well, an argument less Write command 😊

Some hint for the first option:

USER>set a=1,b=2,b(1)=3,x=""
 
USER>set x=$order(@x)
 
USER>write x
a
USER>set x=$order(@x)
 
USER>write x
b
USER>set x=$query(@x)
 
USER>w x
b(1)

For output redirection, see IO Redirect in ObjectScript in Open Exchange.

Here is a sample method to deflate without using file I/O and using XDEV instead.

ClassMethod UnDeflate(Compressed As %String, Output UnDeflated As %String) As %Status
{
    Set sc=$$$OK
    Try {
        ; open XDEV device
        Set dev="|XDEV|"_+$JOB
        Open dev:($ZF(-6,$$$XSLTLibrary,12):/HOSTNAME="XSLT") Use dev
        ; write compressed string
        Write Compressed
        ; flush buffers
        Write *-3
        ; change device mode to deflate and rewind
        Use dev:(:/COMPRESS="DEFLATE":/POSITION=0)
        ; read uncompressed content
        Read UnDeflated
    } Catch CatchError {
        #dim CatchError as %Exception.SystemException
        Set sc=CatchError.AsStatus()
    }
    Close dev
    Quit sc
}

I really wish that InterSystems implement the various compress/deflate/gzip functionality available in device I/O as utility methods. Without silly wrappers! 😉

Another wish, please InterSystems document XDEV device I/O.