I found this site while web surfing. http://www.st.com/internet/mcu/family/141.jsp
I would expect the documentation on the ARM site to be more appropriate to CHDK programmers in most cases. Canon appears to use a very vanilla implementation of 946E-S.
Regarding memset, I don't think you'll gain much over the firmware code, but it can't hurt much to try.
The code shown is ARM, thumb doesn't have condition flags on non-branch instructions. see ARM Architecture Reference Manual available on the ARM site. Several of the condition codes and addressing modes have multiple mnemonics for the same thing, which can make it look unfamiliar. Especially when the author uses two variants that mean the same thing in the same code
stmcsia = STore Multiple Carry Set Increment After
HS is the same as CS.
You can use BX LR to return and not worry about arm/thumb