;XOR starting from start_addr for bytes length and compare with 0xaabbbbaa ; input r0,r1 for example 0x20000, 0xe0000 ;f_0x290(start_addr,bytes) ;{ ; r4 = bytes/4; ; r2 = 0; ; r3 = 0; ; ip = start_addr; ; while(r2: 290: e92d0010 stmdb sp!, {r4} 294: e3a03000 mov r3, #0 ; 0x0 298: e1a04121 mov r4, r1, lsr #2 29c: e1a0c000 mov ip, r0 2a0: e3a02000 mov r2, #0 ; 0x0 2a4: ea000003 b 2b8 000002a8 : 2a8: e59c0000 ldr r0, [ip] 2ac: e0233000 eor r3, r3, r0 2b0: e28cc004 add ip, ip, #4 ; 0x4 2b4: e2822001 add r2, r2, #1 ; 0x1 000002b8 : 2b8: e1520004 cmp r2, r4 2bc: bafffff9 blt 2a8 2c0: e59f00fc ldr r0, [pc, #252] ; 3c4 (0xaabbbbaa) 2c4: e1530000 cmp r3, r0 2c8: 0a000001 beq 2d4 2cc: e3e00000 mvn r0, #0 ; 0x0 2d0: ea000000 b 2d8 000002d4 : 2d4: e3a00000 mov r0, #0 ; 0x0 000002d8 : 2d8: e8bd0010 ldmia sp!, {r4} 2dc: e12fff1e bx lr