Reverse Engineering for Beginners

(avery) #1

CHAPTER 48. TOUPPER() FUNCTION CHAPTER 48. TOUPPER() FUNCTION


ldrb w0, [sp,15]
sub w0, w0, #32
uxtb w0, w0
b .L3
.L2:
ldrb w0, [sp,15]
.L3:
add sp, sp, 16
ret


Listing 48.8: Optimizing GCC 4.9 (ARM64)

toupper:
uxtb w0, w0
sub w1, w0, #97
uxtb w1, w1
cmp w1, 25
bhi .L2
sub w0, w0, #32
uxtb w0, w0
.L2:
ret


48.3 Summary.


All these compiler optimizations are very popular nowadays and a practicing reverse engineer usually sees such code patterns
often.

Free download pdf