CBC - Cipher-text stealing decryption (I asked in stackoverflow and I should ask my question here not there, sorry about that)

The graph shows CBC- with cipher-text stealing and (b) is the block length. The output cipher-text is c1,...,c4 How is the decryption for this graph? I hope that someone can explain it to me with a graph because I checked the explanation in wikipedia and it was confusing to me.
Let's say we have a ciphertext of length $(N-1)B &lt; n &lt; NB$, for $B$ the blocksize at hand (typically 128 for AES), where the ciphertext is made with $C_1, C_2, C_3, C_4$, with $C_3$ being shorter that the rest.

In order to decrypt a ciphertext made using ciphertext stealing as you drafted, you have to:


Decrypt the ciphertext just like you would for CBC without ciphertext stealing for the $N-2$ first blocks.
Take the latest two blocks ($C_3, C_4$ in your example), and compute the length of the "stolen" ciphertext by computing $n-(N-1)B=a$ and deducing its length $B-a$.
Decrypt the latest block, e.g. $C_4$ into its unencrypted value $E_4$
Xor $E_4$ with the concatenation of $C_3$ and $B-a$ 0s like $C_3 | \underbrace{0\cdots 0}_{B-a}$, to obtain $M_4 | C'_3$
Take the last $B-a$ bits of it, which is $C'_3$ and concatenate it with $C_3$, which you can finally decrypt just like you would usually.


I've committed a cri diagram, using the same colors as you, hope this helps:


Notice that this is assuming the same construction as you used in your graphic. (There are other ways to do it, too.)