I am currently reversing a windows driver in order to write a Linux compatible driver for a DVB card, but I have come up against a small issue that I can work around, but if it is possible I would like to make it correct.
There is a function that part of which reads the 256 byte PCI config space into a local buffer that has been allocated on the stack. The decompilation shows the output as:
unsigned __int16 configSpaceBuffer; .... SNIP ... configSpace->vtable->tmRegisterAccess_ConfigSpace__tmIGetReg( configSpace, &address, 4, configSpaceBuffer, 256u, 0) _this->field_4A = v74; _this->field_4C = *(unsigned __int16 *)configSpaceBuffer; _this->field_4E = v75; _this->field_50 = v77; _this->field_52 = v76;
Is it possible to fix the detected function variables to show the following instead?
_this->field_4A = configSpaceBuffer; _this->field_4C = configSpaceBuffer; _this->field_4E = configSpaceBuffer; _this->field_50 = configSpaceBuffer; _this->field_52 = configSpaceBuffer;