The original implementation of this function works, except for one major oversight: one asm instruction in the code, " beq_080F1DC4" branch if equal. Now, this looked strange to me, as there was only a branch if r3 was NOT equal in the nonmatching code. I looked for the label in the asm and found it was going to an area in which the function was returning false. I did that, and the code matched up better, except for some registers, so I moved the variables on the top within a scope and found that it matched!
Lack of activity indicates an unwillingness to fix the indicated changes. Author is advised to open this PR anew with the above indicated issues resolved.
The original implementation of this function works, except for one major oversight: one asm instruction in the code, " beq_080F1DC4" branch if equal. Now, this looked strange to me, as there was only a branch if r3 was NOT equal in the nonmatching code. I looked for the label in the asm and found it was going to an area in which the function was returning false. I did that, and the code matched up better, except for some registers, so I moved the variables on the top within a scope and found that it matched!