Just do a statistical analysis of the Zoyi file and an other STM32 firmware encrypted with DES-ECB (8 byte block) and AES-ECB (16 byte block). You should always start witch statistics, when you are up against an unknown file.
You can clearly see the block size of the Zoyi encryption. Also the block "14 E9 50 27 CD 1E 18 38" keeps repeating in the vector table of the FW1.5.6 giving you a hint about the block size of the cypher.
This is not a password hash, you want to decrypt a file.
Anyway, if you can successfully decrypt the file, after removing the 16byte header, there must be "00 00 00 00 00 00 00 00" at the address 0x20. Also in the interrupt vector table every fourth byte should be 0x08 (eg. at addresses 0x03, 0x07, 0x0B, 0x0F, 0x33, 0x37, 0x3B, 0x3F, and so on), just look at the vector table in the documentation of the ARM CPU.