that last assert ensures that the pointer is pointing to an address of a multiple of 32.
I did not check the details of that DMA implementation, but it is common that things point to a buffer with a multiple size of some kind, so pointing to something with a multiple of 32 (or better: aligned to a multiple-of-32) makes sense.
You would need to check the DMA implementation/data sheet, I'm sure there should be a reference about this somewhere.
I hope this helps,
Erich