summaryrefslogtreecommitdiff
path: root/asm/pokemon_3.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokemon_3.s')
-rw-r--r--asm/pokemon_3.s4503
1 files changed, 19 insertions, 4484 deletions
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index b8fc0356d..42ab9387b 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -5,4471 +5,6 @@
.text
- thumb_func_start sub_80423A4
-sub_80423A4: @ 80423A4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- lsls r3, 24
- lsrs r6, r3, 24
- movs r1, 0x37
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- ands r0, r4
- cmp r0, 0
- beq _08042408
- mvns r4, r4
- ands r1, r4
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl sub_804037C
- ldr r0, _080423FC @ =gMain
- ldr r1, _08042400 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080423F6
- cmp r6, 0x4
- beq _080423F6
- ldr r0, _08042404 @ =gBattleMons
- movs r1, 0x58
- muls r1, r6
- adds r0, 0x4C
- adds r1, r0
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
-_080423F6:
- movs r0, 0
- b _0804240A
- .align 2, 0
-_080423FC: .4byte gMain
-_08042400: .4byte 0x00000439
-_08042404: .4byte gBattleMons
-_08042408:
- movs r0, 0x1
-_0804240A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80423A4
-
- thumb_func_start sub_8042414
-sub_8042414: @ 8042414
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0x10]
- movs r1, 0x6
- mov r10, r1
- movs r2, 0
- str r2, [sp, 0x18]
- movs r0, 0x4
- str r0, [sp, 0x1C]
- mov r0, r8
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- beq _08042458
- bl ItemId_GetHoldEffect
-_08042458:
- ldr r1, _080424B0 @ =gUnknown_2023D6F
- ldr r0, _080424B4 @ =gUnknown_2024004
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _080424B8 @ =gMain
- ldr r1, _080424BC @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080424F8
- ldr r0, _080424C0 @ =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, 0xC]
- ldr r0, _080424C4 @ =gUnknown_2023BCC
- ldr r4, [sp]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _08042504
- ldr r2, _080424C8 @ =gBattlerPartyIndexes
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _080424CC
- ldr r2, [sp, 0xC]
- str r2, [sp, 0x1C]
- b _08042504
- .align 2, 0
-_080424B0: .4byte gUnknown_2023D6F
-_080424B4: .4byte gUnknown_2024004
-_080424B8: .4byte gMain
-_080424BC: .4byte 0x00000439
-_080424C0: .4byte gActiveBattler
-_080424C4: .4byte gUnknown_2023BCC
-_080424C8: .4byte gBattlerPartyIndexes
-_080424CC:
- ldr r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0xC]
- ldr r0, _080424F4 @ =gUnknown_2023BCC
- ldr r1, [sp, 0xC]
- ldrb r0, [r0]
- cmp r1, r0
- bge _08042504
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _080424CC
- ldr r2, [sp, 0xC]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- b _08042504
- .align 2, 0
-_080424F4: .4byte gUnknown_2023BCC
-_080424F8:
- ldr r0, _08042520 @ =gActiveBattler
- strb r1, [r0]
- movs r0, 0x4
- str r0, [sp, 0x1C]
- ldr r4, [sp]
- subs r4, 0xD
-_08042504:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _08042578
- ldr r1, _08042524 @ =gUnknown_82528BC
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _08042528
- ldr r1, [sp]
- cmp r1, 0xAF
- beq _0804252E
- b _08042578
- .align 2, 0
-_08042520: .4byte gActiveBattler
-_08042524: .4byte gUnknown_82528BC
-_08042528:
- ldr r2, [sp]
- cmp r2, 0xAF
- bne _0804257C
-_0804252E:
- ldr r0, _08042550 @ =gMain
- ldr r1, _08042554 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08042560
- ldr r0, _08042558 @ =gActiveBattler
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0804255C @ =gUnknown_2023F5C
- adds r0, r1
- b _0804257C
- .align 2, 0
-_08042550: .4byte gMain
-_08042554: .4byte 0x00000439
-_08042558: .4byte gActiveBattler
-_0804255C: .4byte gUnknown_2023F5C
-_08042560:
- ldr r0, _0804256C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, _08042570 @ =0x00003108
- adds r2, r0, r2
- str r2, [sp, 0x14]
- b _0804257E
- .align 2, 0
-_0804256C: .4byte gSaveBlock1Ptr
-_08042570: .4byte 0x00003108
-_08042574:
- movs r0, 0
- b _08042BD8
-_08042578:
- movs r0, 0x1
- b _08042BD8
-_0804257C:
- str r0, [sp, 0x14]
-_0804257E:
- movs r0, 0
- str r0, [sp, 0xC]
-_08042582:
- ldr r1, [sp, 0xC]
- cmp r1, 0x5
- bls _0804258A
- b _08042BCA
-_0804258A:
- lsls r0, r1, 2
- ldr r1, _08042594 @ =_08042598
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042594: .4byte _08042598
- .align 2, 0
-_08042598:
- .4byte _080425B0
- .4byte _0804264C
- .4byte _080426A8
- .4byte _08042708
- .4byte _08042850
- .4byte _08042A6A
-_080425B0:
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0xC]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _080425F4
- ldr r0, _0804263C @ =gMain
- ldr r2, _08042640 @ =0x00000439
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080425F4
- ldr r0, [sp, 0x1C]
- cmp r0, 0x4
- beq _080425F4
- ldr r1, _08042644 @ =gBattleMons
- movs r0, 0x58
- ldr r2, [sp, 0x1C]
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080425F4
- movs r0, 0
- str r0, [sp, 0x10]
-_080425F4:
- ldrb r1, [r5]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0804261C
- ldr r1, _08042644 @ =gBattleMons
- ldr r0, _08042648 @ =gActiveBattler
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0804261C
- movs r1, 0
- str r1, [sp, 0x10]
-_0804261C:
- ldrb r1, [r5]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08042628
- b _08042BCA
-_08042628:
- ldr r2, _08042644 @ =gBattleMons
- ldr r0, _08042648 @ =gActiveBattler
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0, 0x19]
- lsls r0, 24
- asrs r0, 24
- b _080426F2
- .align 2, 0
-_0804263C: .4byte gMain
-_08042640: .4byte 0x00000439
-_08042644: .4byte gBattleMons
-_08042648: .4byte gActiveBattler
-_0804264C:
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0xC]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _08042678
- ldr r2, _080426A0 @ =gBattleMons
- ldr r0, _080426A4 @ =gActiveBattler
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0, 0x1A]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _08042678
- movs r2, 0
- str r2, [sp, 0x10]
-_08042678:
- ldrb r1, [r5]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08042684
- b _08042BCA
-_08042684:
- ldr r2, _080426A0 @ =gBattleMons
- ldr r0, _080426A4 @ =gActiveBattler
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0, 0x1B]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- ble _0804269C
- b _08042BCA
-_0804269C:
- b _08042832
- .align 2, 0
-_080426A0: .4byte gBattleMons
-_080426A4: .4byte gActiveBattler
-_080426A8:
- ldr r1, [sp, 0x14]
- ldr r0, [sp, 0xC]
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _080426D4
- ldr r2, _08042700 @ =gBattleMons
- ldr r0, _08042704 @ =gActiveBattler
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _080426D4
- movs r1, 0
- str r1, [sp, 0x10]
-_080426D4:
- ldrb r1, [r5]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _080426E0
- b _08042BCA
-_080426E0:
- ldr r2, _08042700 @ =gBattleMons
- ldr r0, _08042704 @ =gActiveBattler
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- lsls r0, 24
- asrs r0, 24
-_080426F2:
- cmp r0, 0xB
- ble _080426F8
- b _08042BCA
-_080426F8:
- movs r2, 0
- str r2, [sp, 0x10]
- b _08042BCA
- .align 2, 0
-_08042700: .4byte gBattleMons
-_08042704: .4byte gActiveBattler
-_08042708:
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0xC]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _0804273A
- ldr r4, _08042838 @ =gUnknown_2023DE4
- ldr r0, _0804283C @ =gActiveBattler
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0804273A
- movs r2, 0
- str r2, [sp, 0x10]
-_0804273A:
- ldrb r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042756
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _08042756
- movs r0, 0
- str r0, [sp, 0x10]
-_08042756:
- ldrb r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08042776
- mov r0, r8
- ldr r1, [sp, 0x4]
- movs r2, 0x7
- ldr r3, [sp, 0x1C]
- bl sub_8042BE8
- lsls r0, 24
- cmp r0, 0
- beq _08042776
- movs r1, 0
- str r1, [sp, 0x10]
-_08042776:
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08042796
- ldr r2, _08042840 @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0x4]
- ldr r3, [sp, 0x1C]
- bl sub_8042BE8
- lsls r0, 24
- cmp r0, 0
- beq _08042796
- movs r2, 0
- str r2, [sp, 0x10]
-_08042796:
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080427B6
- mov r0, r8
- ldr r1, [sp, 0x4]
- movs r2, 0x10
- ldr r3, [sp, 0x1C]
- bl sub_8042BE8
- lsls r0, 24
- cmp r0, 0
- beq _080427B6
- movs r0, 0
- str r0, [sp, 0x10]
-_080427B6:
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080427D6
- mov r0, r8
- ldr r1, [sp, 0x4]
- movs r2, 0x20
- ldr r3, [sp, 0x1C]
- bl sub_8042BE8
- lsls r0, 24
- cmp r0, 0
- beq _080427D6
- movs r1, 0
- str r1, [sp, 0x10]
-_080427D6:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080427F6
- mov r0, r8
- ldr r1, [sp, 0x4]
- movs r2, 0x40
- ldr r3, [sp, 0x1C]
- bl sub_8042BE8
- lsls r0, 24
- cmp r0, 0
- beq _080427F6
- movs r2, 0
- str r2, [sp, 0x10]
-_080427F6:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08042802
- b _08042BCA
-_08042802:
- ldr r0, _08042844 @ =gMain
- ldr r1, _08042848 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08042814
- b _08042BCA
-_08042814:
- ldr r2, [sp, 0x1C]
- cmp r2, 0x4
- bne _0804281C
- b _08042BCA
-_0804281C:
- ldr r1, _0804284C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08042832
- b _08042BCA
-_08042832:
- movs r0, 0
- str r0, [sp, 0x10]
- b _08042BCA
- .align 2, 0
-_08042838: .4byte gUnknown_2023DE4
-_0804283C: .4byte gActiveBattler
-_08042840: .4byte 0x00000f88
-_08042844: .4byte gMain
-_08042848: .4byte 0x00000439
-_0804284C: .4byte gBattleMons
-_08042850:
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0xC]
- adds r0, r1, r2
- ldrb r7, [r0]
- movs r0, 0x20
- ands r0, r7
- cmp r0, 0
- beq _080428B6
- movs r0, 0xDF
- ands r7, r0
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- ldr r0, _080428DC @ =gUnknown_825DEA1
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- ldrb r0, [r0]
- ands r5, r0
- lsls r0, r1, 1
- lsrs r5, r0
- adds r1, 0xD
- mov r0, r8
- 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, 0x8]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- cmp r5, 0x2
- bhi _080428B6
- cmp r0, 0x4
- bls _080428B6
- movs r2, 0
- str r2, [sp, 0x10]
-_080428B6:
- movs r0, 0
- mov r9, r0
- cmp r7, 0
- bne _080428C0
- b _08042BCA
-_080428C0:
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- bne _080428CA
- b _08042A5C
-_080428CA:
- mov r1, r9
- cmp r1, 0x7
- bls _080428D2
- b _08042A5C
-_080428D2:
- lsls r0, r1, 2
- ldr r1, _080428E0 @ =_080428E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080428DC: .4byte gUnknown_825DEA1
-_080428E0: .4byte _080428E4
- .align 2, 0
-_080428E4:
- .4byte _08042904
- .4byte _08042904
- .4byte _08042934
- .4byte _08042996
- .4byte _08042A5C
- .4byte _08042A5C
- .4byte _08042A5C
- .4byte _08042A4A
-_08042904:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, _0804292C @ =0x01fd0000
- cmp r0, r1
- bls _08042914
- b _08042578
-_08042914:
- ldr r0, _08042930 @ =gUnknown_825DFEA
- add r0, r9
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- cmp r5, 0x63
- bls _0804292A
- b _08042A5C
-_0804292A:
- b _08042A3A
- .align 2, 0
-_0804292C: .4byte 0x01fd0000
-_08042930: .4byte gUnknown_825DFEA
-_08042934:
- movs r0, 0x10
- ands r0, r7
- cmp r0, 0
- beq _08042952
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08042968
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- b _080429F4
-_08042952:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _08042968
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- b _080429F4
-_08042968:
- 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 _08042986
- movs r0, 0
- str r0, [sp, 0x10]
-_08042986:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0xEF
- ands r7, r0
- b _08042A5C
-_08042996:
- movs r0, 0x2
- ands r0, r7
- cmp r0, 0
- bne _080429FA
- movs r6, 0
- movs r1, 0x1
- add r10, r1
-_080429A4:
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- 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 r2, r6, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _080429EA
- movs r2, 0
- str r2, [sp, 0x10]
-_080429EA:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080429A4
- mov r1, r10
- lsls r0, r1, 24
-_080429F4:
- lsrs r0, 24
- mov r10, r0
- b _08042A5C
-_080429FA:
- ldr r1, [sp, 0x8]
- adds r1, 0x11
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- ldr r1, [sp, 0x8]
- adds r1, 0xD
- mov r0, r8
- 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, 0x8]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08042A5C
-_08042A3A:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r2, 0
- str r2, [sp, 0x10]
- b _08042A5C
-_08042A4A:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp]
- bl sub_8042EC4
- lsls r0, 16
- cmp r0, 0
- beq _08042A5C
- b _08042574
-_08042A5C:
- movs r0, 0x1
- add r9, r0
- lsrs r7, 1
- cmp r7, 0
- beq _08042A68
- b _080428C0
-_08042A68:
- b _08042BCA
-_08042A6A:
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0xC]
- adds r0, r1, r2
- ldrb r7, [r0]
- movs r0, 0
- mov r9, r0
- cmp r7, 0
- bne _08042A7C
- b _08042BCA
-_08042A7C:
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- bne _08042A86
- b _08042BBE
-_08042A86:
- mov r1, r9
- cmp r1, 0x7
- bls _08042A8E
- b _08042BBE
-_08042A8E:
- lsls r0, r1, 2
- ldr r1, _08042A98 @ =_08042A9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042A98: .4byte _08042A9C
- .align 2, 0
-_08042A9C:
- .4byte _08042ABC
- .4byte _08042ABC
- .4byte _08042ABC
- .4byte _08042ABC
- .4byte _08042AF4
- .4byte _08042B4C
- .4byte _08042B68
- .4byte _08042B92
-_08042ABC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, _08042AEC @ =0x01fd0000
- cmp r0, r1
- bls _08042ACC
- b _08042578
-_08042ACC:
- ldr r0, _08042AF0 @ =gUnknown_825DFEA
- mov r1, r9
- adds r1, 0x2
- adds r1, r0
- ldrb r1, [r1]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- cmp r5, 0x63
- bhi _08042BBE
- movs r2, 0
- str r2, [sp, 0x10]
- b _08042BB4
- .align 2, 0
-_08042AEC: .4byte 0x01fd0000
-_08042AF0: .4byte gUnknown_825DFEA
-_08042AF4:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- ldr r0, _08042B48 @ =gUnknown_825DEA1
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- ldrb r0, [r0]
- ands r5, r0
- lsls r0, r1, 1
- lsrs r5, r0
- adds r1, 0xD
- mov r0, r8
- 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, 0x8]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r5, 0x2
- bhi _08042BBE
- cmp r6, 0x4
- ble _08042BBE
- movs r2, 0
- str r2, [sp, 0x10]
- b _08042BBE
- .align 2, 0
-_08042B48: .4byte gUnknown_825DEA1
-_08042B4C:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bhi _08042BB4
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _08042BB4
- ldr r1, [sp, 0x18]
- cmp r1, 0
- bne _08042BB4
- b _08042BAC
-_08042B68:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _08042BB4
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _08042BB4
- ldr r2, [sp, 0x10]
- cmp r2, 0
- bne _08042BB4
- ldr r0, [sp, 0x18]
- cmp r0, 0
- bne _08042BB4
- b _08042BAC
-_08042B92:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _08042BB4
- ldr r1, [sp, 0x10]
- cmp r1, 0
- bne _08042BB4
- ldr r2, [sp, 0x18]
- cmp r2, 0
- bne _08042BB4
-_08042BAC:
- ldr r0, [sp, 0x14]
- add r0, r10
- ldrb r0, [r0]
- str r0, [sp, 0x18]
-_08042BB4:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08042BBE:
- movs r0, 0x1
- add r9, r0
- lsrs r7, 1
- cmp r7, 0
- beq _08042BCA
- b _08042A7C
-_08042BCA:
- ldr r1, [sp, 0xC]
- adds r1, 0x1
- str r1, [sp, 0xC]
- cmp r1, 0x5
- bgt _08042BD6
- b _08042582
-_08042BD6:
- ldr r0, [sp, 0x10]
-_08042BD8:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8042414
-
- thumb_func_start sub_8042BE8
-sub_8042BE8: @ 8042BE8
- push {r4,lr}
- adds r4, r2, 0
- movs r1, 0x37
- movs r2, 0
- bl GetMonData
- ands r0, r4
- cmp r0, 0
- bne _08042BFE
- movs r0, 0
- b _08042C00
-_08042BFE:
- movs r0, 0x1
-_08042C00:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8042BE8
-
- thumb_func_start GetItemEffectParamOffset
-GetItemEffectParamOffset: @ 8042C08
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r7, 0x6
- ldr r1, _08042C30 @ =gUnknown_82528BC
- adds r0, r3, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _08042C34
- cmp r3, 0xAF
- beq _08042C38
-_08042C2C:
- movs r0, 0
- b _08042D48
- .align 2, 0
-_08042C30: .4byte gUnknown_82528BC
-_08042C34:
- cmp r3, 0xAF
- bne _08042C46
-_08042C38:
- ldr r0, _08042C58 @ =gActiveBattler
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08042C5C @ =gUnknown_2023F5C
- adds r0, r1
-_08042C46:
- mov r12, r0
- movs r2, 0
-_08042C4A:
- cmp r2, 0x4
- beq _08042C6A
- cmp r2, 0x4
- ble _08042C60
- cmp r2, 0x5
- beq _08042CF4
- b _08042D3E
- .align 2, 0
-_08042C58: .4byte gActiveBattler
-_08042C5C: .4byte gUnknown_2023F5C
-_08042C60:
- cmp r2, 0
- blt _08042D3E
- cmp r2, r4
- bne _08042D3E
- b _08042C2C
-_08042C6A:
- mov r0, r12
- ldrb r3, [r0, 0x4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08042C7A
- movs r0, 0xDF
- ands r3, r0
-_08042C7A:
- movs r6, 0
- cmp r3, 0
- beq _08042D3E
-_08042C80:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08042CE0
- cmp r6, 0x7
- bhi _08042CE0
- lsls r0, r6, 2
- ldr r1, _08042C98 @ =_08042C9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042C98: .4byte _08042C9C
- .align 2, 0
-_08042C9C:
- .4byte _08042CC8
- .4byte _08042CC8
- .4byte _08042CBC
- .4byte _08042CC8
- .4byte _08042CE0
- .4byte _08042CE0
- .4byte _08042CE0
- .4byte _08042CDC
-_08042CBC:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _08042CC8
- movs r0, 0xEF
- ands r3, r0
-_08042CC8:
- cmp r2, r4
- bne _08042CD4
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _08042D46
-_08042CD4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _08042CE0
-_08042CDC:
- cmp r2, r4
- beq _08042C2C
-_08042CE0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _08042CEE
- lsrs r5, 1
-_08042CEE:
- cmp r3, 0
- bne _08042C80
- b _08042D3E
-_08042CF4:
- mov r0, r12
- ldrb r3, [r0, 0x5]
- movs r6, 0
-_08042CFA:
- cmp r3, 0
- beq _08042D3E
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08042D2E
- cmp r6, 0
- blt _08042D2E
- cmp r6, 0x6
- ble _08042D14
- cmp r6, 0x7
- beq _08042D28
- b _08042D2E
-_08042D14:
- cmp r2, r4
- bne _08042D20
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _08042D46
-_08042D20:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _08042D2E
-_08042D28:
- cmp r2, r4
- bne _08042D2E
- b _08042C2C
-_08042D2E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _08042CFA
- lsrs r5, 1
- b _08042CFA
-_08042D3E:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _08042D46
- b _08042C4A
-_08042D46:
- adds r0, r7, 0
-_08042D48:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetItemEffectParamOffset
-
- thumb_func_start sub_8042D50
-sub_8042D50: @ 8042D50
- push {lr}
- ldr r2, _08042D84 @ =gBattlerTarget
- ldr r1, _08042D88 @ =gUnknown_2024004
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r3, _08042D8C @ =gUnknown_2022AB8
- ldr r2, _08042D90 @ =gUnknown_83FD5D0
- ldr r1, _08042D94 @ =gUnknown_825DFF0
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0]
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _08042D98 @ =gUnknown_2022AC8
- ldr r1, _08042D9C @ =gUnknown_83FCB4A
- bl StringCopy
- ldr r0, _08042DA0 @ =gUnknown_83FCB6A
- bl BattleStringExpandPlaceholdersToDisplayedString
- pop {r0}
- bx r0
- .align 2, 0
-_08042D84: .4byte gBattlerTarget
-_08042D88: .4byte gUnknown_2024004
-_08042D8C: .4byte gUnknown_2022AB8
-_08042D90: .4byte gUnknown_83FD5D0
-_08042D94: .4byte gUnknown_825DFF0
-_08042D98: .4byte gUnknown_2022AC8
-_08042D9C: .4byte gUnknown_83FCB4A
-_08042DA0: .4byte gUnknown_83FCB6A
- thumb_func_end sub_8042D50
-
- thumb_func_start sub_8042DA4
-sub_8042DA4: @ 8042DA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08042DF8
- ldr r0, _08042DD4 @ =gMain
- ldr r1, _08042DD8 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08042DE4
- ldr r2, _08042DDC @ =gUnknown_2024004
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08042DE0 @ =gUnknown_2023F5C
- adds r7, r0, r1
- b _08042E04
- .align 2, 0
-_08042DD4: .4byte gMain
-_08042DD8: .4byte 0x00000439
-_08042DDC: .4byte gUnknown_2024004
-_08042DE0: .4byte gUnknown_2023F5C
-_08042DE4:
- ldr r0, _08042DF0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08042DF4 @ =0x00003108
- adds r7, r0, r1
- b _08042E02
- .align 2, 0
-_08042DF0: .4byte gSaveBlock1Ptr
-_08042DF4: .4byte 0x00003108
-_08042DF8:
- ldr r1, _08042E3C @ =gUnknown_82528BC
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r7, [r0]
-_08042E02:
- ldr r2, _08042E40 @ =gUnknown_2024004
-_08042E04:
- ldr r1, _08042E44 @ =gUnknown_2023D6F
- ldrb r0, [r2]
- strb r0, [r1]
- movs r5, 0
- ldr r0, _08042E48 @ =sBattler_AI
- mov r8, r0
- movs r6, 0
-_08042E12:
- adds r4, r7, r5
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _08042E24
- adds r0, r6, 0
- bl sub_8042D50
-_08042E24:
- ldrb r1, [r4]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _08042E5A
- cmp r5, 0
- beq _08042E4C
- adds r0, r6, 0x1
- bl sub_8042D50
- b _08042E5A
- .align 2, 0
-_08042E3C: .4byte gUnknown_82528BC
-_08042E40: .4byte gUnknown_2024004
-_08042E44: .4byte gUnknown_2023D6F
-_08042E48: .4byte sBattler_AI
-_08042E4C:
- ldr r0, _08042E88 @ =gUnknown_2024004
- ldrb r0, [r0]
- mov r1, r8
- strb r0, [r1]
- ldr r0, _08042E8C @ =gUnknown_83FBBE9
- bl BattleStringExpandPlaceholdersToDisplayedString
-_08042E5A:
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x2
- ble _08042E12
- ldrb r1, [r7, 0x3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08042E7A
- ldr r1, _08042E90 @ =sBattler_AI
- ldr r0, _08042E88 @ =gUnknown_2024004
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08042E94 @ =gUnknown_83FBBB4
- bl BattleStringExpandPlaceholdersToDisplayedString
-_08042E7A:
- ldr r0, _08042E98 @ =gUnknown_202298C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08042E88: .4byte gUnknown_2024004
-_08042E8C: .4byte gUnknown_83FBBE9
-_08042E90: .4byte sBattler_AI
-_08042E94: .4byte gUnknown_83FBBB4
-_08042E98: .4byte gUnknown_202298C
- thumb_func_end sub_8042DA4
-
- thumb_func_start GetNature
-GetNature: @ 8042E9C
- push {lr}
- movs r1, 0
- movs r2, 0
- bl GetMonData
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNature
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: @ 8042EB4
- push {lr}
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNatureFromPersonality
-
- thumb_func_start sub_8042EC4
-sub_8042EC4: @ 8042EC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- movs r0, 0
- mov r10, r0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x17
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsrs r4, 16
- str r4, [sp, 0x10]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0xAF
- bne _08042F38
- ldr r0, _08042F30 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08042F34 @ =0x0000311a
- adds r0, r1
- ldrb r0, [r0]
- b _08042F40
- .align 2, 0
-_08042F30: .4byte gSaveBlock1Ptr
-_08042F34: .4byte 0x0000311a
-_08042F38:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_08042F40:
- cmp r0, 0x26
- bne _08042F4C
- cmp r5, 0x3
- beq _08042F4C
- movs r0, 0
- b _080431A4
-_08042F4C:
- cmp r5, 0x1
- bne _08042F52
- b _0804311E
-_08042F52:
- cmp r5, 0x1
- bgt _08042F5C
- cmp r5, 0
- beq _08042F70
- b _080431A2
-_08042F5C:
- cmp r5, 0x3
- ble _08042F62
- b _080431A2
-_08042F62:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r3, _08042F6C @ =gUnknown_8259754
- lsls r6, r7, 2
- b _08043182
- .align 2, 0
-_08042F6C: .4byte gUnknown_8259754
-_08042F70:
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r6, r7, 2
-_08042F96:
- ldr r1, _08042FBC @ =gUnknown_8259754
- ldr r0, [sp, 0x4]
- lsls r2, r0, 3
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- adds r3, r1, 0
- cmp r0, 0xE
- bls _08042FB0
- b _08043110
-_08042FB0:
- lsls r0, 2
- ldr r1, _08042FC0 @ =_08042FC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042FBC: .4byte gUnknown_8259754
-_08042FC0: .4byte _08042FC4
- .align 2, 0
-_08042FC4:
- .4byte _08043000
- .4byte _08043110
- .4byte _08043110
- .4byte _08043016
- .4byte _08043110
- .4byte _08043110
- .4byte _08043110
- .4byte _08043026
- .4byte _08043050
- .4byte _0804307A
- .4byte _080430A8
- .4byte _080430C8
- .4byte _080430EC
- .4byte _08043110
- .4byte _080430FC
-_08043000:
- ldr r1, [sp, 0x8]
- cmp r1, 0xDB
- bhi _08043008
- b _08043110
-_08043008:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0, 0x4]
- mov r10, r0
- b _08043110
-_08043016:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _08043110
- b _0804310C
-_08043026:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _08043110
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bls _08043110
- b _080430A2
-_08043050:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _08043110
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _08043110
- b _080430A2
-_0804307A:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _08043110
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bcs _08043110
-_080430A2:
- ldrh r5, [r5, 0x4]
- mov r10, r5
- b _08043110
-_080430A8:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _08043110
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _08043110
- b _080430E6
-_080430C8:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _08043110
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _08043110
-_080430E6:
- ldrh r4, [r4, 0x4]
- mov r10, r4
- b _08043110
-_080430EC:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _08043110
- b _0804310C
-_080430FC:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- ldr r2, [sp, 0xC]
- cmp r0, r2
- bhi _08043110
-_0804310C:
- ldrh r1, [r1, 0x4]
- mov r10, r1
-_08043110:
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x4
- bgt _0804311C
- b _08042F96
-_0804311C:
- b _080431A2
-_0804311E:
- movs r1, 0
- str r1, [sp, 0x4]
- lsls r6, r7, 2
- ldr r1, _08043138 @ =gUnknown_8259754
- adds r0, r6, r7
- lsls r0, 3
- adds r4, r0, r1
-_0804312C:
- ldrh r0, [r4]
- cmp r0, 0x5
- beq _0804313C
- cmp r0, 0x6
- beq _08043142
- b _0804316E
- .align 2, 0
-_08043138: .4byte gUnknown_8259754
-_0804313C:
- ldrh r2, [r4, 0x4]
- mov r10, r2
- b _0804316E
-_08043142:
- ldrh r1, [r4, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- cmp r1, r0
- bne _0804316E
- ldrh r0, [r4, 0x4]
- mov r10, r0
- bl sub_806E25C
- cmp r0, 0
- bne _0804315E
- mov r1, r10
- cmp r1, 0x97
- bhi _0804316E
-_0804315E:
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl sub_804037C
-_0804316E:
- adds r4, 0x8
- ldr r2, [sp, 0x4]
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r2, 0x4
- ble _0804312C
- b _080431A2
-_0804317C:
- ldrh r1, [r1, 0x4]
- mov r10, r1
- b _080431A2
-_08043182:
- adds r0, r6, r7
- ldr r1, [sp, 0x4]
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _08043198
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- beq _0804317C
-_08043198:
- ldr r2, [sp, 0x4]
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r2, 0x4
- ble _08043182
-_080431A2:
- mov r0, r10
-_080431A4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8042EC4
-
- thumb_func_start sub_80431B4
-sub_80431B4: @ 80431B4
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _080431F8
- movs r1, 0
- ldr r3, _080431F0 @ =gUnknown_8251CB8
- ldrh r0, [r3]
- cmp r0, r2
- beq _080431E0
- movs r4, 0xCD
- lsls r4, 1
-_080431CC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _080431E0
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _080431CC
-_080431E0:
- ldr r0, _080431F4 @ =0x0000019b
- cmp r1, r0
- beq _080431F8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _080431FA
- .align 2, 0
-_080431F0: .4byte gUnknown_8251CB8
-_080431F4: .4byte 0x0000019b
-_080431F8:
- movs r0, 0
-_080431FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80431B4
-
- thumb_func_start NationalPokedexNumToSpecies
-NationalPokedexNumToSpecies: @ 8043200
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08043244
- movs r1, 0
- ldr r3, _0804323C @ =gUnknown_8251FEE
- ldrh r0, [r3]
- cmp r0, r2
- beq _0804322C
- movs r4, 0xCD
- lsls r4, 1
-_08043218:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0804322C
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _08043218
-_0804322C:
- ldr r0, _08043240 @ =0x0000019b
- cmp r1, r0
- beq _08043244
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _08043246
- .align 2, 0
-_0804323C: .4byte gUnknown_8251FEE
-_08043240: .4byte 0x0000019b
-_08043244:
- movs r0, 0
-_08043246:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalPokedexNumToSpecies
-
- thumb_func_start sub_804324C
-sub_804324C: @ 804324C
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08043290
- movs r1, 0
- ldr r3, _08043288 @ =gUnknown_8252324
- ldrh r0, [r3]
- cmp r0, r2
- beq _08043278
- movs r4, 0xCD
- lsls r4, 1
-_08043264:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _08043278
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _08043264
-_08043278:
- ldr r0, _0804328C @ =0x0000019b
- cmp r1, r0
- beq _08043290
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _08043292
- .align 2, 0
-_08043288: .4byte gUnknown_8252324
-_0804328C: .4byte 0x0000019b
-_08043290:
- movs r0, 0
-_08043292:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_804324C
-
- thumb_func_start SpeciesToNationalPokedexNum
-SpeciesToNationalPokedexNum: @ 8043298
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080432B4
- ldr r0, _080432B0 @ =gUnknown_8251FEE
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _080432B6
- .align 2, 0
-_080432B0: .4byte gUnknown_8251FEE
-_080432B4:
- movs r0, 0
-_080432B6:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToNationalPokedexNum
-
- thumb_func_start SpeciesToHoennPokedexNum
-SpeciesToHoennPokedexNum: @ 80432BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080432D8
- ldr r0, _080432D4 @ =gUnknown_8251CB8
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _080432DA
- .align 2, 0
-_080432D4: .4byte gUnknown_8251CB8
-_080432D8:
- movs r0, 0
-_080432DA:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToHoennPokedexNum
-
- thumb_func_start HoennToNationalOrder
-HoennToNationalOrder: @ 80432E0
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080432FC
- ldr r0, _080432F8 @ =gUnknown_8252324
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _080432FE
- .align 2, 0
-_080432F8: .4byte gUnknown_8252324
-_080432FC:
- movs r0, 0
-_080432FE:
- pop {r1}
- bx r1
- thumb_func_end HoennToNationalOrder
-
- thumb_func_start SpeciesToCryId
-SpeciesToCryId: @ 8043304
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0xFA
- bls _08043332
- ldr r0, _08043324 @ =0x00000113
- cmp r1, r0
- bls _08043330
- ldr r0, _08043328 @ =gUnknown_82539D4
- ldr r2, _0804332C @ =0xfffffeec
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _08043332
- .align 2, 0
-_08043324: .4byte 0x00000113
-_08043328: .4byte gUnknown_82539D4
-_0804332C: .4byte 0xfffffeec
-_08043330:
- movs r0, 0xC8
-_08043332:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToCryId
-
- thumb_func_start sub_8043338
-sub_8043338: @ 8043338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r6, r1, 0
- mov r10, r2
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _08043446
- ldr r0, _08043408 @ =gUnknown_202401C
- ldr r1, [r0]
- ldr r0, [r1, 0x4]
- cmp r10, r0
- beq _08043446
- ldr r0, [r1, 0xC]
- cmp r10, r0
- beq _08043446
- movs r5, 0
-_08043364:
- lsls r3, r5, 3
- adds r3, r5
- lsls r3, 2
- ldr r0, _0804340C @ =gUnknown_825265C
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r6, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r6
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r6, 8
- str r6, [sp, 0x4]
- adds r5, 0x1
- str r5, [sp]
- mov r9, r3
-_0804339C:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _08043410 @ =gUnknown_825265E
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _08043434
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_080433C0:
- adds r0, r4, 0
- cmp r4, 0
- bge _080433C8
- adds r0, r4, 0x7
-_080433C8:
- asrs r0, 3
- lsls r2, r0, 5
- add r2, r10
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08043428
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08043414
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _08043428
- adds r0, r1, 0
- adds r0, 0x40
- b _08043426
- .align 2, 0
-_08043408: .4byte gUnknown_202401C
-_0804340C: .4byte gUnknown_825265C
-_08043410: .4byte gUnknown_825265E
-_08043414:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08043428
- adds r0, r1, 0x4
-_08043426:
- strb r0, [r2]
-_08043428:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _080433C0
-_08043434:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0804339C
- ldr r6, [sp, 0x4]
- ldr r5, [sp]
- cmp r5, 0x3
- ble _08043364
-_08043446:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8043338
-
- thumb_func_start DrawSpindaSpots
-DrawSpindaSpots: @ 8043458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- str r2, [sp]
- lsls r0, 16
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0804355A
- cmp r3, 0
- beq _0804355A
- movs r6, 0
-_0804347C:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _08043520 @ =gUnknown_825265C
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- mov r10, r6
- mov r9, r3
-_080434B4:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _08043524 @ =gUnknown_825265E
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _08043548
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_080434D8:
- adds r0, r4, 0
- cmp r4, 0
- bge _080434E0
- adds r0, r4, 0x7
-_080434E0:
- asrs r0, 3
- lsls r2, r0, 5
- ldr r1, [sp]
- adds r2, r1, r2
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0804353C
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08043528
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0804353C
- adds r0, r1, 0
- adds r0, 0x40
- b _0804353A
- .align 2, 0
-_08043520: .4byte gUnknown_825265C
-_08043524: .4byte gUnknown_825265E
-_08043528:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0804353C
- adds r0, r1, 0x4
-_0804353A:
- strb r0, [r2]
-_0804353C:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _080434D8
-_08043548:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _080434B4
- ldr r5, [sp, 0x4]
- mov r6, r10
- cmp r6, 0x3
- ble _0804347C
-_0804355A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end DrawSpindaSpots
-
- thumb_func_start EvolutionRenameMon
-EvolutionRenameMon: @ 804356C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _080435D8 @ =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, r9
- bl GetMonData
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, sp
- bl GetMonData
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080435C8
- movs r6, 0xB
- adds r0, r7, 0
- muls r0, r6
- ldr r4, _080435DC @ =gUnknown_8245EE0
- adds r0, r4
- mov r1, r9
- bl StringCompare
- cmp r0, 0
- bne _080435C8
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_804037C
-_080435C8:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080435D8: .4byte gStringVar1
-_080435DC: .4byte gUnknown_8245EE0
- thumb_func_end EvolutionRenameMon
-
- thumb_func_start sub_80435E0
-sub_80435E0: @ 80435E0
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _08043608 @ =gUnknown_202273C
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0804360C
- cmp r0, 0x1
- bge _08043614
- cmp r0, 0
- beq _08043610
- b _08043616
- .align 2, 0
-_08043608: .4byte gUnknown_202273C
-_0804360C:
- cmp r0, 0x3
- bne _08043616
-_08043610:
- movs r5, 0
- b _08043616
-_08043614:
- movs r5, 0x1
-_08043616:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80435E0
-
- thumb_func_start sub_8043620
-sub_8043620: @ 8043620
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _08043644 @ =gUnknown_202273C
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _08043648
- cmp r0, 0x1
- bge _08043650
- cmp r0, 0
- beq _0804364C
- b _08043652
- .align 2, 0
-_08043644: .4byte gUnknown_202273C
-_08043648:
- cmp r0, 0x3
- bne _08043652
-_0804364C:
- movs r3, 0
- b _08043652
-_08043650:
- movs r3, 0x1
-_08043652:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8043620
-
- thumb_func_start GetBankMultiplayerId
-GetBankMultiplayerId: @ 8043658
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _08043664 @ =gUnknown_202273C
- b _08043670
- .align 2, 0
-_08043664: .4byte gUnknown_202273C
-_08043668:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08043676
-_08043670:
- ldrh r0, [r1, 0x18]
- cmp r0, r3
- bne _08043668
-_08043676:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end GetBankMultiplayerId
-
- thumb_func_start sub_804367C
-sub_804367C: @ 804367C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08043694 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x2]
- movs r0, 0x7F
- ands r0, r1
- bx lr
- .align 2, 0
-_08043694: .4byte gTrainers
- thumb_func_end sub_804367C
-
- thumb_func_start nature_stat_mod
-nature_stat_mod: @ 8043698
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0xFF
- lsls r0, 24
- adds r2, r0
- lsrs r2, 24
- cmp r2, 0x4
- bls _080436B6
- adds r0, r3, 0
- b _080436F2
-_080436B6:
- ldr r0, _080436D8 @ =gUnknown_8252B48
- lsls r1, r4, 2
- adds r1, r4
- subs r1, 0x1
- adds r1, r5, r1
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080436DC
- cmp r1, 0x1
- bne _080436F0
- movs r0, 0x6E
- b _080436DE
- .align 2, 0
-_080436D8: .4byte gUnknown_8252B48
-_080436DC:
- movs r0, 0x5A
-_080436DE:
- muls r0, r3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- b _080436F2
-_080436F0:
- adds r0, r3, 0
-_080436F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end nature_stat_mod
-
- thumb_func_start sub_80436F8
-sub_80436F8: @ 80436F8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08043758
- ldr r0, _08043738 @ =gMain
- ldr r1, _0804373C @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08043744
- ldr r0, _08043740 @ =gUnknown_2023F54
- ldrb r4, [r0, 0x7]
- b _08043760
- .align 2, 0
-_08043738: .4byte gMain
-_0804373C: .4byte 0x00000439
-_08043740: .4byte gUnknown_2023F54
-_08043744:
- ldr r0, _08043750 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08043754 @ =0x0000311a
- adds r0, r1
- ldrb r4, [r0]
- b _08043760
- .align 2, 0
-_08043750: .4byte gSaveBlock1Ptr
-_08043754: .4byte 0x0000311a
-_08043758:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08043760:
- cmp r6, 0
- bne _08043766
- b _08043876
-_08043766:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- bne _08043770
- b _08043876
-_08043770:
- movs r6, 0
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x63
- ble _0804378E
- movs r6, 0x1
-_0804378E:
- cmp r0, 0xC7
- ble _08043798
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08043798:
- cmp r5, 0x5
- bne _080437A8
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _08043876
-_080437A8:
- cmp r5, 0x3
- bne _080437D4
- ldr r0, _08043880 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08043876
- ldr r2, _08043884 @ =gTrainers
- ldr r0, _08043888 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x54
- beq _080437D4
- cmp r0, 0x57
- beq _080437D4
- cmp r0, 0x5A
- bne _08043876
-_080437D4:
- ldr r1, _0804388C @ =gUnknown_825DFF6
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _080437FA
- cmp r4, 0x1B
- bne _080437FA
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
-_080437FA:
- lsls r2, 24
- asrs r2, 24
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r2
- mov r1, sp
- strh r0, [r1]
- cmp r2, 0
- ble _0804384C
- adds r0, r7, 0
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _08043828
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_08043828:
- adds r0, r7, 0
- 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 _0804384C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0804384C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0804385C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
-_0804385C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- ble _0804386C
- movs r1, 0xFF
- mov r0, sp
- strh r1, [r0]
-_0804386C:
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl sub_804037C
-_08043876:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043880: .4byte gBattleTypeFlags
-_08043884: .4byte gTrainers
-_08043888: .4byte gTrainerBattleOpponent_A
-_0804388C: .4byte gUnknown_825DFF6
- thumb_func_end sub_80436F8
-
- thumb_func_start MonGainEVs
-MonGainEVs: @ 8043890
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- movs r7, 0
- movs r6, 0
-_080438A4:
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- movs r2, 0
- bl GetMonData
- mov r2, sp
- adds r1, r2, r6
- strb r0, [r1]
- ldrb r0, [r1]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r6, 0x1
- cmp r6, 0x5
- ble _080438A4
- movs r6, 0
- b _08043A26
-_080438C8:
- mov r0, r8
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- movs r2, 0x1
- cmp r0, 0
- beq _080438DA
- movs r2, 0x2
-_080438DA:
- cmp r6, 0x5
- bhi _0804397C
- lsls r0, r6, 2
- ldr r1, _080438E8 @ =_080438EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080438E8: .4byte _080438EC
- .align 2, 0
-_080438EC:
- .4byte _08043904
- .4byte _08043918
- .4byte _0804392C
- .4byte _08043940
- .4byte _08043954
- .4byte _08043968
-_08043904:
- ldr r0, _08043914 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 30
- b _08043976
- .align 2, 0
-_08043914: .4byte gBaseStats
-_08043918:
- ldr r0, _08043928 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _08043974
- .align 2, 0
-_08043928: .4byte gBaseStats
-_0804392C:
- ldr r0, _0804393C @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 26
- b _08043976
- .align 2, 0
-_0804393C: .4byte gBaseStats
-_08043940:
- ldr r0, _08043950 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsrs r0, 6
- b _08043978
- .align 2, 0
-_08043950: .4byte gBaseStats
-_08043954:
- ldr r0, _08043964 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 30
- b _08043976
- .align 2, 0
-_08043964: .4byte gBaseStats
-_08043968:
- ldr r0, _080439A4 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
-_08043974:
- lsls r0, 28
-_08043976:
- lsrs r0, 30
-_08043978:
- adds r4, r0, 0
- muls r4, r2
-_0804397C:
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080439C8
- ldr r0, _080439A8 @ =gMain
- ldr r1, _080439AC @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080439B4
- ldr r0, _080439B0 @ =gUnknown_2023F54
- ldrb r0, [r0, 0x7]
- b _080439D0
- .align 2, 0
-_080439A4: .4byte gBaseStats
-_080439A8: .4byte gMain
-_080439AC: .4byte 0x00000439
-_080439B0: .4byte gUnknown_2023F54
-_080439B4:
- ldr r0, _080439C0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, _080439C4 @ =0x0000311a
- adds r0, r2
- ldrb r0, [r0]
- b _080439D0
- .align 2, 0
-_080439C0: .4byte gSaveBlock1Ptr
-_080439C4: .4byte 0x0000311a
-_080439C8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_080439D0:
- cmp r0, 0x18
- bne _080439D8
- lsls r0, r4, 17
- lsrs r4, r0, 16
-_080439D8:
- lsls r0, r4, 16
- asrs r2, r0, 16
- adds r1, r7, r2
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- ble _080439F0
- adds r0, r2, r0
- adds r1, r7, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080439F0:
- mov r0, sp
- adds r2, r0, r6
- ldrb r3, [r2]
- lsls r0, r4, 16
- asrs r1, r0, 16
- adds r0, r3, r1
- cmp r0, 0xFF
- ble _08043A0C
- adds r0, r1, 0
- adds r0, 0xFF
- adds r1, r3, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_08043A0C:
- adds r0, r3, r4
- strb r0, [r2]
- adds r0, r7, r4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- bl sub_804037C
- adds r6, 0x1
- cmp r6, 0x5
- bgt _08043A2E
-_08043A26:
- ldr r0, _08043A3C @ =0x000001fd
- cmp r7, r0
- bhi _08043A2E
- b _080438C8
-_08043A2E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043A3C: .4byte 0x000001fd
- thumb_func_end MonGainEVs
-
- thumb_func_start GetMonEVCount
-GetMonEVCount: @ 8043A40
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08043A48:
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0x5
- ble _08043A48
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMonEVCount
-
- thumb_func_start sub_8043A68
-sub_8043A68: @ 8043A68
- sub sp, 0x4
- add sp, 0x4
- bx lr
- thumb_func_end sub_8043A68
-
- thumb_func_start CheckPartyPokerus
-CheckPartyPokerus: @ 8043A70
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08043AB8
-_08043A84:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08043AAC
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _08043AAC
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_08043AAC:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08043A84
- b _08043ACC
-_08043AB8:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- beq _08043ACC
- movs r5, 0x1
-_08043ACC:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyPokerus
-
- thumb_func_start CheckPartyHasHadPokerus
-CheckPartyHasHadPokerus: @ 8043AD8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08043B1C
-_08043AEC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08043B10
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- ldr r3, [sp]
- cmp r0, 0
- beq _08043B10
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_08043B10:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08043AEC
- b _08043B2C
-_08043B1C:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08043B2C
- movs r5, 0x1
-_08043B2C:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyHasHadPokerus
-
- thumb_func_start sub_8043B38
-sub_8043B38: @ 8043B38
- sub sp, 0x4
- add sp, 0x4
- bx lr
- thumb_func_end sub_8043B38
-
- thumb_func_start sub_8043B40
-sub_8043B40: @ 8043B40
- sub sp, 0x4
- add sp, 0x4
- bx lr
- thumb_func_end sub_8043B40
-
- thumb_func_start sub_8043B48
-sub_8043B48: @ 8043B48
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- str r3, [sp]
- ldr r2, _08043B88 @ =gUnknown_8253AE4
- ldr r3, _08043B8C @ =gBaseStats
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- movs r1, 0xC8
- lsls r1, 1
- adds r2, r1
- adds r0, r2
- ldr r1, [r0]
- ldr r0, [sp]
- cmp r0, r1
- bls _08043B80
- str r1, [sp]
- adds r0, r4, 0
- movs r1, 0x19
- mov r2, sp
- bl sub_804037C
-_08043B80:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08043B88: .4byte gUnknown_8253AE4
-_08043B8C: .4byte gBaseStats
- thumb_func_end sub_8043B48
-
- thumb_func_start sub_8043B90
-sub_8043B90: @ 8043B90
- push {r4-r7,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x19
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- cmp r7, 0x63
- bhi _08043C14
- ldr r3, _08043C0C @ =gUnknown_8253AE4
- mov r0, sp
- ldrb r1, [r0]
- lsls r1, 2
- ldr r2, _08043C10 @ =gBaseStats
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r3
- ldr r0, [r1]
- cmp r5, r0
- bls _08043C20
- adds r0, r4, 0
- movs r1, 0x38
- mov r2, sp
- bl sub_804037C
- mov r0, sp
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r3, r5, 0
- bl sub_8043B48
- movs r0, 0x1
- b _08043C22
- .align 2, 0
-_08043C0C: .4byte gUnknown_8253AE4
-_08043C10: .4byte gBaseStats
-_08043C14:
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl sub_8043B48
-_08043C20:
- movs r0, 0
-_08043C22:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8043B90
-
- thumb_func_start CanMonLearnTMHM
-CanMonLearnTMHM: @ 8043C2C
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- adds r3, r1, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08043C4E
- movs r0, 0
- b _08043C7A
-_08043C4E:
- cmp r4, 0x1F
- bls _08043C6C
- adds r0, r4, 0
- subs r0, 0x20
- movs r2, 0x1
- lsls r2, r0
- ldr r0, _08043C68 @ =gUnknown_8252BC8
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- ands r0, r2
- b _08043C7A
- .align 2, 0
-_08043C68: .4byte gUnknown_8252BC8
-_08043C6C:
- movs r1, 0x1
- lsls r1, r5
- ldr r2, _08043C80 @ =gUnknown_8252BC8
- lsls r0, r3, 3
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
-_08043C7A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08043C80: .4byte gUnknown_8252BC8
- thumb_func_end CanMonLearnTMHM
-
- thumb_func_start GetMoveRelearnerMoves
-GetMoveRelearnerMoves: @ 8043C84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r6, r0, 0
- str r1, [sp, 0x8]
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- movs r5, 0
- mov r4, sp
-_08043CBA:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08043CBA
- movs r5, 0
- ldr r6, _08043DC8 @ =gUnknown_825D7B4
- lsls r1, r7, 2
- adds r2, r1, r6
- ldr r3, [r2]
- ldrh r0, [r3]
- ldr r4, _08043DCC @ =0x0000ffff
- str r1, [sp, 0x14]
- cmp r0, r4
- beq _08043DB4
- mov r9, r2
- str r3, [sp, 0x10]
-_08043CE8:
- lsls r2, r5, 1
- ldr r1, [sp, 0x10]
- adds r0, r2, r1
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0xC]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _08043D9E
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _08043DD0 @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _08043D38
- ldr r0, [sp, 0x14]
- ldr r1, _08043DC8 @ =gUnknown_825D7B4
- adds r6, r0, r1
- ldr r2, _08043DD0 @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08043D20:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08043D38
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08043D20
-_08043D38:
- cmp r4, 0x4
- bne _08043D9E
- movs r4, 0
- cmp r4, r10
- bge _08043D7C
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x8]
- ldrh r2, [r0]
- ldr r0, _08043DD0 @ =0x000001ff
- ands r0, r1
- cmp r2, r0
- beq _08043D7C
- ldr r1, [sp, 0x14]
- ldr r2, _08043DC8 @ =gUnknown_825D7B4
- adds r6, r1, r2
- ldr r0, _08043DD0 @ =0x000001ff
- mov r8, r0
- ldr r3, [sp, 0x8]
- adds r5, r7, 0
-_08043D64:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _08043D7C
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08043D64
-_08043D7C:
- cmp r4, r10
- bne _08043D9E
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r1, [sp, 0x8]
- adds r2, r1
- mov r4, r9
- ldr r0, [r4]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _08043DD0 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_08043D9E:
- mov r5, r12
- cmp r5, 0x13
- bgt _08043DB4
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _08043DCC @ =0x0000ffff
- cmp r0, r2
- bne _08043CE8
-_08043DB4:
- mov r0, r10
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043DC8: .4byte gUnknown_825D7B4
-_08043DCC: .4byte 0x0000ffff
-_08043DD0: .4byte 0x000001ff
- thumb_func_end GetMoveRelearnerMoves
-
- thumb_func_start GetLevelUpMovesBySpecies
-GetLevelUpMovesBySpecies: @ 8043DD4
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- movs r5, 0
- movs r4, 0
- ldr r1, _08043E20 @ =gUnknown_825D7B4
- lsrs r0, 14
- adds r0, r1
- ldr r2, [r0]
- ldrh r0, [r2]
- ldr r1, _08043E24 @ =0x0000ffff
- cmp r0, r1
- beq _08043E18
- ldr r0, _08043E28 @ =0x000001ff
- mov r12, r0
- adds r7, r1, 0
- adds r3, r2, 0
-_08043DF6:
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 1
- adds r1, r6
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- strh r0, [r1]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x13
- bgt _08043E18
- ldrh r0, [r3]
- cmp r0, r7
- bne _08043DF6
-_08043E18:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043E20: .4byte gUnknown_825D7B4
-_08043E24: .4byte 0x0000ffff
-_08043E28: .4byte 0x000001ff
- thumb_func_end GetLevelUpMovesBySpecies
-
- thumb_func_start GetNumberOfRelearnableMoves
-GetNumberOfRelearnableMoves: @ 8043E2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- adds r6, r0, 0
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x30]
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _08043E68
- movs r0, 0
- b _08043F72
-_08043E68:
- movs r5, 0
- lsls r4, 2
- str r4, [sp, 0x38]
- mov r4, sp
-_08043E70:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08043E70
- movs r5, 0
- ldr r3, _08043F84 @ =gUnknown_825D7B4
- ldr r2, [sp, 0x38]
- adds r1, r2, r3
- ldr r0, [r1]
- ldrh r0, [r0]
- ldr r2, _08043F88 @ =0x0000ffff
- cmp r0, r2
- beq _08043F70
- mov r9, r1
- mov r4, sp
- adds r4, 0x8
- str r4, [sp, 0x34]
-_08043EA0:
- mov r1, r9
- ldr r0, [r1]
- lsls r2, r5, 1
- adds r0, r2, r0
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0x30]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _08043F5A
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _08043F8C @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _08043EF2
- ldr r0, [sp, 0x38]
- ldr r1, _08043F84 @ =gUnknown_825D7B4
- adds r6, r0, r1
- ldr r2, _08043F8C @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08043EDA:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08043EF2
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08043EDA
-_08043EF2:
- cmp r4, 0x4
- bne _08043F5A
- movs r4, 0
- cmp r4, r10
- bge _08043F38
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x34]
- ldrh r2, [r0]
- ldr r0, _08043F8C @ =0x000001ff
- ands r0, r1
- add r1, sp, 0x8
- cmp r2, r0
- beq _08043F38
- ldr r2, [sp, 0x38]
- ldr r0, _08043F84 @ =gUnknown_825D7B4
- adds r6, r2, r0
- ldr r2, _08043F8C @ =0x000001ff
- mov r8, r2
- adds r3, r1, 0
- adds r5, r7, 0
-_08043F20:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _08043F38
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08043F20
-_08043F38:
- cmp r4, r10
- bne _08043F5A
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r4, [sp, 0x34]
- adds r2, r4, r2
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _08043F8C @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_08043F5A:
- mov r5, r12
- cmp r5, 0x13
- bgt _08043F70
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r4, _08043F88 @ =0x0000ffff
- cmp r0, r4
- bne _08043EA0
-_08043F70:
- mov r0, r10
-_08043F72:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043F84: .4byte gUnknown_825D7B4
-_08043F88: .4byte 0x0000ffff
-_08043F8C: .4byte 0x000001ff
- thumb_func_end GetNumberOfRelearnableMoves
-
- thumb_func_start sub_8043F90
-sub_8043F90: @ 8043F90
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- bl sub_806E25C
- cmp r0, 0
- bne _08043FB4
- cmp r4, 0x97
- bls _08043FB4
- ldr r0, _08043FB0 @ =0x0000ffff
- b _08043FB6
- .align 2, 0
-_08043FB0: .4byte 0x0000ffff
-_08043FB4:
- adds r0, r4, 0
-_08043FB6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8043F90
-
- thumb_func_start sub_8043FBC
-sub_8043FBC: @ 8043FBC
- push {lr}
- ldr r1, _08043FD0 @ =gUnknown_2024024
- movs r2, 0
- adds r0, r1, 0x3
-_08043FC4:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08043FC4
- pop {r0}
- bx r0
- .align 2, 0
-_08043FD0: .4byte gUnknown_2024024
- thumb_func_end sub_8043FBC
-
- thumb_func_start sub_8043FD4
-sub_8043FD4: @ 8043FD4
- push {lr}
- ldr r0, _08043FFC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _0804406C
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _08043FF6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08044000
-_08043FF6:
- movs r0, 0x85
- lsls r0, 1
- b _08044070
- .align 2, 0
-_08043FFC: .4byte gBattleTypeFlags
-_08044000:
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _0804406C
- ldr r2, _08044028 @ =gTrainers
- ldr r0, _0804402C @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- subs r0, 0x53
- cmp r0, 0x7
- bhi _08044062
- lsls r0, 2
- ldr r1, _08044030 @ =_08044034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08044028: .4byte gTrainers
-_0804402C: .4byte gTrainerBattleOpponent_A
-_08044030: .4byte _08044034
- .align 2, 0
-_08044034:
- .4byte _08044062
- .4byte _0804405C
- .4byte _08044062
- .4byte _08044062
- .4byte _0804405C
- .4byte _08044062
- .4byte _08044062
- .4byte _08044054
-_08044054:
- ldr r0, _08044058 @ =0x0000012b
- b _08044070
- .align 2, 0
-_08044058: .4byte 0x0000012b
-_0804405C:
- movs r0, 0x94
- lsls r0, 1
- b _08044070
-_08044062:
- ldr r0, _08044068 @ =0x00000129
- b _08044070
- .align 2, 0
-_08044068: .4byte 0x00000129
-_0804406C:
- movs r0, 0x95
- lsls r0, 1
-_08044070:
- pop {r1}
- bx r1
- thumb_func_end sub_8043FD4
-
- thumb_func_start PlayBattleBGM
-PlayBattleBGM: @ 8044074
- push {lr}
- bl ResetMapMusic
- bl m4aMPlayAllStop
- bl sub_8043FD4
- lsls r0, 16
- lsrs r0, 16
- bl PlayBGM
- pop {r0}
- bx r0
- thumb_func_end PlayBattleBGM
-
- thumb_func_start PlayMapChosenOrBattleBGM
-PlayMapChosenOrBattleBGM: @ 8044090
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl ResetMapMusic
- bl m4aMPlayAllStop
- cmp r4, 0
- beq _080440AA
- adds r0, r4, 0
- bl PlayNewMapMusic
- b _080440B6
-_080440AA:
- bl sub_8043FD4
- lsls r0, 16
- lsrs r0, 16
- bl PlayNewMapMusic
-_080440B6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayMapChosenOrBattleBGM
-
- thumb_func_start GetMonFrontSpritePal
-GetMonFrontSpritePal: @ 80440BC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl GetFrontSpritePalFromSpeciesAndPersonality
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMonFrontSpritePal
-
- thumb_func_start GetFrontSpritePalFromSpeciesAndPersonality
-GetFrontSpritePalFromSpeciesAndPersonality: @ 80440F4
- push {r4,r5,lr}
- adds r3, r2, 0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08044110
- ldr r0, _0804410C @ =gUnknown_823730C
- ldr r0, [r0]
- b _0804413C
- .align 2, 0
-_0804410C: .4byte gUnknown_823730C
-_08044110:
- lsrs r0, r1, 16
- ldr r2, _0804412C @ =0x0000ffff
- ands r1, r2
- eors r0, r1
- lsrs r1, r3, 16
- eors r0, r1
- ands r3, r2
- eors r0, r3
- cmp r0, 0x7
- bls _08044134
- ldr r0, _08044130 @ =gUnknown_823730C
- lsls r1, r4, 3
- b _08044138
- .align 2, 0
-_0804412C: .4byte 0x0000ffff
-_08044130: .4byte gUnknown_823730C
-_08044134:
- ldr r0, _08044144 @ =gUnknown_82380CC
- lsls r1, r5, 3
-_08044138:
- adds r1, r0
- ldr r0, [r1]
-_0804413C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08044144: .4byte gUnknown_82380CC
- thumb_func_end GetFrontSpritePalFromSpeciesAndPersonality
-
- thumb_func_start GetMonSpritePalStruct
-GetMonSpritePalStruct: @ 8044148
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl GetMonSpritePalStructFromOtIdPersonality
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMonSpritePalStruct
-
- thumb_func_start GetMonSpritePalStructFromOtIdPersonality
-GetMonSpritePalStructFromOtIdPersonality: @ 8044180
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsrs r0, r1, 16
- ldr r3, _080441A0 @ =0x0000ffff
- ands r1, r3
- eors r0, r1
- lsrs r1, r2, 16
- eors r0, r1
- ands r2, r3
- eors r0, r2
- cmp r0, 0x7
- bls _080441A8
- lsls r0, r4, 3
- ldr r1, _080441A4 @ =gUnknown_823730C
- b _080441AC
- .align 2, 0
-_080441A0: .4byte 0x0000ffff
-_080441A4: .4byte gUnknown_823730C
-_080441A8:
- lsls r0, r4, 3
- ldr r1, _080441B4 @ =gUnknown_82380CC
-_080441AC:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080441B4: .4byte gUnknown_82380CC
- thumb_func_end GetMonSpritePalStructFromOtIdPersonality
-
- thumb_func_start IsHMMove2
-IsHMMove2: @ 80441B8
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _080441DC @ =gUnknown_825E014
- ldrh r0, [r2]
- ldr r1, _080441E0 @ =0x0000ffff
- cmp r0, r1
- beq _080441EA
- adds r4, r1, 0
- adds r1, r2, 0
-_080441CC:
- ldrh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- cmp r0, r3
- bne _080441E4
- movs r0, 0x1
- b _080441EC
- .align 2, 0
-_080441DC: .4byte gUnknown_825E014
-_080441E0: .4byte 0x0000ffff
-_080441E4:
- ldrh r0, [r1]
- cmp r0, r4
- bne _080441CC
-_080441EA:
- movs r0, 0
-_080441EC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsHMMove2
-
- thumb_func_start IsPokeSpriteNotFlipped
-IsPokeSpriteNotFlipped: @ 80441F4
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08044208 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x19]
- lsrs r0, 7
- bx lr
- .align 2, 0
-_08044208: .4byte gBaseStats
- thumb_func_end IsPokeSpriteNotFlipped
-
- thumb_func_start GetMonFlavorRelation
-GetMonFlavorRelation: @ 804420C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08044230 @ =gUnknown_825DE24
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08044230: .4byte gUnknown_825DE24
- thumb_func_end GetMonFlavorRelation
-
- thumb_func_start GetFlavorRelationByPersonality
-GetFlavorRelationByPersonality: @ 8044234
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08044258 @ =gUnknown_825DE24
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08044258: .4byte gUnknown_825DE24
- thumb_func_end GetFlavorRelationByPersonality
-
- thumb_func_start IsTradedMon
-IsTradedMon: @ 804425C
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r1, 0x7
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- mov r1, sp
- bl IsOtherTrainer
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsTradedMon
-
- thumb_func_start IsOtherTrainer
-IsOtherTrainer: @ 8044288
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r1, _080442CC @ =gSaveBlock2Ptr
- ldr r3, [r1]
- ldrb r2, [r3, 0xA]
- ldrb r1, [r3, 0xB]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r3, 0xC]
- lsls r1, 16
- orrs r2, r1
- ldrb r1, [r3, 0xD]
- lsls r1, 24
- orrs r2, r1
- cmp r0, r2
- bne _080442D0
- movs r4, 0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080442C6
- adds r2, r5, 0
-_080442B2:
- adds r1, r3, r4
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080442D0
- adds r2, 0x1
- adds r4, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080442B2
-_080442C6:
- movs r0, 0
- b _080442D2
- .align 2, 0
-_080442CC: .4byte gSaveBlock2Ptr
-_080442D0:
- movs r0, 0x1
-_080442D2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsOtherTrainer
-
- thumb_func_start MonRestorePP
-MonRestorePP: @ 80442D8
- push {lr}
- bl BoxMonRestorePP
- pop {r0}
- bx r0
- thumb_func_end MonRestorePP
-
- thumb_func_start BoxMonRestorePP
-BoxMonRestorePP: @ 80442E4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
-_080442EC:
- adds r4, r6, 0
- adds r4, 0xD
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- beq _08044338
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl CalculatePPWithBonus
- mov r1, sp
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl sub_80404D0
-_08044338:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080442EC
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end BoxMonRestorePP
-
- thumb_func_start sub_8044348
-sub_8044348: @ 8044348
- push {r4,r5,lr}
- ldr r2, _0804438C @ =gUnknown_2023D6A
- ldr r5, _08044390 @ =gBattleStruct
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r4, _08044394 @ =gUnknown_2022AB8
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x4
- strb r0, [r4, 0x1]
- adds r1, 0x49
- ldrb r0, [r1]
- strb r0, [r4, 0x2]
- movs r0, 0xFF
- strb r0, [r4, 0x4]
- ldrb r0, [r1]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0804439C
- ldr r1, _08044398 @ =gBattlerPartyIndexes
- ldr r0, [r5]
- adds r0, 0x49
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- b _080443AA
- .align 2, 0
-_0804438C: .4byte gUnknown_2023D6A
-_08044390: .4byte gBattleStruct
-_08044394: .4byte gUnknown_2022AB8
-_08044398: .4byte gBattlerPartyIndexes
-_0804439C:
- ldr r1, _080443E0 @ =gBattlerPartyIndexes
- ldr r0, [r5]
- adds r0, 0x49
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
-_080443AA:
- strb r0, [r4, 0x3]
- ldr r4, _080443E4 @ =gUnknown_2022AC8
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x4
- strb r0, [r4, 0x1]
- ldr r1, _080443E8 @ =gUnknown_2024004
- ldrb r0, [r1]
- strb r0, [r4, 0x2]
- ldr r2, _080443E0 @ =gBattlerPartyIndexes
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- bl pokemon_order_func
- strb r0, [r4, 0x3]
- movs r0, 0xFF
- strb r0, [r4, 0x4]
- ldr r0, _080443EC @ =gUnknown_83FCA2C
- ldr r1, _080443F0 @ =gStringVar4
- bl sub_80D7868
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080443E0: .4byte gBattlerPartyIndexes
-_080443E4: .4byte gUnknown_2022AC8
-_080443E8: .4byte gUnknown_2024004
-_080443EC: .4byte gUnknown_83FCA2C
-_080443F0: .4byte gStringVar4
- thumb_func_end sub_8044348
-
- thumb_func_start SetWildMonHeldItem
-SetWildMonHeldItem: @ 80443F4
- push {r4,r5,lr}
- ldr r0, _0804444C @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08044450 @ =0x00012008
- ands r0, r1
- cmp r0, 0
- bne _08044468
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, _08044454 @ =gEnemyParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08044458 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r3, r1, 2
- adds r1, r3, r2
- ldrh r0, [r1, 0xC]
- ldrh r1, [r1, 0xE]
- cmp r0, r1
- beq _0804443E
- cmp r5, 0x2C
- bls _08044468
- cmp r5, 0x5E
- bhi _0804445C
-_0804443E:
- adds r2, 0xC
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl sub_804037C
- b _08044468
- .align 2, 0
-_0804444C: .4byte gBattleTypeFlags
-_08044450: .4byte 0x00012008
-_08044454: .4byte gEnemyParty
-_08044458: .4byte gBaseStats
-_0804445C:
- adds r2, 0xE
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl sub_804037C
-_08044468:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end SetWildMonHeldItem
-
- thumb_func_start IsMonShiny
-IsMonShiny: @ 8044470
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- bl IsShinyOtIdPersonality
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsMonShiny
-
- thumb_func_start IsShinyOtIdPersonality
-IsShinyOtIdPersonality: @ 804449C
- push {r4,lr}
- movs r4, 0
- lsrs r2, r0, 16
- ldr r3, _080444C0 @ =0x0000ffff
- ands r0, r3
- eors r2, r0
- lsrs r0, r1, 16
- eors r2, r0
- ands r1, r3
- eors r2, r1
- cmp r2, 0x7
- bhi _080444B6
- movs r4, 0x1
-_080444B6:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080444C0: .4byte 0x0000ffff
- thumb_func_end IsShinyOtIdPersonality
-
- thumb_func_start sub_80444C4
-sub_80444C4: @ 80444C4
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080444F4 @ =gUnknown_202273C
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x18]
- movs r0, 0x2
- eors r0, r1
- bl GetBankMultiplayerId
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080444F4: .4byte gUnknown_202273C
- thumb_func_end sub_80444C4
-
thumb_func_start sub_80444F8
sub_80444F8: @ 80444F8
push {r4-r6,lr}
@@ -4518,12 +53,12 @@ _08044548: .4byte gPlayerParty
sub_804454C: @ 804454C
lsls r0, 16
lsrs r0, 16
- ldr r1, _08044558 @ =gUnknown_82538A8
+ ldr r1, _08044558 @ =gFacilityClassToPicIndex
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
-_08044558: .4byte gUnknown_82538A8
+_08044558: .4byte gFacilityClassToPicIndex
thumb_func_end sub_804454C
thumb_func_start sub_804455C
@@ -4617,7 +152,7 @@ _080445F4:
cmp r2, 0
beq _08044658
_0804461A:
- ldr r4, _08044644 @ =gUnknown_202273C
+ ldr r4, _08044644 @ =gLinkPlayers
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
@@ -4635,7 +170,7 @@ _08044632:
_08044638: .4byte gBattleTypeFlags
_0804463C: .4byte gMain
_08044640: .4byte 0x00000439
-_08044644: .4byte gUnknown_202273C
+_08044644: .4byte gLinkPlayers
_08044648:
ldr r0, _0804466C @ =gMain
ldr r1, _08044670 @ =0x00000439
@@ -4647,7 +182,7 @@ _08044648:
beq _08044632
_08044658:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08044632
@@ -4765,7 +300,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3B
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
movs r2, 0
@@ -4774,7 +309,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3C
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
movs r2, 0
@@ -4783,7 +318,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3D
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
movs r2, 0
@@ -4792,7 +327,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3E
mov r2, sp
- bl sub_804037C
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
movs r2, 0
@@ -4801,7 +336,7 @@ _0804470E:
adds r0, r4, 0
movs r1, 0x3F
mov r2, sp
- bl sub_804037C
+ bl SetMonData
_08044798:
adds r5, 0x1
cmp r5, 0x5
@@ -4822,7 +357,7 @@ sub_80447AC: @ 80447AC
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r3, _080447E8 @ =gUnknown_202273C
+ ldr r3, _080447E8 @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -4845,7 +380,7 @@ sub_80447AC: @ 80447AC
pop {r1}
bx r1
.align 2, 0
-_080447E8: .4byte gUnknown_202273C
+_080447E8: .4byte gLinkPlayers
_080447EC: .4byte gUnknown_825E032
thumb_func_end sub_80447AC
@@ -4857,7 +392,7 @@ sub_80447F0: @ 80447F0
eors r0, r1
lsls r0, 24
lsrs r0, 24
- ldr r3, _0804482C @ =gUnknown_202273C
+ ldr r3, _0804482C @ =gLinkPlayers
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -4870,7 +405,7 @@ sub_80447F0: @ 80447F0
ldrb r0, [r1, 0x13]
lsls r0, 3
orrs r2, r0
- ldr r1, _08044830 @ =gUnknown_825393E
+ ldr r1, _08044830 @ =gFacilityClassToTrainerClass
ldr r0, _08044834 @ =gUnknown_825E032
lsls r2, 1
adds r2, r0
@@ -4880,8 +415,8 @@ sub_80447F0: @ 80447F0
pop {r1}
bx r1
.align 2, 0
-_0804482C: .4byte gUnknown_202273C
-_08044830: .4byte gUnknown_825393E
+_0804482C: .4byte gLinkPlayers
+_08044830: .4byte gFacilityClassToTrainerClass
_08044834: .4byte gUnknown_825E032
thumb_func_end sub_80447F0
@@ -4908,7 +443,7 @@ sub_8044838: @ 8044838
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x20
- bl sub_803E1EC
+ bl CreateObedientMon
cmp r6, 0
beq _08044880
add r0, sp, 0x10
@@ -4919,7 +454,7 @@ sub_8044838: @ 8044838
adds r0, r7, 0
movs r1, 0xC
add r2, sp, 0x10
- bl sub_804037C
+ bl SetMonData
_08044880:
add sp, 0x14
pop {r4-r7}
@@ -4997,7 +532,7 @@ sub_80448F8: @ 80448F8
cmp r0, 0
beq _08044944
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08044944