summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_9.s24
-rw-r--r--[-rwxr-xr-x]asm/current.s0
-rw-r--r--[-rwxr-xr-x]asm/dark.s0
-rw-r--r--[-rwxr-xr-x]asm/fight.s0
-rw-r--r--[-rwxr-xr-x]asm/flying.s0
-rw-r--r--[-rwxr-xr-x]asm/ghost.s0
-rw-r--r--[-rwxr-xr-x]asm/ground.s0
-rw-r--r--[-rwxr-xr-x]asm/ice.s0
-rw-r--r--[-rwxr-xr-x]asm/normal.s0
-rw-r--r--[-rwxr-xr-x]asm/pc_screen_effect.s0
-rw-r--r--asm/pokemon_item_effect.s1969
-rw-r--r--[-rwxr-xr-x]asm/psychic.s0
-rw-r--r--[-rwxr-xr-x]asm/rock.s0
-rw-r--r--[-rwxr-xr-x]asm/unk_text_8095904.s0
-rw-r--r--[-rwxr-xr-x]asm/water.s0
15 files changed, 12 insertions, 1981 deletions
diff --git a/asm/battle_9.s b/asm/battle_9.s
index fc4cbcf4b..9dbb7c619 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -273,7 +273,7 @@ sub_80361E8: @ 80361E8
beq _08036214
b _08036400
_08036214:
- ldr r1, _0803627C @ =gMoveHitWith
+ ldr r1, _0803627C @ =gLastLandedMoves
ldr r5, _08036280 @ =gActiveBank
ldrb r3, [r5]
lsls r0, r3, 1
@@ -326,7 +326,7 @@ _08036242:
ldrb r7, [r5]
b _080362B2
.align 2, 0
-_0803627C: .4byte gMoveHitWith
+_0803627C: .4byte gLastLandedMoves
_08036280: .4byte gActiveBank
_08036284: .4byte 0x0000ffff
_08036288: .4byte gBattleMoves
@@ -348,7 +348,7 @@ _080362AE:
mov r8, r7
_080362B2:
ldr r3, _080362D4 @ =gBattleMoves
- ldr r1, _080362D8 @ =gMoveHitWith
+ ldr r1, _080362D8 @ =gLastLandedMoves
ldr r2, _080362DC @ =gActiveBank
ldrb r0, [r2]
lsls r0, 1
@@ -366,7 +366,7 @@ _080362B2:
b _080362F2
.align 2, 0
_080362D4: .4byte gBattleMoves
-_080362D8: .4byte gMoveHitWith
+_080362D8: .4byte gLastLandedMoves
_080362DC: .4byte gActiveBank
_080362E0:
cmp r0, 0xB
@@ -548,7 +548,7 @@ AI_SwitchIfNaturalCure: @ 8036410
lsrs r0, 1
cmp r1, r0
bcc _080364D8
- ldr r1, _08036470 @ =gMoveHitWith
+ ldr r1, _08036470 @ =gLastLandedMoves
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -568,11 +568,11 @@ _08036456:
.align 2, 0
_08036468: .4byte gBattleMons
_0803646C: .4byte gActiveBank
-_08036470: .4byte gMoveHitWith
+_08036470: .4byte gLastLandedMoves
_08036474: .4byte 0x0000ffff
_08036478:
ldr r2, _080364A4 @ =gBattleMoves
- ldr r1, _080364A8 @ =gMoveHitWith
+ ldr r1, _080364A8 @ =gLastLandedMoves
ldr r4, _080364AC @ =gActiveBank
ldrb r0, [r4]
lsls r0, 1
@@ -594,7 +594,7 @@ _08036478:
b _080364E0
.align 2, 0
_080364A4: .4byte gBattleMoves
-_080364A8: .4byte gMoveHitWith
+_080364A8: .4byte gLastLandedMoves
_080364AC: .4byte gActiveBank
_080364B0:
movs r0, 0x8
@@ -863,7 +863,7 @@ sub_80366A4: @ 80366A4
lsls r1, 24
lsrs r1, 24
str r1, [sp, 0x4]
- ldr r1, _08036730 @ =gMoveHitWith
+ ldr r1, _08036730 @ =gLastLandedMoves
ldr r5, _08036734 @ =gActiveBank
ldrb r3, [r5]
lsls r0, r3, 1
@@ -924,7 +924,7 @@ _080366F6:
mov r10, r5
b _0803679C
.align 2, 0
-_08036730: .4byte gMoveHitWith
+_08036730: .4byte gLastLandedMoves
_08036734: .4byte gActiveBank
_08036738: .4byte 0x0000ffff
_0803673C: .4byte gUnknown_02024C5C
@@ -1053,7 +1053,7 @@ _08036844:
adds r0, r2
ldrb r2, [r0, 0x16]
_08036850:
- ldr r1, _080368F0 @ =gMoveHitWith
+ ldr r1, _080368F0 @ =gLastLandedMoves
ldr r5, _080368F4 @ =gActiveBank
ldrb r0, [r5]
lsls r0, 1
@@ -1132,7 +1132,7 @@ _080368DA:
bx r1
.align 2, 0
_080368EC: .4byte gBaseStats
-_080368F0: .4byte gMoveHitWith
+_080368F0: .4byte gLastLandedMoves
_080368F4: .4byte gActiveBank
_080368F8: .4byte gUnknown_02024C5C
_080368FC: .4byte gBattleMons
diff --git a/asm/current.s b/asm/current.s
index 4ef537dc3..4ef537dc3 100755..100644
--- a/asm/current.s
+++ b/asm/current.s
diff --git a/asm/dark.s b/asm/dark.s
index 9f6ad3278..9f6ad3278 100755..100644
--- a/asm/dark.s
+++ b/asm/dark.s
diff --git a/asm/fight.s b/asm/fight.s
index e8e3299af..e8e3299af 100755..100644
--- a/asm/fight.s
+++ b/asm/fight.s
diff --git a/asm/flying.s b/asm/flying.s
index ce3fb050b..ce3fb050b 100755..100644
--- a/asm/flying.s
+++ b/asm/flying.s
diff --git a/asm/ghost.s b/asm/ghost.s
index 2934f6dbd..2934f6dbd 100755..100644
--- a/asm/ghost.s
+++ b/asm/ghost.s
diff --git a/asm/ground.s b/asm/ground.s
index 3d4b69a9f..3d4b69a9f 100755..100644
--- a/asm/ground.s
+++ b/asm/ground.s
diff --git a/asm/ice.s b/asm/ice.s
index 032da59c3..032da59c3 100755..100644
--- a/asm/ice.s
+++ b/asm/ice.s
diff --git a/asm/normal.s b/asm/normal.s
index fffbc3870..fffbc3870 100755..100644
--- a/asm/normal.s
+++ b/asm/normal.s
diff --git a/asm/pc_screen_effect.s b/asm/pc_screen_effect.s
index 9d36df66c..9d36df66c 100755..100644
--- a/asm/pc_screen_effect.s
+++ b/asm/pc_screen_effect.s
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
deleted file mode 100644
index 6995dc62b..000000000
--- a/asm/pokemon_item_effect.s
+++ /dev/null
@@ -1,1969 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "include/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 803E18C
- 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_803E1B0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_803E1B0
-sub_803E1B0: @ 803E1B0
- 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 _0803E240
- ldr r0, _0803E21C @ =gMain
- ldr r4, _0803E220 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E22C
- ldr r2, _0803E224 @ =gEnigmaBerries
- ldr r0, _0803E228 @ =gBankInMenu
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0803E248
- .align 2, 0
-_0803E21C: .4byte gMain
-_0803E220: .4byte 0x0000043d
-_0803E224: .4byte gEnigmaBerries
-_0803E228: .4byte gBankInMenu
-_0803E22C:
- ldr r0, _0803E238 @ =gSaveBlock1
- ldr r5, _0803E23C @ =0x00003688
- adds r0, r5
- ldrb r0, [r0]
- b _0803E248
- .align 2, 0
-_0803E238: .4byte gSaveBlock1
-_0803E23C: .4byte 0x00003688
-_0803E240:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803E248:
- str r0, [sp, 0x30]
- ldr r1, _0803E2A4 @ =gStringBank
- ldr r0, _0803E2A8 @ =gBankInMenu
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _0803E2AC @ =gMain
- ldr r1, _0803E2B0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0803E2E8
- ldr r0, _0803E2B4 @ =gActiveBank
- 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, _0803E2B8 @ =gNoOfAllBanks
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- ldr r2, _0803E2BC @ =gBattlePartyID
- 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 _0803E2C0
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2A4: .4byte gStringBank
-_0803E2A8: .4byte gBankInMenu
-_0803E2AC: .4byte gMain
-_0803E2B0: .4byte 0x0000043d
-_0803E2B4: .4byte gActiveBank
-_0803E2B8: .4byte gNoOfAllBanks
-_0803E2BC: .4byte gBattlePartyID
-_0803E2C0:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _0803E2E4 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _0803E2C0
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2E4: .4byte gNoOfAllBanks
-_0803E2E8:
- ldr r0, _0803E310 @ =gActiveBank
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_0803E2F4:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _0803E36C
- ldr r1, _0803E314 @ =gItemEffectTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803E318
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _0803E31E
- b _0803E36C
- .align 2, 0
-_0803E310: .4byte gActiveBank
-_0803E314: .4byte gItemEffectTable
-_0803E318:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _0803E372
-_0803E31E:
- ldr r0, _0803E340 @ =gMain
- ldr r1, _0803E344 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E350
- ldr r0, _0803E348 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803E34C @ =gUnknown_02024DF8
- adds r0, r1
- b _0803E372
- .align 2, 0
-_0803E340: .4byte gMain
-_0803E344: .4byte 0x0000043d
-_0803E348: .4byte gActiveBank
-_0803E34C: .4byte gUnknown_02024DF8
-_0803E350:
- ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
- str r2, [sp, 0x20]
- b _0803E374
- .align 2, 0
-_0803E358: .4byte gSaveBlock1 + 0x3676
-_0803E35C:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl BeginEvolutionScene
- movs r0, 0
- bl _0803F15C
-_0803E36C:
- movs r0, 0x1
- bl _0803F15C
-_0803E372:
- str r0, [sp, 0x20]
-_0803E374:
- movs r3, 0
- str r3, [sp, 0x18]
-_0803E378:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _0803E382
- bl _0803F14C
-_0803E382:
- lsls r0, r4, 2
- ldr r1, _0803E38C @ =_0803E390
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E38C: .4byte _0803E390
- .align 2, 0
-_0803E390:
- .4byte _0803E3A8
- .4byte _0803E474
- .4byte _0803E508
- .4byte _0803E59C
- .4byte _0803E77C
- .4byte _0803EE1E
-_0803E3A8:
- 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 _0803E3F0
- ldr r0, _0803E460 @ =gMain
- ldr r1, _0803E464 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E3F0
- ldr r1, _0803E468 @ =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 _0803E3F0
- ldr r0, _0803E46C @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803E3F0:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0803E41E
- ldr r1, _0803E468 @ =gBattleMons
- ldr r0, _0803E470 @ =gActiveBank
- 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 _0803E41E
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E41E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E42C
- bl _0803F14C
-_0803E42C:
- ldr r6, _0803E468 @ =gBattleMons
- ldr r5, _0803E470 @ =gActiveBank
- 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 _0803E446
- bl _0803F14C
-_0803E446:
- 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 _0803E45A
- b _0803E74E
-_0803E45A:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0803E74E
- .align 2, 0
-_0803E460: .4byte gMain
-_0803E464: .4byte 0x0000043d
-_0803E468: .4byte gBattleMons
-_0803E46C: .4byte 0xfff0ffff
-_0803E470: .4byte gActiveBank
-_0803E474:
- 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 _0803E4BA
- ldr r7, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gActiveBank
- 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 _0803E4BA
- 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 _0803E4B6
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_0803E4B6:
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E4BA:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E4C8
- bl _0803F14C
-_0803E4C8:
- ldr r6, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gActiveBank
- 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 _0803E4E2
- bl _0803F14C
-_0803E4E2:
- 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 _0803E4F8
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_0803E4F8:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E500: .4byte gBattleMons
-_0803E504: .4byte gActiveBank
-_0803E508:
- 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 _0803E54E
- ldr r7, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gActiveBank
- 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 _0803E54E
- 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 _0803E54A
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_0803E54A:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E54E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E55C
- bl _0803F14C
-_0803E55C:
- ldr r6, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gActiveBank
- 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 _0803E576
- bl _0803F14C
-_0803E576:
- 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 _0803E58C
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_0803E58C:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E594: .4byte gBattleMons
-_0803E598: .4byte gActiveBank
-_0803E59C:
- 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 _0803E5E4
- ldr r5, _0803E758 @ =gSideTimers
- ldr r4, _0803E75C @ =gActiveBank
- 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, 0x2]
- cmp r0, 0
- bne _0803E5E4
- 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, 0x2]
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E5E4:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803E646
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _0803E646
- ldr r5, _0803E760 @ =gExperienceTables
- 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, _0803E764 @ =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 SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E646:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803E682
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E682
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _0803E67E
- ldr r1, _0803E768 @ =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, _0803E76C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
-_0803E67E:
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E682:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803E6A2
- ldr r2, _0803E770 @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6A2
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E6A2:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803E6C2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6C2
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E6C2:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803E6E2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6E2
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803E6E2:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E702
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E702
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E702:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803E710
- bl _0803F14C
-_0803E710:
- ldr r0, _0803E774 @ =gMain
- ldr r3, _0803E778 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0803E724
- bl _0803F14C
-_0803E724:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0803E72E
- bl _0803F14C
-_0803E72E:
- ldr r1, _0803E768 @ =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 _0803E746
- bl _0803F14C
-_0803E746:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0803E74E:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E758: .4byte gSideTimers
-_0803E75C: .4byte gActiveBank
-_0803E760: .4byte gExperienceTables
-_0803E764: .4byte gBaseStats
-_0803E768: .4byte gBattleMons
-_0803E76C: .4byte 0xf7ffffff
-_0803E770: .4byte 0x00000f88
-_0803E774: .4byte gMain
-_0803E778: .4byte 0x0000043d
-_0803E77C:
- 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 _0803E854
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E880 @ =gUnknown_08208238
- 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 _0803E854
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _0803E854
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E884 @ =gUnknown_08208240
- 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 SetMonData
- 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 SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E854:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _0803E862
- bl _0803F14C
-_0803E862:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803E86E
- b _0803EE0A
-_0803E86E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803E876
- b _0803EE0A
-_0803E876:
- lsls r0, r2, 2
- ldr r1, _0803E888 @ =_0803E88C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E880: .4byte gUnknown_08208238
-_0803E884: .4byte gUnknown_08208240
-_0803E888: .4byte _0803E88C
- .align 2, 0
-_0803E88C:
- .4byte _0803E8AC
- .4byte _0803E8AC
- .4byte _0803E934
- .4byte _0803EB5C
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EDF4
-_0803E8AC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803E8EC @ =0x000001fd
- cmp r5, r0
- bls _0803E8BE
- b _0803E36C
-_0803E8BE:
- ldr r0, _0803E8F0 @ =gUnknown_082082F2
- 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 _0803E8D8
- b _0803EE0A
-_0803E8D8:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803E8F4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803E8F6
- .align 2, 0
-_0803E8EC: .4byte 0x000001fd
-_0803E8F0: .4byte gUnknown_082082F2
-_0803E8F4:
- adds r4, r0, 0
-_0803E8F6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803E904
- adds r0, r4, r0
- subs r4, r0, r1
-_0803E904:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803E930 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- 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 _0803EE0A
- .align 2, 0
-_0803E930: .4byte gUnknown_082082F2
-_0803E934:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _0803E9F4
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0803E954
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803E954:
- ldr r0, _0803E99C @ =gMain
- ldr r1, _0803E9A0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EA0A
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E9B4
- ldr r2, _0803E9A4 @ =gAbsentBankFlags
- ldr r1, _0803E9A8 @ =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, _0803E9AC @ =gBattlePartyID
- 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, _0803E9B0 @ =gActiveBank
- ldrb r0, [r0]
- b _0803E9CC
- .align 2, 0
-_0803E99C: .4byte gMain
-_0803E9A0: .4byte 0x0000043d
-_0803E9A4: .4byte gAbsentBankFlags
-_0803E9A8: .4byte gBitTable
-_0803E9AC: .4byte gBattlePartyID
-_0803E9B0: .4byte gActiveBank
-_0803E9B4:
- ldr r3, _0803E9E4 @ =gAbsentBankFlags
- ldr r1, _0803E9E8 @ =gBitTable
- ldr r2, _0803E9EC @ =gActiveBank
- 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]
-_0803E9CC:
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EA0A
- ldr r1, _0803E9F0 @ =gBattleResults
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _0803EA0A
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0803EA0A
- .align 2, 0
-_0803E9E4: .4byte gAbsentBankFlags
-_0803E9E8: .4byte gBitTable
-_0803E9EC: .4byte gActiveBank
-_0803E9F0: .4byte gBattleResults
-_0803E9F4:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0803EA0A
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803EA0A:
- 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 _0803EA4C
- cmp r0, 0xFE
- bhi _0803EA2C
- cmp r0, 0xFD
- beq _0803EA62
- b _0803EA6C
-_0803EA2C:
- cmp r1, 0xFF
- bne _0803EA6C
- 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 _0803EA6C
-_0803EA4C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _0803EA6C
- movs r0, 0x1
- b _0803EA6A
-_0803EA62:
- ldr r0, _0803EB24 @ =gSharedMem
- ldr r5, _0803EB28 @ =0x000160fa
- adds r0, r5
- ldrb r0, [r0]
-_0803EA6A:
- str r0, [sp]
-_0803EA6C:
- 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 _0803EB4C
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0803EB40
- 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 _0803EAB8
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- str r0, [sp]
-_0803EAB8:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EB2C @ =gMain
- ldr r1, _0803EB30 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EB48
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EB48
- ldr r1, _0803EB34 @ =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 _0803EB48
- ldr r4, _0803EB38 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EB48
- ldr r1, _0803EB3C @ =gBattleResults
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _0803EB08
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_0803EB08:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl EmitGetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- strb r5, [r4]
- b _0803EB48
- .align 2, 0
-_0803EB24: .4byte gSharedMem
-_0803EB28: .4byte 0x000160fa
-_0803EB2C: .4byte gMain
-_0803EB30: .4byte 0x0000043d
-_0803EB34: .4byte gBattleMons
-_0803EB38: .4byte gActiveBank
-_0803EB3C: .4byte gBattleResults
-_0803EB40:
- ldr r1, _0803EB58 @ =gBattleMoveDamage
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_0803EB48:
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803EB4C:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _0803EE0A
- .align 2, 0
-_0803EB58: .4byte gBattleMoveDamage
-_0803EB5C:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _0803EB68
- b _0803ECB8
-_0803EB68:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_0803EB70:
- 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 _0803EC92
- 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 _0803EC28
- 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]
-_0803EC28:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl SetMonData
- ldr r0, _0803ECA4 @ =gMain
- ldr r4, _0803ECA8 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EC8E
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _0803EC8E
- ldr r4, _0803ECAC @ =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 _0803EC8E
- ldr r1, _0803ECB0 @ =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, _0803ECB4 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EC8E:
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803EC92:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0803EC9A
- b _0803EB70
-_0803EC9A:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_0803EC9E:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _0803EE0A
- .align 2, 0
-_0803ECA4: .4byte gMain
-_0803ECA8: .4byte 0x0000043d
-_0803ECAC: .4byte gBattleMons
-_0803ECB0: .4byte gDisableStructs
-_0803ECB4: .4byte gBitTable
-_0803ECB8:
- 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 _0803ED00
- b _0803EE0A
-_0803ED00:
- 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 _0803ED74
- 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]
-_0803ED74:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EDE0 @ =gMain
- ldr r1, _0803EDE4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803EDD8
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EDD8
- ldr r4, _0803EDE8 @ =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 _0803EDD8
- ldr r1, _0803EDEC @ =gDisableStructs
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803EDF0 @ =gBitTable
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EDD8
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EDD8:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803EDE0: .4byte gMain
-_0803EDE4: .4byte 0x0000043d
-_0803EDE8: .4byte gBattleMons
-_0803EDEC: .4byte gDisableStructs
-_0803EDF0: .4byte gBitTable
-_0803EDF4:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803EE0A
- bl _0803E35C
-_0803EE0A:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _0803EE1C
- b _0803E862
-_0803EE1C:
- b _0803F14C
-_0803EE1E:
- 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 _0803EE32
- b _0803F14C
-_0803EE32:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803EE3E
- b _0803F13A
-_0803EE3E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803EE46
- b _0803F13A
-_0803EE46:
- lsls r0, r2, 2
- ldr r1, _0803EE50 @ =_0803EE54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803EE50: .4byte _0803EE54
- .align 2, 0
-_0803EE54:
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EEF8
- .4byte _0803EFCC
- .4byte _0803F026
- .4byte _0803F07C
-_0803EE74:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803EEBC @ =0x000001fd
- cmp r5, r0
- bls _0803EE88
- bl _0803E36C
-_0803EE88:
- ldr r0, _0803EEC0 @ =gUnknown_082082F2
- 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 _0803EEA6
- b _0803F13A
-_0803EEA6:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803EEC4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803EEC6
- .align 2, 0
-_0803EEBC: .4byte 0x000001fd
-_0803EEC0: .4byte gUnknown_082082F2
-_0803EEC4:
- adds r4, r0, 0
-_0803EEC6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803EED4
- adds r0, r4, r0
- subs r4, r0, r1
-_0803EED4:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803EEF4 @ =gUnknown_082082F2
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _0803F130
- .align 2, 0
-_0803EEF4: .4byte gUnknown_082082F2
-_0803EEF8:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803EFC0 @ =gUnknown_08208238
- 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 _0803EF18
- b _0803F13A
-_0803EF18:
- 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, _0803EFC4 @ =gUnknown_0820823C
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _0803EFC8 @ =gUnknown_08208240
- 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 SetMonData
- 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 SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803F13A
- .align 2, 0
-_0803EFC0: .4byte gUnknown_08208238
-_0803EFC4: .4byte gUnknown_0820823C
-_0803EFC8: .4byte gUnknown_08208240
-_0803EFCC:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803EFDC
- b _0803F130
-_0803EFDC:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0803EFE4
- b _0803F130
-_0803EFE4:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _0803EFEC
- b _0803F130
-_0803EFEC:
- 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 _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _0803F0DC
-_0803F026:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803F130
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _0803F130
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _0803F130
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _0803F130
- 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 _0803F076
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _0803F0BE
-_0803F076:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0803F0D4
-_0803F07C:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _0803F130
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _0803F130
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _0803F130
- 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 _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
-_0803F0BE:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _0803F0DC
-_0803F0D0:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0803F0D4:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_0803F0DC:
- cmp r2, 0
- ble _0803F112
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803F0F4
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F0F4:
- 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 _0803F112
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F112:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F11C
- movs r0, 0
- str r0, [sp, 0x4]
-_0803F11C:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0803F126
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0803F126:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl SetMonData
-_0803F130:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_0803F13A:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _0803F14C
- b _0803EE32
-_0803F14C:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _0803F15A
- bl _0803E378
-_0803F15A:
- ldr r0, [sp, 0x1C]
-_0803F15C:
- 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_803E1B0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/psychic.s b/asm/psychic.s
index f91ce950e..f91ce950e 100755..100644
--- a/asm/psychic.s
+++ b/asm/psychic.s
diff --git a/asm/rock.s b/asm/rock.s
index 98afb53e6..98afb53e6 100755..100644
--- a/asm/rock.s
+++ b/asm/rock.s
diff --git a/asm/unk_text_8095904.s b/asm/unk_text_8095904.s
index 00c81faca..00c81faca 100755..100644
--- a/asm/unk_text_8095904.s
+++ b/asm/unk_text_8095904.s
diff --git a/asm/water.s b/asm/water.s
index 45fb7f82a..45fb7f82a 100755..100644
--- a/asm/water.s
+++ b/asm/water.s