Diminished chords have puzzled me in the past, but I'm starting to get the hang of them.
In most cases, a dim7 is a substitution for a 7b9 chord, which resolves up a fourth. A 7b9 chord contains 1 3 5 b7 b9. Remove the root, and you're left with a dim7 chord built on the 3, 5, b7, or b9. Therefore, a V7b9 can be replaced with bVIdim7, VIIdim7, IIdim7, or IVdim7, and they'd all serve the same function as the dominant chord of I.
Here's the little trick I need to remember. At any point in a progression, if a dim7 chord is substituting for a 7b9 chord, then it can resolve up a M3, up a m2, down a M2, or down a P4.
I still need to wrap my head around the other dim7 function, more of a passing chord, as in IV7-#IVdim7-I7 in a blues progression.