X86 function epilogue misidentification

On the attached function, the instruction at 0x407EA8 incorrectly gets identified as an epilogue instruction and gets skipped in the decompilation, leading it to incorrectly assume that this is 0 once it gets into the block after it.

It didn’t let me upload an attachment due to me being a new user, so here’s the function as Base64 (manual load it to 0x407DA0)

VYvsg+T4UVOL2VZXiVwkDItzHIX2dBSLDot2BIXJdAeLAWoB/1BQhfZ17IsNXPZRAIlbGMdDHAAAAADHQyAAAAAAx0MkAAAAAMdDKAAAAADHQywAAAAAx0MwAAAAAMdDNAAAAADHg1gMAAAAAIA/x0M4AAAAAP+xpAcSA+h/DwgA/3M86McOCACLNVz2UQCLzsdDPAAAAAD/tqgHEgPoXQ8IAI17WLsAAQAADx9EAAD/N4vO6OcMCACFwHQ6i4g4BQAA98EAAAAQdSyB4f/+//+ByYAAAACJiDgFAACLkJgFAACF0nQQ/zKLzujADggAi1IEhdJ18McHAAAAAIPHBIPrAXWrOV0Ii1wkDHRZM8CNu4QMAAC5OAAAADP286uLg1wMAACLDRz0TAA5tIF49gUAfjOLg1wMAADB4AQDwYvLagEPtoQwCPYFAFDob5UAAIuDXAwAAEaLDRz0TAA7tIF49gUAfM1fXluL5V3CBAA=

Edit: I really shouldn’t try to write bug reports half-asleep

Hi!
Thanks for the report! We were able to reproduce it and are currently investigating. We’ll give an update once we have something more concrete to share.
For future bug reports: submitting them via our support channel helps things get handled more smoothly and faster.