Currently, disassembleObject() is a ~550 lines length function.
This patch splits it into two, where first do all helper objects initializations
and calls the second which does all the rest job.
This is kind of straightforward split, no code was moved around or changed.
This one is rebased on top of D57019.