Sure, it's reading the cipher file in to ciphers, then deleting the last 5 keys, saving the new size in size_before, and updating the cipher file. The reason for doing that is so that the local cipher file contains less ciphers than the server cipher file. Then on line 15 the viddl-rb command is run, which detects that the local version of the cipher file doesn't match server cipher file so it downloads the server cipher file (which contains the ciphers we just deleted). Then the assert checks that that actually happened.

Yeah, I'll add the prefix.