.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start CopyPlayerPartyMonToBattleData CopyPlayerPartyMonToBattleData: @ 806B9FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r0, 0x64 mov r5, r9 muls r5, r0 ldr r0, =gPlayerParty adds r5, r0 adds r0, r5, 0 movs r1, 0xB movs r2, 0 bl GetMonData ldr r1, =gBattleMons mov r8, r1 movs r1, 0x58 ldr r2, [sp, 0x14] adds r4, r2, 0 muls r4, r1 mov r3, r8 adds r6, r4, r3 strh r0, [r6] adds r0, r5, 0 movs r1, 0xC movs r2, 0 bl GetMonData strh r0, [r6, 0x2E] movs r6, 0 mov r0, r8 adds r0, 0x24 adds r7, r4, r0 _0806BA4E: adds r1, r6, 0 adds r1, 0xD adds r0, r5, 0 movs r2, 0 bl GetMonData movs r1, 0xC add r1, r8 mov r10, r1 adds r1, r4, r1 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r5, 0 movs r2, 0 bl GetMonData strb r0, [r7] adds r7, 0x1 adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0806BA4E movs r0, 0x64 mov r4, r9 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x15 movs r2, 0 bl GetMonData movs r2, 0xC negs r2, r2 add r2, r10 mov r9, r2 movs r1, 0x58 ldr r3, [sp, 0x14] adds r5, r3, 0 muls r5, r1 adds r7, r5, r2 adds r1, r7, 0 adds r1, 0x3B strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 movs r2, 0 bl GetMonData adds r1, r7, 0 adds r1, 0x2B strb r0, [r1] adds r0, r4, 0 movs r1, 0x19 movs r2, 0 bl GetMonData mov r1, r10 adds r1, 0x38 adds r1, r5, r1 str r0, [r1] adds r0, r4, 0 movs r1, 0x27 movs r2, 0 bl GetMonData movs r6, 0x1F ands r0, r6 ldrb r2, [r7, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x14] adds r0, r4, 0 movs r1, 0x28 movs r2, 0 bl GetMonData movs r1, 0x1F mov r8, r1 mov r2, r8 ands r0, r2 lsls r0, 5 ldrh r2, [r7, 0x14] ldr r1, =0xfffffc1f ands r1, r2 orrs r1, r0 strh r1, [r7, 0x14] adds r0, r4, 0 movs r1, 0x29 movs r2, 0 bl GetMonData ands r0, r6 lsls r0, 2 ldrb r2, [r7, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x15] adds r0, r4, 0 movs r1, 0x2A movs r2, 0 bl GetMonData movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [r7, 0x14] ldr r2, =0xfff07fff ands r0, r2 orrs r0, r1 str r0, [r7, 0x14] adds r0, r4, 0 movs r1, 0x2B movs r2, 0 bl GetMonData mov r3, r8 ands r0, r3 lsls r0, 4 ldrh r2, [r7, 0x16] ldr r1, =0xfffffe0f ands r1, r2 orrs r1, r0 strh r1, [r7, 0x16] adds r0, r4, 0 movs r1, 0x2C movs r2, 0 bl GetMonData ands r0, r6 lsls r0, 1 ldrb r2, [r7, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x17] adds r0, r4, 0 movs r1, 0 movs r2, 0 bl GetMonData mov r1, r10 adds r1, 0x3C adds r1, r5, r1 str r0, [r1] adds r0, r4, 0 movs r1, 0x37 movs r2, 0 bl GetMonData mov r1, r10 adds r1, 0x40 adds r1, r5, r1 str r0, [r1] adds r0, r4, 0 movs r1, 0x38 movs r2, 0 bl GetMonData adds r1, r7, 0 adds r1, 0x2A strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 movs r2, 0 bl GetMonData strh r0, [r7, 0x28] adds r0, r4, 0 movs r1, 0x3A movs r2, 0 bl GetMonData strh r0, [r7, 0x2C] adds r0, r4, 0 movs r1, 0x3B movs r2, 0 bl GetMonData strh r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x3C movs r2, 0 bl GetMonData strh r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x3D movs r2, 0 bl GetMonData strh r0, [r7, 0x6] adds r0, r4, 0 movs r1, 0x3E movs r2, 0 bl GetMonData strh r0, [r7, 0x8] adds r0, r4, 0 movs r1, 0x3F movs r2, 0 bl GetMonData strh r0, [r7, 0xA] adds r0, r4, 0 movs r1, 0x2D movs r2, 0 bl GetMonData movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r7, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x17] adds r0, r4, 0 movs r1, 0x2E movs r2, 0 bl GetMonData lsls r0, 7 ldrb r2, [r7, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r7, 0x17] adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl GetMonData mov r1, r10 adds r1, 0x48 adds r1, r5, r1 str r0, [r1] ldr r2, =gBaseStats ldrh r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] adds r1, r7, 0 adds r1, 0x21 strb r0, [r1] ldrh r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x7] adds r1, r7, 0 adds r1, 0x22 strb r0, [r1] ldrh r0, [r7] ldrb r1, [r7, 0x17] lsrs r1, 7 bl GetAbilityBySpecies adds r1, r7, 0 adds r1, 0x20 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl GetMonData mov r0, r10 adds r0, 0x24 adds r0, r5, r0 mov r1, sp bl StringCopy10 mov r2, r10 adds r2, 0x30 adds r2, r5, r2 adds r0, r4, 0 movs r1, 0x7 bl GetMonData ldr r0, [sp, 0x14] bl GetBankSide ldr r1, =gBattleStruct lsls r0, 24 lsrs r0, 23 adds r0, 0xA8 ldr r1, [r1] adds r1, r0 ldrh r0, [r7, 0x28] strh r0, [r1] movs r2, 0x6 mov r1, r9 movs r6, 0x7 add r5, r10 adds r0, r5, 0 adds r0, 0x13 _0806BCB2: strb r2, [r0] subs r0, 0x1 subs r6, 0x1 cmp r6, 0 bge _0806BCB2 movs r2, 0 movs r0, 0x58 ldr r3, [sp, 0x14] muls r0, r3 adds r1, 0x50 adds r0, r1 str r2, [r0] ldr r0, [sp, 0x14] bl sub_803FA70 ldr r0, [sp, 0x14] movs r1, 0 bl sub_805EF84 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end CopyPlayerPartyMonToBattleData .align 2, 0 @ Don't pad with nop.