I'm analyzing a .so file that is a part of an android application. I've stumbled upon this block of code:

LOAD:0001B63C sub_1B63C                               ; CODE XREF: sub_1B628+Cp
LOAD:0001B63C                 PUSH            {R0-R6,LR}
LOAD:0001B63E                 PUSH            {R0-R6,LR}
LOAD:0001B640                 MOVS            R6, #4
LOAD:0001B642                 MOVS            R1, #2
LOAD:0001B644                 MOV             R0, SP
LOAD:0001B646                 ADDS            R0, #0x10
LOAD:0001B648                 MOVS            R6, #2
LOAD:0001B64A                 ADDS            R0, #8
LOAD:0001B64C                 ADDS            R1, R0, #4
LOAD:0001B64E                 MOV             SP, R1
LOAD:0001B650                 ADRL            R6, (sub_1B66C+1)
LOAD:0001B654                 MOVS            R1, #2
LOAD:0001B656                 ADDS            R6, #0x18
LOAD:0001B658                 ADDS            R6, R6, R1
LOAD:0001B65A                 STR             R6, [R0,#0x24]
LOAD:0001B65C                 POP             {R6}
LOAD:0001B65E                 B               sub_1B66C
LOAD:0001B65E ; End of function sub_1B63C

for reference, sub_1B63C:

LOAD:0001B66C sub_1B66C                               ; CODE XREF: sub_1B63C+22p
LOAD:0001B66C                                         ; DATA XREF: sub_1B63C+14o
LOAD:0001B66C                 MOVS            R0, R0
LOAD:0001B66E                 POP             {R0-R6,PC}
LOAD:0001B66E ; End of function sub_1B66C

My question is, why would IDA mark this as the end of the function and how do I force it to acknowledge the instructions after that as part of the function?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.