0800E80A 2500 mov r5,0h Make r5 0 0800E80C 4F13 ldr r7,=3000140h Bascially: get r5, multiply it by 56, and add it to r7 to get the desired enemy slot 0800E80E 00EA lsl r2,r5,3h Shift r5 left by 3 to r2 0800E810 1B50 sub r0,r2,r5 Subtract r5 from r2 to r0 0800E812 00C0 lsl r0,r0,3h Shift r0 left by 3 0800E814 19C3 add r3,r0,r7 Add r0 to r7 to r3 0800E816 8819 ldrh r1,[r3] Load Enemy ID to r1 0800E818 2001 mov r0,1h Make r0 1 0800E81A 4008 and r0,r1 And r1 to r0 0800E81C 1C16 mov r6,r2 Make r6 r2 0800E81E 2800 cmp r0,0h If r0 is 0 0800E820 D03C beq 800E89Ch Go to 800E89C 0800E822 4C0F ldr r4,=30006BCh 0800E824 1C20 mov r0,r4 Make r0 r4 0800E826 1C19 mov r1,r3 Make r1 r3 0800E828 2238 mov r2,38h Make r2 56 (length of enemy data block) 0800E82A F096FB61 bl 80A4EF0h Go to 80A4EF0 080A4EF0 B530 push r4,r5,r14 Push r4,r5 and r14 080A4EF2 1C05 mov r5,r0 Make r5 r0 080A4EF4 1C2C mov r4,r5 Make r4 r5 080A4EF6 1C0B mov r3,r1 Make r3 r1 080A4EF8 2A0F cmp r2,0Fh If r2 is less than 15 080A4EFA D919 bls 80A4F30h Go to 80A4F30h 080A4EFC 1C18 mov r0,r3 Make r0 r3 080A4EFE 4328 orr r0,r5 OR r5 to r0 080A4F00 2103 mov r1,3h Make r1 3 080A4F02 4008 and r0,r1 AND r1 to r0 080A4F04 2800 cmp r0,0h If r0 isn't 0 080A4F06 D113 bne 80A4F30h Go to 80A4F30 080A4F08 1C29 mov r1,r5 Make r1 r5 Store 16 bytes at r3 (stored enemy data) to r1 (current enemy data) 080A4F0A CB01 ldmia [r3]!,r0 Load r3 to r0, increment r3 080A4F0C C101 stmia [r1]!,r0 Store r0 to r1, increment r1 080A4F0E CB01 ldmia [r3]!,r0 Load r3 to r0, increment r3 080A4F10 C101 stmia [r1]!,r0 Store r0 to r1, increment r1 080A4F12 CB01 ldmia [r3]!,r0 Load r3 to r0, increment r3 080A4F14 C101 stmia [r1]!,r0 Store r0 to r1, increment r1 080A4F16 CB01 ldmia [r3]!,r0 Load r3 to r0, increment r3 080A4F18 C101 stmia [r1]!,r0 Store r0 to r1, increment r1 080A4F1A 3A10 sub r2,10h Subtract 16 from r2 080A4F1C 2A0F cmp r2,0Fh If r2 is higher than 15 080A4F1E D8F4 bhi 80A4D0Ah Go to 80A4D0A 080A4F20 2A03 cmp r2,3h If r2 is less than 3 080A4F22 D904 bls 80A4F2Eh Go to 80A4F2E 080A4F24 CB01 ldmia [r3]!,r0 Load r3 to r0, increment r3 080A4F26 C101 stmia [r1]!,r0 Store r0 to r1, increment r1 080A4F28 3A04 sub r2,4h Subtract 4 from r2 080A4F2A 2A03 cmp r2,3h If r2 is higher than 3 080A4F2C D8FA bhi 80A4F24h Go to 80A4F24 080A4F2E 1C0C mov r4,r1 Make r4 r1 080A4F30 3A01 sub r2,1h Subtract 1 from r2 080A4F32 2001 mov r0,1h Make r0 1 080A4F34 4240 neg r0,r0 Negate r0 080A4F36 4282 cmp r2,r0 If r2 is r0 080A4F38 D007 beq 80A4F4Ah Go to 80A4F4A 080A4F4A 1C28 mov r0,r5 Make r0 r5 080A4F4C BD30 pop r4,r5,r15 Pop r4,r5 and r15