Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- This function is called from lots of different places. This is probably a utility of some kind. It seems to be fairly simple, but I need to know more about what's going on ahead of time to know what this does. A number of bytes (arg<r5>) are copied from the address at <r4> to the address at <r6>. <r4> is originally 80407570. <r6> is either <r3> + <r5>, or <r3>-1, depending on if <r3> or <r4> is larger.
- void hidden_1_1(<r3>, <r4>, <r5>) {
- if(<r4> < <r3>) {
- goto lessThan
- } else {
- goto gte
- }
- }
- lessThan:
- <r4> = <r4> + <r5>
- <r6> = <r3> + <r5>
- <r5>++
- while(true) {
- <r5>--
- if (<r5> ==0) {
- return
- }
- *(--<r6>) = *(--<r4>) //r4 and r6 are decremented. The byte pointed to by r6 is changed to the vale at the byte pointed to by r4
- }
- :
- gte:
- <r4>--
- <r6> = <r3> - 1
- <r5>++
- while(true) {
- <r5>--
- if (<r5> == 0) {
- return
- }
- *(++<r6>) = *(++<r4>) //r4 and r6 are incremented. The byte pointed to by r6 is changed to the byte pointed to by r4
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement