Yeah, finally figured it out by myself. After further testing, it turns out that the problem was indeed with branching. Instead of branching in thumb state, I should have branched in arm state.
0x2cc3a8 33F0EABF b 0x33fd8
0x2cc3a8 4C3A0CEA b 0x33fd8
I don't exactly understand the reason behind this since the original ...