Can you explain why IDA-Pro is confused with the following simple x86 instruction?
...
.text:0000000000001885 jnz loc_1AD0
.text:000000000000188B loc_188B:
.text:000000000000188B mov byte ptr [var+9], 1
.text:000000000000188B some_func endp ; sp-analysis failed
.text:000000000000188B
.text:000000000000188B ; ---------------------------------------------------
.text:0000000000001890 db 4Ch
.text:0000000000001891 ; ---------------------------------------------------
.text:0000000000001891
.text:0000000000001891 _debug_info_seg_0:
.text:0000000000001891 mov eax, esp
.text:0000000000001893 cmp rbx, 20h
...
This confusion forces me to manually redefine the incorrect data as code, and then to redefine the subroutine in order to fix the miscalculated endp position.
...
.text:0000000000001885 jnz loc_1AD0
.text:000000000000188B loc_188B:
.text:000000000000188B mov byte ptr [r14+9], 1
.text:0000000000001890 mov rax, r12 <<<FIXED!>>>
.text:0000000000001893 cmp rbx, 20h
.text:0000000000001897 jb loc_1A80e
...
The issue happens several times with other simple x86-x64 instructions. Any idea why? and how to automatically correct those?