ROM:A00215F8 CODE16 ROM:A00215F8 ROM:A00215F8 loc_A00215F8 ; CODE XREF: ROM:A0021080j ROM:A00215F8 ; DATA XREF: ROM:off_A0021658o ROM:A00215F8 LDR R0, =unk_A0021680 ROM:A00215FA LDR R1, =0xB0000000 ROM:A00215FC LDR R2, =0xB000F7FC ROM:A00215FE BL sub_A002162E ROM:A00215FE This calls: ROM:A002162E sub_A002162E ; CODE XREF: ROM:A00215FEp ROM:A002162E ; sub_A002162E+Cj ROM:A002162E CMP R1, R2 ROM:A0021630 BCS locret_A002163C ROM:A0021630 ROM:A0021632 LDR R3, [R0] ROM:A0021634 STR R3, [R1] ROM:A0021636 ADD R0, #4 ROM:A0021638 ADD R1, #4 ROM:A002163A B sub_A002162E ROM:A002163A ROM:A002163C ; --------------------------------------------------------------------------- ROM:A002163C ROM:A002163C locret_A002163C ; CODE XREF: sub_A0021622+4j ROM:A002163C ; sub_A002162E+2j ROM:A002163C BX LR ROM:A002163C ROM:A002163C ; End of function sub_A002162E The equivalent call in C is: void a002162e(unsigned int *r0, unsigned int *r1, unsigned int *r2) { unsigned int r3; while(1) { if(r1 == r2) return; r3 = *r0; *r1 = r3; r0++; r1++ } }