summaryrefslogtreecommitdiff
path: root/asm/pokemon_item_effect.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokemon_item_effect.s')
-rw-r--r--asm/pokemon_item_effect.s1972
1 files changed, 0 insertions, 1972 deletions
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
deleted file mode 100644
index 09be52894..000000000
--- a/asm/pokemon_item_effect.s
+++ /dev/null
@@ -1,1972 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 80413C0
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_80413E4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_80413E4
-sub_80413E4: @ 80413E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- mov r8, r0
- ldr r0, [sp, 0x5C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0x1
- str r0, [sp, 0x1C]
- movs r1, 0x6
- str r1, [sp, 0x24]
- movs r2, 0
- str r2, [sp, 0x2C]
- movs r3, 0x4
- str r3, [sp, 0x34]
- mov r0, r8
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08041474
- ldr r0, _08041450 @ =gMain
- ldr r4, _08041454 @ =0x00000439
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041460
- ldr r2, _08041458 @ =gUnknown_2023F54
- ldr r0, _0804145C @ =gUnknown_2024004
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0804147C
- .align 2, 0
-_08041450: .4byte gMain
-_08041454: .4byte 0x00000439
-_08041458: .4byte gUnknown_2023F54
-_0804145C: .4byte gUnknown_2024004
-_08041460:
- ldr r0, _0804146C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r5, _08041470 @ =0x0000311a
- adds r0, r5
- ldrb r0, [r0]
- b _0804147C
- .align 2, 0
-_0804146C: .4byte gSaveBlock1Ptr
-_08041470: .4byte 0x0000311a
-_08041474:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0804147C:
- str r0, [sp, 0x30]
- ldr r1, _080414D8 @ =gUnknown_2023D6F
- ldr r0, _080414DC @ =gUnknown_2024004
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _080414E0 @ =gMain
- ldr r1, _080414E4 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0804151C
- ldr r0, _080414E8 @ =gActiveBattler
- strb r2, [r0]
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _080414EC @ =gUnknown_2023BCC
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _08041528
- ldr r2, _080414F0 @ =gBattlerPartyIndexes
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r5, [sp, 0xC]
- lsls r0, r5, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _080414F4
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _08041528
- .align 2, 0
-_080414D8: .4byte gUnknown_2023D6F
-_080414DC: .4byte gUnknown_2024004
-_080414E0: .4byte gMain
-_080414E4: .4byte 0x00000439
-_080414E8: .4byte gActiveBattler
-_080414EC: .4byte gUnknown_2023BCC
-_080414F0: .4byte gBattlerPartyIndexes
-_080414F4:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _08041518 @ =gUnknown_2023BCC
- ldrb r0, [r0]
- cmp r1, r0
- bge _08041528
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _080414F4
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _08041528
- .align 2, 0
-_08041518: .4byte gUnknown_2023BCC
-_0804151C:
- ldr r0, _08041544 @ =gActiveBattler
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_08041528:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _080415A8
- ldr r1, _08041548 @ =gUnknown_82528BC
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0804154C
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _08041552
- b _080415A8
- .align 2, 0
-_08041544: .4byte gActiveBattler
-_08041548: .4byte gUnknown_82528BC
-_0804154C:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _080415AE
-_08041552:
- ldr r0, _08041574 @ =gMain
- ldr r1, _08041578 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041584
- ldr r0, _0804157C @ =gActiveBattler
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08041580 @ =gUnknown_2023F5C
- adds r0, r1
- b _080415AE
- .align 2, 0
-_08041574: .4byte gMain
-_08041578: .4byte 0x00000439
-_0804157C: .4byte gActiveBattler
-_08041580: .4byte gUnknown_2023F5C
-_08041584:
- ldr r0, _08041590 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, _08041594 @ =0x00003108
- adds r2, r0, r2
- str r2, [sp, 0x20]
- b _080415B0
- .align 2, 0
-_08041590: .4byte gSaveBlock1Ptr
-_08041594: .4byte 0x00003108
-_08041598:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl BeginEvolutionScene
- movs r0, 0
- bl _08042394
-_080415A8:
- movs r0, 0x1
- bl _08042394
-_080415AE:
- str r0, [sp, 0x20]
-_080415B0:
- movs r3, 0
- str r3, [sp, 0x18]
-_080415B4:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _080415BE
- bl _08042384
-_080415BE:
- lsls r0, r4, 2
- ldr r1, _080415C8 @ =_080415CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080415C8: .4byte _080415CC
- .align 2, 0
-_080415CC:
- .4byte _080415E4
- .4byte _080416B0
- .4byte _08041744
- .4byte _080417D8
- .4byte _080419B8
- .4byte _08042056
-_080415E4:
- ldr r5, [sp, 0x20]
- ldr r0, [sp, 0x18]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0804162C
- ldr r0, _0804169C @ =gMain
- ldr r1, _080416A0 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804162C
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0804162C
- ldr r1, _080416A4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _0804162C
- ldr r0, _080416A8 @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0804162C:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0804165A
- ldr r1, _080416A4 @ =gBattleMons
- ldr r0, _080416AC @ =gActiveBattler
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0804165A
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0804165A:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _08041668
- bl _08042384
-_08041668:
- ldr r6, _080416A4 @ =gBattleMons
- ldr r5, _080416AC @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _08041682
- bl _08042384
-_08041682:
- adds r0, r2, r3
- strb r0, [r1, 0x19]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- bgt _08041696
- b _0804198A
-_08041696:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0804198A
- .align 2, 0
-_0804169C: .4byte gMain
-_080416A0: .4byte 0x00000439
-_080416A4: .4byte gBattleMons
-_080416A8: .4byte 0xfff0ffff
-_080416AC: .4byte gActiveBattler
-_080416B0:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _080416F6
- ldr r7, _0804173C @ =gBattleMons
- ldr r5, _08041740 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1A]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _080416F6
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1A]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _080416F2
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_080416F2:
- movs r2, 0
- str r2, [sp, 0x1C]
-_080416F6:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _08041704
- bl _08042384
-_08041704:
- ldr r6, _0804173C @ =gBattleMons
- ldr r5, _08041740 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0804171E
- bl _08042384
-_0804171E:
- adds r0, r2, r3
- strb r0, [r1, 0x1B]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _08041734
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_08041734:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _08042384
- .align 2, 0
-_0804173C: .4byte gBattleMons
-_08041740: .4byte gActiveBattler
-_08041744:
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x18]
- adds r2, r4, r5
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0804178A
- ldr r7, _080417D0 @ =gBattleMons
- ldr r5, _080417D4 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1E]
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0804178A
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1E]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _08041786
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_08041786:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0804178A:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _08041798
- bl _08042384
-_08041798:
- ldr r6, _080417D0 @ =gBattleMons
- ldr r5, _080417D4 @ =gActiveBattler
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1C]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _080417B2
- bl _08042384
-_080417B2:
- adds r0, r2, r3
- strb r0, [r1, 0x1C]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _080417C8
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_080417C8:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _08042384
- .align 2, 0
-_080417D0: .4byte gBattleMons
-_080417D4: .4byte gActiveBattler
-_080417D8:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _08041820
- ldr r5, _08041994 @ =gUnknown_2023DE4
- ldr r4, _08041998 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _08041820
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x5
- strb r0, [r1, 0x4]
- movs r5, 0
- str r5, [sp, 0x1C]
-_08041820:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08041882
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _08041882
- ldr r5, _0804199C @ =gUnknown_8253AE4
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _080419A0 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r5
- ldr r0, [r4]
- str r0, [sp]
- mov r0, r8
- movs r1, 0x19
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- bl CalculateMonStats
- movs r0, 0
- str r0, [sp, 0x1C]
-_08041882:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080418BE
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _080418BE
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _080418BA
- ldr r1, _080419A4 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x34]
- adds r2, r3, 0
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _080419A8 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
-_080418BA:
- movs r4, 0
- str r4, [sp, 0x1C]
-_080418BE:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080418DE
- ldr r2, _080419AC @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _080418DE
- movs r5, 0
- str r5, [sp, 0x1C]
-_080418DE:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080418FE
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _080418FE
- movs r0, 0
- str r0, [sp, 0x1C]
-_080418FE:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0804191E
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _0804191E
- movs r1, 0
- str r1, [sp, 0x1C]
-_0804191E:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804193E
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl sub_80423A4
- lsls r0, 24
- cmp r0, 0
- bne _0804193E
- movs r2, 0
- str r2, [sp, 0x1C]
-_0804193E:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0804194C
- bl _08042384
-_0804194C:
- ldr r0, _080419B0 @ =gMain
- ldr r3, _080419B4 @ =0x00000439
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08041960
- bl _08042384
-_08041960:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0804196A
- bl _08042384
-_0804196A:
- ldr r1, _080419A4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08041982
- bl _08042384
-_08041982:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0804198A:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _08042384
- .align 2, 0
-_08041994: .4byte gUnknown_2023DE4
-_08041998: .4byte gActiveBattler
-_0804199C: .4byte gUnknown_8253AE4
-_080419A0: .4byte gBaseStats
-_080419A4: .4byte gBattleMons
-_080419A8: .4byte 0xf7ffffff
-_080419AC: .4byte 0x00000f88
-_080419B0: .4byte gMain
-_080419B4: .4byte 0x00000439
-_080419B8:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x20
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- beq _08041A90
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _08041ABC @ =gUnknown_825DEA1
- ldr r4, [sp, 0x10]
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r4, 1
- lsrs r0, r1
- str r0, [sp]
- adds r5, r4, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, [sp]
- cmp r0, 0x2
- bhi _08041A90
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _08041A90
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _08041AC0 @ =gUnknown_825DEA9
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x28]
- subs r0, r3
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl sub_804037C
- movs r4, 0
- str r4, [sp, 0x1C]
-_08041A90:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _08041A9E
- bl _08042384
-_08041A9E:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _08041AAA
- b _08042042
-_08041AAA:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _08041AB2
- b _08042042
-_08041AB2:
- lsls r0, r2, 2
- ldr r1, _08041AC4 @ =_08041AC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08041ABC: .4byte gUnknown_825DEA1
-_08041AC0: .4byte gUnknown_825DEA9
-_08041AC4: .4byte _08041AC8
- .align 2, 0
-_08041AC8:
- .4byte _08041AE8
- .4byte _08041AE8
- .4byte _08041B70
- .4byte _08041D94
- .4byte _08042042
- .4byte _08042042
- .4byte _08042042
- .4byte _0804202C
-_08041AE8:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08041B28 @ =0x000001fd
- cmp r5, r0
- bls _08041AFA
- b _080415A8
-_08041AFA:
- ldr r0, _08041B2C @ =gUnknown_825DFEA
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- cmp r1, 0x63
- bls _08041B14
- b _08042042
-_08041B14:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _08041B30
- adds r0, 0x64
- subs r4, r0, r1
- b _08041B32
- .align 2, 0
-_08041B28: .4byte 0x000001fd
-_08041B2C: .4byte gUnknown_825DFEA
-_08041B30:
- adds r4, r0, 0
-_08041B32:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _08041B40
- adds r0, r4, r0
- subs r4, r0, r1
-_08041B40:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _08041B6C @ =gUnknown_825DFEA
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- bl CalculateMonStats
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- movs r4, 0
- str r4, [sp, 0x1C]
- b _08042042
- .align 2, 0
-_08041B6C: .4byte gUnknown_825DFEA
-_08041B70:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _08041C30
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08041B90
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _08041ED6
-_08041B90:
- ldr r0, _08041BD8 @ =gMain
- ldr r1, _08041BDC @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041C46
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _08041BF0
- ldr r2, _08041BE0 @ =gAbsentBattlerFlags
- ldr r1, _08041BE4 @ =gBitTable
- ldr r3, [sp, 0x34]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _08041BE8 @ =gBattlerPartyIndexes
- lsls r0, r3, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [sp, 0x34]
- bl CopyPlayerPartyMonToBattleData
- ldr r0, _08041BEC @ =gActiveBattler
- ldrb r0, [r0]
- b _08041C08
- .align 2, 0
-_08041BD8: .4byte gMain
-_08041BDC: .4byte 0x00000439
-_08041BE0: .4byte gAbsentBattlerFlags
-_08041BE4: .4byte gBitTable
-_08041BE8: .4byte gBattlerPartyIndexes
-_08041BEC: .4byte gActiveBattler
-_08041BF0:
- ldr r3, _08041C20 @ =gAbsentBattlerFlags
- ldr r1, _08041C24 @ =gBitTable
- ldr r2, _08041C28 @ =gActiveBattler
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r3]
- bics r0, r1
- strb r0, [r3]
- ldrb r0, [r2]
-_08041C08:
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08041C46
- ldr r1, _08041C2C @ =gBattleResults
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _08041C46
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08041C46
- .align 2, 0
-_08041C20: .4byte gAbsentBattlerFlags
-_08041C24: .4byte gBitTable
-_08041C28: .4byte gActiveBattler
-_08041C2C: .4byte gBattleResults
-_08041C30:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08041C46
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _08041ED6
-_08041C46:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r4, [sp, 0x20]
- adds r1, r4, r1
- ldrb r1, [r1]
- str r1, [sp]
- adds r0, r1, 0
- cmp r0, 0xFE
- beq _08041C88
- cmp r0, 0xFE
- bhi _08041C68
- cmp r0, 0xFD
- beq _08041C9E
- b _08041CA6
-_08041C68:
- cmp r1, 0xFF
- bne _08041CA6
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- subs r4, r0
- str r4, [sp]
- b _08041CA6
-_08041C88:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _08041CA6
- movs r0, 0x1
- b _08041CA4
-_08041C9E:
- ldr r0, _08041D60 @ =gBattleScripting
- adds r0, 0x23
- ldrb r0, [r0]
-_08041CA4:
- str r0, [sp]
-_08041CA6:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _08041D84
- ldr r5, [sp, 0x14]
- cmp r5, 0
- bne _08041D78
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- cmp r1, r0
- bls _08041CF2
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- str r0, [sp]
-_08041CF2:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl sub_804037C
- ldr r0, _08041D64 @ =gMain
- ldr r1, _08041D68 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041D80
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _08041D80
- ldr r1, _08041D6C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldr r1, [sp]
- strh r1, [r0, 0x28]
- movs r0, 0x10
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- bne _08041D80
- ldr r4, _08041D70 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08041D80
- ldr r1, _08041D74 @ =gBattleResults
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _08041D42
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_08041D42:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl EmitGetMonData
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- strb r5, [r4]
- b _08041D80
- .align 2, 0
-_08041D60: .4byte gBattleScripting
-_08041D64: .4byte gMain
-_08041D68: .4byte 0x00000439
-_08041D6C: .4byte gBattleMons
-_08041D70: .4byte gActiveBattler
-_08041D74: .4byte gBattleResults
-_08041D78:
- ldr r1, _08041D90 @ =gBattleMoveDamage
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_08041D80:
- movs r1, 0
- str r1, [sp, 0x1C]
-_08041D84:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _08042042
- .align 2, 0
-_08041D90: .4byte gBattleMoveDamage
-_08041D94:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _08041DA0
- b _08041EF0
-_08041DA0:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_08041DA8:
- movs r4, 0x11
- adds r4, r5
- mov r9, r4
- mov r0, r8
- mov r1, r9
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r5, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- beq _08041ECA
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _08041E60
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08041E60:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl sub_804037C
- ldr r0, _08041EDC @ =gMain
- ldr r4, _08041EE0 @ =0x00000439
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08041EC6
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _08041EC6
- ldr r4, _08041EE4 @ =gBattleMons
- movs r0, 0x58
- ldr r1, [sp, 0x34]
- adds r3, r1, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- cmp r1, 0
- bne _08041EC6
- ldr r1, _08041EE8 @ =gDisableStructs
- ldr r2, [sp, 0x34]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08041EEC @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08041EC6
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_08041EC6:
- movs r3, 0
- str r3, [sp, 0x1C]
-_08041ECA:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08041ED2
- b _08041DA8
-_08041ED2:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_08041ED6:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _08042042
- .align 2, 0
-_08041EDC: .4byte gMain
-_08041EE0: .4byte 0x00000439
-_08041EE4: .4byte gBattleMons
-_08041EE8: .4byte gDisableStructs
-_08041EEC: .4byte gBitTable
-_08041EF0:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r2, r0
- bne _08041F38
- b _08042042
-_08041F38:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- adds r1, r0, r1
- ldrb r0, [r1]
- adds r0, r2, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _08041FAC
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08041FAC:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl sub_804037C
- ldr r0, _08042018 @ =gMain
- ldr r1, _0804201C @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08042010
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _08042010
- ldr r4, _08042020 @ =gBattleMons
- movs r0, 0x58
- adds r3, r2, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08042010
- ldr r1, _08042024 @ =gDisableStructs
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08042028 @ =gBitTable
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08042010
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_08042010:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _08042042
- .align 2, 0
-_08042018: .4byte gMain
-_0804201C: .4byte 0x00000439
-_08042020: .4byte gBattleMons
-_08042024: .4byte gDisableStructs
-_08042028: .4byte gBitTable
-_0804202C:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl sub_8042EC4
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08042042
- bl _08041598
-_08042042:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _08042054
- b _08041A9E
-_08042054:
- b _08042384
-_08042056:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r0
- movs r5, 0
- str r5, [sp, 0x28]
- cmp r0, 0
- bne _0804206A
- b _08042384
-_0804206A:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _08042076
- b _08042372
-_08042076:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0804207E
- b _08042372
-_0804207E:
- lsls r0, r2, 2
- ldr r1, _08042088 @ =_0804208C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042088: .4byte _0804208C
- .align 2, 0
-_0804208C:
- .4byte _080420AC
- .4byte _080420AC
- .4byte _080420AC
- .4byte _080420AC
- .4byte _08042130
- .4byte _08042204
- .4byte _0804225E
- .4byte _080422B4
-_080420AC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080420F4 @ =0x000001fd
- cmp r5, r0
- bls _080420C0
- bl _080415A8
-_080420C0:
- ldr r0, _080420F8 @ =gUnknown_825DFEA
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- adds r2, r4, 0
- cmp r1, 0x63
- bls _080420DE
- b _08042372
-_080420DE:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _080420FC
- adds r0, 0x64
- subs r4, r0, r1
- b _080420FE
- .align 2, 0
-_080420F4: .4byte 0x000001fd
-_080420F8: .4byte gUnknown_825DFEA
-_080420FC:
- adds r4, r0, 0
-_080420FE:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0804210C
- adds r0, r4, r0
- subs r4, r0, r1
-_0804210C:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0804212C @ =gUnknown_825DFEA
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- bl CalculateMonStats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _08042368
- .align 2, 0
-_0804212C: .4byte gUnknown_825DFEA
-_08042130:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _080421F8 @ =gUnknown_825DEA1
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r2, 1
- lsrs r0, r1
- str r0, [sp]
- cmp r0, 0x2
- bls _08042150
- b _08042372
-_08042150:
- adds r5, r2, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r1, _080421FC @ =gUnknown_825DEA5
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _08042200 @ =gUnknown_825DEA9
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r2, r0
- str r2, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl sub_804037C
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl sub_804037C
- movs r4, 0
- str r4, [sp, 0x1C]
- b _08042372
- .align 2, 0
-_080421F8: .4byte gUnknown_825DEA1
-_080421FC: .4byte gUnknown_825DEA5
-_08042200: .4byte gUnknown_825DEA9
-_08042204:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _08042214
- b _08042368
-_08042214:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0804221C
- b _08042368
-_0804221C:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _08042224
- b _08042368
-_08042224:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- str r5, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r4, r3, 24
- asrs r1, r4, 24
- cmp r1, 0
- ble _08042308
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _08042308
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _08042314
-_0804225E:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _08042368
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _08042368
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _08042368
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _08042368
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r0, [sp, 0x2C]
- lsls r5, r0, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _080422AE
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _080422F6
-_080422AE:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0804230C
-_080422B4:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _08042368
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _08042368
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _08042368
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r5, r3, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _08042308
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _08042308
-_080422F6:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _08042314
-_08042308:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0804230C:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_08042314:
- cmp r2, 0
- ble _0804234A
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0804232C
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0804232C:
- mov r0, r8
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0804234A
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0804234A:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _08042354
- movs r0, 0
- str r0, [sp, 0x4]
-_08042354:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0804235E
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0804235E:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl sub_804037C
-_08042368:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_08042372:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _08042384
- b _0804206A
-_08042384:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _08042392
- bl _080415B4
-_08042392:
- ldr r0, [sp, 0x1C]
-_08042394:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80413E4
-
- .align 2, 0 @ Don't pad with nop.