ARZL

LZRA (ARZL in big-endian) is a compression and encoding format used on PS Vita. It is used for example to store files used by the SKBL like the NSKBL and some Tzs modules. It is also used on GIM texture data used by /sce_sys/right/right.suprx.

Naming
It might be similar to LZMA. See.

There is a typo in SKBL functions names where it is named ARLZ instead of ARZL.

Header
It is simply the string "ARZL" (41 52 5A 4C).

Obfuscation
The raw decompressed ARZL output is obfuscated. Although there are three versions of the obfuscation, the basic operation is the same. The obfuscation is just bit swaps as well as some deterministic changes using information from the offset.

Version 1
The only change is that the offset information is added instead of subtracted.

Version 2
Version 2 is the same as version 0 but in addition, there is an additional operation to swap two nibbles in certain conditions. The condition is found through a learning process and may be overfitted.