#1 Type reconstruction fails in function signature

open
John Källén
5
2009-11-24
2009-11-24
John Källén
No

In version 0.1.0, when decompiling fib.exe, we get:

void fn00401050(word32 dwArg00, word32 * dwArg04, word32 dwArg08)
{
byte * ecx_18 = dwArg04;
byte * edi_21 = dwArg04 - 0x00000001 + dwArg08;
if (dwArg04 <u edi_21)
{
uint32 esi_26 = dwArg00;
do
{
uint32 edx_33 = SLICE(esi_26 *u 0xCCCCCCCD, word32, 32) >>u 0x00000003;
*ecx_18 = (byte) (esi_26 - edx_33 * 0x00000005 * 0x00000002) + 0x30;
ecx_18 = ecx_18 + 1;
esi_26 = edx_33;
}
while (ecx_18 <u edi_21);
}
*ecx_18 = 0x00;
return;
}

TdwArg04 parameter should be a byte *, not a word32 *

Discussion