Hm. I've been working at cracking a program written in Delphi, and man, this thing is so fucking retarded.. some bits and pieces, from the trace I logged:
00000220 .rsrc:sub_50CA48+127BAC call $+5 sub_50CA48 call sub_50CA48:loc_6345F9
00000220 .rsrc:locret_6357B1 retn returned to @Now
...
00000220 CODE:sub_403ECC:locret_403ED3 retn sub_403ECC returned to CODE:0051A8F2
00000220 .rsrc:sub_509A54+101462 call $+5 sub_509A54 call sub_509A54:loc_60AEBB
It's somehow magically returning elsewhere from where it was called. It's actually getting annoying. Heh. It's like it's overwriting its own return address or something. But what's weird is that it'll do this in functions IDA recognizes as being standard functions.
Of course, if this thing disassembled everything properly, I wouldn't be having an issue. But half of these loc:6X* addresses are just a bunch of bytes that it can't make sense of.