summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-09-08 20:25:40 -0700
committerYamaArashi <shadow962@live.com>2016-09-08 20:25:40 -0700
commit06bed8be90c865057378482f2b179749b082619c (patch)
tree6f9b516a00841e7225290a0d71e9e5d97dd58777
parent9ba7169baaee0645f406d95b426f1b2bf750c72e (diff)
starting decompliation of pokemon functions
-rw-r--r--Makefile2
-rw-r--r--asm/rom3.s11100
-rw-r--r--asm/rom4.s2
-rw-r--r--asm/rom5.s1610
-rw-r--r--asm/rom_803D1FC.s7860
-rw-r--r--asm/rom_8040EB4.s358
-rw-r--r--asm/rom_8065394.s148
-rw-r--r--asm/rom_8074BAC.s24
-rw-r--r--data/data2.s3
-rw-r--r--data/text/battle_strings.s3
-rw-r--r--include/pokemon.h94
-rw-r--r--ld_script.txt2
-rw-r--r--src/pokemon.c607
13 files changed, 10419 insertions, 11394 deletions
diff --git a/Makefile b/Makefile
index 17e081c66..50daabed2 100644
--- a/Makefile
+++ b/Makefile
@@ -38,7 +38,7 @@ C_OBJS := $(C_SRCS:%.c=%.o)
ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom_8040EB4.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o \
asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o \
-asm/rom_8072DF8.o asm/rom_8065394.o
+asm/rom_8072DF8.o asm/rom_8065394.o asm/rom_803D1FC.o
DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
data/event_scripts.o data/battle_anim_scripts.o \
diff --git a/asm/rom3.s b/asm/rom3.s
index 1a7ddc229..ba00bb21d 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -92,7 +92,7 @@ _0800B8A0:
adds r0, r4, 0
movs r1, 0xC
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
_0800B90E:
ldr r0, _0800B948
str r5, [r0]
@@ -677,24 +677,24 @@ _0800BDAE:
adds r4, r7, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
beq _0800BE74
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0800BE74
ldr r0, _0800BDF0
@@ -715,7 +715,7 @@ _0800BDF4:
adds r4, r7, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
@@ -728,25 +728,25 @@ _0800BE1C:
adds r4, r7, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
_0800BE30:
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
beq _0800BE74
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0800BE74
ldr r1, _0800BE70
@@ -6302,17 +6302,17 @@ _0800EA02:
adds r4, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r5, 0
beq _0800EA7E
@@ -6598,20 +6598,20 @@ shedinja_something: @ 800EC44
strb r0, [r5]
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0800EC94
cmp r0, r1
bne _0800EC8C
adds r0, r4, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
cmp r0, r1
beq _0800EC8C
adds r0, r4, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0800EC98
mov r0, sp
bl StringCompareWithoutExtCtrlCodes
@@ -6620,7 +6620,7 @@ shedinja_something: @ 800EC44
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
_0800EC8C:
add sp, 0x10
pop {r4,r5}
@@ -7065,7 +7065,7 @@ _0800F03E:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x4
negs r1, r1
add r1, r10
@@ -7074,34 +7074,34 @@ _0800F03E:
strh r0, [r5]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x2]
adds r0, r4, 0
movs r1, 0x2
adds r2, r7, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
strb r0, [r5, 0xF]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x10]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x12]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
adds r1, 0x10
adds r6, r1
str r0, [r6]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [r7, 0x14]
adds r0, r4, 0
bl pokemon_get_gender
@@ -7110,7 +7110,7 @@ _0800F03E:
bl SkipExtCtrlCodes
adds r0, r4, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
strb r0, [r5, 0x1D]
lsls r0, 24
lsrs r0, 24
@@ -8413,7 +8413,7 @@ _0800FAE8:
adds r1, 0xD
adds r0, r5, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
adds r1, r6, 0
adds r1, 0x11
ldrh r0, [r4]
@@ -8423,7 +8423,7 @@ _0800FAE8:
ldr r0, _0800FB18
adds r2, r0
adds r0, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
@@ -8502,7 +8502,7 @@ _0800FB5E:
adds r0, r4, 0
movs r1, 0xC
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
b _0800FC74
.align 2, 0
_0800FBAC: .4byte gSpeciesNames
@@ -8577,7 +8577,7 @@ _0800FBF2:
adds r0, r4, 0
movs r1, 0xC
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
movs r6, 0
adds r5, r4, 0
mov r0, r8
@@ -8588,7 +8588,7 @@ _0800FC4A:
adds r1, 0xD
adds r0, r5, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
adds r1, r6, 0
adds r1, 0x11
ldrh r0, [r4]
@@ -8598,7 +8598,7 @@ _0800FC4A:
ldr r0, _0800FCC8
adds r2, r0
adds r0, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
@@ -8914,17 +8914,17 @@ _0800FED0:
adds r4, r0, r4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r5, 0
beq _0800FF40
@@ -8993,17 +8993,17 @@ _0800FF6A:
adds r4, r2, r4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r5, 0
beq _0800FFDA
@@ -9519,7 +9519,7 @@ _080103AC:
ldr r7, _08010418
adds r0, r7
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
cmp r4, SPECIES_UNOWN
bne _08010430
ldrh r0, [r5]
@@ -9528,7 +9528,7 @@ _080103AC:
adds r0, r1, 0
adds r0, r7
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
movs r0, 0xC0
lsls r0, 18
@@ -10347,7 +10347,7 @@ _08010994:
strb r5, [r0]
ldr r0, _08010B60
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r2, _08010B64
lsls r1, r0, 3
subs r1, r0
@@ -11849,12 +11849,12 @@ _0801162A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08011650
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -11872,11 +11872,11 @@ _08011664: .4byte 0x0000ffff
_08011668:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_0801167A:
str r0, [r6]
adds r6, 0x8
@@ -11905,12 +11905,12 @@ _080116A6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080116CC
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -11927,11 +11927,11 @@ _080116DC: .4byte 0x0000ffff
_080116E0:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_080116F2:
str r0, [r6]
adds r6, 0x8
@@ -11968,12 +11968,12 @@ _08011732:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08011758
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -11989,11 +11989,11 @@ _08011764: .4byte 0x0000ffff
_08011768:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_0801177A:
str r0, [r6]
adds r6, 0x8
@@ -24797,17 +24797,17 @@ _08018084:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080180B4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080180B4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -24888,17 +24888,17 @@ _0801813A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0801818A
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0801818A
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -25236,23 +25236,23 @@ _080183F4:
adds r5, r1, r0
adds r0, r7, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
adds r0, r7, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x10]
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0xC]
adds r0, r5, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x14]
ldr r0, _0801844C
ldrh r1, [r0]
@@ -28873,17 +28873,17 @@ _0801A33A:
mov r1, r10
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
mov r1, r10
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r5]
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r1, r0, 24
cmp r6, 0
@@ -40385,12 +40385,12 @@ _08020104:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802016A
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802016A
ldr r0, _08020158
@@ -40405,7 +40405,7 @@ _08020104:
_08020138:
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0xAF
@@ -40524,7 +40524,7 @@ _08020220:
ldr r1, _08020260
adds r0, r1
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0xAF
@@ -40577,7 +40577,7 @@ _080202A0:
ldr r1, _080202D8
adds r0, r1
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x64
bne _080202E8
ldr r2, _080202DC
@@ -40632,7 +40632,7 @@ _08020316:
ldr r1, _08020364
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08020332
b _0802051E
@@ -40911,21 +40911,21 @@ _08020566:
ldr r5, _08020634
adds r0, r5
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08020612
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x64
beq _08020612
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
ldr r1, _08020638
adds r4, r1
strh r0, [r4]
@@ -40933,31 +40933,31 @@ _08020566:
muls r0, r6
adds r0, r5
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x4]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x6]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x8]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0xA]
ldr r4, _0802063C
mov r2, r8
@@ -41073,7 +41073,7 @@ _080206A8:
ldr r7, _080208CC
adds r0, r7
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0x4]
movs r0, 0x1
negs r0, r0
@@ -41124,7 +41124,7 @@ _080206A8:
muls r0, r1
adds r0, r7
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r1, r4, 0
adds r1, 0x2A
strb r0, [r1]
@@ -41134,7 +41134,7 @@ _080206A8:
adds r0, r1, 0
adds r0, r7
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x28]
ldrb r0, [r6]
mov r2, r8
@@ -41142,7 +41142,7 @@ _080206A8:
adds r0, r2, 0
adds r0, r7
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2C]
ldrb r0, [r6]
mov r3, r8
@@ -41150,7 +41150,7 @@ _080206A8:
adds r0, r3, 0
adds r0, r7
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2]
ldrb r0, [r6]
mov r1, r8
@@ -41158,7 +41158,7 @@ _080206A8:
adds r0, r1, 0
adds r0, r7
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x4]
ldrb r0, [r6]
mov r2, r8
@@ -41166,7 +41166,7 @@ _080206A8:
adds r0, r2, 0
adds r0, r7
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x6]
ldrb r0, [r6]
mov r3, r8
@@ -41174,7 +41174,7 @@ _080206A8:
adds r0, r3, 0
adds r0, r7
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x6]
ldrb r0, [r6]
mov r1, r8
@@ -41182,7 +41182,7 @@ _080206A8:
adds r0, r1, 0
adds r0, r7
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x8]
ldrb r0, [r6]
mov r2, r8
@@ -41190,7 +41190,7 @@ _080206A8:
adds r0, r2, 0
adds r0, r7
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0xA]
_080207EC:
ldr r0, _080208C4
@@ -41220,7 +41220,7 @@ _080207EC:
ldr r4, _080208CC
adds r0, r4
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xDA
strb r0, [r1]
@@ -41228,14 +41228,14 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
ldrb r0, [r7]
muls r0, r5
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xDC
strh r0, [r1]
@@ -41243,7 +41243,7 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xB2
strh r0, [r1]
@@ -41251,7 +41251,7 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xB4
strh r0, [r1]
@@ -41259,7 +41259,7 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
movs r2, 0xB6
adds r2, r6
mov r8, r2
@@ -41268,14 +41268,14 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r3, r8
strh r0, [r3]
ldrb r0, [r7]
muls r0, r5
adds r0, r4
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xB8
strh r0, [r1]
@@ -41414,17 +41414,17 @@ _080209C8:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080209F8
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080209F8
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r0, r6, r0
lsls r0, 16
lsrs r6, r0, 16
@@ -41450,17 +41450,17 @@ _08020A10:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08020A40
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08020A40
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r0, r6, r0
lsls r0, 16
lsrs r6, r0, 16
@@ -45410,17 +45410,17 @@ _080228EE:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08022928
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08022928
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08022928
ldr r0, _08022938
@@ -45505,17 +45505,17 @@ _080229B0:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080229F2
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080229F2
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080229F2
ldr r1, _08022A1C
@@ -47819,7 +47819,7 @@ _08023CC8:
adds r0, r7
adds r1, r5, 0
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -48587,12 +48587,12 @@ _08024300:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08024324
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -48612,11 +48612,11 @@ _08024340: .4byte 0x0000ffff
_08024344:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_08024356:
str r0, [r6]
adds r6, 0x8
@@ -49391,7 +49391,7 @@ _0802495A:
ldr r1, _080249B4
add r1, r8
ldrb r1, [r1]
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
mov r0, r8
@@ -49600,7 +49600,7 @@ _08024B1C:
ldr r1, _08024BAC
add r1, r8
ldrb r1, [r1]
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r6, [r5]
movs r0, 0x13
@@ -52969,17 +52969,17 @@ _080265E8:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802661A
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0802661A
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802661A
adds r0, r7, 0x1
@@ -53008,17 +53008,17 @@ _0802663C:
adds r4, r2, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802666E
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0802666E
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802666E
adds r0, r7, 0x1
@@ -53134,17 +53134,17 @@ _0802671A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080266DC
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _080266DC
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080266DC
b _08026832
@@ -53186,17 +53186,17 @@ _0802677E:
adds r4, r2, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802677E
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _0802677E
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802677E
b _08026832
@@ -53226,17 +53226,17 @@ _080267E6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080267E6
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _080267E6
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080267E6
_08026832:
@@ -54337,23 +54337,23 @@ _080270F0:
adds r4, r1, r0
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r10, r0
adds r0, r5, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r8, r0
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r7, r0, 0
ldr r5, _08027154
ldrb r0, [r5]
@@ -57423,12 +57423,12 @@ _0802896A:
add r4, r9
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r4, r0, 24
cmp r5, 0
@@ -59599,21 +59599,21 @@ _08029AB4:
muls r0, r5
adds r0, r7, r0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08029AF8
ldrb r0, [r6]
muls r0, r5
adds r0, r7, r0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08029AF8
ldrb r0, [r4]
muls r0, r5
adds r0, r7, r0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -59622,7 +59622,7 @@ _08029AB4:
muls r0, r5
adds r0, r7, r0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08029B08
_08029AF8:
@@ -59664,7 +59664,7 @@ _08029B08:
muls r0, r4
adds r0, r7, r0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -59688,7 +59688,7 @@ _08029B08:
muls r0, r4
adds r0, r7, r0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
lsls r0, 1
movs r1, 0x5
bl __udivsi3
@@ -61664,12 +61664,12 @@ _0802AAAE:
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802AB54
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -61688,7 +61688,7 @@ _0802AAF8:
adds r1, 0xD
ldr r0, [sp]
add r0, r9
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -62255,17 +62255,17 @@ _0802AF7A:
adds r4, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802AFC0
lsls r0, r5, 3
@@ -62333,7 +62333,7 @@ _0802B020:
lsls r2, 1
add r2, r8
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
_0802B032:
adds r7, r4, 0
cmp r7, 0x5
@@ -63336,7 +63336,7 @@ _0802B81C:
adds r0, r1
ldr r2, _0802B87C
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
bl calc_player_party_count
lsls r0, 24
lsrs r0, 24
@@ -63413,7 +63413,7 @@ _0802B8CC:
adds r0, r1
movs r1, 0x26
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
bl calc_player_party_count
lsls r0, 24
lsrs r0, 24
@@ -63498,7 +63498,7 @@ sub_802B960: @ 802B960
adds r0, r6
adds r2, 0x2A
movs r1, 0x2
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0802B9DC
ldr r0, [r1]
adds r0, 0x1
@@ -64010,7 +64010,7 @@ _0802BD92:
add r0, r8
movs r1, 0x2
ldr r2, _0802BE44
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
ldrb r0, [r1]
eors r0, r4
@@ -64022,7 +64022,7 @@ _0802BD92:
adds r0, r1, 0
add r0, r8
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
@@ -64052,7 +64052,7 @@ _0802BD92:
add r0, r8
movs r1, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp]
ldr r0, _0802BE48
str r0, [sp, 0x4]
@@ -64100,7 +64100,7 @@ _0802BE50:
adds r0, r1
ldr r2, _0802BEA0
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
b _0802BEC0
.align 2, 0
_0802BE88: .4byte 0x03001770
@@ -64894,7 +64894,7 @@ _0802C4C2:
adds r2, r1
ldrb r1, [r2]
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0802C530
lsls r1, r0, 1
adds r1, r0
@@ -65035,7 +65035,7 @@ _0802C5E6:
adds r2, r1
ldrb r1, [r2]
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0802C670
lsls r1, r0, 1
adds r1, r0
@@ -65837,7 +65837,7 @@ _0802CC66:
adds r0, r5
adds r1, r6, 0
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
mov r2, r8
ldrb r0, [r2]
@@ -65848,7 +65848,7 @@ _0802CC66:
adds r0, r5
adds r1, r6, 0
adds r1, 0x11
- bl PokemonGetField
+ bl GetMonData
mov r3, r10
adds r1, r3, r6
strb r0, [r1]
@@ -65867,7 +65867,7 @@ _0802CC66:
ldr r1, _0802CE10
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
ldr r5, [sp, 0x28]
strb r0, [r5]
movs r6, 0
@@ -65987,7 +65987,7 @@ _0802CD8C:
adds r1, r6, 0
adds r1, 0xD
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r3, r9
ldrb r0, [r3]
lsls r0, 1
@@ -66000,7 +66000,7 @@ _0802CD8C:
adds r1, r6, 0
adds r1, 0x11
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r5, 0x1
adds r4, 0x2
adds r6, 0x1
@@ -66018,7 +66018,7 @@ _0802CD8C:
adds r0, r1
movs r1, 0x15
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
b _0802CE1C
.align 2, 0
_0802CDEC: .4byte 0x03001770
@@ -67399,19 +67399,19 @@ _0802D96A:
adds r6, r1, r0
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4]
ldr r3, _0802DA30
adds r4, 0x1
@@ -67438,7 +67438,7 @@ _0802D96A:
adds r0, r6, 0
movs r1, 0x19
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
bl pokemon_calc_effective_stats
ldr r2, [sp]
@@ -67503,7 +67503,7 @@ _0802DA58:
add r2, sp, 0x4
adds r0, r6, 0
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
ldr r1, _0802DA78
ldr r3, [sp, 0x8]
lsls r0, r3, 2
@@ -67568,19 +67568,19 @@ sub_802DA9C: @ 802DA9C
adds r6, r0
adds r0, r6, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
ldr r6, _0802DB5C
lsls r1, r4, 2
@@ -67692,17 +67692,17 @@ _0802DB9C:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r3, _0802DC6C
@@ -67731,7 +67731,7 @@ _0802DB9C:
adds r0, r5, 0
movs r1, 0x19
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
bl pokemon_calc_effective_stats
ldr r2, [sp]
@@ -67763,7 +67763,7 @@ _0802DC7C:
add r2, sp, 0x4
adds r0, r5, 0
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
ldr r1, _0802DCA8
lsls r0, r7, 2
adds r0, r1
@@ -67863,7 +67863,7 @@ sub_802DD10: @ 802DD10
adds r7, r1, r0
adds r0, r7, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
bl battle_type_is_double
lsls r0, 24
lsrs r0, 24
@@ -67937,7 +67937,7 @@ sub_802DDC4: @ 802DDC4
ldr r1, _0802DE04
adds r0, r1
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldrb r0, [r4, 0xC]
ldr r1, _0802DE08
lsls r0, 2
@@ -67985,7 +67985,7 @@ sub_802DE10: @ 802DE10
ldr r1, _0802DEA4
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl nullsub_9
@@ -68965,12 +68965,12 @@ _0802E674:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -68998,12 +68998,12 @@ _0802E6C0:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -69018,21 +69018,21 @@ _0802E6C0:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -69044,7 +69044,7 @@ _0802E6C0:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -69056,7 +69056,7 @@ _0802E6C0:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -69068,7 +69068,7 @@ _0802E6C0:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -69079,7 +69079,7 @@ _0802E6C0:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -69090,7 +69090,7 @@ _0802E6C0:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -69102,55 +69102,55 @@ _0802E6C0:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -69163,7 +69163,7 @@ _0802E6C0:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -69173,19 +69173,19 @@ _0802E6C0:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_0802E878:
@@ -69236,13 +69236,13 @@ _0802E8CE:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -69256,7 +69256,7 @@ _0802E8CE:
ldr r1, _0802E91C
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -69298,7 +69298,7 @@ _0802E948:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -69309,7 +69309,7 @@ _0802E948:
ldr r1, _0802E974
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -69346,7 +69346,7 @@ _0802E9A4:
adds r0, r1
movs r1, 0x19
_0802E9AE:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -69479,27 +69479,27 @@ _0802EA94:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _0802ECDA
@@ -69584,7 +69584,7 @@ _0802EB64:
adds r0, r1
movs r1, 0x37
_0802EB6E:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -69673,7 +69673,7 @@ _0802EC08:
adds r0, r1
movs r1, 0x3F
_0802EC12:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -69780,7 +69780,7 @@ _0802ECC8:
adds r0, r1
movs r1, 0x36
_0802ECD2:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_0802ECDA:
@@ -70015,12 +70015,12 @@ _0802EF04:
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -70061,12 +70061,12 @@ _0802EF6A:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -70082,15 +70082,15 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -70099,7 +70099,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
@@ -70108,7 +70108,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
@@ -70117,7 +70117,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
@@ -70126,7 +70126,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
@@ -70135,7 +70135,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
@@ -70144,47 +70144,47 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F098: .4byte 0x03004360
@@ -70198,7 +70198,7 @@ _0802F09C:
lsls r2, 9
adds r2, r7
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F0B4: .4byte 0x03004360
@@ -70213,7 +70213,7 @@ _0802F0BC:
lsls r2, 9
adds r2, r7
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F0D4: .4byte 0x03004360
@@ -70237,12 +70237,12 @@ _0802F0F6:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -70256,7 +70256,7 @@ _0802F0F6:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F130: .4byte 0x03004360
@@ -70290,35 +70290,35 @@ _0802F15C:
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F1B8: .4byte 0x03004360
@@ -70339,7 +70339,7 @@ _0802F1C0:
_0802F1D8:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F1E4: .4byte 0x03004360
@@ -70355,7 +70355,7 @@ _0802F1F0:
lsls r2, 9
adds r2, r7
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F208: .4byte 0x03004360
@@ -70370,7 +70370,7 @@ _0802F210:
lsls r2, 9
adds r2, r7
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F228: .4byte 0x03004360
@@ -70385,7 +70385,7 @@ _0802F230:
lsls r2, 9
adds r2, r7
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F248: .4byte 0x03004360
@@ -70400,7 +70400,7 @@ _0802F250:
lsls r2, 9
adds r2, r7
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F268: .4byte 0x03004360
@@ -70415,7 +70415,7 @@ _0802F270:
lsls r2, 9
adds r2, r7
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F288: .4byte 0x03004360
@@ -70430,7 +70430,7 @@ _0802F290:
lsls r2, 9
adds r2, r7
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F2A8: .4byte 0x03004360
@@ -70445,7 +70445,7 @@ _0802F2B0:
lsls r2, 9
adds r2, r7
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F2C8: .4byte 0x03004360
@@ -70460,7 +70460,7 @@ _0802F2D0:
lsls r2, 9
adds r2, r7
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F2E8: .4byte 0x03004360
@@ -70475,7 +70475,7 @@ _0802F2F0:
lsls r2, 9
adds r2, r7
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F308: .4byte 0x03004360
@@ -70490,7 +70490,7 @@ _0802F310:
lsls r2, 9
adds r2, r7
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F328: .4byte 0x03004360
@@ -70505,7 +70505,7 @@ _0802F330:
lsls r2, 9
adds r2, r7
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F348: .4byte 0x03004360
@@ -70520,7 +70520,7 @@ _0802F350:
lsls r2, 9
adds r2, r7
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F368: .4byte 0x03004360
@@ -70535,7 +70535,7 @@ _0802F370:
lsls r2, 9
adds r2, r7
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F388: .4byte 0x03004360
@@ -70550,7 +70550,7 @@ _0802F390:
lsls r2, 9
adds r2, r7
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F3A8: .4byte 0x03004360
@@ -70567,35 +70567,35 @@ _0802F3B0:
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
@@ -70615,7 +70615,7 @@ _0802F420:
lsls r2, 9
adds r2, r7
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F438: .4byte 0x03004360
@@ -70630,7 +70630,7 @@ _0802F440:
lsls r2, 9
adds r2, r7
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F458: .4byte 0x03004360
@@ -70645,7 +70645,7 @@ _0802F460:
lsls r2, 9
adds r2, r7
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F478: .4byte 0x03004360
@@ -70660,7 +70660,7 @@ _0802F480:
lsls r2, 9
adds r2, r7
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F498: .4byte 0x03004360
@@ -70675,7 +70675,7 @@ _0802F4A0:
lsls r2, 9
adds r2, r7
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F4B8: .4byte 0x03004360
@@ -70691,7 +70691,7 @@ _0802F4C0:
adds r2, r7
_0802F4D0:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F4D8: .4byte 0x03004360
@@ -70706,7 +70706,7 @@ _0802F4E0:
lsls r2, 9
adds r2, r7
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F4F8: .4byte 0x03004360
@@ -70721,7 +70721,7 @@ _0802F500:
lsls r2, 9
adds r2, r7
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F518: .4byte 0x03004360
@@ -70736,7 +70736,7 @@ _0802F520:
lsls r2, 9
adds r2, r7
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F538: .4byte 0x03004360
@@ -70751,7 +70751,7 @@ _0802F540:
lsls r2, 9
adds r2, r7
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F558: .4byte 0x03004360
@@ -70766,7 +70766,7 @@ _0802F560:
lsls r2, 9
adds r2, r7
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F578: .4byte 0x03004360
@@ -70781,7 +70781,7 @@ _0802F580:
lsls r2, 9
adds r2, r7
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F598: .4byte 0x03004360
@@ -70796,7 +70796,7 @@ _0802F5A0:
lsls r2, 9
adds r2, r7
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F5B8: .4byte 0x03004360
@@ -70811,7 +70811,7 @@ _0802F5C0:
lsls r2, 9
adds r2, r7
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F5D8: .4byte 0x03004360
@@ -70826,7 +70826,7 @@ _0802F5E0:
lsls r2, 9
adds r2, r7
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F5F8: .4byte 0x03004360
@@ -70841,7 +70841,7 @@ _0802F600:
lsls r2, 9
adds r2, r7
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F618: .4byte 0x03004360
@@ -70856,7 +70856,7 @@ _0802F620:
lsls r2, 9
adds r2, r7
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F638: .4byte 0x03004360
@@ -70871,7 +70871,7 @@ _0802F640:
lsls r2, 9
adds r2, r7
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F658: .4byte 0x03004360
@@ -70886,7 +70886,7 @@ _0802F660:
lsls r2, 9
adds r2, r7
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F678: .4byte 0x03004360
@@ -70901,7 +70901,7 @@ _0802F680:
lsls r2, 9
adds r2, r7
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F698: .4byte 0x03004360
@@ -70916,7 +70916,7 @@ _0802F6A0:
lsls r2, 9
adds r2, r7
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F6B8: .4byte 0x03004360
@@ -70931,7 +70931,7 @@ _0802F6C0:
lsls r2, 9
adds r2, r7
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F6D8: .4byte 0x03004360
@@ -70946,7 +70946,7 @@ _0802F6E0:
lsls r2, 9
adds r2, r7
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F6F8: .4byte 0x03004360
@@ -70961,7 +70961,7 @@ _0802F700:
lsls r2, 9
adds r2, r7
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F718: .4byte 0x03004360
@@ -70976,7 +70976,7 @@ _0802F720:
lsls r2, 9
adds r2, r7
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F738: .4byte 0x03004360
@@ -70991,7 +70991,7 @@ _0802F740:
lsls r2, 9
adds r2, r7
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F758: .4byte 0x03004360
@@ -71006,7 +71006,7 @@ _0802F760:
lsls r2, 9
adds r2, r7
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F778: .4byte 0x03004360
@@ -71021,7 +71021,7 @@ _0802F780:
lsls r2, 9
adds r2, r7
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_0802F796:
ldr r2, _0802F7C8
ldr r0, _0802F7C4
@@ -71247,7 +71247,7 @@ sub_802F934: @ 802F934
ldr r1, _0802FA80
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -72872,7 +72872,7 @@ sub_8030698: @ 8030698
ldr r4, _08030720
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -72882,7 +72882,7 @@ sub_8030698: @ 8030698
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -72910,7 +72910,7 @@ _08030728:
ldr r1, _08030784
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -72968,7 +72968,7 @@ sub_8030798: @ 8030798
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x63
bls _080307D0
bl dp01_tbl1_exec_completed
@@ -72982,7 +72982,7 @@ _080307D0:
bl load_gfxc_health_bar
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r6]
lsls r1, 9
adds r0, r5, 0x2
@@ -73147,7 +73147,7 @@ sub_8030910: @ 8030910
ldr r5, _08030974
adds r0, r5
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
ldr r2, _08030978
ldrb r1, [r4]
lsls r1, 9
@@ -73165,7 +73165,7 @@ sub_8030910: @ 8030910
adds r0, r5
movs r1, 0x37
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
bl dp01_tbl1_exec_completed
add sp, 0x4
pop {r3}
@@ -73572,7 +73572,7 @@ sub_8030C4C: @ 8030C4C
ldr r1, _08030C88
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -75000,7 +75000,7 @@ sub_8031794: @ 8031794
lsrs r1, 24
mov r9, r1
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0xC]
mov r0, r9
lsls r1, r0, 2
@@ -75011,7 +75011,7 @@ sub_8031794: @ 8031794
bne _080317D4
mov r0, r8
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
ldr r7, [sp, 0xC]
@@ -75026,7 +75026,7 @@ _080317D4:
_080317DC:
mov r0, r8
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
mov r0, r9
bl battle_get_per_side_status
@@ -75164,7 +75164,7 @@ sub_80318FC: @ 80318FC
lsrs r1, 24
mov r9, r1
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0xC]
mov r0, r9
lsls r1, r0, 2
@@ -75175,7 +75175,7 @@ sub_80318FC: @ 80318FC
bne _0803193C
mov r0, r8
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
ldr r7, [sp, 0xC]
@@ -75190,7 +75190,7 @@ _0803193C:
_08031944:
mov r0, r8
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
mov r0, r9
bl battle_get_per_side_status
@@ -76160,7 +76160,7 @@ _08032104:
_08032114:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
mov r0, r8
@@ -76178,13 +76178,13 @@ _08032114:
ldr r5, _08032190
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r0, r7, 3
ldr r1, _08032194
@@ -76232,13 +76232,13 @@ _080321A4:
ldr r5, _0803230C
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r0, r7, 3
ldr r1, _08032310
@@ -76635,13 +76635,13 @@ sub_80324F8: @ 80324F8
lsrs r6, r1, 24
adds r7, r6, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
@@ -76765,13 +76765,13 @@ unref_sub_8032604: @ 8032604
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
@@ -76833,7 +76833,7 @@ sub_8032638: @ 8032638
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080326AA
adds r0, r4, 0
@@ -76849,7 +76849,7 @@ _080326AA:
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080326CE
adds r0, r4, 0
@@ -77946,7 +77946,7 @@ _08032EC6:
muls r0, r6
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -77997,7 +77997,7 @@ _08032F58:
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -78555,7 +78555,7 @@ _08033402:
ldr r1, _0803347C
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -78818,12 +78818,12 @@ _080336C8:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -78851,12 +78851,12 @@ _08033714:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -78871,21 +78871,21 @@ _08033714:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -78897,7 +78897,7 @@ _08033714:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -78909,7 +78909,7 @@ _08033714:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -78921,7 +78921,7 @@ _08033714:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -78932,7 +78932,7 @@ _08033714:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -78943,7 +78943,7 @@ _08033714:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -78955,55 +78955,55 @@ _08033714:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -79016,7 +79016,7 @@ _08033714:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -79026,19 +79026,19 @@ _08033714:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_080338CC:
@@ -79089,13 +79089,13 @@ _08033922:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -79109,7 +79109,7 @@ _08033922:
ldr r1, _08033970
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -79151,7 +79151,7 @@ _0803399C:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -79162,7 +79162,7 @@ _0803399C:
ldr r1, _080339C8
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -79199,7 +79199,7 @@ _080339F8:
adds r0, r1
movs r1, 0x19
_08033A02:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -79332,27 +79332,27 @@ _08033AE8:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _08033D2E
@@ -79437,7 +79437,7 @@ _08033BB8:
adds r0, r1
movs r1, 0x37
_08033BC2:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -79526,7 +79526,7 @@ _08033C5C:
adds r0, r1
movs r1, 0x3F
_08033C66:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -79633,7 +79633,7 @@ _08033D1C:
adds r0, r1
movs r1, 0x36
_08033D26:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_08033D2E:
@@ -79869,12 +79869,12 @@ _08033F58:
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -79915,12 +79915,12 @@ _08033FBE:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -79936,15 +79936,15 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -79953,7 +79953,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
@@ -79962,7 +79962,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
@@ -79971,7 +79971,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
@@ -79980,7 +79980,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
@@ -79989,7 +79989,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
@@ -79998,47 +79998,47 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080340EC: .4byte 0x030045c0
@@ -80051,7 +80051,7 @@ _080340F0:
lsls r2, 9
adds r2, r3
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034108: .4byte 0x030045c0
@@ -80064,7 +80064,7 @@ _0803410C:
lsls r2, 9
adds r2, r3
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034124: .4byte 0x030045c0
@@ -80086,12 +80086,12 @@ _08034140:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -80105,7 +80105,7 @@ _08034140:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034178: .4byte 0x030045c0
@@ -80137,7 +80137,7 @@ _0803419C:
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80145,7 +80145,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80153,7 +80153,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80161,7 +80161,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80169,7 +80169,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034200: .4byte 0x030045c0
@@ -80188,7 +80188,7 @@ _08034204:
_0803421A:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034224: .4byte 0x030045c0
@@ -80202,7 +80202,7 @@ _0803422C:
lsls r2, 9
adds r2, r3
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034244: .4byte 0x030045c0
@@ -80215,7 +80215,7 @@ _08034248:
lsls r2, 9
adds r2, r3
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034260: .4byte 0x030045c0
@@ -80228,7 +80228,7 @@ _08034264:
lsls r2, 9
adds r2, r3
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803427C: .4byte 0x030045c0
@@ -80241,7 +80241,7 @@ _08034280:
lsls r2, 9
adds r2, r3
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034298: .4byte 0x030045c0
@@ -80254,7 +80254,7 @@ _0803429C:
lsls r2, 9
adds r2, r3
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080342B4: .4byte 0x030045c0
@@ -80267,7 +80267,7 @@ _080342B8:
lsls r2, 9
adds r2, r3
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080342D0: .4byte 0x030045c0
@@ -80280,7 +80280,7 @@ _080342D4:
lsls r2, 9
adds r2, r3
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080342EC: .4byte 0x030045c0
@@ -80293,7 +80293,7 @@ _080342F0:
lsls r2, 9
adds r2, r3
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034308: .4byte 0x030045c0
@@ -80306,7 +80306,7 @@ _0803430C:
lsls r2, 9
adds r2, r3
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034324: .4byte 0x030045c0
@@ -80319,7 +80319,7 @@ _08034328:
lsls r2, 9
adds r2, r3
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034340: .4byte 0x030045c0
@@ -80332,7 +80332,7 @@ _08034344:
lsls r2, 9
adds r2, r3
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803435C: .4byte 0x030045c0
@@ -80345,7 +80345,7 @@ _08034360:
lsls r2, 9
adds r2, r3
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034378: .4byte 0x030045c0
@@ -80358,7 +80358,7 @@ _0803437C:
lsls r2, 9
adds r2, r3
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034394: .4byte 0x030045c0
@@ -80371,7 +80371,7 @@ _08034398:
lsls r2, 9
adds r2, r3
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080343B0: .4byte 0x030045c0
@@ -80387,7 +80387,7 @@ _080343B4:
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80395,7 +80395,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80403,7 +80403,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80411,7 +80411,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80419,7 +80419,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -80438,7 +80438,7 @@ _08034428:
lsls r2, 9
adds r2, r3
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034440: .4byte 0x030045c0
@@ -80451,7 +80451,7 @@ _08034444:
lsls r2, 9
adds r2, r3
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803445C: .4byte 0x030045c0
@@ -80464,7 +80464,7 @@ _08034460:
lsls r2, 9
adds r2, r3
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034478: .4byte 0x030045c0
@@ -80477,7 +80477,7 @@ _0803447C:
lsls r2, 9
adds r2, r3
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034494: .4byte 0x030045c0
@@ -80490,7 +80490,7 @@ _08034498:
lsls r2, 9
adds r2, r3
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080344B0: .4byte 0x030045c0
@@ -80504,7 +80504,7 @@ _080344B4:
adds r2, r3
_080344C2:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080344CC: .4byte 0x030045c0
@@ -80517,7 +80517,7 @@ _080344D0:
lsls r2, 9
adds r2, r3
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080344E8: .4byte 0x030045c0
@@ -80530,7 +80530,7 @@ _080344EC:
lsls r2, 9
adds r2, r3
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034504: .4byte 0x030045c0
@@ -80543,7 +80543,7 @@ _08034508:
lsls r2, 9
adds r2, r3
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034520: .4byte 0x030045c0
@@ -80556,7 +80556,7 @@ _08034524:
lsls r2, 9
adds r2, r3
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803453C: .4byte 0x030045c0
@@ -80569,7 +80569,7 @@ _08034540:
lsls r2, 9
adds r2, r3
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034558: .4byte 0x030045c0
@@ -80582,7 +80582,7 @@ _0803455C:
lsls r2, 9
adds r2, r3
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034574: .4byte 0x030045c0
@@ -80595,7 +80595,7 @@ _08034578:
lsls r2, 9
adds r2, r3
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034590: .4byte 0x030045c0
@@ -80608,7 +80608,7 @@ _08034594:
lsls r2, 9
adds r2, r3
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080345AC: .4byte 0x030045c0
@@ -80621,7 +80621,7 @@ _080345B0:
lsls r2, 9
adds r2, r3
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080345C8: .4byte 0x030045c0
@@ -80634,7 +80634,7 @@ _080345CC:
lsls r2, 9
adds r2, r3
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080345E4: .4byte 0x030045c0
@@ -80647,7 +80647,7 @@ _080345E8:
lsls r2, 9
adds r2, r3
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034600: .4byte 0x030045c0
@@ -80660,7 +80660,7 @@ _08034604:
lsls r2, 9
adds r2, r3
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803461C: .4byte 0x030045c0
@@ -80673,7 +80673,7 @@ _08034620:
lsls r2, 9
adds r2, r3
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034638: .4byte 0x030045c0
@@ -80686,7 +80686,7 @@ _0803463C:
lsls r2, 9
adds r2, r3
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034654: .4byte 0x030045c0
@@ -80699,7 +80699,7 @@ _08034658:
lsls r2, 9
adds r2, r3
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034670: .4byte 0x030045c0
@@ -80712,7 +80712,7 @@ _08034674:
lsls r2, 9
adds r2, r3
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803468C: .4byte 0x030045c0
@@ -80725,7 +80725,7 @@ _08034690:
lsls r2, 9
adds r2, r3
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346A8: .4byte 0x030045c0
@@ -80738,7 +80738,7 @@ _080346AC:
lsls r2, 9
adds r2, r3
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346C4: .4byte 0x030045c0
@@ -80751,7 +80751,7 @@ _080346C8:
lsls r2, 9
adds r2, r3
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346E0: .4byte 0x030045c0
@@ -80764,7 +80764,7 @@ _080346E4:
lsls r2, 9
adds r2, r3
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346FC: .4byte 0x030045c0
@@ -80777,7 +80777,7 @@ _08034700:
lsls r2, 9
adds r2, r3
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034718: .4byte 0x030045c0
@@ -80790,7 +80790,7 @@ _0803471C:
lsls r2, 9
adds r2, r3
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_08034730:
add sp, 0x38
pop {r3-r5}
@@ -80882,7 +80882,7 @@ sub_80347B8: @ 80347B8
mov r10, r2
add r0, r10
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -80987,7 +80987,7 @@ sub_80347B8: @ 80347B8
muls r0, r7
add r0, r10
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -81088,7 +81088,7 @@ sub_803495C: @ 803495C
ldr r5, _08034AC0
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -82635,7 +82635,7 @@ _0803562E:
ldr r1, _0803565C
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0803562C
ldr r1, _08035660
@@ -82739,7 +82739,7 @@ sub_80356CC: @ 80356CC
ldr r4, _08035754
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -82749,7 +82749,7 @@ sub_80356CC: @ 80356CC
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -82777,7 +82777,7 @@ _0803575C:
ldr r1, _080357A8
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -83213,7 +83213,7 @@ sub_8035A94: @ 8035A94
ldr r1, _08035ACC
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -84023,17 +84023,17 @@ _08036110:
adds r4, r5, r2
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080361C2
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080361C2
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -84048,10 +84048,10 @@ _08036110:
beq _080361C2
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
movs r0, 0
bl battle_get_side_with_given_state
lsls r0, 24
@@ -84069,7 +84069,7 @@ _0803617C:
adds r1, 0xD
mov r0, r8
add r0, r9
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -84294,17 +84294,17 @@ _08036342:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080363FA
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080363FA
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -84336,12 +84336,12 @@ _08036342:
beq _080363FA
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r5, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080363E0
lsls r0, r4, 3
@@ -84843,21 +84843,21 @@ _0803679E:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080367B6
b _080368D0
_080367B6:
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080367C4
b _080368D0
_080367C4:
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -84890,12 +84890,12 @@ _080367C4:
beq _080368D0
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r5, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036844
lsls r0, r4, 3
@@ -84954,7 +84954,7 @@ _0803688E:
adds r1, r4, 0
adds r1, 0xD
add r0, r8
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -85149,17 +85149,17 @@ _08036A1A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036A7E
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036A7E
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -85320,7 +85320,7 @@ _08036B8E:
ldr r1, _08036C0C
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036BCE
ldr r1, _08036C10
@@ -85587,14 +85587,14 @@ _08036DA2:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
beq _08036E7C
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036E7C
mov r1, r8
@@ -85703,7 +85703,7 @@ _08036EA4:
adds r1, r7, 0
adds r1, 0xD
adds r0, r5, r6
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
@@ -85777,7 +85777,7 @@ _08036F2C:
adds r4, r6, r2
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
adds r3, r7, 0x1
str r3, [sp, 0x18]
@@ -85785,7 +85785,7 @@ _08036F2C:
beq _08036FE8
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036FE8
ldr r1, _0803701C
@@ -85823,7 +85823,7 @@ _08036F90:
adds r1, 0xD
ldr r0, _08037018
add r0, r9
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0
@@ -85968,17 +85968,17 @@ _080370A0:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080370DC
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080370DC
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -87111,7 +87111,7 @@ _0803791A:
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -87162,7 +87162,7 @@ _080379B2:
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -87721,7 +87721,7 @@ _08037E5E:
ldr r1, _08037ED8
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -88102,12 +88102,12 @@ _08038220:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -88135,12 +88135,12 @@ _0803826C:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -88155,21 +88155,21 @@ _0803826C:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -88181,7 +88181,7 @@ _0803826C:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -88193,7 +88193,7 @@ _0803826C:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -88205,7 +88205,7 @@ _0803826C:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -88216,7 +88216,7 @@ _0803826C:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -88227,7 +88227,7 @@ _0803826C:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -88239,55 +88239,55 @@ _0803826C:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -88300,7 +88300,7 @@ _0803826C:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -88310,19 +88310,19 @@ _0803826C:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_08038424:
@@ -88373,13 +88373,13 @@ _0803847A:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -88393,7 +88393,7 @@ _0803847A:
ldr r1, _080384C8
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -88435,7 +88435,7 @@ _080384F4:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -88446,7 +88446,7 @@ _080384F4:
ldr r1, _08038520
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -88483,7 +88483,7 @@ _08038550:
adds r0, r1
movs r1, 0x19
_0803855A:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -88616,27 +88616,27 @@ _08038640:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _08038886
@@ -88721,7 +88721,7 @@ _08038710:
adds r0, r1
movs r1, 0x37
_0803871A:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -88810,7 +88810,7 @@ _080387B4:
adds r0, r1
movs r1, 0x3F
_080387BE:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -88917,7 +88917,7 @@ _08038874:
adds r0, r1
movs r1, 0x36
_0803887E:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_08038886:
@@ -89093,12 +89093,12 @@ _08038A34:
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -89139,12 +89139,12 @@ _08038A9A:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -89160,15 +89160,15 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -89177,7 +89177,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
@@ -89186,7 +89186,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
@@ -89195,7 +89195,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
@@ -89204,7 +89204,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
@@ -89213,7 +89213,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
@@ -89222,47 +89222,47 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038BC8: .4byte 0x030045c0
@@ -89275,7 +89275,7 @@ _08038BCC:
lsls r2, 9
adds r2, r3
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038BE4: .4byte 0x030045c0
@@ -89288,7 +89288,7 @@ _08038BE8:
lsls r2, 9
adds r2, r3
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038C00: .4byte 0x030045c0
@@ -89310,12 +89310,12 @@ _08038C1C:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -89329,7 +89329,7 @@ _08038C1C:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038C54: .4byte 0x030045c0
@@ -89361,7 +89361,7 @@ _08038C78:
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89369,7 +89369,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89377,7 +89377,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89385,7 +89385,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89393,7 +89393,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038CDC: .4byte 0x030045c0
@@ -89412,7 +89412,7 @@ _08038CE0:
_08038CF6:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D00: .4byte 0x030045c0
@@ -89426,7 +89426,7 @@ _08038D08:
lsls r2, 9
adds r2, r3
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D20: .4byte 0x030045c0
@@ -89439,7 +89439,7 @@ _08038D24:
lsls r2, 9
adds r2, r3
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D3C: .4byte 0x030045c0
@@ -89452,7 +89452,7 @@ _08038D40:
lsls r2, 9
adds r2, r3
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D58: .4byte 0x030045c0
@@ -89465,7 +89465,7 @@ _08038D5C:
lsls r2, 9
adds r2, r3
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D74: .4byte 0x030045c0
@@ -89478,7 +89478,7 @@ _08038D78:
lsls r2, 9
adds r2, r3
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D90: .4byte 0x030045c0
@@ -89491,7 +89491,7 @@ _08038D94:
lsls r2, 9
adds r2, r3
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038DAC: .4byte 0x030045c0
@@ -89504,7 +89504,7 @@ _08038DB0:
lsls r2, 9
adds r2, r3
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038DC8: .4byte 0x030045c0
@@ -89517,7 +89517,7 @@ _08038DCC:
lsls r2, 9
adds r2, r3
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038DE4: .4byte 0x030045c0
@@ -89530,7 +89530,7 @@ _08038DE8:
lsls r2, 9
adds r2, r3
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E00: .4byte 0x030045c0
@@ -89543,7 +89543,7 @@ _08038E04:
lsls r2, 9
adds r2, r3
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E1C: .4byte 0x030045c0
@@ -89556,7 +89556,7 @@ _08038E20:
lsls r2, 9
adds r2, r3
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E38: .4byte 0x030045c0
@@ -89569,7 +89569,7 @@ _08038E3C:
lsls r2, 9
adds r2, r3
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E54: .4byte 0x030045c0
@@ -89582,7 +89582,7 @@ _08038E58:
lsls r2, 9
adds r2, r3
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E70: .4byte 0x030045c0
@@ -89595,7 +89595,7 @@ _08038E74:
lsls r2, 9
adds r2, r3
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E8C: .4byte 0x030045c0
@@ -89611,7 +89611,7 @@ _08038E90:
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89619,7 +89619,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89627,7 +89627,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89635,7 +89635,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89643,7 +89643,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -89662,7 +89662,7 @@ _08038F04:
lsls r2, 9
adds r2, r3
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F1C: .4byte 0x030045c0
@@ -89675,7 +89675,7 @@ _08038F20:
lsls r2, 9
adds r2, r3
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F38: .4byte 0x030045c0
@@ -89688,7 +89688,7 @@ _08038F3C:
lsls r2, 9
adds r2, r3
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F54: .4byte 0x030045c0
@@ -89701,7 +89701,7 @@ _08038F58:
lsls r2, 9
adds r2, r3
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F70: .4byte 0x030045c0
@@ -89714,7 +89714,7 @@ _08038F74:
lsls r2, 9
adds r2, r3
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F8C: .4byte 0x030045c0
@@ -89728,7 +89728,7 @@ _08038F90:
adds r2, r3
_08038F9E:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FA8: .4byte 0x030045c0
@@ -89741,7 +89741,7 @@ _08038FAC:
lsls r2, 9
adds r2, r3
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FC4: .4byte 0x030045c0
@@ -89754,7 +89754,7 @@ _08038FC8:
lsls r2, 9
adds r2, r3
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FE0: .4byte 0x030045c0
@@ -89767,7 +89767,7 @@ _08038FE4:
lsls r2, 9
adds r2, r3
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FFC: .4byte 0x030045c0
@@ -89780,7 +89780,7 @@ _08039000:
lsls r2, 9
adds r2, r3
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039018: .4byte 0x030045c0
@@ -89793,7 +89793,7 @@ _0803901C:
lsls r2, 9
adds r2, r3
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039034: .4byte 0x030045c0
@@ -89806,7 +89806,7 @@ _08039038:
lsls r2, 9
adds r2, r3
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039050: .4byte 0x030045c0
@@ -89819,7 +89819,7 @@ _08039054:
lsls r2, 9
adds r2, r3
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_0803906C: .4byte 0x030045c0
@@ -89832,7 +89832,7 @@ _08039070:
lsls r2, 9
adds r2, r3
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039088: .4byte 0x030045c0
@@ -89845,7 +89845,7 @@ _0803908C:
lsls r2, 9
adds r2, r3
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390A4: .4byte 0x030045c0
@@ -89858,7 +89858,7 @@ _080390A8:
lsls r2, 9
adds r2, r3
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390C0: .4byte 0x030045c0
@@ -89871,7 +89871,7 @@ _080390C4:
lsls r2, 9
adds r2, r3
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390DC: .4byte 0x030045c0
@@ -89884,7 +89884,7 @@ _080390E0:
lsls r2, 9
adds r2, r3
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390F8: .4byte 0x030045c0
@@ -89897,7 +89897,7 @@ _080390FC:
lsls r2, 9
adds r2, r3
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039114: .4byte 0x030045c0
@@ -89910,7 +89910,7 @@ _08039118:
lsls r2, 9
adds r2, r3
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039130: .4byte 0x030045c0
@@ -89923,7 +89923,7 @@ _08039134:
lsls r2, 9
adds r2, r3
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_0803914C: .4byte 0x030045c0
@@ -89936,7 +89936,7 @@ _08039150:
lsls r2, 9
adds r2, r3
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039168: .4byte 0x030045c0
@@ -89949,7 +89949,7 @@ _0803916C:
lsls r2, 9
adds r2, r3
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039184: .4byte 0x030045c0
@@ -89962,7 +89962,7 @@ _08039188:
lsls r2, 9
adds r2, r3
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391A0: .4byte 0x030045c0
@@ -89975,7 +89975,7 @@ _080391A4:
lsls r2, 9
adds r2, r3
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391BC: .4byte 0x030045c0
@@ -89988,7 +89988,7 @@ _080391C0:
lsls r2, 9
adds r2, r3
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391D8: .4byte 0x030045c0
@@ -90001,7 +90001,7 @@ _080391DC:
lsls r2, 9
adds r2, r3
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391F4: .4byte 0x030045c0
@@ -90014,7 +90014,7 @@ _080391F8:
lsls r2, 9
adds r2, r3
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_0803920C:
add sp, 0x38
pop {r3-r5}
@@ -90109,7 +90109,7 @@ sub_8039294: @ 8039294
mov r9, r1
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -90206,7 +90206,7 @@ sub_8039294: @ 8039294
adds r0, r1, 0
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -90307,7 +90307,7 @@ sub_8039430: @ 8039430
ldr r5, _08039594
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -91463,7 +91463,7 @@ sub_8039D80: @ 8039D80
ldr r4, _08039E08
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -91473,7 +91473,7 @@ sub_8039D80: @ 8039D80
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -91501,7 +91501,7 @@ _08039E10:
ldr r1, _08039E5C
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -91937,7 +91937,7 @@ sub_803A148: @ 803A148
ldr r1, _0803A180
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -92608,8 +92608,8 @@ nullsub_48: @ 803A6BC
bx lr
thumb_func_end nullsub_48
- thumb_func_start zero_pokemon_boxed_data
-zero_pokemon_boxed_data: @ 803A6C0
+ thumb_func_start ZeroPokemonBoxData
+ZeroPokemonBoxData: @ 803A6C0
push {lr}
adds r2, r0, 0
movs r1, 0
@@ -92622,58 +92622,58 @@ _0803A6C8:
bls _0803A6C8
pop {r0}
bx r0
- thumb_func_end zero_pokemon_boxed_data
+ thumb_func_end ZeroPokemonBoxData
thumb_func_start zero_pokemon_struct
zero_pokemon_struct: @ 803A6D8
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
- bl zero_pokemon_boxed_data
+ bl ZeroPokemonBoxData
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0x37
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0xFF
str r0, [sp]
adds r0, r4, 0
movs r1, 0x40
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x4
pop {r4}
pop {r0}
@@ -92758,13 +92758,13 @@ create_pokemon_set_level: @ 803A798
mov r0, r8
movs r1, 0x38
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0xFF
str r0, [sp, 0x14]
add r2, sp, 0x14
mov r0, r8
movs r1, 0x40
- bl pokemon_setattr
+ bl SetMonData
mov r0, r8
bl pokemon_calc_effective_stats
add sp, 0x1C
@@ -92800,7 +92800,7 @@ create_pokemon: @ 803A808
lsrs r0, 24
mov r10, r0
adds r0, r7, 0
- bl zero_pokemon_boxed_data
+ bl ZeroPokemonBoxData
cmp r4, 0
beq _0803A844
ldr r0, [sp, 0x44]
@@ -92819,7 +92819,7 @@ _0803A858:
add r2, sp, 0x14
adds r0, r7, 0
movs r1, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
add r0, sp, 0x18
mov r9, r0
add r5, sp, 0xC
@@ -92881,37 +92881,37 @@ _0803A8D4:
adds r0, r7, 0
movs r1, 0x1
mov r2, r9
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
bl pokemon_calc_checksum
strh r0, [r5]
adds r0, r7, 0
movs r1, 0x9
adds r2, r5, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
- bl pokemon_encrypt
+ bl EncryptMon
mov r0, sp
ldrh r1, [r0, 0xE]
bl GetSpeciesName
adds r0, r7, 0
movs r1, 0x2
mov r2, sp
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r2, _0803AA04
adds r0, r7, 0
movs r1, 0x3
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r5, _0803AA00
adds r0, r7, 0
movs r1, 0x7
adds r2, r5, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
movs r1, 0xB
mov r2, sp
adds r2, 0xE
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r4, _0803AA08
mov r2, sp
ldrh r1, [r2, 0xE]
@@ -92932,7 +92932,7 @@ _0803A8D4:
adds r2, r0
adds r0, r7, 0
movs r1, 0x19
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
mov r1, sp
ldrh r0, [r1, 0xE]
lsls r2, r0, 3
@@ -92942,7 +92942,7 @@ _0803A8D4:
adds r2, r4
adds r0, r7, 0
movs r1, 0x20
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
bl sav1_map_get_name
lsls r0, 24
lsrs r0, 24
@@ -92950,26 +92950,26 @@ _0803A8D4:
adds r0, r7, 0
movs r1, 0x23
mov r2, r9
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
movs r1, 0x24
add r2, sp, 0x10
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r2, _0803AA10
adds r0, r7, 0
movs r1, 0x25
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
movs r0, 0x4
str r0, [sp, 0x18]
adds r0, r7, 0
movs r1, 0x26
mov r2, r9
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r5, 0x8
adds r0, r7, 0
movs r1, 0x31
adds r2, r5, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
mov r2, sp
ldrb r0, [r2, 0x11]
cmp r0, 0x1F
@@ -92977,32 +92977,32 @@ _0803A8D4:
adds r0, r7, 0
movs r1, 0x27
adds r2, 0x11
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
movs r1, 0x28
mov r2, sp
adds r2, 0x11
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
movs r1, 0x29
mov r2, sp
adds r2, 0x11
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
movs r1, 0x2A
mov r2, sp
adds r2, 0x11
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
movs r1, 0x2B
mov r2, sp
adds r2, 0x11
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r7, 0
movs r1, 0x2C
mov r2, sp
adds r2, 0x11
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
b _0803AA9C
.align 2, 0
_0803AA00: .4byte gSaveBlock2
@@ -93023,7 +93023,7 @@ _0803AA14:
adds r0, r7, 0
movs r1, 0x27
adds r2, r4, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r0, [sp, 0x18]
movs r6, 0xF8
lsls r6, 2
@@ -93033,7 +93033,7 @@ _0803AA14:
adds r0, r7, 0
movs r1, 0x28
adds r2, r4, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r0, [sp, 0x18]
movs r5, 0xF8
lsls r5, 7
@@ -93043,7 +93043,7 @@ _0803AA14:
adds r0, r7, 0
movs r1, 0x29
adds r2, r4, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
bl Random
lsls r0, 16
lsrs r0, 16
@@ -93054,7 +93054,7 @@ _0803AA14:
adds r0, r7, 0
movs r1, 0x2A
adds r2, r4, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r0, [sp, 0x18]
ands r0, r6
lsrs r0, 5
@@ -93062,7 +93062,7 @@ _0803AA14:
adds r0, r7, 0
movs r1, 0x2B
adds r2, r4, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldr r0, [sp, 0x18]
ands r0, r5
lsrs r0, 10
@@ -93070,7 +93070,7 @@ _0803AA14:
adds r0, r7, 0
movs r1, 0x2C
adds r2, r4, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
_0803AA9C:
ldr r2, _0803AAD8
mov r3, sp
@@ -93089,7 +93089,7 @@ _0803AA9C:
adds r0, r7, 0
movs r1, 0x2E
mov r2, r9
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
_0803AAC2:
adds r0, r7, 0
bl sub_803B720
@@ -93354,7 +93354,7 @@ sub_803ACAC: @ 803ACAC
adds r0, r4, 0
movs r1, 0x42
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
bl pokemon_calc_effective_stats
add sp, 0x14
@@ -93386,28 +93386,28 @@ unref_sub_803ACEC: @ 803ACEC
adds r0, r5, 0
movs r1, 0x27
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r4, 0x1
adds r0, r5, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
adds r2, r4, 0x2
adds r0, r5, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
adds r2, r4, 0x3
adds r0, r5, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
adds r2, r4, 0x4
adds r0, r5, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x5
adds r0, r5, 0
movs r1, 0x2C
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
bl pokemon_calc_effective_stats
add sp, 0x10
@@ -93471,7 +93471,7 @@ _0803ADB8:
adds r1, 0x1A
adds r0, r7, 0
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
_0803ADCC:
lsls r0, r4, 25
lsrs r4, r0, 24
@@ -93530,11 +93530,11 @@ _0803AE1E:
adds r2, 0xD
adds r0, r7, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0x2
adds r0, r7, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
adds r1, r6, 0
adds r1, 0x20
add r0, sp, 0x10
@@ -93557,48 +93557,48 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x3
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
add r0, sp, 0x10
bl SkipExtCtrlCodes
adds r0, r7, 0
movs r1, 0x2
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2B
adds r0, r7, 0
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0xE
adds r0, r7, 0
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0xF
adds r0, r7, 0
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x10
adds r0, r7, 0
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x11
adds r0, r7, 0
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x12
adds r0, r7, 0
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x13
adds r0, r7, 0
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x1B]
lsrs r0, 7
mov r1, r8
@@ -93606,7 +93606,7 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x2E
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x18]
lsls r0, 27
lsrs r0, 27
@@ -93615,7 +93615,7 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x27
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
ldrh r0, [r6, 0x18]
lsls r0, 22
lsrs r0, 27
@@ -93624,7 +93624,7 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x28
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x19]
lsls r0, 25
lsrs r0, 27
@@ -93633,7 +93633,7 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x29
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
ldr r0, [r6, 0x18]
lsls r0, 12
lsrs r0, 27
@@ -93642,7 +93642,7 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x2A
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
ldrh r0, [r6, 0x1A]
lsls r0, 23
lsrs r0, 27
@@ -93651,7 +93651,7 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x2B
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x1B]
lsls r0, 26
lsrs r0, 27
@@ -93660,7 +93660,7 @@ _0803AE68:
adds r0, r7, 0
movs r1, 0x2C
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
adds r0, r7, 0
bl pokemon_calc_effective_stats
add sp, 0x20
@@ -93682,12 +93682,12 @@ sub_803AF78: @ 803AF78
adds r6, r1, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strh r0, [r6]
adds r0, r7, 0
movs r1, 0xC
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0xAF
@@ -93708,7 +93708,7 @@ _0803AFB4:
adds r1, 0xD
adds r0, r7, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r4, 0x2
adds r5, 0x1
@@ -93717,58 +93717,58 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0x38
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0xC]
adds r0, r7, 0
movs r1, 0x15
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0xD]
adds r0, r7, 0
movs r1, 0x1
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [r6, 0x14]
adds r0, r7, 0
movs r1, 0x1A
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0xE]
adds r0, r7, 0
movs r1, 0x1B
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0xF]
adds r0, r7, 0
movs r1, 0x1C
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0x10]
adds r0, r7, 0
movs r1, 0x1D
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0x11]
adds r0, r7, 0
movs r1, 0x1E
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0x12]
adds r0, r7, 0
movs r1, 0x1F
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r6, 0x13]
adds r0, r7, 0
movs r1, 0x20
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strb r0, [r1]
adds r0, r7, 0
movs r1, 0x27
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r4, 0x1F
ands r0, r4
ldrb r2, [r6, 0x18]
@@ -93780,7 +93780,7 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0x28
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r5, 0x1F
ands r0, r5
lsls r0, 5
@@ -93792,7 +93792,7 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0x29
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
ands r0, r4
lsls r0, 2
ldrb r2, [r6, 0x19]
@@ -93804,7 +93804,7 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0x2A
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -93816,7 +93816,7 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0x2B
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
ands r0, r5
lsls r0, 4
ldrh r2, [r6, 0x1A]
@@ -93827,7 +93827,7 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0x2C
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
ands r0, r4
lsls r0, 1
ldrb r2, [r6, 0x1B]
@@ -93839,7 +93839,7 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0x2E
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 7
ldrb r2, [r6, 0x1B]
movs r1, 0x7F
@@ -93849,12 +93849,12 @@ _0803AFB4:
adds r0, r7, 0
movs r1, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [r6, 0x1C]
adds r0, r7, 0
movs r1, 0x2
mov r2, r9
- bl PokemonGetField
+ bl GetMonData
pop {r3,r4}
mov r8, r3
mov r9, r4
@@ -93876,22 +93876,22 @@ pokemon_calc_checksum: @ 803B124
movs r6, 0
ldr r1, [r4]
movs r2, 0
- bl sub_803C638
+ bl GetSubstruct
adds r5, r0, 0
ldr r1, [r4]
adds r0, r4, 0
movs r2, 0x1
- bl sub_803C638
+ bl GetSubstruct
adds r7, r0, 0
ldr r1, [r4]
adds r0, r4, 0
movs r2, 0x2
- bl sub_803C638
+ bl GetSubstruct
mov r8, r0
ldr r1, [r4]
adds r0, r4, 0
movs r2, 0x3
- bl sub_803C638
+ bl GetSubstruct
adds r3, r0, 0
movs r1, 0x5
_0803B15E:
@@ -93955,77 +93955,77 @@ pokemon_calc_effective_stats: @ 803B1B8
adds r5, r0, 0
movs r1, 0x3A
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
adds r0, r5, 0
movs r1, 0x39
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x1C]
adds r0, r5, 0
movs r1, 0x27
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
adds r0, r5, 0
movs r1, 0x1A
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
adds r0, r5, 0
movs r1, 0x28
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
adds r0, r5, 0
movs r1, 0x1B
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
adds r0, r5, 0
movs r1, 0x29
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x20]
adds r0, r5, 0
movs r1, 0x1C
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x24]
adds r0, r5, 0
movs r1, 0x2A
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x28]
adds r0, r5, 0
movs r1, 0x1D
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x2C]
adds r0, r5, 0
movs r1, 0x2B
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x30]
adds r0, r5, 0
movs r1, 0x1E
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x34]
adds r0, r5, 0
movs r1, 0x2C
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x38]
adds r0, r5, 0
movs r1, 0x1F
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x3C]
adds r0, r5, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
adds r0, r5, 0
@@ -94036,7 +94036,7 @@ pokemon_calc_effective_stats: @ 803B1B8
adds r0, r5, 0
movs r1, 0x38
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
ldr r0, _0803B2A0
cmp r7, r0
bne _0803B2A4
@@ -94087,7 +94087,7 @@ _0803B2D2:
_0803B2EC:
adds r0, r5, 0
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
ldr r0, _0803B470
subs r1, r6, r7
lsls r1, 2
@@ -94123,7 +94123,7 @@ _0803B30C:
adds r0, r5, 0
movs r1, 0x3B
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x2]
lsls r0, 1
ldr r3, [sp, 0x20]
@@ -94155,7 +94155,7 @@ _0803B352:
adds r0, r5, 0
movs r1, 0x3C
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x3]
lsls r0, 1
ldr r2, [sp, 0x28]
@@ -94187,7 +94187,7 @@ _0803B398:
adds r0, r5, 0
movs r1, 0x3D
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x4]
lsls r0, 1
ldr r3, [sp, 0x30]
@@ -94219,7 +94219,7 @@ _0803B3DE:
adds r0, r5, 0
movs r1, 0x3E
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x5]
lsls r0, 1
ldr r2, [sp, 0x38]
@@ -94251,7 +94251,7 @@ _0803B424:
adds r0, r5, 0
movs r1, 0x3F
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
ldr r0, _0803B47C
cmp r7, r0
bne _0803B480
@@ -94288,7 +94288,7 @@ _0803B498:
add r2, sp, 0x1C
adds r0, r5, 0
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
_0803B4A4:
add sp, 0x40
pop {r3-r5}
@@ -94315,21 +94315,21 @@ sub_803B4B4: @ 803B4B4
adds r0, r4, 0
movs r1, 0x37
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0xFF
str r0, [sp]
adds r0, r4, 0
movs r1, 0x40
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
bl pokemon_calc_effective_stats
add sp, 0x4
@@ -94344,14 +94344,14 @@ level_by_exp: @ 803B504
adds r5, r0, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x19
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
movs r2, 0x1
ldr r6, _0803B568
@@ -94400,14 +94400,14 @@ sub_803B570: @ 803B570
adds r5, r0, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x19
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r3, r0, 0
movs r2, 0x1
ldr r6, _0803B5D4
@@ -94477,7 +94477,7 @@ _0803B5FE:
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -94485,7 +94485,7 @@ _0803B5FE:
adds r0, r7, 0
adds r1, r4, 0
mov r2, sp
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r1, r5, 0
adds r1, 0x11
ldrh r0, [r6]
@@ -94495,7 +94495,7 @@ _0803B5FE:
ldr r0, _0803B638
adds r2, r0
adds r0, r7, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
ldrh r0, [r6]
b _0803B654
.align 2, 0
@@ -94577,7 +94577,7 @@ sub_803B6A4: @ 803B6A4
adds r1, 0xD
adds r0, r5, 0
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x11
mov r0, sp
ldrh r0, [r0]
@@ -94588,7 +94588,7 @@ sub_803B6A4: @ 803B6A4
adds r2, r0
adds r0, r5, 0
adds r1, r4, 0
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -94644,7 +94644,7 @@ sub_803B720: @ 803B720
mov r8, r0
movs r1, 0xB
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -94734,14 +94734,14 @@ sub_803B7C8: @ 803B7C8
mov r0, r8
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r9, r0
mov r0, r8
movs r1, 0x38
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -94875,13 +94875,13 @@ _0803B8F0:
adds r1, 0xE
adds r0, r6, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r1, r4, 0
adds r1, 0x12
adds r0, r6, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r4
strb r0, [r1]
adds r5, 0x2
@@ -94891,7 +94891,7 @@ _0803B8F0:
adds r0, r6, 0
movs r1, 0x15
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1]
ldrb r0, [r1]
@@ -94915,12 +94915,12 @@ _0803B944:
adds r1, 0xD
adds r0, r6, 0
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r1, r4, 0
adds r1, 0x11
adds r2, r7, r4
adds r0, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r5, 0x2
adds r4, 0x1
cmp r4, 0x3
@@ -94928,7 +94928,7 @@ _0803B944:
adds r0, r6, 0
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x10
pop {r3,r4}
mov r8, r3
@@ -94961,13 +94961,13 @@ _0803B99C:
adds r1, 0xE
adds r0, r6, 0
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
strh r0, [r5]
adds r1, r4, 0
adds r1, 0x12
adds r0, r6, 0
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r7, r4
strb r0, [r1]
adds r5, 0x2
@@ -94977,7 +94977,7 @@ _0803B99C:
adds r0, r6, 0
movs r1, 0x15
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
mov r1, r9
strb r0, [r1]
ldrb r0, [r1]
@@ -95001,12 +95001,12 @@ _0803B9F0:
adds r1, 0xD
adds r0, r6, 0
adds r2, r5, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r1, r4, 0
adds r1, 0x11
adds r2, r7, r4
adds r0, r6, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r5, 0x2
adds r4, 0x1
cmp r4, 0x3
@@ -95014,7 +95014,7 @@ _0803B9F0:
adds r0, r6, 0
movs r1, 0x15
mov r2, r9
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
add sp, 0x10
pop {r3,r4}
mov r8, r3
@@ -96387,13 +96387,13 @@ pokemon_roll_gender: @ 803C4C8
adds r4, r0, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r2, r0, 0
ldr r1, _0803C518
lsls r0, r5, 3
@@ -96545,9540 +96545,4 @@ _0803C5DE:
_0803C5EC: .4byte gUnknown_081EC2A4
thumb_func_end sub_803C5A0
- thumb_func_start pokemon_encrypt
-pokemon_encrypt: @ 803C5F0
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- adds r2, r3, 0
- adds r2, 0x20
-_0803C5FA:
- ldr r0, [r2]
- ldr r1, [r3]
- eors r0, r1
- str r0, [r2]
- ldr r1, [r3, 0x4]
- eors r0, r1
- stm r2!, {r0}
- adds r4, 0x1
- cmp r4, 0xB
- bls _0803C5FA
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemon_encrypt
-
- thumb_func_start pokemon_decrypt
-pokemon_decrypt: @ 803C614
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- adds r2, r3, 0
- adds r2, 0x20
-_0803C61E:
- ldr r0, [r2]
- ldr r1, [r3, 0x4]
- eors r0, r1
- str r0, [r2]
- ldr r1, [r3]
- eors r0, r1
- stm r2!, {r0}
- adds r4, 0x1
- cmp r4, 0xB
- bls _0803C61E
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemon_decrypt
-
- thumb_func_start sub_803C638
-sub_803C638: @ 803C638
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- lsls r2, 24
- lsrs r4, r2, 24
- movs r5, 0
- adds r0, 0x20
- str r0, [sp, 0x4]
- str r0, [sp]
- str r0, [sp, 0xC]
- str r0, [sp, 0x8]
- str r0, [sp, 0x14]
- str r0, [sp, 0x10]
- str r0, [sp, 0x1C]
- str r0, [sp, 0x18]
- str r0, [sp, 0x24]
- str r0, [sp, 0x20]
- str r0, [sp, 0x2C]
- str r0, [sp, 0x28]
- mov r10, r0
- str r0, [sp, 0x30]
- mov r8, r10
- str r0, [sp, 0x34]
- mov r3, r8
- str r3, [sp, 0x38]
- adds r7, r3, 0
- str r7, [sp, 0x3C]
- adds r6, r7, 0
- str r6, [sp, 0x40]
- adds r2, r6, 0
- mov r9, r2
- adds r0, r1, 0
- movs r1, 0x18
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- bl __umodsi3
- ldr r2, [sp, 0x44]
- ldr r3, [sp, 0x48]
- cmp r0, 0x17
- bls _0803C692
- b _0803CB4E
-_0803C692:
- lsls r0, 2
- ldr r1, _0803C69C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803C69C: .4byte _0803C6A0
- .align 2, 0
-_0803C6A0:
- .4byte _0803C700
- .4byte _0803C72E
- .4byte _0803C75C
- .4byte _0803C78A
- .4byte _0803C7B8
- .4byte _0803C7E6
- .4byte _0803C814
- .4byte _0803C842
- .4byte _0803C870
- .4byte _0803C89E
- .4byte _0803C8CC
- .4byte _0803C8FA
- .4byte _0803C928
- .4byte _0803C956
- .4byte _0803C984
- .4byte _0803C9B2
- .4byte _0803C9E0
- .4byte _0803CA0E
- .4byte _0803CA3C
- .4byte _0803CA6A
- .4byte _0803CA98
- .4byte _0803CAC6
- .4byte _0803CAF4
- .4byte _0803CB22
-_0803C700:
- cmp r4, 0x1
- beq _0803C71C
- cmp r4, 0x1
- bgt _0803C70E
- cmp r4, 0
- beq _0803C718
- b _0803CB4E
-_0803C70E:
- cmp r4, 0x2
- beq _0803C722
- cmp r4, 0x3
- beq _0803C728
- b _0803CB4E
-_0803C718:
- ldr r5, [sp]
- b _0803CB4E
-_0803C71C:
- ldr r5, [sp]
- adds r5, 0xC
- b _0803CB4E
-_0803C722:
- ldr r5, [sp]
- adds r5, 0x18
- b _0803CB4E
-_0803C728:
- ldr r5, [sp]
- adds r5, 0x24
- b _0803CB4E
-_0803C72E:
- cmp r4, 0x1
- beq _0803C74A
- cmp r4, 0x1
- bgt _0803C73C
- cmp r4, 0
- beq _0803C746
- b _0803CB4E
-_0803C73C:
- cmp r4, 0x2
- beq _0803C750
- cmp r4, 0x3
- beq _0803C756
- b _0803CB4E
-_0803C746:
- ldr r5, [sp, 0x4]
- b _0803CB4E
-_0803C74A:
- ldr r5, [sp, 0x4]
- adds r5, 0xC
- b _0803CB4E
-_0803C750:
- ldr r5, [sp, 0x4]
- adds r5, 0x24
- b _0803CB4E
-_0803C756:
- ldr r5, [sp, 0x4]
- adds r5, 0x18
- b _0803CB4E
-_0803C75C:
- cmp r4, 0x1
- beq _0803C778
- cmp r4, 0x1
- bgt _0803C76A
- cmp r4, 0
- beq _0803C774
- b _0803CB4E
-_0803C76A:
- cmp r4, 0x2
- beq _0803C77E
- cmp r4, 0x3
- beq _0803C784
- b _0803CB4E
-_0803C774:
- ldr r5, [sp, 0x8]
- b _0803CB4E
-_0803C778:
- ldr r5, [sp, 0x8]
- adds r5, 0x18
- b _0803CB4E
-_0803C77E:
- ldr r5, [sp, 0x8]
- adds r5, 0xC
- b _0803CB4E
-_0803C784:
- ldr r5, [sp, 0x8]
- adds r5, 0x24
- b _0803CB4E
-_0803C78A:
- cmp r4, 0x1
- beq _0803C7A6
- cmp r4, 0x1
- bgt _0803C798
- cmp r4, 0
- beq _0803C7A2
- b _0803CB4E
-_0803C798:
- cmp r4, 0x2
- beq _0803C7AC
- cmp r4, 0x3
- beq _0803C7B2
- b _0803CB4E
-_0803C7A2:
- ldr r5, [sp, 0xC]
- b _0803CB4E
-_0803C7A6:
- ldr r5, [sp, 0xC]
- adds r5, 0x24
- b _0803CB4E
-_0803C7AC:
- ldr r5, [sp, 0xC]
- adds r5, 0xC
- b _0803CB4E
-_0803C7B2:
- ldr r5, [sp, 0xC]
- adds r5, 0x18
- b _0803CB4E
-_0803C7B8:
- cmp r4, 0x1
- beq _0803C7D4
- cmp r4, 0x1
- bgt _0803C7C6
- cmp r4, 0
- beq _0803C7D0
- b _0803CB4E
-_0803C7C6:
- cmp r4, 0x2
- beq _0803C7DA
- cmp r4, 0x3
- beq _0803C7E0
- b _0803CB4E
-_0803C7D0:
- ldr r5, [sp, 0x10]
- b _0803CB4E
-_0803C7D4:
- ldr r5, [sp, 0x10]
- adds r5, 0x18
- b _0803CB4E
-_0803C7DA:
- ldr r5, [sp, 0x10]
- adds r5, 0x24
- b _0803CB4E
-_0803C7E0:
- ldr r5, [sp, 0x10]
- adds r5, 0xC
- b _0803CB4E
-_0803C7E6:
- cmp r4, 0x1
- beq _0803C802
- cmp r4, 0x1
- bgt _0803C7F4
- cmp r4, 0
- beq _0803C7FE
- b _0803CB4E
-_0803C7F4:
- cmp r4, 0x2
- beq _0803C808
- cmp r4, 0x3
- beq _0803C80E
- b _0803CB4E
-_0803C7FE:
- ldr r5, [sp, 0x14]
- b _0803CB4E
-_0803C802:
- ldr r5, [sp, 0x14]
- adds r5, 0x24
- b _0803CB4E
-_0803C808:
- ldr r5, [sp, 0x14]
- adds r5, 0x18
- b _0803CB4E
-_0803C80E:
- ldr r5, [sp, 0x14]
- adds r5, 0xC
- b _0803CB4E
-_0803C814:
- cmp r4, 0x1
- beq _0803C832
- cmp r4, 0x1
- bgt _0803C822
- cmp r4, 0
- beq _0803C82C
- b _0803CB4E
-_0803C822:
- cmp r4, 0x2
- beq _0803C836
- cmp r4, 0x3
- beq _0803C83C
- b _0803CB4E
-_0803C82C:
- ldr r5, [sp, 0x18]
- adds r5, 0xC
- b _0803CB4E
-_0803C832:
- ldr r5, [sp, 0x18]
- b _0803CB4E
-_0803C836:
- ldr r5, [sp, 0x18]
- adds r5, 0x18
- b _0803CB4E
-_0803C83C:
- ldr r5, [sp, 0x18]
- adds r5, 0x24
- b _0803CB4E
-_0803C842:
- cmp r4, 0x1
- beq _0803C860
- cmp r4, 0x1
- bgt _0803C850
- cmp r4, 0
- beq _0803C85A
- b _0803CB4E
-_0803C850:
- cmp r4, 0x2
- beq _0803C864
- cmp r4, 0x3
- beq _0803C86A
- b _0803CB4E
-_0803C85A:
- ldr r5, [sp, 0x1C]
- adds r5, 0xC
- b _0803CB4E
-_0803C860:
- ldr r5, [sp, 0x1C]
- b _0803CB4E
-_0803C864:
- ldr r5, [sp, 0x1C]
- adds r5, 0x24
- b _0803CB4E
-_0803C86A:
- ldr r5, [sp, 0x1C]
- adds r5, 0x18
- b _0803CB4E
-_0803C870:
- cmp r4, 0x1
- beq _0803C88E
- cmp r4, 0x1
- bgt _0803C87E
- cmp r4, 0
- beq _0803C888
- b _0803CB4E
-_0803C87E:
- cmp r4, 0x2
- beq _0803C892
- cmp r4, 0x3
- beq _0803C898
- b _0803CB4E
-_0803C888:
- ldr r5, [sp, 0x20]
- adds r5, 0x18
- b _0803CB4E
-_0803C88E:
- ldr r5, [sp, 0x20]
- b _0803CB4E
-_0803C892:
- ldr r5, [sp, 0x20]
- adds r5, 0xC
- b _0803CB4E
-_0803C898:
- ldr r5, [sp, 0x20]
- adds r5, 0x24
- b _0803CB4E
-_0803C89E:
- cmp r4, 0x1
- beq _0803C8BC
- cmp r4, 0x1
- bgt _0803C8AC
- cmp r4, 0
- beq _0803C8B6
- b _0803CB4E
-_0803C8AC:
- cmp r4, 0x2
- beq _0803C8C0
- cmp r4, 0x3
- beq _0803C8C6
- b _0803CB4E
-_0803C8B6:
- ldr r5, [sp, 0x24]
- adds r5, 0x24
- b _0803CB4E
-_0803C8BC:
- ldr r5, [sp, 0x24]
- b _0803CB4E
-_0803C8C0:
- ldr r5, [sp, 0x24]
- adds r5, 0xC
- b _0803CB4E
-_0803C8C6:
- ldr r5, [sp, 0x24]
- adds r5, 0x18
- b _0803CB4E
-_0803C8CC:
- cmp r4, 0x1
- beq _0803C8EA
- cmp r4, 0x1
- bgt _0803C8DA
- cmp r4, 0
- beq _0803C8E4
- b _0803CB4E
-_0803C8DA:
- cmp r4, 0x2
- beq _0803C8EE
- cmp r4, 0x3
- beq _0803C8F4
- b _0803CB4E
-_0803C8E4:
- ldr r5, [sp, 0x28]
- adds r5, 0x18
- b _0803CB4E
-_0803C8EA:
- ldr r5, [sp, 0x28]
- b _0803CB4E
-_0803C8EE:
- ldr r5, [sp, 0x28]
- adds r5, 0x24
- b _0803CB4E
-_0803C8F4:
- ldr r5, [sp, 0x28]
- adds r5, 0xC
- b _0803CB4E
-_0803C8FA:
- cmp r4, 0x1
- beq _0803C918
- cmp r4, 0x1
- bgt _0803C908
- cmp r4, 0
- beq _0803C912
- b _0803CB4E
-_0803C908:
- cmp r4, 0x2
- beq _0803C91C
- cmp r4, 0x3
- beq _0803C922
- b _0803CB4E
-_0803C912:
- ldr r5, [sp, 0x2C]
- adds r5, 0x24
- b _0803CB4E
-_0803C918:
- ldr r5, [sp, 0x2C]
- b _0803CB4E
-_0803C91C:
- ldr r5, [sp, 0x2C]
- adds r5, 0x18
- b _0803CB4E
-_0803C922:
- ldr r5, [sp, 0x2C]
- adds r5, 0xC
- b _0803CB4E
-_0803C928:
- cmp r4, 0x1
- beq _0803C946
- cmp r4, 0x1
- bgt _0803C936
- cmp r4, 0
- beq _0803C940
- b _0803CB4E
-_0803C936:
- cmp r4, 0x2
- beq _0803C94C
- cmp r4, 0x3
- beq _0803C950
- b _0803CB4E
-_0803C940:
- ldr r5, [sp, 0x30]
- adds r5, 0xC
- b _0803CB4E
-_0803C946:
- ldr r5, [sp, 0x30]
- adds r5, 0x18
- b _0803CB4E
-_0803C94C:
- ldr r5, [sp, 0x30]
- b _0803CB4E
-_0803C950:
- ldr r5, [sp, 0x30]
- adds r5, 0x24
- b _0803CB4E
-_0803C956:
- cmp r4, 0x1
- beq _0803C974
- cmp r4, 0x1
- bgt _0803C964
- cmp r4, 0
- beq _0803C96E
- b _0803CB4E
-_0803C964:
- cmp r4, 0x2
- beq _0803C97A
- cmp r4, 0x3
- beq _0803C97E
- b _0803CB4E
-_0803C96E:
- mov r5, r10
- adds r5, 0xC
- b _0803CB4E
-_0803C974:
- mov r5, r10
- adds r5, 0x24
- b _0803CB4E
-_0803C97A:
- mov r5, r10
- b _0803CB4E
-_0803C97E:
- mov r5, r10
- adds r5, 0x18
- b _0803CB4E
-_0803C984:
- cmp r4, 0x1
- beq _0803C9A2
- cmp r4, 0x1
- bgt _0803C992
- cmp r4, 0
- beq _0803C99C
- b _0803CB4E
-_0803C992:
- cmp r4, 0x2
- beq _0803C9A8
- cmp r4, 0x3
- beq _0803C9AC
- b _0803CB4E
-_0803C99C:
- ldr r5, [sp, 0x34]
- adds r5, 0x18
- b _0803CB4E
-_0803C9A2:
- ldr r5, [sp, 0x34]
- adds r5, 0xC
- b _0803CB4E
-_0803C9A8:
- ldr r5, [sp, 0x34]
- b _0803CB4E
-_0803C9AC:
- ldr r5, [sp, 0x34]
- adds r5, 0x24
- b _0803CB4E
-_0803C9B2:
- cmp r4, 0x1
- beq _0803C9D0
- cmp r4, 0x1
- bgt _0803C9C0
- cmp r4, 0
- beq _0803C9CA
- b _0803CB4E
-_0803C9C0:
- cmp r4, 0x2
- beq _0803C9D6
- cmp r4, 0x3
- beq _0803C9DA
- b _0803CB4E
-_0803C9CA:
- mov r5, r8
- adds r5, 0x24
- b _0803CB4E
-_0803C9D0:
- mov r5, r8
- adds r5, 0xC
- b _0803CB4E
-_0803C9D6:
- mov r5, r8
- b _0803CB4E
-_0803C9DA:
- mov r5, r8
- adds r5, 0x18
- b _0803CB4E
-_0803C9E0:
- cmp r4, 0x1
- beq _0803C9FE
- cmp r4, 0x1
- bgt _0803C9EE
- cmp r4, 0
- beq _0803C9F8
- b _0803CB4E
-_0803C9EE:
- cmp r4, 0x2
- beq _0803CA04
- cmp r4, 0x3
- beq _0803CA08
- b _0803CB4E
-_0803C9F8:
- ldr r5, [sp, 0x38]
- adds r5, 0x18
- b _0803CB4E
-_0803C9FE:
- ldr r5, [sp, 0x38]
- adds r5, 0x24
- b _0803CB4E
-_0803CA04:
- ldr r5, [sp, 0x38]
- b _0803CB4E
-_0803CA08:
- ldr r5, [sp, 0x38]
- adds r5, 0xC
- b _0803CB4E
-_0803CA0E:
- cmp r4, 0x1
- beq _0803CA2C
- cmp r4, 0x1
- bgt _0803CA1C
- cmp r4, 0
- beq _0803CA26
- b _0803CB4E
-_0803CA1C:
- cmp r4, 0x2
- beq _0803CA32
- cmp r4, 0x3
- beq _0803CA36
- b _0803CB4E
-_0803CA26:
- adds r5, r3, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CA2C:
- adds r5, r3, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CA32:
- adds r5, r3, 0
- b _0803CB4E
-_0803CA36:
- adds r5, r3, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CA3C:
- cmp r4, 0x1
- beq _0803CA5A
- cmp r4, 0x1
- bgt _0803CA4A
- cmp r4, 0
- beq _0803CA54
- b _0803CB4E
-_0803CA4A:
- cmp r4, 0x2
- beq _0803CA60
- cmp r4, 0x3
- beq _0803CA66
- b _0803CB4E
-_0803CA54:
- ldr r5, [sp, 0x3C]
- adds r5, 0xC
- b _0803CB4E
-_0803CA5A:
- ldr r5, [sp, 0x3C]
- adds r5, 0x18
- b _0803CB4E
-_0803CA60:
- ldr r5, [sp, 0x3C]
- adds r5, 0x24
- b _0803CB4E
-_0803CA66:
- ldr r5, [sp, 0x3C]
- b _0803CB4E
-_0803CA6A:
- cmp r4, 0x1
- beq _0803CA88
- cmp r4, 0x1
- bgt _0803CA78
- cmp r4, 0
- beq _0803CA82
- b _0803CB4E
-_0803CA78:
- cmp r4, 0x2
- beq _0803CA8E
- cmp r4, 0x3
- beq _0803CA94
- b _0803CB4E
-_0803CA82:
- adds r5, r7, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CA88:
- adds r5, r7, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CA8E:
- adds r5, r7, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CA94:
- adds r5, r7, 0
- b _0803CB4E
-_0803CA98:
- cmp r4, 0x1
- beq _0803CAB6
- cmp r4, 0x1
- bgt _0803CAA6
- cmp r4, 0
- beq _0803CAB0
- b _0803CB4E
-_0803CAA6:
- cmp r4, 0x2
- beq _0803CABC
- cmp r4, 0x3
- beq _0803CAC2
- b _0803CB4E
-_0803CAB0:
- ldr r5, [sp, 0x40]
- adds r5, 0x18
- b _0803CB4E
-_0803CAB6:
- ldr r5, [sp, 0x40]
- adds r5, 0xC
- b _0803CB4E
-_0803CABC:
- ldr r5, [sp, 0x40]
- adds r5, 0x24
- b _0803CB4E
-_0803CAC2:
- ldr r5, [sp, 0x40]
- b _0803CB4E
-_0803CAC6:
- cmp r4, 0x1
- beq _0803CAE4
- cmp r4, 0x1
- bgt _0803CAD4
- cmp r4, 0
- beq _0803CADE
- b _0803CB4E
-_0803CAD4:
- cmp r4, 0x2
- beq _0803CAEA
- cmp r4, 0x3
- beq _0803CAF0
- b _0803CB4E
-_0803CADE:
- adds r5, r6, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CAE4:
- adds r5, r6, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CAEA:
- adds r5, r6, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CAF0:
- adds r5, r6, 0
- b _0803CB4E
-_0803CAF4:
- cmp r4, 0x1
- beq _0803CB12
- cmp r4, 0x1
- bgt _0803CB02
- cmp r4, 0
- beq _0803CB0C
- b _0803CB4E
-_0803CB02:
- cmp r4, 0x2
- beq _0803CB18
- cmp r4, 0x3
- beq _0803CB1E
- b _0803CB4E
-_0803CB0C:
- mov r5, r9
- adds r5, 0x18
- b _0803CB4E
-_0803CB12:
- mov r5, r9
- adds r5, 0x24
- b _0803CB4E
-_0803CB18:
- mov r5, r9
- adds r5, 0xC
- b _0803CB4E
-_0803CB1E:
- mov r5, r9
- b _0803CB4E
-_0803CB22:
- cmp r4, 0x1
- beq _0803CB40
- cmp r4, 0x1
- bgt _0803CB30
- cmp r4, 0
- beq _0803CB3A
- b _0803CB4E
-_0803CB30:
- cmp r4, 0x2
- beq _0803CB46
- cmp r4, 0x3
- beq _0803CB4C
- b _0803CB4E
-_0803CB3A:
- adds r5, r2, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CB40:
- adds r5, r2, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CB46:
- adds r5, r2, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CB4C:
- adds r5, r2, 0
-_0803CB4E:
- adds r0, r5, 0
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803C638
-
- thumb_func_start PokemonGetField
-PokemonGetField: @ 803CB60
- push {lr}
- adds r3, r0, 0
- adds r0, r1, 0
- subs r0, 0x37
- cmp r0, 0x9
- bhi _0803CBF0
- lsls r0, 2
- ldr r1, _0803CB78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803CB78: .4byte _0803CB7C
- .align 2, 0
-_0803CB7C:
- .4byte _0803CBA4
- .4byte _0803CBA8
- .4byte _0803CBB0
- .4byte _0803CBB8
- .4byte _0803CBC0
- .4byte _0803CBC8
- .4byte _0803CBD0
- .4byte _0803CBD8
- .4byte _0803CBE0
- .4byte _0803CBE8
-_0803CBA4:
- ldr r0, [r3, 0x50]
- b _0803CBF6
-_0803CBA8:
- adds r0, r3, 0
- adds r0, 0x54
- ldrb r0, [r0]
- b _0803CBF6
-_0803CBB0:
- adds r0, r3, 0
- adds r0, 0x56
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBB8:
- adds r0, r3, 0
- adds r0, 0x58
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBC0:
- adds r0, r3, 0
- adds r0, 0x5A
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBC8:
- adds r0, r3, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBD0:
- adds r0, r3, 0
- adds r0, 0x5E
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBD8:
- adds r0, r3, 0
- adds r0, 0x60
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBE0:
- adds r0, r3, 0
- adds r0, 0x62
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBE8:
- adds r0, r3, 0
- adds r0, 0x55
- ldrb r0, [r0]
- b _0803CBF6
-_0803CBF0:
- adds r0, r3, 0
- bl PokemonGetEncryptedField
-_0803CBF6:
- pop {r1}
- bx r1
- thumb_func_end PokemonGetField
-
- thumb_func_start PokemonGetEncryptedField
-PokemonGetEncryptedField: @ 803CBFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- str r1, [sp]
- adds r7, r2, 0
- movs r4, 0
- mov r9, r4
- mov r10, r4
- movs r6, 0
- movs r5, 0
- cmp r1, 0xA
- ble _0803CC7A
- ldr r1, [r0]
- movs r2, 0
- bl sub_803C638
- mov r9, r0
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x1
- bl sub_803C638
- mov r10, r0
- mov r2, r8
- ldr r1, [r2]
- mov r0, r8
- movs r2, 0x2
- bl sub_803C638
- adds r6, r0, 0
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x3
- bl sub_803C638
- adds r5, r0, 0
- mov r0, r8
- bl pokemon_decrypt
- mov r0, r8
- bl pokemon_calc_checksum
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- ldrh r1, [r1, 0x1C]
- cmp r0, r1
- beq _0803CC7A
- mov r2, r8
- ldrb r0, [r2, 0x13]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r0, [r5, 0x7]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x7]
-_0803CC7A:
- ldr r0, [sp]
- cmp r0, 0x52
- bls _0803CC82
- b _0803D1DC
-_0803CC82:
- lsls r0, 2
- ldr r1, _0803CC8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803CC8C: .4byte _0803CC90
- .align 2, 0
-_0803CC90:
- .4byte _0803CDDC
- .4byte _0803CDE2
- .4byte _0803CDE8
- .4byte _0803CE5C
- .4byte _0803CE62
- .4byte _0803CE68
- .4byte _0803CE6E
- .4byte _0803CE74
- .4byte _0803CEA0
- .4byte _0803CEA6
- .4byte _0803CEAC
- .4byte _0803CEB2
- .4byte _0803CECA
- .4byte _0803CEE2
- .4byte _0803CEE2
- .4byte _0803CEE2
- .4byte _0803CEE2
- .4byte _0803CEEE
- .4byte _0803CEEE
- .4byte _0803CEEE
- .4byte _0803CEEE
- .4byte _0803CED6
- .4byte _0803CF10
- .4byte _0803CF14
- .4byte _0803CF18
- .4byte _0803CED0
- .4byte _0803CEF8
- .4byte _0803CEFC
- .4byte _0803CF00
- .4byte _0803CF04
- .4byte _0803CF08
- .4byte _0803CF0C
- .4byte _0803CEDC
- .4byte _0803CF1C
- .4byte _0803CF28
- .4byte _0803CF2C
- .4byte _0803CF30
- .4byte _0803CF38
- .4byte _0803CF40
- .4byte _0803CF4E
- .4byte _0803CF56
- .4byte _0803CF5E
- .4byte _0803CF66
- .4byte _0803CF6E
- .4byte _0803CF76
- .4byte _0803CF7E
- .4byte _0803CF82
- .4byte _0803CF20
- .4byte _0803CF24
- .4byte _0803CF48
- .4byte _0803CF88
- .4byte _0803CF90
- .4byte _0803CF98
- .4byte _0803CFA0
- .4byte _0803CFA8
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D006
- .4byte _0803D02C
- .4byte _0803CFB0
- .4byte _0803CFB6
- .4byte _0803CFBA
- .4byte _0803CFBE
- .4byte _0803CFC2
- .4byte _0803CFCA
- .4byte _0803CFD2
- .4byte _0803CFDA
- .4byte _0803CFE2
- .4byte _0803CFE8
- .4byte _0803CFF0
- .4byte _0803CFF8
- .4byte _0803D000
- .4byte _0803D066
- .4byte _0803D0C0
- .4byte _0803D142
-_0803CDDC:
- mov r1, r8
- ldr r4, [r1]
- b _0803D1DC
-_0803CDE2:
- mov r2, r8
- ldr r4, [r2, 0x4]
- b _0803D1DC
-_0803CDE8:
- mov r0, r8
- ldrb r1, [r0, 0x13]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803CE04
- ldr r1, _0803CE00
- adds r0, r7, 0
- bl StringCopy
- b _0803CE50
- .align 2, 0
-_0803CE00: .4byte gUnknown_08400E3A
-_0803CE04:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803CE1C
- ldr r1, _0803CE18
- adds r0, r7, 0
- bl StringCopy
- b _0803CE50
- .align 2, 0
-_0803CE18: .4byte gUnknown_0842CC34
-_0803CE1C:
- movs r4, 0
- mov r1, r8
- adds r1, 0x8
- mov r2, r8
- ldrb r0, [r2, 0x8]
- ldrb r3, [r2, 0x12]
- cmp r0, 0xFF
- beq _0803CE42
- adds r2, r1, 0
-_0803CE2E:
- adds r1, r7, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r4, 0x1
- cmp r4, 0x9
- bhi _0803CE42
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _0803CE2E
-_0803CE42:
- adds r1, r7, r4
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r7, 0
- adds r1, r3, 0
- bl ConvertInternationalString
-_0803CE50:
- adds r0, r7, 0
- bl StringLength
- lsls r0, 16
- lsrs r4, r0, 16
- b _0803D1DC
-_0803CE5C:
- mov r7, r8
- ldrb r4, [r7, 0x12]
- b _0803D1DC
-_0803CE62:
- mov r1, r8
- ldrb r0, [r1, 0x13]
- b _0803CFEA
-_0803CE68:
- mov r2, r8
- ldrb r0, [r2, 0x13]
- b _0803CFF2
-_0803CE6E:
- mov r7, r8
- ldrb r0, [r7, 0x13]
- b _0803CFFA
-_0803CE74:
- movs r4, 0
- mov r1, r8
- adds r1, 0x14
- mov r2, r8
- ldrb r0, [r2, 0x14]
- cmp r0, 0xFF
- beq _0803CE98
- adds r2, r1, 0
-_0803CE84:
- adds r1, r7, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r4, 0x1
- cmp r4, 0x6
- bhi _0803CE98
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _0803CE84
-_0803CE98:
- adds r1, r7, r4
- movs r0, 0xFF
- strb r0, [r1]
- b _0803D1DC
-_0803CEA0:
- mov r7, r8
- ldrb r4, [r7, 0x1B]
- b _0803D1DC
-_0803CEA6:
- mov r0, r8
- ldrh r4, [r0, 0x1C]
- b _0803D1DC
-_0803CEAC:
- mov r1, r8
- ldrh r4, [r1, 0x1E]
- b _0803D1DC
-_0803CEB2:
- mov r2, r8
- ldrb r1, [r2, 0x13]
- movs r0, 0x1
- ands r0, r1
- movs r4, 0xCE
- lsls r4, 1
- cmp r0, 0
- beq _0803CEC4
- b _0803D1DC
-_0803CEC4:
- mov r7, r9
- ldrh r4, [r7]
- b _0803D1DC
-_0803CECA:
- mov r0, r9
- ldrh r4, [r0, 0x2]
- b _0803D1DC
-_0803CED0:
- mov r1, r9
- ldr r4, [r1, 0x4]
- b _0803D1DC
-_0803CED6:
- mov r2, r9
- ldrb r4, [r2, 0x8]
- b _0803D1DC
-_0803CEDC:
- mov r7, r9
- ldrb r4, [r7, 0x9]
- b _0803D1DC
-_0803CEE2:
- ldr r0, [sp]
- subs r0, 0xD
- lsls r0, 1
- add r0, r10
- ldrh r4, [r0]
- b _0803D1DC
-_0803CEEE:
- ldr r0, [sp]
- add r0, r10
- subs r0, 0x9
- ldrb r4, [r0]
- b _0803D1DC
-_0803CEF8:
- ldrb r4, [r6]
- b _0803D1DC
-_0803CEFC:
- ldrb r4, [r6, 0x1]
- b _0803D1DC
-_0803CF00:
- ldrb r4, [r6, 0x2]
- b _0803D1DC
-_0803CF04:
- ldrb r4, [r6, 0x3]
- b _0803D1DC
-_0803CF08:
- ldrb r4, [r6, 0x4]
- b _0803D1DC
-_0803CF0C:
- ldrb r4, [r6, 0x5]
- b _0803D1DC
-_0803CF10:
- ldrb r4, [r6, 0x6]
- b _0803D1DC
-_0803CF14:
- ldrb r4, [r6, 0x7]
- b _0803D1DC
-_0803CF18:
- ldrb r4, [r6, 0x8]
- b _0803D1DC
-_0803CF1C:
- ldrb r4, [r6, 0x9]
- b _0803D1DC
-_0803CF20:
- ldrb r4, [r6, 0xA]
- b _0803D1DC
-_0803CF24:
- ldrb r4, [r6, 0xB]
- b _0803D1DC
-_0803CF28:
- ldrb r4, [r5]
- b _0803D1DC
-_0803CF2C:
- ldrb r4, [r5, 0x1]
- b _0803D1DC
-_0803CF30:
- ldrb r0, [r5, 0x2]
- lsls r0, 25
- lsrs r4, r0, 25
- b _0803D1DC
-_0803CF38:
- ldrh r0, [r5, 0x2]
- lsls r0, 21
- lsrs r4, r0, 28
- b _0803D1DC
-_0803CF40:
- ldrb r0, [r5, 0x3]
- lsls r0, 25
- lsrs r4, r0, 28
- b _0803D1DC
-_0803CF48:
- ldrb r0, [r5, 0x3]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CF4E:
- ldrb r0, [r5, 0x4]
- lsls r0, 27
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF56:
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF5E:
- ldrb r0, [r5, 0x5]
- lsls r0, 25
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF66:
- ldr r0, [r5, 0x4]
- lsls r0, 12
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF6E:
- ldrh r0, [r5, 0x6]
- lsls r0, 23
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF76:
- ldrb r0, [r5, 0x7]
- lsls r0, 26
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF7E:
- ldrb r0, [r5, 0x7]
- b _0803CFDC
-_0803CF82:
- ldrb r0, [r5, 0x7]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CF88:
- ldrb r0, [r5, 0x8]
- lsls r0, 29
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CF90:
- ldrb r0, [r5, 0x8]
- lsls r0, 26
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CF98:
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CFA0:
- ldrb r0, [r5, 0x9]
- lsls r0, 28
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CFA8:
- ldrb r0, [r5, 0x9]
- lsls r0, 25
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CFB0:
- ldrb r0, [r5, 0x9]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CFB6:
- ldrb r0, [r5, 0xA]
- b _0803CFEA
-_0803CFBA:
- ldrb r0, [r5, 0xA]
- b _0803CFF2
-_0803CFBE:
- ldrb r0, [r5, 0xA]
- b _0803CFFA
-_0803CFC2:
- ldrb r0, [r5, 0xA]
- lsls r0, 28
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFCA:
- ldrb r0, [r5, 0xA]
- lsls r0, 27
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFD2:
- ldrb r0, [r5, 0xA]
- lsls r0, 26
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFDA:
- ldrb r0, [r5, 0xA]
-_0803CFDC:
- lsls r0, 25
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFE2:
- ldrb r0, [r5, 0xA]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CFE8:
- ldrb r0, [r5, 0xB]
-_0803CFEA:
- lsls r0, 31
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFF0:
- ldrb r0, [r5, 0xB]
-_0803CFF2:
- lsls r0, 30
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFF8:
- ldrb r0, [r5, 0xB]
-_0803CFFA:
- lsls r0, 29
- lsrs r4, r0, 31
- b _0803D1DC
-_0803D000:
- ldrb r0, [r5, 0xB]
- lsrs r4, r0, 3
- b _0803D1DC
-_0803D006:
- mov r0, r9
- ldrh r4, [r0]
- cmp r4, 0
- bne _0803D010
- b _0803D1DC
-_0803D010:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- blt _0803D026
- mov r2, r8
- ldrb r1, [r2, 0x13]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803D026
- b _0803D1DC
-_0803D026:
- movs r4, 0xCE
- lsls r4, 1
- b _0803D1DC
-_0803D02C:
- ldrb r0, [r5, 0x4]
- lsls r0, 27
- lsrs r4, r0, 27
- ldrh r1, [r5, 0x4]
- movs r0, 0xF8
- lsls r0, 2
- ands r0, r1
- orrs r4, r0
- ldrb r0, [r5, 0x5]
- lsls r0, 25
- lsrs r0, 27
- lsls r0, 10
- orrs r4, r0
- ldr r0, [r5, 0x4]
- movs r1, 0xF8
- lsls r1, 12
- ands r0, r1
- orrs r4, r0
- ldrh r0, [r5, 0x6]
- lsls r0, 23
- lsrs r0, 27
- lsls r0, 20
- orrs r4, r0
- ldrb r0, [r5, 0x7]
- lsls r0, 26
- lsrs r0, 27
- lsls r0, 25
- orrs r4, r0
- b _0803D1DC
-_0803D066:
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, 0
- bne _0803D070
- b _0803D1DC
-_0803D070:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _0803D07A
- b _0803D1DC
-_0803D07A:
- ldrh r0, [r7]
- ldr r1, _0803D0B8
- cmp r0, r1
- bne _0803D084
- b _0803D1DC
-_0803D084:
- mov r2, r10
- ldrh r5, [r2]
- adds r6, r1, 0
- adds r2, r7, 0
- ldr r1, _0803D0BC
-_0803D08E:
- ldrh r3, [r2]
- cmp r5, r3
- beq _0803D0A8
- mov r7, r10
- ldrh r0, [r7, 0x2]
- cmp r0, r3
- beq _0803D0A8
- ldrh r0, [r7, 0x4]
- cmp r0, r3
- beq _0803D0A8
- ldrh r0, [r7, 0x6]
- cmp r0, r3
- bne _0803D0AC
-_0803D0A8:
- ldr r0, [r1]
- orrs r4, r0
-_0803D0AC:
- adds r2, 0x2
- adds r1, 0x4
- ldrh r0, [r2]
- cmp r0, r6
- bne _0803D08E
- b _0803D1DC
- .align 2, 0
-_0803D0B8: .4byte 0x00000163
-_0803D0BC: .4byte gBitTable
-_0803D0C0:
- movs r4, 0
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, 0
- bne _0803D0CC
- b _0803D1DC
-_0803D0CC:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _0803D0D6
- b _0803D1DC
-_0803D0D6:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 29
- lsrs r4, r1, 29
- lsls r0, 26
- lsrs r0, 29
- adds r4, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r0, 29
- adds r4, r0
- ldrb r1, [r5, 0x9]
- lsls r0, r1, 28
- lsrs r0, 29
- adds r4, r0
- lsls r0, r1, 25
- lsrs r0, 29
- adds r4, r0
- lsrs r1, 7
- adds r4, r1
- ldrb r1, [r5, 0xA]
- lsls r0, r1, 31
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 29
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 28
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 27
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 26
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 25
- lsrs r0, 31
- adds r4, r0
- lsrs r1, 7
- adds r4, r1
- ldrb r1, [r5, 0xB]
- lsls r0, r1, 31
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- adds r4, r0
- lsls r1, 29
- lsrs r1, 31
- adds r4, r1
- b _0803D1DC
-_0803D142:
- movs r4, 0
- mov r2, r9
- ldrh r0, [r2]
- cmp r0, 0
- beq _0803D1DC
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- blt _0803D1DC
- ldrb r2, [r5, 0x9]
- lsrs r4, r2, 7
- ldrb r1, [r5, 0x8]
- lsls r0, r1, 29
- lsrs r0, 28
- orrs r4, r0
- lsls r1, 26
- lsrs r1, 29
- lsls r1, 4
- orrs r4, r1
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r0, 29
- lsls r0, 7
- orrs r4, r0
- lsls r0, r2, 28
- lsrs r0, 29
- lsls r0, 10
- orrs r4, r0
- lsls r2, 25
- lsrs r2, 29
- lsls r2, 13
- orrs r4, r2
- ldrb r1, [r5, 0xA]
- lsls r0, r1, 31
- lsrs r0, 31
- lsls r0, 16
- orrs r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- lsls r0, 17
- orrs r4, r0
- lsls r0, r1, 29
- lsrs r0, 31
- lsls r0, 18
- orrs r4, r0
- lsls r0, r1, 28
- lsrs r0, 31
- lsls r0, 19
- orrs r4, r0
- lsls r0, r1, 27
- lsrs r0, 31
- lsls r0, 20
- orrs r4, r0
- lsls r0, r1, 26
- lsrs r0, 31
- lsls r0, 21
- orrs r4, r0
- lsls r0, r1, 25
- lsrs r0, 31
- lsls r0, 22
- orrs r4, r0
- lsrs r1, 7
- lsls r1, 23
- orrs r4, r1
- ldrb r1, [r5, 0xB]
- lsls r0, r1, 31
- lsrs r0, 31
- lsls r0, 24
- orrs r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- lsls r0, 25
- orrs r4, r0
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 26
- orrs r4, r1
-_0803D1DC:
- ldr r7, [sp]
- cmp r7, 0xA
- ble _0803D1E8
- mov r0, r8
- bl pokemon_encrypt
-_0803D1E8:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end PokemonGetEncryptedField
-
- thumb_func_start pokemon_setattr
-pokemon_setattr: @ 803D1FC
- push {lr}
- adds r3, r0, 0
- adds r0, r1, 0
- subs r0, 0x37
- cmp r0, 0xA
- bhi _0803D2E0
- lsls r0, 2
- ldr r1, _0803D214
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803D214: .4byte _0803D218
- .align 2, 0
-_0803D218:
- .4byte _0803D244
- .4byte _0803D25C
- .4byte _0803D266
- .4byte _0803D276
- .4byte _0803D286
- .4byte _0803D296
- .4byte _0803D2A6
- .4byte _0803D2B6
- .4byte _0803D2C6
- .4byte _0803D2D6
- .4byte _0803D2E6
-_0803D244:
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3, 0x50]
- b _0803D2E6
-_0803D25C:
- ldrb r1, [r2]
- adds r0, r3, 0
- adds r0, 0x54
- strb r1, [r0]
- b _0803D2E6
-_0803D266:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x56
- strh r0, [r1]
- b _0803D2E6
-_0803D276:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x58
- strh r0, [r1]
- b _0803D2E6
-_0803D286:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5A
- strh r0, [r1]
- b _0803D2E6
-_0803D296:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5C
- strh r0, [r1]
- b _0803D2E6
-_0803D2A6:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5E
- strh r0, [r1]
- b _0803D2E6
-_0803D2B6:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x60
- strh r0, [r1]
- b _0803D2E6
-_0803D2C6:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x62
- strh r0, [r1]
- b _0803D2E6
-_0803D2D6:
- ldrb r1, [r2]
- adds r0, r3, 0
- adds r0, 0x55
- strb r1, [r0]
- b _0803D2E6
-_0803D2E0:
- adds r0, r3, 0
- bl PokemonSetEncryptedField
-_0803D2E6:
- pop {r0}
- bx r0
- thumb_func_end pokemon_setattr
-
- thumb_func_start PokemonSetEncryptedField
-PokemonSetEncryptedField: @ 803D2EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- mov r10, r1
- adds r4, r2, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0
- movs r5, 0
- cmp r1, 0xA
- ble _0803D36C
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0
- bl sub_803C638
- mov r8, r0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x1
- bl sub_803C638
- mov r9, r0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x2
- bl sub_803C638
- adds r6, r0, 0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x3
- bl sub_803C638
- adds r5, r0, 0
- adds r0, r7, 0
- bl pokemon_decrypt
- adds r0, r7, 0
- bl pokemon_calc_checksum
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r7, 0x1C]
- cmp r0, r1
- beq _0803D36C
- ldrb r0, [r7, 0x13]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r7, 0x13]
- ldrb r0, [r5, 0x7]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x7]
- adds r0, r7, 0
- bl pokemon_encrypt
- b _0803D8F6
-_0803D36C:
- mov r0, r10
- cmp r0, 0x4F
- bls _0803D374
- b _0803D8E2
-_0803D374:
- lsls r0, 2
- ldr r1, _0803D380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803D380: .4byte _0803D384
- .align 2, 0
-_0803D384:
- .4byte _0803D4C4
- .4byte _0803D4DC
- .4byte _0803D4F4
- .4byte _0803D50A
- .4byte _0803D510
- .4byte _0803D520
- .4byte _0803D532
- .4byte _0803D544
- .4byte _0803D55A
- .4byte _0803D560
- .4byte _0803D56C
- .4byte _0803D578
- .4byte _0803D598
- .4byte _0803D5D0
- .4byte _0803D5D0
- .4byte _0803D5D0
- .4byte _0803D5D0
- .4byte _0803D5E4
- .4byte _0803D5E4
- .4byte _0803D5E4
- .4byte _0803D5E4
- .4byte _0803D5C0
- .4byte _0803D614
- .4byte _0803D61A
- .4byte _0803D620
- .4byte _0803D5A6
- .4byte _0803D5F0
- .4byte _0803D5F6
- .4byte _0803D5FC
- .4byte _0803D602
- .4byte _0803D608
- .4byte _0803D60E
- .4byte _0803D5C8
- .4byte _0803D626
- .4byte _0803D638
- .4byte _0803D63E
- .4byte _0803D644
- .4byte _0803D658
- .4byte _0803D670
- .4byte _0803D696
- .4byte _0803D6AA
- .4byte _0803D6C4
- .4byte _0803D6DA
- .4byte _0803D6F4
- .4byte _0803D70C
- .4byte _0803D720
- .4byte _0803D750
- .4byte _0803D62C
- .4byte _0803D632
- .4byte _0803D686
- .4byte _0803D760
- .4byte _0803D76E
- .4byte _0803D784
- .4byte _0803D79C
- .4byte _0803D7AC
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D89A
- .4byte _0803D7C2
- .4byte _0803D7D2
- .4byte _0803D7E0
- .4byte _0803D7F0
- .4byte _0803D800
- .4byte _0803D810
- .4byte _0803D820
- .4byte _0803D830
- .4byte _0803D846
- .4byte _0803D856
- .4byte _0803D864
- .4byte _0803D874
- .4byte _0803D88A
-_0803D4C4:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _0803D8E2
-_0803D4DC:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r7, 0x4]
- b _0803D8E2
-_0803D4F4:
- movs r2, 0
- adds r3, r7, 0
- adds r3, 0x8
-_0803D4FA:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _0803D4FA
- b _0803D8E2
-_0803D50A:
- ldrb r0, [r4]
- strb r0, [r7, 0x12]
- b _0803D8E2
-_0803D510:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r7, 0x13]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- b _0803D73E
-_0803D520:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r7, 0x13]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- b _0803D73E
-_0803D532:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x13]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _0803D73E
-_0803D544:
- movs r2, 0
- adds r3, r7, 0
- adds r3, 0x14
-_0803D54A:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _0803D54A
- b _0803D8E2
-_0803D55A:
- ldrb r0, [r4]
- strb r0, [r7, 0x1B]
- b _0803D8E2
-_0803D560:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r7, 0x1C]
- b _0803D8E2
-_0803D56C:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r7, 0x1E]
- b _0803D8E2
-_0803D578:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- mov r0, r8
- strh r1, [r0]
- lsls r1, 16
- cmp r1, 0
- beq _0803D590
- ldrb r0, [r7, 0x13]
- movs r1, 0x2
- b _0803D73E
-_0803D590:
- ldrb r1, [r7, 0x13]
- movs r0, 0x3
- negs r0, r0
- b _0803D74A
-_0803D598:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x2]
- b _0803D8E2
-_0803D5A6:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- mov r0, r8
- str r1, [r0, 0x4]
- b _0803D8E2
-_0803D5C0:
- ldrb r0, [r4]
- mov r1, r8
- strb r0, [r1, 0x8]
- b _0803D8E2
-_0803D5C8:
- ldrb r0, [r4]
- mov r1, r8
- strb r0, [r1, 0x9]
- b _0803D8E2
-_0803D5D0:
- mov r2, r10
- subs r2, 0xD
- lsls r2, 1
- add r2, r9
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r2]
- b _0803D8E2
-_0803D5E4:
- mov r0, r9
- add r0, r10
- subs r0, 0x9
- ldrb r1, [r4]
- strb r1, [r0]
- b _0803D8E2
-_0803D5F0:
- ldrb r0, [r4]
- strb r0, [r6]
- b _0803D8E2
-_0803D5F6:
- ldrb r0, [r4]
- strb r0, [r6, 0x1]
- b _0803D8E2
-_0803D5FC:
- ldrb r0, [r4]
- strb r0, [r6, 0x2]
- b _0803D8E2
-_0803D602:
- ldrb r0, [r4]
- strb r0, [r6, 0x3]
- b _0803D8E2
-_0803D608:
- ldrb r0, [r4]
- strb r0, [r6, 0x4]
- b _0803D8E2
-_0803D60E:
- ldrb r0, [r4]
- strb r0, [r6, 0x5]
- b _0803D8E2
-_0803D614:
- ldrb r0, [r4]
- strb r0, [r6, 0x6]
- b _0803D8E2
-_0803D61A:
- ldrb r0, [r4]
- strb r0, [r6, 0x7]
- b _0803D8E2
-_0803D620:
- ldrb r0, [r4]
- strb r0, [r6, 0x8]
- b _0803D8E2
-_0803D626:
- ldrb r0, [r4]
- strb r0, [r6, 0x9]
- b _0803D8E2
-_0803D62C:
- ldrb r0, [r4]
- strb r0, [r6, 0xA]
- b _0803D8E2
-_0803D632:
- ldrb r0, [r4]
- strb r0, [r6, 0xB]
- b _0803D8E2
-_0803D638:
- ldrb r0, [r4]
- strb r0, [r5]
- b _0803D8E2
-_0803D63E:
- ldrb r0, [r4]
- strb r0, [r5, 0x1]
- b _0803D8E2
-_0803D644:
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r1, r0
- ldrb r2, [r5, 0x2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x2]
- b _0803D8E2
-_0803D658:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 7
- ldrh r2, [r5, 0x2]
- ldr r0, _0803D66C
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x2]
- b _0803D8E2
- .align 2, 0
-_0803D66C: .4byte 0xfffff87f
-_0803D670:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0x3]
- movs r0, 0x79
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _0803D8E2
-_0803D686:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x3]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x3]
- b _0803D8E2
-_0803D696:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- ldrb r2, [r5, 0x4]
- movs r0, 0x20
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x4]
- b _0803D8E2
-_0803D6AA:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 5
- ldrh r2, [r5, 0x4]
- ldr r0, _0803D6C0
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- b _0803D8E2
- .align 2, 0
-_0803D6C0: .4byte 0xfffffc1f
-_0803D6C4:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0x7D
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0803D8E2
-_0803D6DA:
- ldrb r2, [r4]
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 15
- ldr r0, [r5, 0x4]
- ldr r1, _0803D6F0
- ands r0, r1
- orrs r0, r2
- str r0, [r5, 0x4]
- b _0803D8E2
- .align 2, 0
-_0803D6F0: .4byte 0xfff07fff
-_0803D6F4:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 4
- ldrh r2, [r5, 0x6]
- ldr r0, _0803D708
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x6]
- b _0803D8E2
- .align 2, 0
-_0803D708: .4byte 0xfffffe0f
-_0803D70C:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x7]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _0803D8E0
-_0803D720:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r5, 0x7]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _0803D744
- ldrb r0, [r7, 0x13]
- movs r1, 0x4
-_0803D73E:
- orrs r0, r1
- strb r0, [r7, 0x13]
- b _0803D8E2
-_0803D744:
- ldrb r1, [r7, 0x13]
- movs r0, 0x5
- negs r0, r0
-_0803D74A:
- ands r0, r1
- strb r0, [r7, 0x13]
- b _0803D8E2
-_0803D750:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x7]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x7]
- b _0803D8E2
-_0803D760:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- ldrb r2, [r5, 0x8]
- movs r0, 0x8
- negs r0, r0
- b _0803D77C
-_0803D76E:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0x8]
- movs r0, 0x39
- negs r0, r0
-_0803D77C:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x8]
- b _0803D8E2
-_0803D784:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 6
- ldrh r2, [r5, 0x8]
- ldr r0, _0803D798
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x8]
- b _0803D8E2
- .align 2, 0
-_0803D798: .4byte 0xfffffe3f
-_0803D79C:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x9]
- movs r0, 0xF
- negs r0, r0
- b _0803D7BA
-_0803D7AC:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5, 0x9]
- movs r0, 0x71
- negs r0, r0
-_0803D7BA:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x9]
- b _0803D8E2
-_0803D7C2:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x9]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- b _0803D8E2
-_0803D7D2:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- ldrb r2, [r5, 0xA]
- movs r0, 0x2
- negs r0, r0
- b _0803D83E
-_0803D7E0:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0xA]
- movs r0, 0x3
- negs r0, r0
- b _0803D83E
-_0803D7F0:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0xA]
- movs r0, 0x5
- negs r0, r0
- b _0803D83E
-_0803D800:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0xA]
- movs r0, 0x9
- negs r0, r0
- b _0803D83E
-_0803D810:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5, 0xA]
- movs r0, 0x11
- negs r0, r0
- b _0803D83E
-_0803D820:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 5
- ldrb r2, [r5, 0xA]
- movs r0, 0x21
- negs r0, r0
- b _0803D83E
-_0803D830:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r5, 0xA]
- movs r0, 0x41
- negs r0, r0
-_0803D83E:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xA]
- b _0803D8E2
-_0803D846:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0xA]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0xA]
- b _0803D8E2
-_0803D856:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- ldrb r2, [r5, 0xB]
- movs r0, 0x2
- negs r0, r0
- b _0803D882
-_0803D864:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0xB]
- movs r0, 0x3
- negs r0, r0
- b _0803D882
-_0803D874:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0xB]
- movs r0, 0x5
- negs r0, r0
-_0803D882:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xB]
- b _0803D8E2
-_0803D88A:
- ldrb r0, [r4]
- lsls r0, 3
- ldrb r2, [r5, 0xB]
- movs r1, 0x7
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0xB]
- b _0803D8E2
-_0803D89A:
- ldrb r1, [r4]
- movs r4, 0x1F
- adds r2, r1, 0
- ands r2, r4
- ldrb r3, [r5, 0x4]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x4]
- lsrs r1, 5
- ands r1, r4
- lsls r1, 5
- ldrh r2, [r5, 0x4]
- ldr r0, _0803D904
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldrb r1, [r5, 0x5]
- movs r0, 0x7D
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x5]
- ldr r0, [r5, 0x4]
- ldr r1, _0803D908
- ands r0, r1
- str r0, [r5, 0x4]
- ldrh r1, [r5, 0x6]
- ldr r0, _0803D90C
- ands r0, r1
- strh r0, [r5, 0x6]
- ldrb r1, [r5, 0x7]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
-_0803D8E0:
- strb r0, [r5, 0x7]
-_0803D8E2:
- mov r0, r10
- cmp r0, 0xA
- ble _0803D8F6
- adds r0, r7, 0
- bl pokemon_calc_checksum
- strh r0, [r7, 0x1C]
- adds r0, r7, 0
- bl pokemon_encrypt
-_0803D8F6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803D904: .4byte 0xfffffc1f
-_0803D908: .4byte 0xfff07fff
-_0803D90C: .4byte 0xfffffe0f
- thumb_func_end PokemonSetEncryptedField
-
- thumb_func_start memcpy_pokemon
-memcpy_pokemon: @ 803D910
- push {lr}
- bl memcpy
- pop {r0}
- bx r0
- thumb_func_end memcpy_pokemon
-
- thumb_func_start pokemon_catch
-pokemon_catch: @ 803D91C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _0803D948
- movs r1, 0x7
- adds r2, r4, 0
- bl pokemon_setattr
- adds r2, r4, 0
- adds r2, 0x8
- adds r0, r6, 0
- movs r1, 0x31
- bl pokemon_setattr
- adds r4, 0xA
- adds r0, r6, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl pokemon_setattr
- movs r5, 0
- b _0803D94E
- .align 2, 0
-_0803D948: .4byte gSaveBlock2
-_0803D94C:
- adds r5, 0x1
-_0803D94E:
- cmp r5, 0x5
- bgt _0803D988
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0803D980
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803D94C
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x64
- bl memcpy_pokemon
- ldr r1, _0803D984
- adds r0, r5, 0x1
- strb r0, [r1]
- movs r0, 0
- b _0803D992
- .align 2, 0
-_0803D980: .4byte 0x03004360
-_0803D984: .4byte 0x03004350
-_0803D988:
- adds r0, r6, 0
- bl sub_803D998
- lsls r0, 24
- lsrs r0, 24
-_0803D992:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_catch
-
- thumb_func_start sub_803D998
-sub_803D998: @ 803D998
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r9, r0
- ldr r0, _0803D9E8
- ldrb r5, [r0]
-_0803D9A8:
- movs r7, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- mov r8, r0
- movs r6, 0
-_0803D9B8:
- ldr r3, _0803D9EC
- adds r0, r6, r3
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- str r3, [sp]
- bl PokemonGetEncryptedField
- ldr r3, [sp]
- cmp r0, 0
- bne _0803D9F0
- mov r0, r9
- bl sub_8040B1C
- adds r0, r4, 0
- mov r1, r9
- movs r2, 0x50
- bl memcpy_pokemon
- movs r0, 0x1
- b _0803DA0A
- .align 2, 0
-_0803D9E8: .4byte 0x020300a0
-_0803D9EC: .4byte 0x020300a4
-_0803D9F0:
- adds r6, 0x50
- adds r7, 0x1
- cmp r7, 0x1D
- ble _0803D9B8
- adds r5, 0x1
- cmp r5, 0xE
- bne _0803DA00
- movs r5, 0
-_0803DA00:
- subs r0, r3, 0x4
- ldrb r0, [r0]
- cmp r5, r0
- bne _0803D9A8
- movs r0, 0x2
-_0803DA0A:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803D998
-
- thumb_func_start calc_player_party_count
-calc_player_party_count: @ 803DA18
- push {r4,lr}
- ldr r0, _0803DA24
- movs r1, 0
- strb r1, [r0]
- b _0803DA30
- .align 2, 0
-_0803DA24: .4byte 0x03004350
-_0803DA28:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r0, r4, 0
-_0803DA30:
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0803DA4E
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803DA58
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803DA28
-_0803DA4E:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DA58: .4byte 0x03004360
- thumb_func_end calc_player_party_count
-
- thumb_func_start calc_enemy_party_count
-calc_enemy_party_count: @ 803DA5C
- push {r4,lr}
- ldr r0, _0803DA68
- movs r1, 0
- strb r1, [r0]
- b _0803DA74
- .align 2, 0
-_0803DA68: .4byte 0x030045b8
-_0803DA6C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r0, r4, 0
-_0803DA74:
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0803DA92
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803DA9C
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803DA6C
-_0803DA92:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DA9C: .4byte 0x030045c0
- thumb_func_end calc_enemy_party_count
-
- thumb_func_start sub_803DAA0
-sub_803DAA0: @ 803DAA0
- push {r4-r6,lr}
- movs r6, 0
- bl calc_player_party_count
- ldr r1, _0803DB0C
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _0803DB04
- movs r5, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _0803DAFC
-_0803DAB8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0803DB10
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0803DAF2
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0803DAF2
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0803DAF2
- adds r6, 0x1
-_0803DAF2:
- adds r5, 0x1
- ldr r0, _0803DB0C
- ldrb r0, [r0]
- cmp r5, r0
- blt _0803DAB8
-_0803DAFC:
- movs r0, 0
- cmp r6, 0x1
- bgt _0803DB04
- movs r0, 0x2
-_0803DB04:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DB0C: .4byte 0x03004350
-_0803DB10: .4byte 0x03004360
- thumb_func_end sub_803DAA0
-
- thumb_func_start sub_803DB14
-sub_803DB14: @ 803DB14
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- cmp r1, 0
- beq _0803DB38
- ldr r2, _0803DB30
- ldr r1, _0803DB34
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x17]
- b _0803DB46
- .align 2, 0
-_0803DB30: .4byte 0x02024c06
-_0803DB34: .4byte gBaseStats
-_0803DB38:
- ldr r2, _0803DB50
- ldr r1, _0803DB54
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
-_0803DB46:
- strb r0, [r2]
- ldrb r0, [r2]
- pop {r1}
- bx r1
- .align 2, 0
-_0803DB50: .4byte 0x02024c06
-_0803DB54: .4byte gBaseStats
- thumb_func_end sub_803DB14
-
- thumb_func_start GetMonAbility
-GetMonAbility: @ 803DB58
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x2E
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_803DB14
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetMonAbility
-
- thumb_func_start create_enemy_party
-create_enemy_party: @ 803DB8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r0, 0
- bl zero_enemy_party_data
- ldr r5, _0803DC8C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xA0
- bl memcpy
- movs r7, 0
-_0803DBAC:
- lsls r0, r7, 1
- mov r9, r0
- ldr r2, _0803DC8C
- adds r2, 0x7C
- mov r10, r2
- mov r1, r9
- add r1, r10
- ldrh r0, [r1]
- adds r2, r7, 0x1
- str r2, [sp, 0x10]
- cmp r0, 0
- beq _0803DC64
- movs r0, 0x64
- adds r6, r7, 0
- muls r6, r0
- ldr r2, _0803DC90
- mov r8, r2
- adds r5, r6, r2
- ldrh r1, [r1]
- ldr r0, _0803DC8C
- adds r0, 0x94
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r0, 0x1
- str r0, [sp]
- lsls r4, r7, 2
- ldr r0, _0803DC8C
- adds r0, 0x34
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r3, 0xF
- bl create_pokemon_set_level
- ldr r2, _0803DC94
- add r2, r9
- adds r0, r5, 0
- movs r1, 0xC
- bl pokemon_setattr
- movs r5, 0
- mov r9, r4
- mov r3, r8
- mov r4, r10
- adds r4, 0x1E
-_0803DC10:
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r6, r3
- adds r2, r7, r4
- str r3, [sp, 0x14]
- bl pokemon_setattr
- adds r5, 0x1
- ldr r3, [sp, 0x14]
- cmp r5, 0x5
- ble _0803DC10
- movs r5, 0
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0803DC90
- adds r7, r1, r0
- mov r2, r9
- lsls r6, r2, 1
-_0803DC36:
- adds r1, r5, 0
- adds r1, 0xD
- ldr r4, _0803DC98
- adds r4, r6, r4
- adds r0, r7, 0
- adds r2, r4, 0
- bl pokemon_setattr
- adds r1, r5, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0803DC9C
- adds r2, r0
- adds r0, r7, 0
- bl pokemon_setattr
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803DC36
-_0803DC64:
- ldr r7, [sp, 0x10]
- cmp r7, 0x5
- ble _0803DBAC
- ldr r1, _0803DCA0
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _0803DCA4
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803DC8C: .4byte 0x02017000
-_0803DC90: .4byte 0x030045c0
-_0803DC94: .4byte 0x02017088
-_0803DC98: .4byte 0x0201704c
-_0803DC9C: .4byte gBattleMoves + 0x4 @ PP offset
-_0803DCA0: .4byte 0x020239f8
-_0803DCA4: .4byte 0x0202ff5e
- thumb_func_end create_enemy_party
-
- thumb_func_start sub_803DCA8
-sub_803DCA8: @ 803DCA8
- push {r4,r5,lr}
- ldr r5, _0803DCD8
- ldr r4, _0803DCDC
- ldrb r0, [r4, 0x9]
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4, 0x1]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0803DCE0
- adds r0, r1
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DCD8: .4byte gUnknown_082082E8
-_0803DCDC: .4byte 0x02017000
-_0803DCE0: .4byte gTrainerClassToPicIndex
- thumb_func_end sub_803DCA8
-
- thumb_func_start sub_803DCE4
-sub_803DCE4: @ 803DCE4
- push {r4,r5,lr}
- ldr r5, _0803DD14
- ldr r4, _0803DD18
- ldrb r0, [r4, 0x9]
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4, 0x1]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0803DD1C
- adds r0, r1
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DD14: .4byte gUnknown_082082E8
-_0803DD18: .4byte 0x02017000
-_0803DD1C: .4byte gTrainerClassToNameIndex
- thumb_func_end sub_803DCE4
-
- thumb_func_start sub_803DD20
-sub_803DD20: @ 803DD20
- push {r4,lr}
- movs r4, 0
-_0803DD24:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0803DD3C
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803DD40
- movs r0, 0
- b _0803DD4E
- .align 2, 0
-_0803DD3C: .4byte 0x03004360
-_0803DD40:
- adds r4, 0x1
- cmp r4, 0x5
- ble _0803DD24
- bl sub_803DD54
- lsls r0, 24
- lsrs r0, 24
-_0803DD4E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_803DD20
-
- thumb_func_start sub_803DD54
-sub_803DD54: @ 803DD54
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- movs r7, 0
-_0803DD5C:
- movs r5, 0
- adds r6, r7, 0
- movs r4, 0
-_0803DD62:
- ldr r0, _0803DD7C
- adds r0, r4, r0
- adds r0, r6, r0
- movs r1, 0xB
- movs r2, 0
- str r3, [sp]
- bl PokemonGetEncryptedField
- ldr r3, [sp]
- cmp r0, 0
- bne _0803DD80
- movs r0, 0
- b _0803DD96
- .align 2, 0
-_0803DD7C: .4byte 0x020300a4
-_0803DD80:
- adds r4, 0x50
- adds r5, 0x1
- cmp r5, 0x1D
- ble _0803DD62
- movs r0, 0x96
- lsls r0, 4
- adds r7, r0
- adds r3, 0x1
- cmp r3, 0xD
- ble _0803DD5C
- movs r0, 0x1
-_0803DD96:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803DD54
-
- thumb_func_start GetSpeciesName
-GetSpeciesName: @ 803DDA0
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r1, 0
- movs r0, 0xCE
- lsls r0, 1
- mov r12, r0
- ldr r7, _0803DDBC
- movs r0, 0xB
- muls r0, r5
- adds r3, r0, r7
- adds r2, r6, 0
- b _0803DDC6
- .align 2, 0
-_0803DDBC: .4byte gSpeciesNames
-_0803DDC0:
- adds r3, 0x1
- adds r2, 0x1
- adds r1, 0x1
-_0803DDC6:
- adds r4, r6, r1
- cmp r1, 0xA
- bgt _0803DDE0
- cmp r5, r12
- bls _0803DDD6
- adds r0, r1, r7
- ldrb r0, [r0]
- b _0803DDD8
-_0803DDD6:
- ldrb r0, [r3]
-_0803DDD8:
- strb r0, [r2]
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0803DDC0
-_0803DDE0:
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GetSpeciesName
-
- thumb_func_start CalcPPWithPPUps
-CalcPPWithPPUps: @ 803DDEC
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _0803DE2C
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrb r4, [r3, 0x4]
- ldr r0, _0803DE30
- adds r0, r2, r0
- ldrb r3, [r0]
- ands r3, r1
- lsls r2, 1
- asrs r3, r2
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DE2C: .4byte gBattleMoves
-_0803DE30: .4byte gUnknown_08208238
- thumb_func_end CalcPPWithPPUps
-
- thumb_func_start sub_803DE34
-sub_803DE34: @ 803DE34
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- ldr r1, _0803DE6C
- adds r4, r1
- ldrb r1, [r4]
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x15
- mov r2, sp
- bl pokemon_setattr
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803DE6C: .4byte gUnknown_0820823C
- thumb_func_end sub_803DE34
-
- thumb_func_start sub_803DE70
-sub_803DE70: @ 803DE70
- lsls r1, 24
- lsrs r1, 24
- adds r0, 0x3B
- ldr r2, _0803DE84
- adds r1, r2
- ldrb r2, [r0]
- ldrb r1, [r1]
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0803DE84: .4byte gUnknown_0820823C
- thumb_func_end sub_803DE70
-
- thumb_func_start battle_data_fill
-battle_data_fill: @ 803DE88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x64
- mov r5, r9
- muls r5, r0
- ldr r0, _0803E170
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- ldr r1, _0803E174
- mov r8, r1
- movs r1, 0x58
- ldr r2, [sp, 0x14]
- adds r4, r2, 0
- muls r4, r1
- mov r3, r8
- adds r6, r4, r3
- strh r0, [r6]
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- strh r0, [r6, 0x2E]
- movs r6, 0
- mov r0, r8
- adds r0, 0x24
- adds r7, r4, r0
-_0803DEDA:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xC
- add r1, r8
- mov r10, r1
- adds r1, r4, r1
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- movs r2, 0
- bl PokemonGetField
- strb r0, [r7]
- adds r7, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803DEDA
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0803E170
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- movs r2, 0xC
- negs r2, r2
- add r2, r10
- mov r9, r2
- movs r1, 0x58
- ldr r3, [sp, 0x14]
- adds r5, r3, 0
- muls r5, r1
- adds r7, r5, r2
- adds r1, r7, 0
- adds r1, 0x3B
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- adds r1, r7, 0
- adds r1, 0x2B
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x19
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x38
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- movs r2, 0
- bl PokemonGetField
- movs r6, 0x1F
- ands r0, r6
- ldrb r2, [r7, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x1F
- mov r8, r1
- mov r2, r8
- ands r0, r2
- lsls r0, 5
- ldrh r2, [r7, 0x14]
- ldr r1, _0803E178
- ands r1, r2
- orrs r1, r0
- strh r1, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- movs r2, 0
- bl PokemonGetField
- ands r0, r6
- lsls r0, 2
- ldrb r2, [r7, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [r7, 0x14]
- ldr r2, _0803E17C
- ands r0, r2
- orrs r0, r1
- str r0, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- movs r2, 0
- bl PokemonGetField
- mov r3, r8
- ands r0, r3
- lsls r0, 4
- ldrh r2, [r7, 0x16]
- ldr r1, _0803E180
- ands r1, r2
- orrs r1, r0
- strh r1, [r7, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- movs r2, 0
- bl PokemonGetField
- ands r0, r6
- lsls r0, 1
- ldrb r2, [r7, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x3C
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x37
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x40
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r7, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- movs r2, 0
- bl PokemonGetField
- lsls r0, 7
- ldrb r2, [r7, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x48
- adds r1, r5, r1
- str r0, [r1]
- ldr r2, _0803E184
- ldrh r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, r7, 0
- adds r1, 0x21
- strb r0, [r1]
- ldrh r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, r7, 0
- adds r1, 0x22
- strb r0, [r1]
- ldrh r0, [r7]
- ldrb r1, [r7, 0x17]
- lsrs r1, 7
- bl sub_803DB14
- adds r1, r7, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- mov r0, r10
- adds r0, 0x24
- adds r0, r5, r0
- mov r1, sp
- bl StringCopy10
- mov r2, r10
- adds r2, 0x30
- adds r2, r5, r2
- adds r0, r4, 0
- movs r1, 0x7
- bl PokemonGetField
- ldr r0, [sp, 0x14]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _0803E188
- adds r0, r1
- ldrh r1, [r7, 0x28]
- strh r1, [r0]
- movs r2, 0x6
- mov r1, r9
- movs r6, 0x7
- add r5, r10
- adds r0, r5, 0
- adds r0, 0x13
-_0803E13A:
- strb r2, [r0]
- subs r0, 0x1
- subs r6, 0x1
- cmp r6, 0
- bge _0803E13A
- movs r2, 0
- movs r0, 0x58
- ldr r3, [sp, 0x14]
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- str r2, [r0]
- ldr r0, [sp, 0x14]
- bl sub_80157C4
- ldr r0, [sp, 0x14]
- movs r1, 0
- bl sub_8032AA8
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803E170: .4byte 0x03004360
-_0803E174: .4byte 0x02024a80
-_0803E178: .4byte 0xfffffc1f
-_0803E17C: .4byte 0xfff07fff
-_0803E180: .4byte 0xfffffe0f
-_0803E184: .4byte gBaseStats
-_0803E188: .4byte 0x020160bc
- thumb_func_end battle_data_fill
-
- 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 PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803E240
- ldr r0, _0803E21C
- ldr r4, _0803E220
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E22C
- ldr r2, _0803E224
- ldr r0, _0803E228
- 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 0x03001770
-_0803E220: .4byte 0x0000043d
-_0803E224: .4byte 0x02024df0
-_0803E228: .4byte 0x02024e6c
-_0803E22C:
- ldr r0, _0803E238
- ldr r5, _0803E23C
- adds r0, r5
- ldrb r0, [r0]
- b _0803E248
- .align 2, 0
-_0803E238: .4byte 0x02025734
-_0803E23C: .4byte 0x00003688
-_0803E240:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
-_0803E248:
- str r0, [sp, 0x30]
- ldr r1, _0803E2A4
- ldr r0, _0803E2A8
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _0803E2AC
- ldr r1, _0803E2B0
- 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
- strb r2, [r0]
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _0803E2B8
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- ldr r2, _0803E2BC
- 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 0x02024c0b
-_0803E2A8: .4byte 0x02024e6c
-_0803E2AC: .4byte 0x03001770
-_0803E2B0: .4byte 0x0000043d
-_0803E2B4: .4byte 0x02024a60
-_0803E2B8: .4byte 0x02024a68
-_0803E2BC: .4byte 0x02024a6a
-_0803E2C0:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _0803E2E4
- 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 0x02024a68
-_0803E2E8:
- ldr r0, _0803E310
- 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
- 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 0x02024a60
-_0803E314: .4byte gItemEffectTable
-_0803E318:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _0803E372
-_0803E31E:
- ldr r0, _0803E340
- ldr r1, _0803E344
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E350
- ldr r0, _0803E348
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803E34C
- adds r0, r1
- b _0803E372
- .align 2, 0
-_0803E340: .4byte 0x03001770
-_0803E344: .4byte 0x0000043d
-_0803E348: .4byte 0x02024a60
-_0803E34C: .4byte 0x02024df8
-_0803E350:
- ldr r2, _0803E358
- str r2, [sp, 0x20]
- b _0803E374
- .align 2, 0
-_0803E358: .4byte 0x02028daa
-_0803E35C:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl sub_8111924
- 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
- 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
- ldr r1, _0803E464
- 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
- 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
- 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
- ldr r0, _0803E470
- 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
- ldr r5, _0803E470
- 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 0x03001770
-_0803E464: .4byte 0x0000043d
-_0803E468: .4byte 0x02024a80
-_0803E46C: .4byte 0xfff0ffff
-_0803E470: .4byte 0x02024a60
-_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
- ldr r5, _0803E504
- 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
- ldr r5, _0803E504
- 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 0x02024a80
-_0803E504: .4byte 0x02024a60
-_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
- ldr r5, _0803E598
- 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
- ldr r5, _0803E598
- 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 0x02024a80
-_0803E598: .4byte 0x02024a60
-_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
- ldr r4, _0803E75C
- ldrb r0, [r4]
- bl battle_side_get_owner
- 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 battle_side_get_owner
- 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 PokemonGetField
- cmp r0, 0x64
- beq _0803E646
- ldr r5, _0803E760
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0803E764
- 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 pokemon_setattr
- mov r0, r8
- bl pokemon_calc_effective_stats
- 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
- 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
- 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
- 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
- ldr r3, _0803E778
- 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
- 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 0x02024c80
-_0803E75C: .4byte 0x02024a60
-_0803E760: .4byte gExperienceTables
-_0803E764: .4byte gBaseStats
-_0803E768: .4byte 0x02024a80
-_0803E76C: .4byte 0xf7ffffff
-_0803E770: .4byte 0x00000f88
-_0803E774: .4byte 0x03001770
-_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 PokemonGetField
- ldr r1, _0803E880
- 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 PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- 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 PokemonGetField
- ldr r1, _0803E884
- 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 pokemon_setattr
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- 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 PokemonGetField
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl pokemon_setattr
- 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
- 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 sub_8040020
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803E8EC
- cmp r5, r0
- bls _0803E8BE
- b _0803E36C
-_0803E8BE:
- ldr r0, _0803E8F0
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl PokemonGetField
- 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
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl pokemon_setattr
- mov r0, r8
- bl pokemon_calc_effective_stats
- 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 PokemonGetField
- cmp r0, 0
- beq _0803E954
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803E954:
- ldr r0, _0803E99C
- ldr r1, _0803E9A0
- 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
- ldr r1, _0803E9A8
- 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
- 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 battle_data_fill
- ldr r0, _0803E9B0
- ldrb r0, [r0]
- b _0803E9CC
- .align 2, 0
-_0803E99C: .4byte 0x03001770
-_0803E9A0: .4byte 0x0000043d
-_0803E9A4: .4byte 0x02024c0c
-_0803E9A8: .4byte gBitTable
-_0803E9AC: .4byte 0x02024a6a
-_0803E9B0: .4byte 0x02024a60
-_0803E9B4:
- ldr r3, _0803E9E4
- ldr r1, _0803E9E8
- ldr r2, _0803E9EC
- 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 battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EA0A
- ldr r1, _0803E9F0
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _0803EA0A
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0803EA0A
- .align 2, 0
-_0803E9E4: .4byte 0x02024c0c
-_0803E9E8: .4byte gBitTable
-_0803E9EC: .4byte 0x02024a60
-_0803E9F0: .4byte 0x030042e0
-_0803E9F4:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- 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 PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- subs r4, r0
- str r4, [sp]
- b _0803EA6C
-_0803EA4C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _0803EA6C
- movs r0, 0x1
- b _0803EA6A
-_0803EA62:
- ldr r0, _0803EB24
- ldr r5, _0803EB28
- adds r0, r5
- ldrb r0, [r0]
-_0803EA6A:
- str r0, [sp]
-_0803EA6C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- beq _0803EB4C
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0803EB40
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EAB8
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
-_0803EAB8:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803EB2C
- ldr r1, _0803EB30
- 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
- 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
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EB48
- ldr r1, _0803EB3C
- 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 dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- strb r5, [r4]
- b _0803EB48
- .align 2, 0
-_0803EB24: .4byte 0x02000000
-_0803EB28: .4byte 0x000160fa
-_0803EB2C: .4byte 0x03001770
-_0803EB30: .4byte 0x0000043d
-_0803EB34: .4byte 0x02024a80
-_0803EB38: .4byte 0x02024a60
-_0803EB3C: .4byte 0x030042e0
-_0803EB40:
- ldr r1, _0803EB58
- 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 0x02024bec
-_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 PokemonGetField
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- 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 CalcPPWithPPUps
- 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 PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalcPPWithPPUps
- 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 PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803EC28:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803ECA4
- ldr r4, _0803ECA8
- 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
- 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
- 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
- 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 0x03001770
-_0803ECA8: .4byte 0x0000043d
-_0803ECAC: .4byte 0x02024a80
-_0803ECB0: .4byte 0x02024ca8
-_0803ECB4: .4byte gBitTable
-_0803ECB8:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- 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 PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- 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 PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803ED74:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803EDE0
- ldr r1, _0803EDE4
- 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
- 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
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803EDF0
- 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 0x03001770
-_0803EDE4: .4byte 0x0000043d
-_0803EDE8: .4byte 0x02024a80
-_0803EDEC: .4byte 0x02024ca8
-_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
- 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 sub_8040020
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803EEBC
- cmp r5, r0
- bls _0803EE88
- bl _0803E36C
-_0803EE88:
- ldr r0, _0803EEC0
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl PokemonGetField
- 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
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl pokemon_setattr
- mov r0, r8
- bl pokemon_calc_effective_stats
- 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 PokemonGetField
- ldr r1, _0803EFC0
- 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 PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
- ldr r1, _0803EFC4
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _0803EFC8
- 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 pokemon_setattr
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- 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 PokemonGetField
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl pokemon_setattr
- 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 PokemonGetField
- 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 PokemonGetField
- 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 PokemonGetField
- cmp r0, 0x63
- bls _0803F130
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- 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 PokemonGetField
- 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 PokemonGetField
- 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 PokemonGetField
- 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 PokemonGetField
- 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 PokemonGetField
- 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 pokemon_setattr
-_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
-
- thumb_func_start HealStatusConditions
-HealStatusConditions: @ 803F16C
- 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 PokemonGetField
- adds r1, r0, 0
- str r1, [sp]
- ands r0, r4
- cmp r0, 0
- beq _0803F1D0
- mvns r4, r4
- ands r1, r4
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803F1C4
- ldr r1, _0803F1C8
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F1BE
- cmp r6, 0x4
- beq _0803F1BE
- ldr r0, _0803F1CC
- movs r1, 0x58
- muls r1, r6
- adds r0, 0x4C
- adds r1, r0
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
-_0803F1BE:
- movs r0, 0
- b _0803F1D2
- .align 2, 0
-_0803F1C4: .4byte 0x03001770
-_0803F1C8: .4byte 0x0000043d
-_0803F1CC: .4byte 0x02024a80
-_0803F1D0:
- movs r0, 0x1
-_0803F1D2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end HealStatusConditions
-
- thumb_func_start sub_803F1DC
-sub_803F1DC: @ 803F1DC
- 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, _0803F204
- adds r0, r3, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803F208
- cmp r3, 0xAF
- beq _0803F20C
-_0803F200:
- movs r0, 0
- b _0803F31C
- .align 2, 0
-_0803F204: .4byte gItemEffectTable
-_0803F208:
- cmp r3, 0xAF
- bne _0803F21A
-_0803F20C:
- ldr r0, _0803F22C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F230
- adds r0, r1
-_0803F21A:
- mov r12, r0
- movs r2, 0
-_0803F21E:
- cmp r2, 0x4
- beq _0803F23E
- cmp r2, 0x4
- ble _0803F234
- cmp r2, 0x5
- beq _0803F2C8
- b _0803F312
- .align 2, 0
-_0803F22C: .4byte 0x02024a60
-_0803F230: .4byte 0x02024df8
-_0803F234:
- cmp r2, 0
- blt _0803F312
- cmp r2, r4
- bne _0803F312
- b _0803F200
-_0803F23E:
- mov r0, r12
- ldrb r3, [r0, 0x4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0803F24E
- movs r0, 0xDF
- ands r3, r0
-_0803F24E:
- movs r6, 0
- cmp r3, 0
- beq _0803F312
-_0803F254:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F2B4
- cmp r6, 0x7
- bhi _0803F2B4
- lsls r0, r6, 2
- ldr r1, _0803F26C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F26C: .4byte _0803F270
- .align 2, 0
-_0803F270:
- .4byte _0803F29C
- .4byte _0803F29C
- .4byte _0803F290
- .4byte _0803F29C
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B0
-_0803F290:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0803F29C
- movs r0, 0xEF
- ands r3, r0
-_0803F29C:
- cmp r2, r4
- bne _0803F2A8
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2A8:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F2B4
-_0803F2B0:
- cmp r2, r4
- beq _0803F200
-_0803F2B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2C2
- lsrs r5, 1
-_0803F2C2:
- cmp r3, 0
- bne _0803F254
- b _0803F312
-_0803F2C8:
- mov r0, r12
- ldrb r3, [r0, 0x5]
- movs r6, 0
-_0803F2CE:
- cmp r3, 0
- beq _0803F312
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F302
- cmp r6, 0
- blt _0803F302
- cmp r6, 0x6
- ble _0803F2E8
- cmp r6, 0x7
- beq _0803F2FC
- b _0803F302
-_0803F2E8:
- cmp r2, r4
- bne _0803F2F4
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2F4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F302
-_0803F2FC:
- cmp r2, r4
- bne _0803F302
- b _0803F200
-_0803F302:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2CE
- lsrs r5, 1
- b _0803F2CE
-_0803F312:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _0803F31A
- b _0803F21E
-_0803F31A:
- adds r0, r7, 0
-_0803F31C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803F1DC
-
- thumb_func_start sub_803F324
-sub_803F324: @ 803F324
- push {lr}
- ldr r2, _0803F358
- ldr r1, _0803F35C
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r3, _0803F360
- ldr r2, _0803F364
- ldr r1, _0803F368
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0]
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _0803F36C
- ldr r1, _0803F370
- bl StringCopy
- ldr r0, _0803F374
- bl get_battle_strings_
- pop {r0}
- bx r0
- .align 2, 0
-_0803F358: .4byte 0x02024c08
-_0803F35C: .4byte 0x02024e6c
-_0803F360: .4byte 0x030041c0
-_0803F364: .4byte gUnknown_08400F58
-_0803F368: .4byte gUnknown_082082F8
-_0803F36C: .4byte 0x03004290
-_0803F370: .4byte gUnknown_083FFDB3
-_0803F374: .4byte gUnknown_083FFDD3
- thumb_func_end sub_803F324
-
- thumb_func_start sub_803F378
-sub_803F378: @ 803F378
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803F3C0
- ldr r0, _0803F3A8
- ldr r1, _0803F3AC
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F3B8
- ldr r2, _0803F3B0
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F3B4
- adds r7, r0, r1
- b _0803F3CC
- .align 2, 0
-_0803F3A8: .4byte 0x03001770
-_0803F3AC: .4byte 0x0000043d
-_0803F3B0: .4byte 0x02024e6c
-_0803F3B4: .4byte 0x02024df8
-_0803F3B8:
- ldr r7, _0803F3BC
- b _0803F3CA
- .align 2, 0
-_0803F3BC: .4byte 0x02028daa
-_0803F3C0:
- ldr r1, _0803F404
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r7, [r0]
-_0803F3CA:
- ldr r2, _0803F408
-_0803F3CC:
- ldr r1, _0803F40C
- ldrb r0, [r2]
- strb r0, [r1]
- movs r5, 0
- ldr r0, _0803F410
- mov r8, r0
- movs r6, 0
-_0803F3DA:
- adds r4, r7, r5
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _0803F3EC
- adds r0, r6, 0
- bl sub_803F324
-_0803F3EC:
- ldrb r1, [r4]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _0803F422
- cmp r5, 0
- beq _0803F414
- adds r0, r6, 0x1
- bl sub_803F324
- b _0803F422
- .align 2, 0
-_0803F404: .4byte gItemEffectTable
-_0803F408: .4byte 0x02024e6c
-_0803F40C: .4byte 0x02024c0b
-_0803F410: .4byte 0x02024c07
-_0803F414:
- ldr r0, _0803F450
- ldrb r0, [r0]
- mov r1, r8
- strb r0, [r1]
- ldr r0, _0803F454
- bl get_battle_strings_
-_0803F422:
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x2
- ble _0803F3DA
- ldrb r1, [r7, 0x3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0803F442
- ldr r1, _0803F458
- ldr r0, _0803F450
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0803F45C
- bl get_battle_strings_
-_0803F442:
- ldr r0, _0803F460
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803F450: .4byte 0x02024e6c
-_0803F454: .4byte gUnknown_083FEE92
-_0803F458: .4byte 0x02024c07
-_0803F45C: .4byte gUnknown_083FEE5D
-_0803F460: .4byte 0x020238cc
- thumb_func_end sub_803F378
-
- thumb_func_start GetNature
-GetNature: @ 803F464
- push {lr}
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNature
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: @ 803F47C
- push {lr}
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNatureFromPersonality
-
- thumb_func_start GetEvolutionTargetSpecies
-GetEvolutionTargetSpecies: @ 803F48C
- 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 PokemonGetField
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- mov r1, sp
- strh r0, [r1]
- mov r0, r8
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x17
- movs r2, 0
- bl PokemonGetField
- 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 _0803F500
- ldr r0, _0803F4F8
- ldr r1, _0803F4FC
- adds r0, r1
- ldrb r0, [r0]
- b _0803F508
- .align 2, 0
-_0803F4F8: .4byte 0x02025734
-_0803F4FC: .4byte 0x00003688
-_0803F500:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
-_0803F508:
- cmp r0, 0x26
- bne _0803F514
- cmp r5, 0x3
- beq _0803F514
- movs r0, 0
- b _0803F7A4
-_0803F514:
- cmp r5, 0x1
- bne _0803F51A
- b _0803F734
-_0803F51A:
- cmp r5, 0x1
- bgt _0803F524
- cmp r5, 0
- beq _0803F538
- b _0803F7A2
-_0803F524:
- cmp r5, 0x3
- ble _0803F52A
- b _0803F7A2
-_0803F52A:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r3, _0803F534
- lsls r6, r7, 2
- b _0803F782
- .align 2, 0
-_0803F534: .4byte gEvolutionTable
-_0803F538:
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r6, r7, 2
-_0803F55E:
- ldr r1, _0803F584
- 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
- adds r4, r2, 0
- cmp r0, 0xE
- bls _0803F57A
- b _0803F726
-_0803F57A:
- lsls r0, 2
- ldr r1, _0803F588
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F584: .4byte gEvolutionTable
-_0803F588: .4byte _0803F58C
- .align 2, 0
-_0803F58C:
- .4byte _0803F5C8
- .4byte _0803F5DA
- .4byte _0803F5FC
- .4byte _0803F62C
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F63C
- .4byte _0803F666
- .4byte _0803F690
- .4byte _0803F6BE
- .4byte _0803F6DE
- .4byte _0803F702
- .4byte _0803F726
- .4byte _0803F712
-_0803F5C8:
- ldr r1, [sp, 0x8]
- cmp r1, 0xDB
- bhi _0803F5D0
- b _0803F726
-_0803F5D0:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r3
- b _0803F61C
-_0803F5DA:
- bl RtcCalcLocalTime
- ldr r0, _0803F5F8
- ldrb r0, [r0, 0x2]
- subs r0, 0xC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0803F5EE
- b _0803F726
-_0803F5EE:
- ldr r2, [sp, 0x8]
- cmp r2, 0xDB
- bhi _0803F5F6
- b _0803F726
-_0803F5F6:
- b _0803F612
- .align 2, 0
-_0803F5F8: .4byte 0x03004038
-_0803F5FC:
- bl RtcCalcLocalTime
- ldr r0, _0803F624
- ldrb r0, [r0, 0x2]
- cmp r0, 0xB
- bls _0803F60A
- b _0803F726
-_0803F60A:
- ldr r0, [sp, 0x8]
- cmp r0, 0xDB
- bhi _0803F612
- b _0803F726
-_0803F612:
- ldr r1, _0803F628
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r1
-_0803F61C:
- ldrh r0, [r0, 0x4]
- mov r10, r0
- b _0803F726
- .align 2, 0
-_0803F624: .4byte 0x03004038
-_0803F628: .4byte gEvolutionTable
-_0803F62C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F63C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- bls _0803F726
- b _0803F6B8
-_0803F666:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- bne _0803F726
- b _0803F6B8
-_0803F690:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- bcs _0803F726
-_0803F6B8:
- ldrh r5, [r5, 0x4]
- mov r10, r5
- b _0803F726
-_0803F6BE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0803F726
- b _0803F6FC
-_0803F6DE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _0803F726
-_0803F6FC:
- ldrh r4, [r4, 0x4]
- mov r10, r4
- b _0803F726
-_0803F702:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F712:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- ldr r2, [sp, 0xC]
- cmp r0, r2
- bhi _0803F726
-_0803F722:
- ldrh r1, [r1, 0x4]
- mov r10, r1
-_0803F726:
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x4
- bgt _0803F732
- b _0803F55E
-_0803F732:
- b _0803F7A2
-_0803F734:
- lsls r6, r7, 2
- ldr r1, _0803F778
- adds r0, r6, r7
- lsls r0, 3
- adds r4, r0, r1
- mov r5, sp
- movs r1, 0x4
- str r1, [sp, 0x4]
-_0803F744:
- ldrh r0, [r4]
- cmp r0, 0x5
- beq _0803F764
- cmp r0, 0x6
- bne _0803F768
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5]
- cmp r0, r1
- bne _0803F768
- movs r0, 0
- strh r0, [r5]
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl pokemon_setattr
-_0803F764:
- ldrh r2, [r4, 0x4]
- mov r10, r2
-_0803F768:
- adds r4, 0x8
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F744
- b _0803F7A2
- .align 2, 0
-_0803F778: .4byte gEvolutionTable
-_0803F77C:
- ldrh r1, [r1, 0x4]
- mov r10, r1
- b _0803F7A2
-_0803F782:
- 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 _0803F798
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- beq _0803F77C
-_0803F798:
- ldr r2, [sp, 0x4]
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r2, 0x4
- ble _0803F782
-_0803F7A2:
- mov r0, r10
-_0803F7A4:
- 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 GetEvolutionTargetSpecies
-
- thumb_func_start HoennPokedexNumToSpecies
-HoennPokedexNumToSpecies: @ 803F7B4
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F7F8
- movs r1, 0
- ldr r3, _0803F7F0
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F7E0
- movs r4, 0xCD
- lsls r4, 1
-_0803F7CC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F7E0
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F7CC
-_0803F7E0:
- ldr r0, _0803F7F4
- cmp r1, r0
- beq _0803F7F8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F7FA
- .align 2, 0
-_0803F7F0: .4byte gSpeciesToHoennPokedexNum
-_0803F7F4: .4byte 0x0000019b
-_0803F7F8:
- movs r0, 0
-_0803F7FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end HoennPokedexNumToSpecies
-
- thumb_func_start NationalPokedexNumToSpecies
-NationalPokedexNumToSpecies: @ 803F800
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F844
- movs r1, 0
- ldr r3, _0803F83C
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F82C
- movs r4, 0xCD
- lsls r4, 1
-_0803F818:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F82C
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F818
-_0803F82C:
- ldr r0, _0803F840
- cmp r1, r0
- beq _0803F844
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F846
- .align 2, 0
-_0803F83C: .4byte gSpeciesToNationalPokedexNum
-_0803F840: .4byte 0x0000019b
-_0803F844:
- movs r0, 0
-_0803F846:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalPokedexNumToSpecies
-
- thumb_func_start NationalToHoennOrder
-NationalToHoennOrder: @ 803F84C
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F890
- movs r1, 0
- ldr r3, _0803F888
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F878
- movs r4, 0xCD
- lsls r4, 1
-_0803F864:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F878
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F864
-_0803F878:
- ldr r0, _0803F88C
- cmp r1, r0
- beq _0803F890
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F892
- .align 2, 0
-_0803F888: .4byte gHoennToNationalOrder
-_0803F88C: .4byte 0x0000019b
-_0803F890:
- movs r0, 0
-_0803F892:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalToHoennOrder
-
- thumb_func_start SpeciesToNationalPokedexNum
-SpeciesToNationalPokedexNum: @ 803F898
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8B4
- ldr r0, _0803F8B0
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8B6
- .align 2, 0
-_0803F8B0: .4byte gSpeciesToNationalPokedexNum
-_0803F8B4:
- movs r0, 0
-_0803F8B6:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToNationalPokedexNum
-
- thumb_func_start SpeciesToHoennPokedexNum
-SpeciesToHoennPokedexNum: @ 803F8BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8D8
- ldr r0, _0803F8D4
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8DA
- .align 2, 0
-_0803F8D4: .4byte gSpeciesToHoennPokedexNum
-_0803F8D8:
- movs r0, 0
-_0803F8DA:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToHoennPokedexNum
-
- thumb_func_start HoennToNationalOrder
-HoennToNationalOrder: @ 803F8E0
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8FC
- ldr r0, _0803F8F8
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8FE
- .align 2, 0
-_0803F8F8: .4byte gHoennToNationalOrder
-_0803F8FC:
- movs r0, 0
-_0803F8FE:
- pop {r1}
- bx r1
- thumb_func_end HoennToNationalOrder
-
- thumb_func_start speciesid_conv
-speciesid_conv: @ 803F904
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0xFA
- bls _0803F932
- ldr r0, _0803F924
- cmp r1, r0
- bls _0803F930
- ldr r0, _0803F928
- ldr r2, _0803F92C
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F932
- .align 2, 0
-_0803F924: .4byte 0x00000113
-_0803F928: .4byte gSpeciesIdToCryId
-_0803F92C: .4byte 0xfffffeec
-_0803F930:
- movs r0, 0xC8
-_0803F932:
- pop {r1}
- bx r1
- thumb_func_end speciesid_conv
-
- thumb_func_start unref_sub_803F938
-unref_sub_803F938: @ 803F938
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- mov r10, r2
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FA42
- ldr r1, _0803FA04
- ldr r0, [r1]
- cmp r10, r0
- beq _0803FA42
- ldr r0, [r1, 0x8]
- cmp r10, r0
- beq _0803FA42
- movs r6, 0
-_0803F962:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FA08
- 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
- str r6, [sp]
- mov r9, r3
-_0803F99A:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FA0C
- 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 _0803FA30
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803F9BE:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803F9C6
- adds r0, r4, 0x7
-_0803F9C6:
- 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 _0803FA24
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA10
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FA24
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FA22
- .align 2, 0
-_0803FA04: .4byte gUnknown_081FAF4C
-_0803FA08: .4byte gSpindaSpotGraphics
-_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
-_0803FA10:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FA24
- adds r0, r1, 0x4
-_0803FA22:
- strb r0, [r2]
-_0803FA24:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803F9BE
-_0803FA30:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803F99A
- ldr r5, [sp, 0x4]
- ldr r6, [sp]
- cmp r6, 0x3
- ble _0803F962
-_0803FA42:
- 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 unref_sub_803F938
-
- thumb_func_start DrawSpindaSpots
-DrawSpindaSpots: @ 803FA54
- 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 _0803FB56
- cmp r3, 0
- beq _0803FB56
- movs r6, 0
-_0803FA78:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FB1C
- 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
-_0803FAB0:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FB20
- 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 _0803FB44
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803FAD4:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803FADC
- adds r0, r4, 0x7
-_0803FADC:
- 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 _0803FB38
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB24
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FB38
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FB36
- .align 2, 0
-_0803FB1C: .4byte gSpindaSpotGraphics
-_0803FB20: .4byte gSpindaSpotGraphics + 0x2
-_0803FB24:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FB38
- adds r0, r1, 0x4
-_0803FB36:
- strb r0, [r2]
-_0803FB38:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803FAD4
-_0803FB44:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803FAB0
- ldr r5, [sp, 0x4]
- mov r6, r10
- cmp r6, 0x3
- ble _0803FA78
-_0803FB56:
- 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 sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r5, _0803FBB4
- movs r1, 0x2
- adds r2, r5, 0
- bl PokemonGetField
- movs r6, 0xB
- adds r0, r4, 0
- muls r0, r6
- ldr r4, _0803FBB8
- adds r0, r4
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBA8
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r7, 0
- movs r1, 0x2
- bl pokemon_setattr
-_0803FBA8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FBB4: .4byte 0x020231cc
-_0803FBB8: .4byte gSpeciesNames
- thumb_func_end sub_803FB68
-
- thumb_func_start sub_803FBBC
-sub_803FBBC: @ 803FBBC
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0803FBE4
- 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 _0803FBE8
- cmp r0, 0x1
- bge _0803FBF0
- cmp r0, 0
- beq _0803FBEC
- b _0803FBF2
- .align 2, 0
-_0803FBE4: .4byte 0x03002970
-_0803FBE8:
- cmp r0, 0x3
- bne _0803FBF2
-_0803FBEC:
- movs r5, 0
- b _0803FBF2
-_0803FBF0:
- movs r5, 0x1
-_0803FBF2:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803FBBC
-
- thumb_func_start sub_803FBFC
-sub_803FBFC: @ 803FBFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _0803FC20
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FC24
- cmp r0, 0x1
- bge _0803FC2C
- cmp r0, 0
- beq _0803FC28
- b _0803FC2E
- .align 2, 0
-_0803FC20: .4byte 0x03002970
-_0803FC24:
- cmp r0, 0x3
- bne _0803FC2E
-_0803FC28:
- movs r3, 0
- b _0803FC2E
-_0803FC2C:
- movs r3, 0x1
-_0803FC2E:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FBFC
-
- thumb_func_start sub_803FC34
-sub_803FC34: @ 803FC34
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _0803FC40
- b _0803FC4C
- .align 2, 0
-_0803FC40: .4byte 0x03002970
-_0803FC44:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0803FC52
-_0803FC4C:
- ldrh r0, [r1, 0x18]
- cmp r0, r3
- bne _0803FC44
-_0803FC52:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FC34
-
- thumb_func_start sub_803FC58
-sub_803FC58: @ 803FC58
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0803FC70
- 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
-_0803FC70: .4byte gTrainers
- thumb_func_end sub_803FC58
-
- thumb_func_start nature_stat_mod
-nature_stat_mod: @ 803FC74
- 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 _0803FC92
- adds r0, r3, 0
- b _0803FCCE
-_0803FC92:
- ldr r0, _0803FCB4
- 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 _0803FCB8
- cmp r1, 0x1
- bne _0803FCCC
- movs r0, 0x6E
- b _0803FCBA
- .align 2, 0
-_0803FCB4: .4byte gNatureStatTable
-_0803FCB8:
- movs r0, 0x5A
-_0803FCBA:
- muls r0, r3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- b _0803FCCE
-_0803FCCC:
- adds r0, r3, 0
-_0803FCCE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end nature_stat_mod
-
- thumb_func_start sub_803FCD4
-sub_803FCD4: @ 803FCD4
- 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 PokemonGetField
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FD34
- ldr r0, _0803FD14
- ldr r1, _0803FD18
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FD20
- ldr r0, _0803FD1C
- ldrb r4, [r0, 0x7]
- b _0803FD3C
- .align 2, 0
-_0803FD14: .4byte 0x03001770
-_0803FD18: .4byte 0x0000043d
-_0803FD1C: .4byte 0x02024df0
-_0803FD20:
- ldr r0, _0803FD2C
- ldr r1, _0803FD30
- adds r0, r1
- ldrb r4, [r0]
- b _0803FD3C
- .align 2, 0
-_0803FD2C: .4byte 0x02025734
-_0803FD30: .4byte 0x00003688
-_0803FD34:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r4, r0, 24
-_0803FD3C:
- cmp r6, 0
- bne _0803FD42
- b _0803FE56
-_0803FD42:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- bne _0803FD4C
- b _0803FE56
-_0803FD4C:
- movs r6, 0
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x63
- ble _0803FD6A
- movs r6, 0x1
-_0803FD6A:
- cmp r0, 0xC7
- ble _0803FD74
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FD74:
- cmp r5, 0x5
- bne _0803FD84
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803FE56
-_0803FD84:
- cmp r5, 0x3
- bne _0803FDB4
- ldr r0, _0803FE60
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803FE56
- ldr r2, _0803FE64
- ldr r0, _0803FE68
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- adds r0, r1, 0
- subs r0, 0x18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0803FDB4
- cmp r1, 0x20
- bne _0803FE56
-_0803FDB4:
- ldr r1, _0803FE6C
- 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 _0803FDDA
- cmp r4, 0x1B
- bne _0803FDDA
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
-_0803FDDA:
- 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 _0803FE2C
- adds r0, r7, 0
- movs r1, 0x26
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0xB
- bne _0803FE08
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE08:
- adds r0, r7, 0
- movs r1, 0x23
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803FE2C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE2C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0803FE3C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
-_0803FE3C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- ble _0803FE4C
- movs r1, 0xFF
- mov r0, sp
- strh r1, [r0]
-_0803FE4C:
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl pokemon_setattr
-_0803FE56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FE60: .4byte 0x020239f8
-_0803FE64: .4byte gTrainers
-_0803FE68: .4byte 0x0202ff5e
-_0803FE6C: .4byte gUnknown_082082FE
- thumb_func_end sub_803FCD4
-
- thumb_func_start sub_803FE70
-sub_803FE70: @ 803FE70
- 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
-_0803FE84:
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- movs r2, 0
- bl PokemonGetField
- 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 _0803FE84
- movs r6, 0
- b _08040006
-_0803FEA8:
- mov r0, r8
- movs r1, 0
- bl sub_8040178
- lsls r0, 24
- movs r2, 0x1
- cmp r0, 0
- beq _0803FEBA
- movs r2, 0x2
-_0803FEBA:
- cmp r6, 0x5
- bhi _0803FF5C
- lsls r0, r6, 2
- ldr r1, _0803FEC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803FEC8: .4byte _0803FECC
- .align 2, 0
-_0803FECC:
- .4byte _0803FEE4
- .4byte _0803FEF8
- .4byte _0803FF0C
- .4byte _0803FF20
- .4byte _0803FF34
- .4byte _0803FF48
-_0803FEE4:
- ldr r0, _0803FEF4
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FEF4: .4byte gBaseStats
-_0803FEF8:
- ldr r0, _0803FF08
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0803FF54
- .align 2, 0
-_0803FF08: .4byte gBaseStats
-_0803FF0C:
- ldr r0, _0803FF1C
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 26
- b _0803FF56
- .align 2, 0
-_0803FF1C: .4byte gBaseStats
-_0803FF20:
- ldr r0, _0803FF30
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsrs r0, 6
- b _0803FF58
- .align 2, 0
-_0803FF30: .4byte gBaseStats
-_0803FF34:
- ldr r0, _0803FF44
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FF44: .4byte gBaseStats
-_0803FF48:
- ldr r0, _0803FF84
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
-_0803FF54:
- lsls r0, 28
-_0803FF56:
- lsrs r0, 30
-_0803FF58:
- adds r4, r0, 0
- muls r4, r2
-_0803FF5C:
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FFA8
- ldr r0, _0803FF88
- ldr r1, _0803FF8C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FF94
- ldr r0, _0803FF90
- ldrb r0, [r0, 0x7]
- b _0803FFB0
- .align 2, 0
-_0803FF84: .4byte gBaseStats
-_0803FF88: .4byte 0x03001770
-_0803FF8C: .4byte 0x0000043d
-_0803FF90: .4byte 0x02024df0
-_0803FF94:
- ldr r0, _0803FFA0
- ldr r2, _0803FFA4
- adds r0, r2
- ldrb r0, [r0]
- b _0803FFB0
- .align 2, 0
-_0803FFA0: .4byte 0x02025734
-_0803FFA4: .4byte 0x00003688
-_0803FFA8:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
-_0803FFB0:
- cmp r0, 0x18
- bne _0803FFB8
- lsls r0, r4, 17
- lsrs r4, r0, 16
-_0803FFB8:
- lsls r0, r4, 16
- asrs r2, r0, 16
- adds r1, r7, r2
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- ble _0803FFD0
- adds r0, r2, r0
- adds r1, r7, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFD0:
- 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 _0803FFEC
- adds r0, r1, 0
- adds r0, 0xFF
- adds r1, r3, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFEC:
- 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 pokemon_setattr
- adds r6, 0x1
- cmp r6, 0x5
- bgt _0804000E
-_08040006:
- ldr r0, _0804001C
- cmp r7, r0
- bhi _0804000E
- b _0803FEA8
-_0804000E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804001C: .4byte 0x000001fd
- thumb_func_end sub_803FE70
-
- thumb_func_start sub_8040020
-sub_8040020: @ 8040020
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08040028:
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0x5
- ble _08040028
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040020
-
- thumb_func_start sub_8040048
-sub_8040048: @ 8040048
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl Random
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x80
- lsls r0, 7
- cmp r5, r0
- beq _0804006E
- movs r0, 0x80
- lsls r0, 8
- cmp r5, r0
- beq _0804006E
- movs r0, 0xC0
- lsls r0, 8
- cmp r5, r0
- bne _08040104
-_0804006E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x64
- muls r0, r5
- adds r4, r6, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0804006E
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0804006E
- ldr r1, _0804010C
- lsls r0, r5, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8040178
- lsls r0, 24
- cmp r0, 0
- bne _08040104
- mov r4, sp
-_080400B8:
- bl Random
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4]
- cmp r0, 0
- beq _080400B8
- movs r0, 0xF0
- mov r1, sp
- ldrb r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080400DA
- movs r0, 0x7
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
-_080400DA:
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 4
- orrs r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- movs r1, 0xF3
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x64
- muls r0, r5
- adds r0, r6, r0
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
-_08040104:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804010C: .4byte gBitTable
- thumb_func_end sub_8040048
-
- thumb_func_start sub_8040110
-sub_8040110: @ 8040110
- 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 _08040158
-_08040124:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0804014C
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl PokemonGetField
- movs r1, 0xF
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0804014C
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_0804014C:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08040124
- b _0804016C
-_08040158:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- beq _0804016C
- movs r5, 0x1
-_0804016C:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8040110
-
- thumb_func_start sub_8040178
-sub_8040178: @ 8040178
- 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 _080401BC
-_0804018C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080401B0
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl PokemonGetField
- ldr r3, [sp]
- cmp r0, 0
- beq _080401B0
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080401B0:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _0804018C
- b _080401CC
-_080401BC:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _080401CC
- movs r5, 0x1
-_080401CC:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8040178
-
- thumb_func_start sub_80401D8
-sub_80401D8: @ 80401D8
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- mov r6, sp
-_080401E4:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08040224
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0804023C
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r6]
- movs r1, 0xF
- adds r2, r0, 0
- ands r1, r2
- cmp r1, 0
- beq _0804023C
- cmp r1, r7
- bcc _0804021E
- cmp r7, 0x4
- bls _08040228
-_0804021E:
- movs r0, 0xF0
- ands r0, r2
- b _0804022A
- .align 2, 0
-_08040224: .4byte 0x03004360
-_08040228:
- subs r0, r2, r7
-_0804022A:
- strb r0, [r6]
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0804024C
- adds r0, r1
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
-_0804023C:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080401E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804024C: .4byte 0x03004360
- thumb_func_end sub_80401D8
-
- thumb_func_start atkE5_pickupitemcalculation
-atkE5_pickupitemcalculation: @ 8040250
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080402F6
- movs r5, 0
-_0804026C:
- movs r0, 0x64
- adds r6, r5, 0
- muls r6, r0
- adds r4, r7, r6
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- cmp r1, 0
- beq _080402F0
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080402F0
- cmp r5, 0
- beq _080402C6
- adds r0, r6, 0
- subs r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402C6
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
-_080402C6:
- cmp r5, 0x5
- beq _080402F0
- movs r0, 0x64
- muls r0, r5
- adds r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
- adds r5, 0x1
-_080402F0:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804026C
-_080402F6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkE5_pickupitemcalculation
-
- thumb_func_start sub_8040300
-sub_8040300: @ 8040300
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- adds r0, 0x1
- mov r1, sp
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x19
- movs r2, 0
- bl PokemonGetField
- ldr r5, _08040358
- mov r1, sp
- ldrb r2, [r1]
- lsls r2, 2
- ldr r3, _0804035C
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r3
- adds r2, r1
- adds r2, r5
- ldr r1, [r2]
- cmp r0, r1
- bhi _08040360
- movs r0, 0
- b _0804036C
- .align 2, 0
-_08040358: .4byte gExperienceTables
-_0804035C: .4byte gBaseStats
-_08040360:
- adds r0, r6, 0
- movs r1, 0x38
- mov r2, sp
- bl pokemon_setattr
- movs r0, 0x1
-_0804036C:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040300
-
- thumb_func_start sub_8040374
-sub_8040374: @ 8040374
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r1, r0, 16
- adds r3, r1, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08040396
- movs r0, 0
- b _080403C2
-_08040396:
- cmp r4, 0x1F
- bls _080403B4
- adds r0, r4, 0
- subs r0, 0x20
- movs r2, 0x1
- lsls r2, r0
- ldr r0, _080403B0
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- ands r0, r2
- b _080403C2
- .align 2, 0
-_080403B0: .4byte gTMHMLearnsets
-_080403B4:
- movs r1, 0x1
- lsls r1, r5
- ldr r2, _080403C8
- lsls r0, r3, 3
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
-_080403C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080403C8: .4byte gTMHMLearnsets
- thumb_func_end sub_8040374
-
- thumb_func_start sub_80403CC
-sub_80403CC: @ 80403CC
- 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 PokemonGetField
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- movs r5, 0
- mov r4, sp
-_08040402:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08040402
- movs r5, 0
- ldr r6, _08040510
- lsls r1, r7, 2
- adds r2, r1, r6
- ldr r3, [r2]
- ldrh r0, [r3]
- ldr r4, _08040514
- str r1, [sp, 0x14]
- cmp r0, r4
- beq _080404FC
- mov r9, r2
- str r3, [sp, 0x10]
-_08040430:
- 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 _080404E6
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _08040518
- ands r0, r3
- cmp r1, r0
- beq _08040480
- ldr r0, [sp, 0x14]
- ldr r1, _08040510
- adds r6, r0, r1
- ldr r2, _08040518
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040468:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08040480
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040468
-_08040480:
- cmp r4, 0x4
- bne _080404E6
- movs r4, 0
- cmp r4, r10
- bge _080404C4
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x8]
- ldrh r2, [r0]
- ldr r0, _08040518
- ands r0, r1
- cmp r2, r0
- beq _080404C4
- ldr r1, [sp, 0x14]
- ldr r2, _08040510
- adds r6, r1, r2
- ldr r0, _08040518
- mov r8, r0
- ldr r3, [sp, 0x8]
- adds r5, r7, 0
-_080404AC:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _080404C4
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _080404AC
-_080404C4:
- cmp r4, r10
- bne _080404E6
- 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, _08040518
- ands r0, r1
- strh r0, [r2]
-_080404E6:
- mov r5, r12
- cmp r5, 0x13
- bgt _080404FC
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _08040514
- cmp r0, r2
- bne _08040430
-_080404FC:
- 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
-_08040510: .4byte gLevelUpLearnsetPointers
-_08040514: .4byte 0x0000ffff
-_08040518: .4byte 0x000001ff
- thumb_func_end sub_80403CC
-
- thumb_func_start sub_804051C
-sub_804051C: @ 804051C
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- movs r5, 0
- movs r4, 0
- ldr r1, _08040568
- lsrs r0, 14
- adds r0, r1
- ldr r2, [r0]
- ldrh r0, [r2]
- ldr r1, _0804056C
- cmp r0, r1
- beq _08040560
- ldr r0, _08040570
- mov r12, r0
- adds r7, r1, 0
- adds r3, r2, 0
-_0804053E:
- 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 _08040560
- ldrh r0, [r3]
- cmp r0, r7
- bne _0804053E
-_08040560:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040568: .4byte gLevelUpLearnsetPointers
-_0804056C: .4byte 0x0000ffff
-_08040570: .4byte 0x000001ff
- thumb_func_end sub_804051C
-
- thumb_func_start sub_8040574
-sub_8040574: @ 8040574
- 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 PokemonGetField
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x30]
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _080405B0
- movs r0, 0
- b _080406BA
-_080405B0:
- movs r5, 0
- lsls r4, 2
- str r4, [sp, 0x38]
- mov r4, sp
-_080405B8:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _080405B8
- movs r5, 0
- ldr r3, _080406CC
- ldr r2, [sp, 0x38]
- adds r1, r2, r3
- ldr r0, [r1]
- ldrh r0, [r0]
- ldr r2, _080406D0
- cmp r0, r2
- beq _080406B8
- mov r9, r1
- mov r4, sp
- adds r4, 0x8
- str r4, [sp, 0x34]
-_080405E8:
- 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 _080406A2
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080406D4
- ands r0, r3
- cmp r1, r0
- beq _0804063A
- ldr r0, [sp, 0x38]
- ldr r1, _080406CC
- adds r6, r0, r1
- ldr r2, _080406D4
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040622:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0804063A
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040622
-_0804063A:
- cmp r4, 0x4
- bne _080406A2
- movs r4, 0
- cmp r4, r10
- bge _08040680
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x34]
- ldrh r2, [r0]
- ldr r0, _080406D4
- ands r0, r1
- add r1, sp, 0x8
- cmp r2, r0
- beq _08040680
- ldr r2, [sp, 0x38]
- ldr r0, _080406CC
- adds r6, r2, r0
- ldr r2, _080406D4
- mov r8, r2
- adds r3, r1, 0
- adds r5, r7, 0
-_08040668:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _08040680
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040668
-_08040680:
- cmp r4, r10
- bne _080406A2
- 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, _080406D4
- ands r0, r1
- strh r0, [r2]
-_080406A2:
- mov r5, r12
- cmp r5, 0x13
- bgt _080406B8
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r4, _080406D0
- cmp r0, r4
- bne _080405E8
-_080406B8:
- mov r0, r10
-_080406BA:
- 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
-_080406CC: .4byte gLevelUpLearnsetPointers
-_080406D0: .4byte 0x0000ffff
-_080406D4: .4byte 0x000001ff
- thumb_func_end sub_8040574
-
- thumb_func_start sub_80406D8
-sub_80406D8: @ 80406D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_806912C
- cmp r0, 0
- beq _080406F2
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- b _0804070A
-_080406F2:
- adds r0, r4, 0
- bl SpeciesToHoennPokedexNum
- adds r4, r0, 0
- cmp r4, 0xCA
- bls _08040708
- ldr r0, _08040704
- b _0804070A
- .align 2, 0
-_08040704: .4byte 0x0000ffff
-_08040708:
- adds r0, r4, 0
-_0804070A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80406D8
-
- thumb_func_start sub_8040710
-sub_8040710: @ 8040710
- push {lr}
- ldr r1, _08040724
- movs r2, 0
- adds r0, r1, 0x3
-_08040718:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08040718
- pop {r0}
- bx r0
- .align 2, 0
-_08040724: .4byte 0x02024e84
- thumb_func_end sub_8040710
-
- thumb_func_start sub_8040728
-sub_8040728: @ 8040728
- push {lr}
- ldr r0, _0804073C
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08040744
- ldr r0, _08040740
- b _080408B2
- .align 2, 0
-_0804073C: .4byte 0x020239f8
-_08040740: .4byte 0x000001cf
-_08040744:
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- beq _08040754
- movs r0, 0xE7
- lsls r0, 1
- b _080408B2
-_08040754:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804075E
- b _080408A8
-_0804075E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08040768
- b _080408B0
-_08040768:
- ldr r3, _0804078C
- ldr r2, _08040790
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08040780
- b _080408A8
-_08040780:
- lsls r0, 2
- ldr r1, _08040794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804078C: .4byte gTrainers
-_08040790: .4byte 0x0202ff5e
-_08040794: .4byte _08040798
- .align 2, 0
-_08040798:
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A0
- .4byte _0804086C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040872
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _0804087C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
-_08040860:
- movs r0, 0xE9
- lsls r0, 1
- b _080408B2
-_08040866:
- movs r0, 0xE5
- lsls r0, 1
- b _080408B2
-_0804086C:
- movs r0, 0xE6
- lsls r0, 1
- b _080408B2
-_08040872:
- ldr r0, _08040878
- b _080408B2
- .align 2, 0
-_08040878: .4byte 0x000001cd
-_0804087C:
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08040898
- adds r0, r1
- ldr r1, _0804089C
- bl StringCompare
- cmp r0, 0
- beq _080408A8
- movs r0, 0xE8
- lsls r0, 1
- b _080408B2
- .align 2, 0
-_08040898: .4byte gTrainers + 0x4
-_0804089C: .4byte gUnknown_08400E42
-_080408A0:
- ldr r0, _080408A4
- b _080408B2
- .align 2, 0
-_080408A4: .4byte 0x000001d1
-_080408A8:
- ldr r0, _080408AC
- b _080408B2
- .align 2, 0
-_080408AC: .4byte 0x000001cb
-_080408B0:
- ldr r0, _080408B8
-_080408B2:
- pop {r1}
- bx r1
- .align 2, 0
-_080408B8: .4byte 0x000001c9
- thumb_func_end sub_8040728
-
- thumb_func_start sub_80408BC
-sub_80408BC: @ 80408BC
- push {lr}
- bl map_music_set_to_zero
- bl m4aMPlayAllStop
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl sub_8075474
- pop {r0}
- bx r0
- thumb_func_end sub_80408BC
-
- thumb_func_start current_map_music_set__default_for_battle
-current_map_music_set__default_for_battle: @ 80408D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl map_music_set_to_zero
- bl m4aMPlayAllStop
- cmp r4, 0
- beq _080408F2
- adds r0, r4, 0
- bl current_map_music_set
- b _080408FE
-_080408F2:
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl current_map_music_set
-_080408FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end current_map_music_set__default_for_battle
-
- thumb_func_start pokemon_get_pal
-pokemon_get_pal: @ 8040904
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl species_and_otid_get_pal
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_pal
-
- thumb_func_start species_and_otid_get_pal
-species_and_otid_get_pal: @ 804093C
- 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 _08040958
- ldr r0, _08040954
- ldr r0, [r0]
- b _08040984
- .align 2, 0
-_08040954: .4byte gMonPaletteTable
-_08040958:
- lsrs r0, r1, 16
- ldr r2, _08040974
- ands r1, r2
- eors r0, r1
- lsrs r1, r3, 16
- eors r0, r1
- ands r3, r2
- eors r0, r3
- cmp r0, 0x7
- bls _0804097C
- ldr r0, _08040978
- lsls r1, r4, 3
- b _08040980
- .align 2, 0
-_08040974: .4byte 0x0000ffff
-_08040978: .4byte gMonPaletteTable
-_0804097C:
- ldr r0, _0804098C
- lsls r1, r5, 3
-_08040980:
- adds r1, r0
- ldr r0, [r1]
-_08040984:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804098C: .4byte gMonShinyPaletteTable
- thumb_func_end species_and_otid_get_pal
-
- thumb_func_start sub_8040990
-sub_8040990: @ 8040990
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80409C8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040990
-
- thumb_func_start sub_80409C8
-sub_80409C8: @ 80409C8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsrs r0, r1, 16
- ldr r3, _080409E8
- ands r1, r3
- eors r0, r1
- lsrs r1, r2, 16
- eors r0, r1
- ands r2, r3
- eors r0, r2
- cmp r0, 0x7
- bls _080409F0
- lsls r0, r4, 3
- ldr r1, _080409EC
- b _080409F4
- .align 2, 0
-_080409E8: .4byte 0x0000ffff
-_080409EC: .4byte gMonPaletteTable
-_080409F0:
- lsls r0, r4, 3
- ldr r1, _080409FC
-_080409F4:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080409FC: .4byte gMonShinyPaletteTable
- thumb_func_end sub_80409C8
-
- thumb_func_start sub_8040A00
-sub_8040A00: @ 8040A00
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _08040A24
- ldrh r0, [r2]
- ldr r1, _08040A28
- cmp r0, r1
- beq _08040A32
- adds r4, r1, 0
- adds r1, r2, 0
-_08040A14:
- ldrh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- cmp r0, r3
- bne _08040A2C
- movs r0, 0x1
- b _08040A34
- .align 2, 0
-_08040A24: .4byte gUnknown_0820831A
-_08040A28: .4byte 0x0000ffff
-_08040A2C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08040A14
-_08040A32:
- movs r0, 0
-_08040A34:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040A00
-
- thumb_func_start sub_8040A3C
-sub_8040A3C: @ 8040A3C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040A50
- 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
-_08040A50: .4byte gBaseStats
- thumb_func_end sub_8040A3C
-
- thumb_func_start sub_8040A54
-sub_8040A54: @ 8040A54
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040A78
- 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
-_08040A78: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A54
-
- thumb_func_start sub_8040A7C
-sub_8040A7C: @ 8040A7C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040AA0
- 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
-_08040AA0: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A7C
-
- thumb_func_start sub_8040AA4
-sub_8040AA4: @ 8040AA4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r1, 0x7
- mov r2, sp
- bl PokemonGetField
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- mov r1, sp
- bl sub_8040AD0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AA4
-
- thumb_func_start sub_8040AD0
-sub_8040AD0: @ 8040AD0
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r3, _08040B10
- 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 _08040B14
- movs r4, 0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _08040B0C
- adds r2, r5, 0
-_08040AF8:
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08040B14
- adds r2, 0x1
- adds r4, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _08040AF8
-_08040B0C:
- movs r0, 0
- b _08040B16
- .align 2, 0
-_08040B10: .4byte gSaveBlock2
-_08040B14:
- movs r0, 0x1
-_08040B16:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AD0
-
- thumb_func_start sub_8040B1C
-sub_8040B1C: @ 8040B1C
- push {lr}
- bl pokemon_restore_pp
- pop {r0}
- bx r0
- thumb_func_end sub_8040B1C
-
- thumb_func_start pokemon_restore_pp
-pokemon_restore_pp: @ 8040B28
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
-_08040B30:
- adds r4, r6, 0
- adds r4, 0xD
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- cmp r0, 0
- beq _08040B7C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl CalcPPWithPPUps
- mov r1, sp
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl PokemonSetEncryptedField
-_08040B7C:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08040B30
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemon_restore_pp
-
- thumb_func_start sub_8040B8C
-sub_8040B8C: @ 8040B8C
- push {r4,r5,lr}
- ldr r1, _08040BCC
- ldr r2, _08040BD0
- ldr r3, _08040BD4
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r5, _08040BD8
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x4
- strb r0, [r5, 0x1]
- ldr r0, _08040BDC
- adds r4, r2, r0
- ldrb r0, [r4]
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08040BE4
- ldr r1, _08040BE0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- b _08040BEE
- .align 2, 0
-_08040BCC: .4byte 0x02024c06
-_08040BD0: .4byte 0x02000000
-_08040BD4: .4byte 0x000160c0
-_08040BD8: .4byte 0x030041c0
-_08040BDC: .4byte 0x00016054
-_08040BE0: .4byte 0x02024a6a
-_08040BE4:
- ldr r0, _08040C24
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
-_08040BEE:
- strb r0, [r5, 0x3]
- ldr r4, _08040C28
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x4
- strb r0, [r4, 0x1]
- ldr r1, _08040C2C
- ldrb r0, [r1]
- strb r0, [r4, 0x2]
- ldr r2, _08040C24
- 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, _08040C30
- ldr r1, _08040C34
- bl sub_8120FFC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08040C24: .4byte 0x02024a6a
-_08040C28: .4byte 0x03004290
-_08040C2C: .4byte 0x02024e6c
-_08040C30: .4byte gUnknown_083FFCCA
-_08040C34: .4byte 0x020234cc
- thumb_func_end sub_8040B8C
-
- thumb_func_start sub_8040C38
-sub_8040C38: @ 8040C38
- push {r4,r5,lr}
- ldr r0, _08040C90
- ldrh r1, [r0]
- ldr r0, _08040C94
- ands r0, r1
- cmp r0, 0
- bne _08040CAC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, _08040C98
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040C9C
- 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 _08040C82
- cmp r5, 0x2C
- bls _08040CAC
- cmp r5, 0x5E
- bhi _08040CA0
-_08040C82:
- adds r2, 0xC
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl pokemon_setattr
- b _08040CAC
- .align 2, 0
-_08040C90: .4byte 0x020239f8
-_08040C94: .4byte 0x00002008
-_08040C98: .4byte 0x030045c0
-_08040C9C: .4byte gBaseStats
-_08040CA0:
- adds r2, 0xE
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl pokemon_setattr
-_08040CAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8040C38
-
- thumb_func_start sub_8040CB4
-sub_8040CB4: @ 8040CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_8040CE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040CB4
-
- thumb_func_start sub_8040CE0
-sub_8040CE0: @ 8040CE0
- push {r4,lr}
- movs r4, 0
- lsrs r2, r0, 16
- ldr r3, _08040D04
- ands r0, r3
- eors r2, r0
- lsrs r0, r1, 16
- eors r2, r0
- ands r1, r3
- eors r2, r1
- cmp r2, 0x7
- bhi _08040CFA
- movs r4, 0x1
-_08040CFA:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D04: .4byte 0x0000ffff
- thumb_func_end sub_8040CE0
-
- thumb_func_start sub_8040D08
-sub_8040D08: @ 8040D08
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08040D38
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x18]
- movs r0, 0x2
- eors r0, r1
- bl sub_803FC34
- 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
-_08040D38: .4byte 0x03002970
- thumb_func_end sub_8040D08
-
- thumb_func_start sub_8040D3C
-sub_8040D3C: @ 8040D3C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- cmp r1, 0x20
- beq _08040D54
- cmp r1, 0x1D
- bne _08040D7E
-_08040D54:
- cmp r2, 0x2
- bne _08040D68
- movs r0, 0xB
- muls r1, r0
- ldr r0, _08040D64
- adds r1, r0
- b _08040D70
- .align 2, 0
-_08040D64: .4byte gSpeciesNames
-_08040D68:
- ldr r1, _08040D88
- cmp r0, 0x20
- bne _08040D70
- subs r1, 0xB
-_08040D70:
- adds r0, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- movs r3, 0
- cmp r0, 0
- bne _08040D7E
- movs r3, 0x1
-_08040D7E:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D88: .4byte gUnknown_08208337
- thumb_func_end sub_8040D3C
-
- thumb_func_start sub_8040D8C
-sub_8040D8C: @ 8040D8C
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _08040DA2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _08040DA2
- movs r2, 0x1
-_08040DA2:
- adds r0, r3, 0
- bl sub_8040D3C
- pop {r1}
- bx r1
- thumb_func_end sub_8040D8C
-
- thumb_func_start unref_sub_8040DAC
-unref_sub_8040DAC: @ 8040DAC
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_8040D3C
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8040DAC
-
- thumb_func_start sine
-sine: @ 8040DEC
- lsls r1, 16
- asrs r1, 16
- ldr r2, _08040E04
- lsls r0, 16
- asrs r0, 15
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- lsls r0, 8
- asrs r0, 16
- bx lr
- .align 2, 0
-_08040E04: .4byte gSineTable
- thumb_func_end sine
-
- thumb_func_start cosine
-cosine: @ 8040E08
- lsls r1, 16
- asrs r1, 16
- ldr r2, _08040E24
- lsls r0, 16
- asrs r0, 15
- adds r0, 0x80
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- lsls r0, 8
- asrs r0, 16
- bx lr
- .align 2, 0
-_08040E24: .4byte gSineTable
- thumb_func_end cosine
-
- thumb_func_start sine2
-sine2: @ 8040E28
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r5, 0
- movs r1, 0xB4
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0xB4
- bl __udivsi3
- movs r1, 0x1
- ands r0, r1
- ldr r1, _08040E5C
- lsls r4, 1
- adds r4, r1
- ldrh r1, [r4]
- cmp r0, 0
- bne _08040E60
- lsls r0, r1, 16
- b _08040E64
- .align 2, 0
-_08040E5C: .4byte gSineDegreeTable
-_08040E60:
- lsls r0, r1, 16
- negs r0, r0
-_08040E64:
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sine2
-
- thumb_func_start cosine2
-cosine2: @ 8040E6C
- push {lr}
- lsls r0, 16
- movs r1, 0xB4
- lsls r1, 15
- adds r0, r1
- lsrs r0, 16
- bl sine2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end cosine2
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom4.s b/asm/rom4.s
index 74051f8a5..549c2b446 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -15342,7 +15342,7 @@ _0805990A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080598F2
_08059924:
diff --git a/asm/rom5.s b/asm/rom5.s
index a5ca33806..6723f23fd 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -273,7 +273,7 @@ _0807AF88:
ldr r5, _0807B004
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -294,7 +294,7 @@ _0807AF88:
muls r0, r6
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -550,7 +550,7 @@ _0807B1DA:
mov r9, r1
add r0, r9
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0807B1FE
b _0807B4D8
@@ -561,7 +561,7 @@ _0807B1FE:
adds r0, r1, 0
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -624,7 +624,7 @@ _0807B1FE:
adds r0, r1, 0
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldrb r2, [r4]
lsls r1, r2, 4
adds r1, r2
@@ -776,7 +776,7 @@ _0807B3D0:
mov r9, r1
add r0, r9
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0807B4D8
ldrh r0, [r6]
@@ -785,7 +785,7 @@ _0807B3D0:
adds r0, r1, 0
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -848,7 +848,7 @@ _0807B3D0:
adds r0, r1, 0
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldrb r2, [r4]
lsls r1, r2, 4
adds r1, r2
@@ -1054,7 +1054,7 @@ _0807B628:
ldr r1, _0807B65C
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0807B68A
adds r0, r6, 0
@@ -1079,7 +1079,7 @@ _0807B660:
ldr r1, _0807B698
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0807B68A
adds r0, r6, 0
@@ -14584,7 +14584,7 @@ _08081EFE:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
movs r0, 0xCE
lsls r0, 1
@@ -14594,12 +14594,12 @@ _08081EFE:
beq _08081F42
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08081F42
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r0, r7, r0
lsls r0, 24
lsrs r7, r0, 24
@@ -14755,7 +14755,7 @@ sub_8082034: @ 8082034
lsrs r5, r0, 24
ldr r0, _08082064
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -14888,7 +14888,7 @@ sub_8082138: @ 8082138
push {r4,lr}
ldr r0, _0808215C
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -18598,7 +18598,7 @@ sub_8083D70: @ 8083D70
sub sp, 0x34
ldr r0, _08083DE4
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -18747,7 +18747,7 @@ _08083E98:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08083EBC
mov r0, sp
@@ -18755,7 +18755,7 @@ _08083E98:
adds r0, r4, 0
movs r1, 0x20
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
_08083EBC:
adds r0, r5, 0x1
lsls r0, 24
@@ -18785,7 +18785,7 @@ sub_8083EEC: @ 8083EEC
ldr r0, _08083F04
ldr r2, _08083F08
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
bl sub_8071C20
movs r0, 0x1
pop {r1}
@@ -21184,7 +21184,7 @@ _0808507E:
ldr r4, _080850DC
adds r0, r4, 0
movs r1, 0x6
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080850BA
adds r0, r4, 0
@@ -21846,17 +21846,17 @@ _080855AC:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080855EC
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080855EC
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
cmp r6, r0
@@ -21922,7 +21922,7 @@ ApplyCleanseTagWildEncounterRateReduction: @ 8085640
adds r4, r0, 0
ldr r0, _08085664
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xBE
bne _0808565C
ldr r0, [r4]
@@ -27485,15 +27485,15 @@ sub_80880C4: @ 80880C4
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
str r0, [r5]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [r5, 0x4]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [r5, 0x8]
ldr r0, [r5]
orrs r0, r6
@@ -30817,7 +30817,7 @@ sub_8089A8C: @ 8089A8C
ldr r1, _08089AD8
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08089AE0
ldr r4, _08089ADC
@@ -30860,7 +30860,7 @@ _08089AF4:
adds r0, r1
adds r1, r6, 0
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
lsls r1, r4, 1
adds r1, r5
ldrh r1, [r1]
@@ -30903,7 +30903,7 @@ _08089B48:
ldr r6, _08089BAC
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08089B76
adds r0, r4, 0
@@ -30919,7 +30919,7 @@ _08089B76:
subs r1, 0x64
adds r0, r1
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl itemid_is_mail
@@ -31673,7 +31673,7 @@ sub_808A180: @ 808A180
ldr r1, _0808A1D4
adds r0, r1
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -31837,7 +31837,7 @@ sub_808A2DC: @ 808A2DC
ldr r1, _0808A324
adds r0, r1
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -32000,7 +32000,7 @@ sub_808A3F8: @ 808A3F8
ldr r1, _0808A470
adds r0, r1
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
cmp r0, 0
bne _0808A478
@@ -32120,7 +32120,7 @@ _0808A542:
ldr r4, _0808A594
adds r0, r4
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
@@ -32134,7 +32134,7 @@ _0808A542:
adds r0, r4
movs r1, 0xC
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
ldr r2, _0808A598
movs r0, 0
movs r1, 0xFF
@@ -32505,7 +32505,7 @@ sub_808A848: @ 808A848
ldr r1, _0808A89C
adds r0, r1
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -32915,7 +32915,7 @@ sub_808ABA8: @ 808ABA8
ldr r1, _0808ABE8
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0808ABEC
str r0, [r1]
ldr r0, _0808ABF0
@@ -33149,7 +33149,7 @@ unref_sub_808AD88: @ 808AD88
ldr r1, _0808ADA8
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
pop {r1}
@@ -33289,14 +33289,14 @@ _0808AE9A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0808AF10
adds r0, r5, 0
bl sub_806D668
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0808AECE
adds r0, r4, 0
@@ -33357,12 +33357,12 @@ _0808AF24:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0808AF66
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0808AF58
ldr r0, _0808AF7C
@@ -33437,7 +33437,7 @@ _0808AFC6:
ldr r1, _0808B004
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0808AFE6
_0808AFE2:
@@ -33583,7 +33583,7 @@ _0808B0F0:
ldr r1, _0808B11C
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0808B120
movs r0, 0x20
@@ -33879,7 +33879,7 @@ sub_808B338: @ 808B338
ldr r1, _0808B394
adds r0, r1
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -33973,7 +33973,7 @@ _0808B416:
ldr r4, _0808B474
adds r0, r4
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
@@ -33987,7 +33987,7 @@ _0808B416:
adds r0, r4
movs r1, 0xC
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
ldr r0, _0808B478
movs r1, 0x5
bl CreateTask
@@ -53293,12 +53293,12 @@ _08094DBE:
adds r5, r0, r1
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08094E0C
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08094E0C
movs r0, 0
@@ -53617,7 +53617,7 @@ sub_8095050: @ 8095050
ldr r1, _0809508C
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
cmp r5, 0
bne _080950C8
@@ -53762,7 +53762,7 @@ _08095178:
ldr r1, _080951B8
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0809521C
bl sub_806D5A4
@@ -54310,7 +54310,7 @@ _08095610:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0809566C
bl sub_806D5A4
@@ -54381,7 +54381,7 @@ _080956A8:
adds r7, r0, r1
adds r0, r7, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08095708
bl sub_806D5A4
@@ -54884,7 +54884,7 @@ _08095AF0:
adds r0, r1
adds r0, r6, r0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _08095B0C
adds r0, r5, 0x1
@@ -54924,7 +54924,7 @@ _08095B36:
adds r0, r1
adds r0, r5, r0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _08095B58
lsls r0, r4, 16
@@ -54959,12 +54959,12 @@ _08095B72:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08095B9A
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08095B9A
adds r0, r6, 0x1
@@ -55002,17 +55002,17 @@ _08095BBE:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08095BF6
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08095BF6
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08095BF6
adds r0, r6, 0x1
@@ -55058,7 +55058,7 @@ _08095C2E:
ldr r1, _08095C5C
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08095C46
adds r0, r5, 0x1
@@ -55321,7 +55321,7 @@ _08095E10:
lsls r0, 4
add r0, r8
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _08095E3C
asrs r0, r6, 16
@@ -55363,12 +55363,12 @@ _08095E5C:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _08095E80
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _08095E40
_08095E80:
@@ -55817,7 +55817,7 @@ _080961F0:
lsls r0, 4
adds r0, r7
adds r0, r6, r0
- bl zero_pokemon_boxed_data
+ bl ZeroPokemonBoxData
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
@@ -60365,7 +60365,7 @@ _0809878C:
ldr r1, _080987D8
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080987A0
movs r0, 0x1
@@ -60917,11 +60917,11 @@ sub_8098BF0: @ 8098BF0
adds r4, r5, r0
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
@@ -60974,14 +60974,14 @@ _08098C6A:
_08098C70:
adds r0, r6, 0
movs r1, 0x41
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
beq _08098CD8
adds r0, r6, 0
movs r1, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
lsls r2, r5, 1
adds r2, r5
@@ -61083,7 +61083,7 @@ sub_8098D20: @ 8098D20
adds r7, r2, r0
adds r0, r7, 0
movs r1, 0x41
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r0, 16
mov r8, r0
@@ -61116,7 +61116,7 @@ sub_8098D20: @ 8098D20
lsrs r4, 16
adds r0, r7, 0
movs r1, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
movs r0, 0x2
str r0, [sp]
@@ -61360,7 +61360,7 @@ _08098F42:
adds r4, r1, r2
adds r0, r4
movs r1, 0x41
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
@@ -61374,7 +61374,7 @@ _08098F42:
lsls r0, 5
adds r0, r4
movs r1, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
ldr r2, [sp, 0x10]
lsls r3, r2, 16
@@ -61701,12 +61701,12 @@ sub_8099200: @ 8099200
ldr r4, _080992A0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
movs r0, 0x1
str r0, [sp]
@@ -61731,14 +61731,14 @@ _08099246:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
beq _080992AC
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
subs r0, r6, 0x1
lsls r3, r0, 1
@@ -65041,7 +65041,7 @@ sub_809AB8C: @ 809AB8C
ldr r1, _0809ABBC
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
b _0809ABEA
.align 2, 0
_0809ABB4: .4byte 0x020384e4
@@ -65066,7 +65066,7 @@ _0809ABC0:
adds r1, r2
adds r0, r1
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
_0809ABEA:
lsls r0, 16
lsrs r0, 16
@@ -66325,7 +66325,7 @@ _0809B568:
ldr r2, _0809B588
adds r1, r2
adds r0, r1
- bl zero_pokemon_boxed_data
+ bl ZeroPokemonBoxData
_0809B582:
pop {r0}
bx r0
@@ -66747,7 +66747,7 @@ _0809B8A6:
ldr r1, _0809B908
adds r0, r6, r1
movs r1, 0x50
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
movs r2, 0x1
@@ -66867,7 +66867,7 @@ _0809B9CC:
ldr r1, _0809BA34
adds r2, r4, r1
movs r1, 0x50
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r3, r0, 16
movs r0, 0x1
@@ -66978,7 +66978,7 @@ _0809BA9A:
movs r1, 0x50
ldr r7, _0809BB7C
adds r2, r4, r7
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
@@ -67304,7 +67304,7 @@ _0809BD58:
adds r4, r0, r1
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
cmp r0, 0
beq _0809BD90
@@ -67385,7 +67385,7 @@ sub_809BDD8: @ 809BDD8
adds r0, r2, r1
movs r1, 0x8
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
b _0809BE68
.align 2, 0
_0809BE04: .4byte gUnknown_083B6DB4
@@ -67407,7 +67407,7 @@ _0809BE14:
adds r0, r1
movs r1, 0x8
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
_0809BE34:
movs r0, 0
ldrsb r0, [r4, r0]
@@ -67432,7 +67432,7 @@ _0809BE34:
adds r0, r1
movs r1, 0x8
mov r2, sp
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
_0809BE68:
add sp, 0x4
pop {r4}
@@ -67506,7 +67506,7 @@ sub_809BEBC: @ 809BEBC
ldr r2, _0809BF14
adds r0, r1, r2
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0809BF18
_0809BEFC:
@@ -67715,7 +67715,7 @@ sub_809C04C: @ 809C04C
bne _0809C120
adds r0, r7, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0809C104
adds r1, r6, r2
strh r0, [r1]
@@ -67726,7 +67726,7 @@ sub_809C04C: @ 809C04C
_0809C08C:
adds r0, r7, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0809C108
adds r1, r6, r2
strb r0, [r1]
@@ -67735,24 +67735,24 @@ _0809C08C:
adds r0, r7, 0
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
bl StringGetEnd10
adds r0, r7, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0809C110
adds r1, r6, r2
strb r0, [r1]
adds r0, r7, 0
movs r1, 0x8
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0809C114
adds r1, r6, r2
strb r0, [r1]
adds r0, r7, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0809C118
adds r1, r6, r2
str r0, [r1]
@@ -67768,7 +67768,7 @@ _0809C08C:
str r0, [sp]
adds r0, r7, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
b _0809C1B2
.align 2, 0
_0809C0FC: .4byte gUnknown_083B6DB4
@@ -67785,7 +67785,7 @@ _0809C120:
bne _0809C1D4
adds r0, r7, 0
movs r1, 0x41
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
ldr r2, _0809C1B8
adds r5, r6, r2
strh r0, [r5]
@@ -67794,11 +67794,11 @@ _0809C120:
beq _0809C1EC
adds r0, r7, 0
movs r1, 0x1
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
mov r9, r0
adds r0, r7, 0
movs r1, 0x2D
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
ldr r2, _0809C1BC
adds r1, r6, r2
strb r0, [r1]
@@ -67807,7 +67807,7 @@ _0809C120:
adds r0, r7, 0
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r0, r4, 0
bl StringGetEnd10
adds r0, r7, 0
@@ -67817,13 +67817,13 @@ _0809C120:
strb r0, [r1]
adds r0, r7, 0
movs r1, 0x8
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
ldr r2, _0809C1C8
adds r1, r6, r2
strb r0, [r1]
adds r0, r7, 0
movs r1, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r2, r0, 0
ldr r0, _0809C1CC
adds r4, r6, r0
@@ -67842,7 +67842,7 @@ _0809C120:
str r0, [sp]
adds r0, r7, 0
movs r1, 0xC
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
_0809C1B2:
mov r1, r8
strh r0, [r1]
@@ -71415,7 +71415,7 @@ _0809DD64: .4byte 0x0000043c
_0809DD68:
ldr r0, _0809DD84
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r1, 0
beq _0809DD8C
@@ -72458,7 +72458,7 @@ sub_809E5C4: @ 809E5C4
str r0, [sp, 0x8]
adds r0, r5, 0
ldr r1, [sp, 0x8]
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
adds r1, 0x2
str r1, [sp, 0x14]
@@ -72468,7 +72468,7 @@ sub_809E5C4: @ 809E5C4
str r2, [sp, 0xC]
adds r0, r5, 0
adds r1, r2, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
mov r3, r8
@@ -72476,7 +72476,7 @@ sub_809E5C4: @ 809E5C4
str r3, [sp, 0x10]
adds r0, r5, 0
adds r1, r3, 0
- bl PokemonGetField
+ bl GetMonData
mov r7, sp
adds r7, 0x5
str r7, [sp, 0x18]
@@ -72486,13 +72486,13 @@ sub_809E5C4: @ 809E5C4
str r0, [sp, 0x1C]
adds r0, r5, 0
ldr r1, [sp, 0x1C]
- bl PokemonGetField
+ bl GetMonData
add r1, sp, 0x4
mov r10, r1
strb r0, [r1]
adds r0, r5, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r4, sp
adds r4, 0x6
strb r0, [r4]
@@ -72535,23 +72535,23 @@ sub_809E5C4: @ 809E5C4
adds r0, r5, 0
ldr r1, [sp, 0x8]
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
ldr r1, [sp, 0x10]
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
ldr r1, [sp, 0x1C]
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x15
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x20
pop {r3-r5}
mov r8, r3
@@ -72590,7 +72590,7 @@ sub_809E6D8: @ 809E6D8
str r0, [sp, 0x8]
adds r0, r5, 0
ldr r1, [sp, 0x8]
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
mov r1, sp
adds r1, 0x2
str r1, [sp, 0x14]
@@ -72600,7 +72600,7 @@ sub_809E6D8: @ 809E6D8
str r2, [sp, 0xC]
adds r0, r5, 0
adds r1, r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
mov r1, sp
strh r0, [r1]
mov r3, r8
@@ -72608,7 +72608,7 @@ sub_809E6D8: @ 809E6D8
str r3, [sp, 0x10]
adds r0, r5, 0
adds r1, r3, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
mov r7, sp
adds r7, 0x5
str r7, [sp, 0x18]
@@ -72618,13 +72618,13 @@ sub_809E6D8: @ 809E6D8
str r0, [sp, 0x1C]
adds r0, r5, 0
ldr r1, [sp, 0x1C]
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
add r1, sp, 0x4
mov r10, r1
strb r0, [r1]
adds r0, r5, 0
movs r1, 0x15
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
mov r4, sp
adds r4, 0x6
strb r0, [r4]
@@ -72667,23 +72667,23 @@ sub_809E6D8: @ 809E6D8
adds r0, r5, 0
ldr r1, [sp, 0x8]
mov r2, sp
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r5, 0
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x14]
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r5, 0
ldr r1, [sp, 0x10]
mov r2, r10
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r5, 0
ldr r1, [sp, 0x1C]
ldr r2, [sp, 0x18]
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
adds r0, r5, 0
movs r1, 0x15
adds r2, r4, 0
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
add sp, 0x20
pop {r3-r5}
mov r8, r3
@@ -73877,7 +73877,7 @@ sub_809F134: @ 809F134
ldr r4, _0809F1AC
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0809F1A6
lsls r0, r5, 24
@@ -74099,7 +74099,7 @@ _0809F2F0:
muls r0, r1
adds r0, r7, r0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0809F2C6
ldrb r0, [r4, 0x9]
@@ -74118,7 +74118,7 @@ sub_809F310: @ 809F310
push {r4,lr}
adds r4, r0, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0809F33C
ldr r0, _0809F338
@@ -74127,7 +74127,7 @@ sub_809F310: @ 809F310
bne _0809F332
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0809F33C
_0809F332:
@@ -74400,7 +74400,7 @@ _0809F51C:
strb r0, [r5]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r1, 0
beq _0809F560
@@ -74612,12 +74612,12 @@ sub_809F6B4: @ 809F6B4
_0809F6D2:
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r0, r5, 3
ldr r1, _0809F70C
@@ -74643,16 +74643,16 @@ _0809F714: .4byte gUnknown_081FAF4C
_0809F718:
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r5, 0
adds r2, r6, 0
@@ -74703,7 +74703,7 @@ _0809F784:
_0809F788:
movs r1, 0x10
_0809F78A:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
pop {r1}
@@ -74739,7 +74739,7 @@ _0809F7BC:
_0809F7C0:
movs r1, 0x14
_0809F7C2:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
pop {r1}
@@ -75139,7 +75139,7 @@ sub_809FAC8: @ 809FAC8
sub sp, 0xC
adds r5, r0, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0809FB28
movs r0, 0x1
@@ -75181,7 +75181,7 @@ _0809FB28:
lsrs r6, r0, 24
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl sub_80406D8
@@ -75330,7 +75330,7 @@ _0809FC3C:
bl MenuZeroFillWindowRect
adds r0, r6, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0809FD1C
ldr r5, _0809FCD0
@@ -75371,7 +75371,7 @@ _0809FC3C:
bl sub_80A198C
adds r0, r6, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
adds r1, r0, 0
@@ -75420,10 +75420,10 @@ _0809FD1C:
adds r0, r6, 0
movs r1, 0x7
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r6, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -75439,7 +75439,7 @@ _0809FD1C:
adds r5, r0, 0
adds r0, r6, 0
movs r1, 0x31
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0809FD70
adds r0, r5, 0
@@ -75473,7 +75473,7 @@ _0809FD74:
bl MenuPrint
adds r0, r6, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0809FE5C
ands r1, r0
movs r0, 0xC1
@@ -75489,7 +75489,7 @@ _0809FD74:
bl sub_80A1F98
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r2, _0809FE60
@@ -75514,13 +75514,13 @@ _0809FD74:
_0809FDF8:
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r6, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -75689,7 +75689,7 @@ _0809FF6A:
bls _0809FF6A
adds r0, r5, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0xB
@@ -75700,7 +75700,7 @@ _0809FF6A:
ldr r4, _080A008C
adds r0, r5, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
bl ConvertIntToDecimalString
@@ -75714,7 +75714,7 @@ _0809FF6A:
bl sub_80A0C80
adds r0, r5, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
bl ConvertIntToDecimalString
@@ -75725,7 +75725,7 @@ _0809FF6A:
bl sub_8072BD8
adds r0, r5, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
bl ConvertIntToDecimalString
@@ -75736,7 +75736,7 @@ _0809FF6A:
bl sub_8072BD8
adds r0, r5, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
bl ConvertIntToDecimalString
@@ -75747,7 +75747,7 @@ _0809FF6A:
bl sub_8072BD8
adds r0, r5, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
bl ConvertIntToDecimalString
@@ -75758,7 +75758,7 @@ _0809FF6A:
bl sub_8072BD8
adds r0, r5, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
bl ConvertIntToDecimalString
@@ -75769,7 +75769,7 @@ _0809FF6A:
bl sub_8072BD8
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x18
@@ -75781,7 +75781,7 @@ _0809FF6A:
adds r4, 0x1
adds r0, r5, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x30
@@ -76000,7 +76000,7 @@ _080A020C:
bl GetStringCenterAlignXOffset
mov r0, r8
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -76581,7 +76581,7 @@ _080A06B0:
_080A06C2:
adds r0, r6, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
ldr r1, _080A06F0
ands r1, r0
cmp r5, r1
@@ -76590,7 +76590,7 @@ _080A06C2:
adds r0, r6, 0
movs r1, 0x7
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
ldr r0, _080A06F4
adds r1, r4, 0
bl StringCompareWithoutExtCtrlCodes
@@ -76626,7 +76626,7 @@ sub_80A0708: @ 80A0708
lsrs r6, r2, 24
mov r8, r6
movs r1, 0x25
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -76641,7 +76641,7 @@ _080A0738: .4byte gUnknown_0842D197
_080A073C:
adds r0, r4, 0
movs r1, 0x23
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0xFF
@@ -76732,12 +76732,12 @@ _080A07DA:
bne _080A0898
adds r0, r7, 0
movs r1, 0x23
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r6, r0, 24
adds r0, r7, 0
movs r1, 0x24
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080A0850
adds r0, r5, 0
@@ -76771,7 +76771,7 @@ _080A0850:
bhi _080A08E8
adds r0, r7, 0
movs r1, 0x24
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -76799,7 +76799,7 @@ _080A0894: .4byte gUnknown_0842D0F3
_080A0898:
adds r0, r7, 0
movs r1, 0x25
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
@@ -76809,14 +76809,14 @@ _080A0898:
bhi _080A08E8
adds r0, r7, 0
movs r1, 0x23
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0xFF
bne _080A08E4
adds r0, r7, 0
movs r1, 0x24
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -76847,7 +76847,7 @@ _080A08F8: .4byte gUnknown_0842D103
_080A08FC:
adds r0, r7, 0
movs r1, 0x24
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -76894,7 +76894,7 @@ sub_80A0958: @ 80A0958
push {r4-r6}
mov r8, r0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -76941,7 +76941,7 @@ sub_80A0958: @ 80A0958
bl MenuZeroFillWindowRect
mov r0, r8
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -76992,7 +76992,7 @@ sub_80A0A2C: @ 80A0A2C
lsls r2, 24
lsrs r4, r2, 24
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0x20
@@ -77041,103 +77041,103 @@ sub_80A0A90: @ 80A0A90
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x32
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x33
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x34
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x35
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x36
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x43
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x44
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x45
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x46
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x47
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x48
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x49
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x4A
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x4B
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x4C
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x4D
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x4E
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 24
lsrs r4, 24
@@ -77286,16 +77286,16 @@ sub_80A0C80: @ 80A0C80
movs r7, 0
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
cmp r5, 0x63
@@ -78739,7 +78739,7 @@ sub_80A1808: @ 80A1808
mov r7, r8
push {r7}
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
@@ -78810,7 +78810,7 @@ sub_80A1888: @ 80A1888
str r0, [r4, 0x1C]
ldr r0, _080A18C0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080A18B0
ldrh r0, [r4, 0x2E]
@@ -79391,7 +79391,7 @@ sub_80A1CD8: @ 80A1CD8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080A1CEA
movs r0, 0x7
@@ -79399,7 +79399,7 @@ sub_80A1CD8: @ 80A1CD8
_080A1CEA:
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
bl pokemon_ailments_get_primary
lsls r0, 24
lsrs r0, 24
@@ -79489,7 +79489,7 @@ sub_80A1D84: @ 80A1D84
beq _080A1DBA
adds r0, r5, 0
movs r1, 0x8
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -79530,7 +79530,7 @@ _080A1DE4: .4byte 0x020384f4
sub_80A1DE8: @ 80A1DE8
push {r4,lr}
movs r1, 0x26
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl ball_number_to_ball_processing_index
@@ -81369,7 +81369,7 @@ sub_80A2B94: @ 80A2B94
push {r4,lr}
adds r4, r0, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl itemid_is_mail
@@ -81378,7 +81378,7 @@ sub_80A2B94: @ 80A2B94
beq _080A2BBC
adds r0, r4, 0
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xFF
beq _080A2BBC
movs r0, 0x1
@@ -81511,13 +81511,13 @@ _080A2C88:
bls _080A2C88
adds r0, r7, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r7, 0
movs r1, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
adds r0, r4, 0
bl sub_80A2D44
@@ -81543,11 +81543,11 @@ _080A2C88:
adds r0, r7, 0
movs r1, 0x40
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
adds r0, r7, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r4]
b _080A2D32
.align 2, 0
@@ -81654,7 +81654,7 @@ sub_80A2D88: @ 80A2D88
adds r0, r6, 0
movs r1, 0x40
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r0, sp
strb r5, [r0]
mov r1, sp
@@ -81663,7 +81663,7 @@ sub_80A2D88: @ 80A2D88
adds r0, r6, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r4]
b _080A2DEA
.align 2, 0
@@ -81695,7 +81695,7 @@ sub_80A2DF8: @ 80A2DF8
beq _080A2E46
adds r0, r4, 0
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
add r2, sp, 0x4
strb r0, [r2]
ldr r3, _080A2E50
@@ -81716,11 +81716,11 @@ sub_80A2DF8: @ 80A2DF8
strb r3, [r0, 0x1]
adds r0, r4, 0
movs r1, 0x40
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
_080A2E46:
add sp, 0x8
pop {r4}
@@ -81786,7 +81786,7 @@ _080A2E9E:
adds r0, r5, 0
movs r1, 0x40
str r2, [sp, 0x8]
- bl PokemonGetField
+ bl GetMonData
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
@@ -81800,7 +81800,7 @@ _080A2E9E:
stm r4!, {r0,r2,r3}
adds r0, r5, 0
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
@@ -81811,11 +81811,11 @@ _080A2E9E:
adds r0, r5, 0
movs r1, 0x40
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r7, 0
b _080A2F1C
.align 2, 0
@@ -97257,70 +97257,70 @@ sub_80AA69C: @ 80AA69C
adds r2, r4
adds r0, r6, 0
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r0, r4, 0x2
adds r2, r0
adds r0, r6, 0
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r0, r4, 0x1
adds r2, r0
adds r0, r6, 0
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r0, r4, 0x3
adds r2, r0
adds r0, r6, 0
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r0, r4, 0x4
adds r2, r0
adds r0, r6, 0
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r0, r4, 0x5
adds r2, r0
adds r0, r6, 0
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
subs r4, 0x8
adds r2, r4
adds r0, r6, 0
movs r1, 0xD
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r2, r4
adds r2, 0x2
adds r0, r6, 0
movs r1, 0xE
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r2, r4
adds r2, 0x4
adds r0, r6, 0
movs r1, 0xF
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 6
adds r2, r4
adds r2, 0x6
adds r0, r6, 0
movs r1, 0x10
- bl pokemon_setattr
+ bl SetMonData
pop {r4-r6}
pop {r0}
bx r0
@@ -104454,7 +104454,7 @@ _080AE108:
adds r6, r1, r0
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r4]
lsls r1, 6
adds r1, r5
@@ -104462,7 +104462,7 @@ _080AE108:
adds r0, r6, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
mov r0, sp
bl StringGetEnd10
ldr r0, _080AE188
@@ -104475,7 +104475,7 @@ _080AE108:
bl SkipExtCtrlCodes
adds r0, r6, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
bne _080AE18C
mov r1, sp
@@ -104514,7 +104514,7 @@ _080AE19A:
adds r4, r0
adds r0, r4, 0
movs r1, 0x16
- bl PokemonGetField
+ bl GetMonData
mov r6, r8
subs r6, 0x2
ldrb r1, [r5]
@@ -104524,7 +104524,7 @@ _080AE19A:
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x17
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
@@ -104532,7 +104532,7 @@ _080AE19A:
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x18
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
@@ -104540,7 +104540,7 @@ _080AE19A:
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x21
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
@@ -104548,7 +104548,7 @@ _080AE19A:
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2F
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
@@ -104556,7 +104556,7 @@ _080AE19A:
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x30
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
@@ -104564,35 +104564,35 @@ _080AE19A:
strb r0, [r1]
adds r0, r4, 0
movs r1, 0xD
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x1E]
adds r0, r4, 0
movs r1, 0xE
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x20]
adds r0, r4, 0
movs r1, 0xF
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x22]
adds r0, r4, 0
movs r1, 0x10
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
adds r1, r6
strh r0, [r1, 0x24]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
mov r2, r8
@@ -104601,7 +104601,7 @@ _080AE19A:
str r0, [r1]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
lsls r1, 6
movs r2, 0x3A
@@ -104610,7 +104610,7 @@ _080AE19A:
str r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r2, r0, 16
mov r8, r2
@@ -104870,7 +104870,7 @@ sub_80AE47C: @ 80AE47C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080AE48E
movs r0, 0x3
@@ -104878,7 +104878,7 @@ sub_80AE47C: @ 80AE47C
_080AE48E:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080AE49E
movs r0, 0x4
@@ -104923,7 +104923,7 @@ _080AE4E4:
adds r0, r4, 0
movs r1, 0x36
_080AE4E8:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r1, r0, 24
b _080AE4F6
@@ -133914,37 +133914,37 @@ sub_80BC298: @ 80BC298
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x1A
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x1B
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x1C
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x1D
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x1E
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x1F
- bl PokemonGetField
+ bl GetMonData
adds r4, r0
lsls r4, 16
lsrs r4, 16
@@ -134014,12 +134014,12 @@ _080BC322:
adds r4, r5, r7
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080BC408
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080BC408
movs r4, 0
@@ -134036,7 +134036,7 @@ _080BC38E:
adds r1, 0xD
adds r0, r5, r2
str r2, [sp, 0x8]
- bl PokemonGetField
+ bl GetMonData
mov r3, r8
adds r1, r3, r4
lsls r1, 1
@@ -134056,25 +134056,25 @@ _080BC38E:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r5, _080BC42C
adds r1, r5, r7
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
ldr r2, _080BC430
adds r1, r2, r7
strh r0, [r1]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, _080BC434
add r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldr r1, _080BC438
add r1, r8
str r0, [r1]
@@ -138124,7 +138124,7 @@ sub_80BE284: @ 80BE284
adds r0, r4
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strh r0, [r7, 0x2]
ldrb r0, [r6]
muls r0, r5
@@ -138132,7 +138132,7 @@ sub_80BE284: @ 80BE284
adds r2, r7, 0
adds r2, 0x8
movs r1, 0x2
- bl PokemonGetField
+ bl GetMonData
_080BE2FE:
pop {r4-r7}
pop {r0}
@@ -138328,7 +138328,7 @@ sub_80BE478: @ 80BE478
ldr r4, _080BE560
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
ldr r1, _080BE564
mov r9, r1
mov r0, r9
@@ -138362,7 +138362,7 @@ sub_80BE478: @ 80BE478
adds r0, r6
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2]
bl Random
lsls r0, 16
@@ -138389,7 +138389,7 @@ sub_80BE478: @ 80BE478
adds r5, r4, 0x4
movs r1, 0x2
adds r2, r5, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
bl sub_80BE160
movs r0, 0x2
@@ -138516,7 +138516,7 @@ sub_80BE5FC: @ 80BE5FC
adds r0, r1
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2]
adds r0, r4, 0
bl sub_80BE160
@@ -138596,7 +138596,7 @@ sub_80BE6A0: @ 80BE6A0
adds r0, r6
movs r1, 0x20
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsrs r0, 4
movs r1, 0xF
ands r0, r1
@@ -138627,7 +138627,7 @@ sub_80BE6A0: @ 80BE6A0
adds r5, 0x10
movs r1, 0x2
adds r2, r5, 0
- bl PokemonGetField
+ bl GetMonData
bl sub_810F87C
lsls r0, 24
lsrs r0, 24
@@ -138637,7 +138637,7 @@ sub_80BE6A0: @ 80BE6A0
adds r0, r6
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2]
adds r0, r4, 0
bl sub_80BE160
@@ -140234,7 +140234,7 @@ sub_80BF334: @ 80BF334
adds r0, r1
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xB
muls r1, r0
ldr r0, _080BF398
@@ -140313,7 +140313,7 @@ sub_80BF3DC: @ 80BF3DC
adds r0, r4
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xB
muls r1, r0
ldr r0, _080BF45C
@@ -140328,7 +140328,7 @@ sub_80BF3DC: @ 80BF3DC
ldr r4, _080BF460
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
bl StringGetEnd10
ldr r0, _080BF464
@@ -140447,11 +140447,11 @@ sub_80BF4F4: @ 80BF4F4
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xB
muls r0, r1
ldr r1, _080BF538
@@ -141124,7 +141124,7 @@ sub_80BF9B4: @ 80BF9B4
ldr r4, _080BF9E8
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
ldr r0, _080BF9EC
adds r1, r4, 0
bl StringCompareWithoutExtCtrlCodes
@@ -141166,7 +141166,7 @@ sub_80BF9F8: @ 80BF9F8
adds r0, r6
ldr r2, _080BFAA8
movs r1, 0x2
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
ldrh r0, [r1]
mov r1, r8
@@ -141177,7 +141177,7 @@ sub_80BF9F8: @ 80BF9F8
mov r10, r1
movs r1, 0x2
mov r2, r10
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
ldrh r0, [r1]
mov r1, r8
@@ -141186,7 +141186,7 @@ sub_80BF9F8: @ 80BF9F8
adds r0, r6
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
@@ -141208,7 +141208,7 @@ sub_80BF9F8: @ 80BF9F8
adds r0, r6
movs r1, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp]
ldr r0, _080BFAB0
str r0, [sp, 0x4]
@@ -141244,7 +141244,7 @@ c2_080CC144: @ 80BFAB4
adds r0, r1
ldr r2, _080BFADC
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
bl c2_exit_to_overworld_1_continue_scripts_restart_music
pop {r0}
bx r0
@@ -141266,7 +141266,7 @@ sub_80BFAE0: @ 80BFAE0
ldr r4, _080BFB0C
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
bl StringGetEnd10
pop {r4}
@@ -141291,7 +141291,7 @@ sub_80BFB10: @ 80BFB10
adds r0, r1
movs r1, 0x1
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
cmp r4, r0
bne _080BFB44
ldr r1, _080BFB40
@@ -150239,7 +150239,7 @@ _080C44A0:
adds r0, r2, 0
movs r1, 0x36
_080C44A4:
- bl PokemonGetField
+ bl GetMonData
ldr r1, _080C44BC
ldrh r1, [r1]
cmp r0, r1
@@ -150298,7 +150298,7 @@ _080C450C:
ldr r4, _080C454C
adds r0, r4
movs r1, 0x32
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r1, r0, 24
mov r0, sp
@@ -150335,7 +150335,7 @@ _080C4554:
ldr r5, _080C4590
adds r0, r5
movs r1, 0x33
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
@@ -150366,7 +150366,7 @@ _080C4598:
ldr r5, _080C45D4
adds r0, r5
movs r1, 0x34
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
@@ -150397,7 +150397,7 @@ _080C45DC:
ldr r5, _080C461C
adds r0, r5
movs r1, 0x35
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
@@ -150416,7 +150416,7 @@ _080C45DC:
movs r1, 0x35
_080C4610:
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
b _080C465E
.align 2, 0
_080C4618: .4byte 0x02038694
@@ -150431,7 +150431,7 @@ _080C4624:
ldr r5, _080C466C
adds r0, r5
movs r1, 0x36
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
@@ -150449,7 +150449,7 @@ _080C4624:
adds r0, r5
movs r1, 0x36
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
_080C465E:
add sp, 0x4
pop {r4-r7}
@@ -151718,7 +151718,7 @@ sub_80C4FBC: @ 80C4FBC
ldr r4, _080C5020
adds r0, r4
movs r1, 0x46
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
mov r1, sp
@@ -151752,7 +151752,7 @@ sub_80C4FBC: @ 80C4FBC
adds r0, r4
movs r1, 0x46
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0x1
b _080C503A
.align 2, 0
@@ -152105,7 +152105,7 @@ _080C52CE:
add r4, r10
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
lsls r1, r0, 16
strb r0, [r6]
lsrs r1, 24
@@ -152113,10 +152113,10 @@ _080C52CE:
adds r0, r4, 0
movs r1, 0x39
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r7, r0, 24
movs r5, 0
@@ -152127,7 +152127,7 @@ _080C5304:
adds r1, r5, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
adds r1, r7, 0
@@ -152138,7 +152138,7 @@ _080C5304:
adds r1, 0x11
adds r0, r4, 0
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -152155,7 +152155,7 @@ _080C5304:
add r0, r10
movs r1, 0x37
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, r9
lsls r0, r1, 24
lsrs r0, 24
@@ -152213,7 +152213,7 @@ sub_80C5374: @ 80C5374
adds r0, r6, 0
movs r1, 0xC
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
bl pokemon_catch
lsls r0, 24
@@ -152257,7 +152257,7 @@ sub_80C53F8: @ 80C53F8
strb r0, [r2]
mov r0, sp
movs r1, 0x2D
- bl pokemon_setattr
+ bl SetMonData
mov r0, sp
bl pokemon_catch
lsls r0, 24
@@ -152309,7 +152309,7 @@ _080C545C:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -152318,7 +152318,7 @@ _080C545C:
beq _080C5490
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
cmp r0, r6
bne _080C5490
movs r0, 0x1
@@ -152398,7 +152398,7 @@ sub_80C54D0: @ 80C54D0
mov r0, r8
movs r1, 0xC
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
_080C551E:
add sp, 0x14
pop {r3}
@@ -152592,7 +152592,7 @@ _080C5680: .4byte 0x05000096
sub_80C5684: @ 80C5684
push {lr}
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
@@ -152623,7 +152623,7 @@ _080C56AE:
beq _080C56CC
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080C56CC
movs r0, 0
@@ -152661,12 +152661,12 @@ sub_80C56DC: @ 80C56DC
adds r0, r4, 0
movs r1, 0x37
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
ldr r5, _080C5724
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r5, 0
bl StringGetEnd10
add sp, 0x4
@@ -152693,12 +152693,12 @@ sub_80C5728: @ 80C5728
beq _080C5768
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080C5768
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
bl pokemon_ailments_get_primary
lsls r0, 24
lsrs r0, 24
@@ -152835,12 +152835,12 @@ overworld_poison: @ 80C583C
_080C5848:
adds r0, r4, 0
movs r1, 0x5
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080C588C
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
bl pokemon_ailments_get_primary
lsls r0, 24
lsrs r0, 24
@@ -152848,7 +152848,7 @@ _080C5848:
bne _080C588C
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
str r0, [sp]
cmp r0, 0
beq _080C587E
@@ -152862,7 +152862,7 @@ _080C5880:
adds r0, r4, 0
movs r1, 0x39
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r7, 0x1
_080C588C:
adds r4, 0x64
@@ -152906,45 +152906,45 @@ sub_80C58C0: @ 80C58C0
sub sp, 0x8
adds r5, r0, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
str r0, [sp, 0x4]
lsrs r0, 16
str r0, [sp]
adds r0, r5, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
adds r7, r0, 0
movs r6, 0xF
ands r7, r6
adds r0, r5, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r8
ands r1, r6
mov r8, r1
adds r0, r5, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
mov r3, r9
ands r3, r6
mov r9, r3
adds r0, r5, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
ands r0, r6
mov r10, r0
adds r0, r5, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
ands r4, r6
adds r0, r5, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
ands r2, r6
mov r1, r8
@@ -153141,12 +153141,12 @@ _080C5AA8:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _080C5ACA
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, r6
beq _080C5AD4
_080C5ACA:
@@ -153371,12 +153371,12 @@ _080C5C70:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080C5CA2
adds r0, r4, 0
movs r1, 0x6
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080C5CA2
mov r1, sp
@@ -153384,7 +153384,7 @@ _080C5C70:
ldrb r1, [r0]
adds r0, r4, 0
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
movs r7, 0x1
_080C5CA2:
adds r5, 0x1
@@ -161852,12 +161852,12 @@ _080C9DE6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080C9DE0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080C9DE0
ldr r0, _080C9E2C
@@ -183368,12 +183368,12 @@ _080D43D8:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r3, r0, 16
lsrs r4, 18
@@ -209175,7 +209175,7 @@ _080E0BB0:
_080E0BC0:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
_080E0BCC:
@@ -213963,7 +213963,7 @@ _080E3098:
_080E30A8:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
_080E30B4:
@@ -214494,7 +214494,7 @@ _080E3508:
_080E3516:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
_080E3522:
@@ -215581,7 +215581,7 @@ _080E3D7C:
_080E3D8A:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
_080E3D96:
@@ -249171,7 +249171,7 @@ _080F44C8:
adds r0, r1
adds r1, r4, 0
adds r2, r3, 0
- bl PokemonGetField
+ bl GetMonData
b _080F453C
.align 2, 0
_080F44DC: .4byte 0x03004360
@@ -249181,7 +249181,7 @@ _080F44E0:
ldr r1, _080F44F0
adds r0, r1
adds r1, r4, 0
- bl PokemonGetField
+ bl GetMonData
b _080F453C
.align 2, 0
_080F44F0: .4byte 0x03004360
@@ -249204,7 +249204,7 @@ _080F44FC:
adds r0, r1
adds r1, r4, 0
adds r2, r3, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
b _080F453C
.align 2, 0
_080F451C: .4byte 0x020300a4
@@ -249221,7 +249221,7 @@ _080F4520:
adds r1, r2
adds r0, r1
adds r1, r4, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
_080F453C:
pop {r4}
pop {r1}
@@ -249248,7 +249248,7 @@ sub_80F4548: @ 80F4548
adds r0, r1
movs r1, 0x8
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
b _080F4592
.align 2, 0
_080F4570: .4byte 0x03004360
@@ -249266,7 +249266,7 @@ _080F4574:
adds r0, r1
movs r1, 0x8
mov r2, sp
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
_080F4592:
add sp, 0x4
pop {r4}
@@ -250071,7 +250071,7 @@ _080F4BF6:
ldr r1, _080F4CCC
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080F4C58
mov r0, r10
@@ -250308,7 +250308,7 @@ _080F4DCA:
add r1, r8
adds r0, r1
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _080F4E60
ldrb r0, [r6]
@@ -250324,7 +250324,7 @@ _080F4DCA:
add r1, r8
adds r0, r1
movs r1, 0x2D
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _080F4E60
ldrb r1, [r6]
@@ -250356,7 +250356,7 @@ _080F4DCA:
adds r0, r1
mov r2, r9
ldrb r1, [r2]
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 24
lsrs r0, 24
ldr r2, _080F4EB4
@@ -250429,7 +250429,7 @@ _080F4ED6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080F4F18
movs r0, 0x1F
@@ -250448,7 +250448,7 @@ _080F4ED6:
adds r0, r2
ldrb r1, [r0]
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r5]
mov r0, sp
bl sub_80F4944
@@ -253020,7 +253020,7 @@ _080F629A:
add r1, r8
adds r0, r1
movs r1, 0x51
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _080F636C
ldrb r0, [r5]
@@ -253036,7 +253036,7 @@ _080F629A:
add r1, r9
adds r0, r1
movs r1, 0x51
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
cmp r1, 0
bne _080F636C
@@ -253084,7 +253084,7 @@ _080F632A:
ldr r1, _080F635C
adds r0, r1
movs r1, 0x51
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080F6324
ldr r0, _080F6360
@@ -253200,7 +253200,7 @@ _080F63FC:
adds r1, r2
adds r0, r1
movs r1, 0x51
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
@@ -253272,7 +253272,7 @@ _080F64A8:
ldr r1, _080F64FC
adds r0, r1
movs r1, 0x51
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
@@ -253382,7 +253382,7 @@ _080F655E:
adds r4, r0
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
@@ -254979,7 +254979,7 @@ sub_80F7224: @ 80F7224
ldr r1, _080F7260
adds r0, r1
movs r1, 0x30
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080F7264
@@ -260934,7 +260934,7 @@ _080F9F48:
adds r0, r1
adds r1, r4, 0
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080F9F66
ldrh r0, [r5]
@@ -260969,7 +260969,7 @@ sub_80F9F84: @ 80F9F84
ldrh r1, [r0]
adds r1, 0xD
adds r0, r5, 0
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -261014,7 +261014,7 @@ sub_80F9FDC: @ 80F9FDC
str r0, [sp, 0x8]
mov r0, r8
ldr r1, [sp, 0x8]
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
adds r1, 0x2
str r1, [sp, 0x14]
@@ -261024,7 +261024,7 @@ sub_80F9FDC: @ 80F9FDC
str r3, [sp, 0xC]
mov r0, r8
adds r1, r3, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r7, r5, 0
@@ -261032,7 +261032,7 @@ sub_80F9FDC: @ 80F9FDC
str r7, [sp, 0x10]
mov r0, r8
adds r1, r7, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
adds r1, 0x5
str r1, [sp, 0x18]
@@ -261042,13 +261042,13 @@ sub_80F9FDC: @ 80F9FDC
str r3, [sp, 0x1C]
mov r0, r8
adds r1, r3, 0
- bl PokemonGetField
+ bl GetMonData
add r7, sp, 0x4
mov r10, r7
strb r0, [r7]
mov r0, r8
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r6, sp
adds r6, 0x6
strb r0, [r6]
@@ -261087,23 +261087,23 @@ sub_80F9FDC: @ 80F9FDC
mov r0, r8
ldr r1, [sp, 0x8]
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r0, r8
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
mov r0, r8
ldr r1, [sp, 0x10]
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
mov r0, r8
ldr r1, [sp, 0x1C]
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
mov r0, r8
movs r1, 0x15
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x20
pop {r3-r5}
mov r8, r3
@@ -261183,7 +261183,7 @@ sub_80FA148: @ 80FA148
movs r1, 0
strh r1, [r4]
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080FA16A
movs r0, 0x1
@@ -291343,17 +291343,17 @@ _081085CA:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08108608
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08108608
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -291861,17 +291861,17 @@ _081089C8:
add r4, r9
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
cmp r5, 0
beq _08108A00
cmp r5, r10
@@ -291947,17 +291947,17 @@ _08108A6C:
add r4, r10
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
cmp r5, 0
beq _08108AB0
movs r1, 0xCE
@@ -301137,17 +301137,17 @@ _0810D1FC:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0810D23A
adds r0, r4, 0
movs r1, 0x6
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0810D23A
adds r0, r4, 0
movs r1, 0x43
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0810D23A
movs r0, 0x1
@@ -301155,7 +301155,7 @@ _0810D1FC:
adds r0, r4, 0
movs r1, 0x43
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
movs r6, 0x1
_0810D23A:
adds r5, 0x1
@@ -301298,12 +301298,12 @@ _0810D336:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0810D368
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0810D364
ands r1, r0
cmp r1, r6
@@ -303402,7 +303402,7 @@ sub_810E384: @ 810E384
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xFF
bne _0810E3AC
movs r0, 0x6
@@ -303412,7 +303412,7 @@ _0810E3A8: .4byte 0x03004360
_0810E3AC:
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xC7
bls _0810E3BC
movs r0, 0x5
@@ -303420,7 +303420,7 @@ _0810E3AC:
_0810E3BC:
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x95
bls _0810E3CC
movs r0, 0x4
@@ -303428,7 +303428,7 @@ _0810E3BC:
_0810E3CC:
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x63
bls _0810E3DC
movs r0, 0x3
@@ -303436,7 +303436,7 @@ _0810E3CC:
_0810E3DC:
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x31
bls _0810E3EC
movs r0, 0x2
@@ -303444,7 +303444,7 @@ _0810E3DC:
_0810E3EC:
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0810E3FC
movs r0, 0
@@ -304916,7 +304916,7 @@ sub_810EF3C: @ 810EF3C
ldr r1, _0810EF5C
adds r0, r1
movs r1, 0x16
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xC7
bls _0810EF60
movs r0, 0x1
@@ -304941,7 +304941,7 @@ sub_810EF68: @ 810EF68
ldr r1, _0810EF88
adds r0, r1
movs r1, 0x17
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xC7
bls _0810EF8C
movs r0, 0x1
@@ -304966,7 +304966,7 @@ sub_810EF94: @ 810EF94
ldr r1, _0810EFB4
adds r0, r1
movs r1, 0x18
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xC7
bls _0810EFB8
movs r0, 0x1
@@ -304991,7 +304991,7 @@ sub_810EFC0: @ 810EFC0
ldr r1, _0810EFE0
adds r0, r1
movs r1, 0x21
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xC7
bls _0810EFE4
movs r0, 0x1
@@ -305016,7 +305016,7 @@ sub_810EFEC: @ 810EFEC
ldr r1, _0810F00C
adds r0, r1
movs r1, 0x2F
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xC7
bls _0810F010
movs r0, 0x1
@@ -305043,17 +305043,17 @@ _0810F01E:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0810F074
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0810F074
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 3
@@ -305702,7 +305702,7 @@ sub_810F524: @ 810F524
adds r0, r1
movs r1, 0x47
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -305731,7 +305731,7 @@ sub_810F54C: @ 810F54C
adds r0, r1
movs r1, 0x47
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x4
pop {r0}
bx r0
@@ -305847,28 +305847,28 @@ sub_810F628: @ 810F628
adds r0, r5, 0
movs r1, 0x2E
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
add r1, sp, 0x10
movs r0, 0x21
strh r0, [r1]
adds r0, r5, 0
movs r1, 0xD
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
add r0, sp, 0x10
strh r4, [r0]
adds r0, r5, 0
movs r1, 0xE
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0xF
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x10
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x14
pop {r4,r5}
pop {r0}
@@ -305900,7 +305900,7 @@ _0810F6B6:
adds r0, r1
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
cmp r0, r6
bne _0810F6D8
movs r0, 0x1
@@ -305942,7 +305942,7 @@ _0810F6FC:
adds r0, r6, r0
movs r1, 0xB
movs r2, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _0810F71C
movs r0, 0x1
@@ -306156,7 +306156,7 @@ _0810F88C:
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -306164,7 +306164,7 @@ _0810F88C:
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0810F8C0
adds r0, r5, 0
@@ -306196,7 +306196,7 @@ sub_810F8D4: @ 810F8D4
adds r0, r1
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
pop {r1}
@@ -306282,7 +306282,7 @@ sub_810F96C: @ 810F96C
ldr r4, _0810F99C
movs r1, 0x7
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
ldr r0, _0810F9A0
adds r1, r4, 0
bl StringCompareWithoutExtCtrlCodes
@@ -310521,7 +310521,7 @@ evolution_cutscene: @ 8111984
ldr r0, [sp, 0x20]
movs r1, 0x2
add r2, sp, 0x8
- bl PokemonGetField
+ bl GetMonData
ldr r0, _08111C48
add r1, sp, 0x8
bl StringCopy10
@@ -310535,17 +310535,17 @@ evolution_cutscene: @ 8111984
bl StringCopy
ldr r0, [sp, 0x20]
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
ldr r0, [sp, 0x20]
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x2C]
ldr r0, [sp, 0x20]
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x30]
lsls r0, r6, 3
ldr r1, _08111C54
@@ -310788,11 +310788,11 @@ sub_8111C90: @ 8111C90
ldrh r6, [r0, 0x10]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
movs r0, 0
bl SetHBlankCallback
@@ -311113,11 +311113,11 @@ _08111FDC:
_08111FE2:
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r0, r7, 3
ldr r1, _08112034
@@ -311249,7 +311249,7 @@ sub_81120E4: @ 81120E4
ldr r0, [sp, 0x1C]
movs r1, 0x2
add r2, sp, 0x8
- bl PokemonGetField
+ bl GetMonData
ldr r0, _08112234
add r1, sp, 0x8
bl StringCopy10
@@ -311264,7 +311264,7 @@ sub_81120E4: @ 81120E4
strb r0, [r1]
ldr r0, [sp, 0x1C]
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r8
lsls r1, 16
@@ -311272,11 +311272,11 @@ sub_81120E4: @ 81120E4
mov r8, r1
ldr r0, [sp, 0x1C]
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
ldr r0, [sp, 0x1C]
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r7, r0, 0
ldr r2, _08112244
mov r9, r2
@@ -311469,13 +311469,13 @@ _081122E2:
adds r0, r5, 0
mov r1, r10
movs r2, 0x64
- bl memcpy_pokemon
+ bl CopyMon
mov r1, r8
adds r2, r1, r4
adds r2, 0xC
adds r0, r5, 0
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
ldrh r1, [r6, 0xC]
movs r0, 0xB
adds r2, r1, 0
@@ -311484,26 +311484,26 @@ _081122E2:
adds r2, r0
adds r0, r5, 0
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x8
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0xA
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
movs r4, 0x32
mov r6, r9
_08112342:
adds r0, r5, 0
adds r1, r4, 0
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x1
cmp r4, 0x36
ble _08112342
@@ -311512,20 +311512,20 @@ _08112354:
adds r0, r5, 0
adds r1, r4, 0
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x1
cmp r4, 0x4F
ble _08112354
adds r0, r5, 0
movs r1, 0x37
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0xFF
str r0, [sp]
adds r0, r5, 0
movs r1, 0x40
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
bl pokemon_calc_effective_stats
bl calc_player_party_count
@@ -311547,18 +311547,18 @@ _08112354:
bl sub_8090D90
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r1, _08112404
cmp r0, r1
bne _081123E2
adds r0, r5, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
bne _081123E2
mov r0, r10
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x97
lsls r1, 1
cmp r0, r1
@@ -311566,7 +311566,7 @@ _08112354:
ldr r2, _08112408
adds r0, r5, 0
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
_081123E2:
add sp, 0x4
pop {r3-r5}
@@ -312032,7 +312032,7 @@ _081127BE:
adds r2, 0x10
mov r0, r9
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
mov r0, r9
bl pokemon_calc_effective_stats
ldrh r1, [r4, 0xE]
@@ -312093,7 +312093,7 @@ _08112856:
mov r0, r9
movs r1, 0x2
add r2, sp, 0x4
- bl PokemonGetField
+ bl GetMonData
ldr r0, _081128A8
add r1, sp, 0x4
bl StringCopy10
@@ -312709,7 +312709,7 @@ _08112DCC:
adds r1, r6, 0
adds r1, 0xD
mov r0, r9
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -313340,7 +313340,7 @@ _08113316:
adds r2, 0x10
mov r0, r8
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
mov r0, r8
bl pokemon_calc_effective_stats
ldrh r1, [r4, 0xE]
@@ -313410,7 +313410,7 @@ _081133C2:
mov r0, r8
movs r1, 0x2
add r2, sp, 0x4
- bl PokemonGetField
+ bl GetMonData
ldr r0, _08113418
add r1, sp, 0x4
bl StringCopy10
@@ -314002,7 +314002,7 @@ _08113910:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -317284,7 +317284,7 @@ _08115322:
ldr r1, _08115360
adds r0, r1
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
movs r0, 0x98
lsls r0, 1
@@ -335124,7 +335124,7 @@ sub_811DE98: @ 811DE98
ldr r1, _0811DF2C
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl nullsub_9
@@ -335903,12 +335903,12 @@ _0811E588:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -335936,12 +335936,12 @@ _0811E5D4:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -335956,21 +335956,21 @@ _0811E5D4:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -335982,7 +335982,7 @@ _0811E5D4:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -335994,7 +335994,7 @@ _0811E5D4:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -336006,7 +336006,7 @@ _0811E5D4:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -336017,7 +336017,7 @@ _0811E5D4:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -336028,7 +336028,7 @@ _0811E5D4:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -336040,55 +336040,55 @@ _0811E5D4:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -336101,7 +336101,7 @@ _0811E5D4:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -336111,19 +336111,19 @@ _0811E5D4:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_0811E78C:
@@ -336174,13 +336174,13 @@ _0811E7E2:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -336194,7 +336194,7 @@ _0811E7E2:
ldr r1, _0811E830
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -336236,7 +336236,7 @@ _0811E85C:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -336247,7 +336247,7 @@ _0811E85C:
ldr r1, _0811E888
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -336284,7 +336284,7 @@ _0811E8B8:
adds r0, r1
movs r1, 0x19
_0811E8C2:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -336417,27 +336417,27 @@ _0811E9A8:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _0811EBEE
@@ -336522,7 +336522,7 @@ _0811EA78:
adds r0, r1
movs r1, 0x37
_0811EA82:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -336611,7 +336611,7 @@ _0811EB1C:
adds r0, r1
movs r1, 0x3F
_0811EB26:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -336718,7 +336718,7 @@ _0811EBDC:
adds r0, r1
movs r1, 0x36
_0811EBE6:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_0811EBEE:
@@ -336893,12 +336893,12 @@ _0811ED9C:
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -336939,12 +336939,12 @@ _0811EE02:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -336960,15 +336960,15 @@ _0811EE02:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -336977,7 +336977,7 @@ _0811EE02:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
@@ -336986,7 +336986,7 @@ _0811EE02:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
@@ -336995,7 +336995,7 @@ _0811EE02:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
@@ -337004,7 +337004,7 @@ _0811EE02:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
@@ -337013,7 +337013,7 @@ _0811EE02:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
@@ -337022,47 +337022,47 @@ _0811EE02:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811EF30: .4byte 0x03004360
@@ -337076,7 +337076,7 @@ _0811EF34:
lsls r2, 9
adds r2, r7
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811EF4C: .4byte 0x03004360
@@ -337091,7 +337091,7 @@ _0811EF54:
lsls r2, 9
adds r2, r7
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811EF6C: .4byte 0x03004360
@@ -337115,12 +337115,12 @@ _0811EF8E:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -337134,7 +337134,7 @@ _0811EF8E:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811EFC8: .4byte 0x03004360
@@ -337168,35 +337168,35 @@ _0811EFF4:
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F050: .4byte 0x03004360
@@ -337217,7 +337217,7 @@ _0811F058:
_0811F070:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F07C: .4byte 0x03004360
@@ -337233,7 +337233,7 @@ _0811F088:
lsls r2, 9
adds r2, r7
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F0A0: .4byte 0x03004360
@@ -337248,7 +337248,7 @@ _0811F0A8:
lsls r2, 9
adds r2, r7
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F0C0: .4byte 0x03004360
@@ -337263,7 +337263,7 @@ _0811F0C8:
lsls r2, 9
adds r2, r7
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F0E0: .4byte 0x03004360
@@ -337278,7 +337278,7 @@ _0811F0E8:
lsls r2, 9
adds r2, r7
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F100: .4byte 0x03004360
@@ -337293,7 +337293,7 @@ _0811F108:
lsls r2, 9
adds r2, r7
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F120: .4byte 0x03004360
@@ -337308,7 +337308,7 @@ _0811F128:
lsls r2, 9
adds r2, r7
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F140: .4byte 0x03004360
@@ -337323,7 +337323,7 @@ _0811F148:
lsls r2, 9
adds r2, r7
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F160: .4byte 0x03004360
@@ -337338,7 +337338,7 @@ _0811F168:
lsls r2, 9
adds r2, r7
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F180: .4byte 0x03004360
@@ -337353,7 +337353,7 @@ _0811F188:
lsls r2, 9
adds r2, r7
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F1A0: .4byte 0x03004360
@@ -337368,7 +337368,7 @@ _0811F1A8:
lsls r2, 9
adds r2, r7
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F1C0: .4byte 0x03004360
@@ -337383,7 +337383,7 @@ _0811F1C8:
lsls r2, 9
adds r2, r7
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F1E0: .4byte 0x03004360
@@ -337398,7 +337398,7 @@ _0811F1E8:
lsls r2, 9
adds r2, r7
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F200: .4byte 0x03004360
@@ -337413,7 +337413,7 @@ _0811F208:
lsls r2, 9
adds r2, r7
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F220: .4byte 0x03004360
@@ -337428,7 +337428,7 @@ _0811F228:
lsls r2, 9
adds r2, r7
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F240: .4byte 0x03004360
@@ -337445,35 +337445,35 @@ _0811F248:
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
@@ -337493,7 +337493,7 @@ _0811F2B8:
lsls r2, 9
adds r2, r7
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F2D0: .4byte 0x03004360
@@ -337508,7 +337508,7 @@ _0811F2D8:
lsls r2, 9
adds r2, r7
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F2F0: .4byte 0x03004360
@@ -337523,7 +337523,7 @@ _0811F2F8:
lsls r2, 9
adds r2, r7
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F310: .4byte 0x03004360
@@ -337538,7 +337538,7 @@ _0811F318:
lsls r2, 9
adds r2, r7
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F330: .4byte 0x03004360
@@ -337553,7 +337553,7 @@ _0811F338:
lsls r2, 9
adds r2, r7
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F350: .4byte 0x03004360
@@ -337569,7 +337569,7 @@ _0811F358:
adds r2, r7
_0811F368:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F370: .4byte 0x03004360
@@ -337584,7 +337584,7 @@ _0811F378:
lsls r2, 9
adds r2, r7
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F390: .4byte 0x03004360
@@ -337599,7 +337599,7 @@ _0811F398:
lsls r2, 9
adds r2, r7
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F3B0: .4byte 0x03004360
@@ -337614,7 +337614,7 @@ _0811F3B8:
lsls r2, 9
adds r2, r7
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F3D0: .4byte 0x03004360
@@ -337629,7 +337629,7 @@ _0811F3D8:
lsls r2, 9
adds r2, r7
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F3F0: .4byte 0x03004360
@@ -337644,7 +337644,7 @@ _0811F3F8:
lsls r2, 9
adds r2, r7
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F410: .4byte 0x03004360
@@ -337659,7 +337659,7 @@ _0811F418:
lsls r2, 9
adds r2, r7
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F430: .4byte 0x03004360
@@ -337674,7 +337674,7 @@ _0811F438:
lsls r2, 9
adds r2, r7
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F450: .4byte 0x03004360
@@ -337689,7 +337689,7 @@ _0811F458:
lsls r2, 9
adds r2, r7
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F470: .4byte 0x03004360
@@ -337704,7 +337704,7 @@ _0811F478:
lsls r2, 9
adds r2, r7
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F490: .4byte 0x03004360
@@ -337719,7 +337719,7 @@ _0811F498:
lsls r2, 9
adds r2, r7
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F4B0: .4byte 0x03004360
@@ -337734,7 +337734,7 @@ _0811F4B8:
lsls r2, 9
adds r2, r7
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F4D0: .4byte 0x03004360
@@ -337749,7 +337749,7 @@ _0811F4D8:
lsls r2, 9
adds r2, r7
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F4F0: .4byte 0x03004360
@@ -337764,7 +337764,7 @@ _0811F4F8:
lsls r2, 9
adds r2, r7
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F510: .4byte 0x03004360
@@ -337779,7 +337779,7 @@ _0811F518:
lsls r2, 9
adds r2, r7
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F530: .4byte 0x03004360
@@ -337794,7 +337794,7 @@ _0811F538:
lsls r2, 9
adds r2, r7
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F550: .4byte 0x03004360
@@ -337809,7 +337809,7 @@ _0811F558:
lsls r2, 9
adds r2, r7
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F570: .4byte 0x03004360
@@ -337824,7 +337824,7 @@ _0811F578:
lsls r2, 9
adds r2, r7
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F590: .4byte 0x03004360
@@ -337839,7 +337839,7 @@ _0811F598:
lsls r2, 9
adds r2, r7
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F5B0: .4byte 0x03004360
@@ -337854,7 +337854,7 @@ _0811F5B8:
lsls r2, 9
adds r2, r7
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F5D0: .4byte 0x03004360
@@ -337869,7 +337869,7 @@ _0811F5D8:
lsls r2, 9
adds r2, r7
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F5F0: .4byte 0x03004360
@@ -337884,7 +337884,7 @@ _0811F5F8:
lsls r2, 9
adds r2, r7
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _0811F62E
.align 2, 0
_0811F610: .4byte 0x03004360
@@ -337899,7 +337899,7 @@ _0811F618:
lsls r2, 9
adds r2, r7
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_0811F62E:
ldr r2, _0811F660
ldr r0, _0811F65C
@@ -338009,7 +338009,7 @@ sub_811F6D8: @ 811F6D8
muls r0, r5
adds r0, r4
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -338193,7 +338193,7 @@ sub_811F864: @ 811F864
ldr r1, _0811F9B0
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -339309,7 +339309,7 @@ sub_812014C: @ 812014C
ldr r4, _081201D4
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -339319,7 +339319,7 @@ sub_812014C: @ 812014C
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -339347,7 +339347,7 @@ _081201DC:
ldr r1, _08120228
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -339783,7 +339783,7 @@ sub_8120514: @ 8120514
ldr r1, _08120550
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -342212,7 +342212,7 @@ _08121908:
_0812190E:
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
b _0812194A
.align 2, 0
_08121918: .4byte 0x02000000
@@ -342234,7 +342234,7 @@ _08121940:
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
_0812194A:
mov r0, sp
bl StringGetEnd10
@@ -342523,7 +342523,7 @@ _08121B64:
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
b _08121BC4
.align 2, 0
_08121B84: .4byte 0x03004360
@@ -342554,7 +342554,7 @@ _08121BB0:
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
_08121BC4:
mov r0, sp
bl StringGetEnd10
@@ -342598,7 +342598,7 @@ _08121C02:
adds r0, r1
movs r1, 0x2
adds r2, r6, 0
- bl PokemonGetField
+ bl GetMonData
b _08121C3A
.align 2, 0
_08121C24: .4byte 0x03004360
@@ -342610,7 +342610,7 @@ _08121C28:
adds r0, r1
movs r1, 0x2
adds r2, r6, 0
- bl PokemonGetField
+ bl GetMonData
_08121C3A:
adds r0, r6, 0
bl StringGetEnd10
@@ -343132,7 +343132,7 @@ sub_8122030: @ 8122030
push {r4,lr}
adds r4, r0, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0812207C
ldr r0, _08122058
@@ -343143,7 +343143,7 @@ sub_8122030: @ 8122030
bne _08122060
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0812207C
b _081220B6
@@ -343161,7 +343161,7 @@ _08122060:
bne _08122088
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x32
bls _08122088
_0812207C:
@@ -343173,7 +343173,7 @@ _08122084: .4byte 0x00000554
_08122088:
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r3, r0, 16
ldr r1, _081220C0
@@ -343245,7 +343245,7 @@ _08122102:
ldr r2, _081221B8
adds r0, r2
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r1, _081221BC
ldr r2, _081221C0
adds r6, r1, r2
@@ -343256,7 +343256,7 @@ _08122102:
ldr r2, _081221B8
adds r0, r2
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
ldr r1, _081221C4
strh r0, [r1]
adds r1, r5, 0x1
@@ -343284,7 +343284,7 @@ _0812214A:
adds r0, r2, 0
adds r0, r7
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r4, r0
beq _081220F8
movs r1, 0xA0
@@ -343301,7 +343301,7 @@ _0812214A:
adds r0, r1, 0
adds r0, r7
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
cmp r4, r0
beq _081220FC
_0812218E:
@@ -344246,7 +344246,7 @@ _081228F0:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08122912
adds r0, r6, 0
@@ -344299,12 +344299,12 @@ _08122958:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08122984
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
@@ -344350,7 +344350,7 @@ _081229C0:
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08122A36
adds r0, r5, 0
@@ -344835,7 +344835,7 @@ sub_8122D94: @ 8122D94
ldr r1, _08122DD0
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
cmp r2, 0
bne _08122DE0
@@ -352141,7 +352141,7 @@ sub_8126608: @ 8126608
bl memcpy
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0xCE
@@ -352205,7 +352205,7 @@ _0812668C:
_081266C6:
adds r0, r7, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl itemid_is_mail
@@ -362454,7 +362454,7 @@ _0812B258:
_0812B266:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
_0812B272:
@@ -363981,7 +363981,7 @@ sub_812BDF4: @ 812BDF4
ldr r1, _0812BE2C
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -370477,7 +370477,7 @@ _0812F004:
ldr r7, _0812F07C
adds r0, r7
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrb r0, [r4]
lsls r0, 1
@@ -370486,7 +370486,7 @@ _0812F004:
muls r0, r5
adds r0, r7
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
ldrb r2, [r4]
lsls r1, r2, 2
@@ -370523,7 +370523,7 @@ _0812F084:
adds r0, r1
_0812F092:
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
b _0812F0A6
@@ -370549,7 +370549,7 @@ _0812F0AC:
ldr r7, _0812F114
adds r0, r7
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrb r0, [r4]
lsls r0, 1
@@ -370558,7 +370558,7 @@ _0812F0AC:
muls r0, r5
adds r0, r7
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
ldrb r2, [r4]
lsls r1, r2, 2
@@ -370595,7 +370595,7 @@ _0812F120:
adds r0, r7
_0812F12C:
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
b _0812F13A
@@ -375991,7 +375991,7 @@ _08131A74:
ldr r5, _08131ADC
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
ldrb r0, [r4]
lsls r0, 1
@@ -376000,7 +376000,7 @@ _08131A74:
muls r0, r6
adds r0, r5
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrb r2, [r4]
lsls r1, r2, 2
@@ -376015,7 +376015,7 @@ _08131A74:
muls r0, r6
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
b _08131AE6
@@ -376058,7 +376058,7 @@ _08131B10:
ldr r5, _08131B68
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
ldrb r0, [r4]
lsls r0, 1
@@ -376067,7 +376067,7 @@ _08131B10:
muls r0, r6
adds r0, r5
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrb r2, [r4]
lsls r1, r2, 2
@@ -376082,7 +376082,7 @@ _08131B10:
muls r0, r6
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
b _08131B72
@@ -378447,7 +378447,7 @@ _08132EA4:
adds r0, r5
ldrb r1, [r2]
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r2, _08132F40
@@ -379337,7 +379337,7 @@ _081335AA:
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
ldr r0, _08133604
mov r1, sp
bl StringCopy10
@@ -380227,7 +380227,7 @@ sub_8133CCC: @ 8133CCC
ldr r4, _08133D18
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
@@ -380236,7 +380236,7 @@ sub_8133CCC: @ 8133CCC
muls r0, r6
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -380339,7 +380339,7 @@ _08133DA8:
adds r0, r2
str r0, [r5]
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
@@ -380348,7 +380348,7 @@ _08133DA8:
beq _08133DDA
ldr r0, [r5]
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
cmp r0, r4
bne _08133DE8
_08133DDA:
@@ -380381,7 +380381,7 @@ _08133DE8:
ldr r1, _08133E64
str r1, [r5, 0x10]
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
ldr r1, _08133E68
lsls r4, r7, 2
adds r4, r7
@@ -380390,7 +380390,7 @@ _08133DE8:
strh r0, [r4, 0x1C]
ldr r0, [r5]
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x1E]
movs r1, 0x1C
ldrsh r0, [r4, r1]
@@ -380996,35 +380996,35 @@ sub_8134240: @ 8134240
strb r0, [r4, 0x13]
adds r0, r5, 0
movs r1, 0x42
- bl PokemonGetField
+ bl GetMonData
str r0, [r4]
adds r0, r5, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [r4, 0x4]
adds r0, r5, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0xA]
adds r0, r5, 0
movs r1, 0x16
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0xE]
adds r0, r5, 0
movs r1, 0x17
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0xF]
adds r0, r5, 0
movs r1, 0x18
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0x10]
adds r0, r5, 0
movs r1, 0x21
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0x11]
adds r0, r5, 0
movs r1, 0x2F
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0x12]
ldr r4, _08134304
mov r0, r8
@@ -381248,37 +381248,37 @@ sub_8134450: @ 8134450
adds r2, 0xD
adds r0, r4, 0
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0xA
adds r0, r4, 0
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0xE
adds r0, r4, 0
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0xF
adds r0, r4, 0
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x10
adds r0, r4, 0
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x11
adds r0, r4, 0
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x12
adds r0, r4, 0
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -381323,12 +381323,12 @@ sub_8134504: @ 8134504
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
ldr r4, _08134528
strh r0, [r4, 0xA]
adds r0, r5, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0xD]
bl sub_8134348
pop {r4,r5}
@@ -382707,7 +382707,7 @@ _08134F64:
movs r1, 0xB
movs r2, 0
str r3, [sp, 0x24]
- bl PokemonGetField
+ bl GetMonData
ldr r3, [sp, 0x24]
ldrh r2, [r3]
cmp r0, r2
@@ -382731,14 +382731,14 @@ _08134F94:
movs r1, 0xC
movs r2, 0
str r3, [sp, 0x24]
- bl PokemonGetField
+ bl GetMonData
ldr r3, [sp, 0x24]
cmp r0, 0
beq _08134FC4
adds r0, r4, 0
movs r1, 0xC
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r8
ldrb r1, [r2, 0x2]
lsls r1, 1
@@ -382830,7 +382830,7 @@ _0813504A:
adds r0, r4, 0
movs r1, 0x20
add r2, sp, 0xC
- bl pokemon_setattr
+ bl SetMonData
mov r0, r8
add r0, r10
ldrb r2, [r0, 0x2]
@@ -382839,7 +382839,7 @@ _0813504A:
adds r2, r0
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
mov r6, r9
_0813507C:
cmp r6, 0x3
@@ -383169,7 +383169,7 @@ _081352FE:
adds r5, r0
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r8
lsls r1, 16
@@ -383177,19 +383177,19 @@ _081352FE:
mov r8, r1
adds r0, r5, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
adds r0, r5, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
@@ -383402,7 +383402,7 @@ _081354EA:
ldr r0, _08135514
adds r0, r4, r0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
ldr r0, _08135518
@@ -383410,7 +383410,7 @@ _081354EA:
adds r0, r4, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r5, 0x1
cmp r5, 0x5
ble _081354EA
@@ -383499,7 +383499,7 @@ _081355AE:
ldr r0, _081355F4
adds r0, r4, r0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
ldr r0, _081355F8
@@ -383507,7 +383507,7 @@ _081355AE:
adds r0, r4, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r5, 0x1
cmp r5, 0x5
ble _081355AE
@@ -384609,7 +384609,7 @@ _08135E8A:
adds r4, r1, r0
adds r0, r4, 0
adds r1, r7, 0
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08135EB4
movs r0, 0x1
@@ -384617,7 +384617,7 @@ _08135E8A:
adds r0, r4, 0
adds r1, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
_08135EB4:
adds r5, 0x1
cmp r5, 0x2
@@ -386235,7 +386235,7 @@ sub_8136BB8: @ 8136BB8
ldr r2, [r4]
adds r2, 0x10
movs r1, 0x2
- bl PokemonGetField
+ bl GetMonData
ldr r0, [r4]
adds r0, 0x10
bl StringGetEnd10
@@ -386529,7 +386529,7 @@ _08136E1A:
adds r0, r7
ldr r1, [r0]
adds r0, r6, 0
- bl PokemonGetField
+ bl GetMonData
adds r1, r5, r4
strb r0, [r1]
adds r0, r4, 0x1
@@ -386554,7 +386554,7 @@ sub_8136E40: @ 8136E40
adds r5, r1, 0
adds r0, r5, 0
movs r1, 0x30
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xFF
beq _08136EDC
mov r0, r8
@@ -386569,7 +386569,7 @@ _08136E64:
ldr r6, [r0]
adds r0, r5, 0
adds r1, r6, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
strb r0, [r7]
@@ -386596,7 +386596,7 @@ _08136E9C:
adds r0, r5, 0
adds r1, r6, 0
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
@@ -386604,7 +386604,7 @@ _08136E9C:
bls _08136E64
adds r0, r5, 0
movs r1, 0x30
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
mov r2, r8
@@ -386621,7 +386621,7 @@ _08136ECE:
adds r0, r5, 0
movs r1, 0x30
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
_08136EDC:
add sp, 0x4
pop {r3}
@@ -386836,7 +386836,7 @@ sub_8137058: @ 8137058
muls r1, r2
adds r0, r1, r0
movs r1, 0x30
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0xFF
beq _0813709C
movs r0, 0
@@ -386865,7 +386865,7 @@ _081370AC:
ldr r1, _081370C8
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _081370D2
cmp r5, 0
@@ -386906,7 +386906,7 @@ _081370F2:
ldr r1, _08137120
adds r0, r1
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0813710A
adds r0, r6, 0x1
@@ -388208,12 +388208,12 @@ _08137BB4:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -388241,12 +388241,12 @@ _08137C00:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -388261,21 +388261,21 @@ _08137C00:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -388287,7 +388287,7 @@ _08137C00:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -388299,7 +388299,7 @@ _08137C00:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -388311,7 +388311,7 @@ _08137C00:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -388322,7 +388322,7 @@ _08137C00:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -388333,7 +388333,7 @@ _08137C00:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -388345,55 +388345,55 @@ _08137C00:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -388406,7 +388406,7 @@ _08137C00:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -388416,19 +388416,19 @@ _08137C00:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_08137DB8:
@@ -388479,13 +388479,13 @@ _08137E0E:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -388499,7 +388499,7 @@ _08137E0E:
ldr r1, _08137E5C
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -388541,7 +388541,7 @@ _08137E88:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -388552,7 +388552,7 @@ _08137E88:
ldr r1, _08137EB4
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -388589,7 +388589,7 @@ _08137EE4:
adds r0, r1
movs r1, 0x19
_08137EEE:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -388722,27 +388722,27 @@ _08137FD4:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _0813821A
@@ -388827,7 +388827,7 @@ _081380A4:
adds r0, r1
movs r1, 0x37
_081380AE:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -388916,7 +388916,7 @@ _08138148:
adds r0, r1
movs r1, 0x3F
_08138152:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -389023,7 +389023,7 @@ _08138208:
adds r0, r1
movs r1, 0x36
_08138212:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_0813821A:
@@ -389198,12 +389198,12 @@ _081383C8:
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -389244,12 +389244,12 @@ _0813842E:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -389265,15 +389265,15 @@ _0813842E:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -389282,7 +389282,7 @@ _0813842E:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
@@ -389291,7 +389291,7 @@ _0813842E:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
@@ -389300,7 +389300,7 @@ _0813842E:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
@@ -389309,7 +389309,7 @@ _0813842E:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
@@ -389318,7 +389318,7 @@ _0813842E:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
@@ -389327,47 +389327,47 @@ _0813842E:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813855C: .4byte 0x03004360
@@ -389381,7 +389381,7 @@ _08138560:
lsls r2, 9
adds r2, r7
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138578: .4byte 0x03004360
@@ -389396,7 +389396,7 @@ _08138580:
lsls r2, 9
adds r2, r7
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138598: .4byte 0x03004360
@@ -389420,12 +389420,12 @@ _081385BA:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -389439,7 +389439,7 @@ _081385BA:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081385F4: .4byte 0x03004360
@@ -389473,35 +389473,35 @@ _08138620:
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813867C: .4byte 0x03004360
@@ -389522,7 +389522,7 @@ _08138684:
_0813869C:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081386A8: .4byte 0x03004360
@@ -389538,7 +389538,7 @@ _081386B4:
lsls r2, 9
adds r2, r7
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081386CC: .4byte 0x03004360
@@ -389553,7 +389553,7 @@ _081386D4:
lsls r2, 9
adds r2, r7
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081386EC: .4byte 0x03004360
@@ -389568,7 +389568,7 @@ _081386F4:
lsls r2, 9
adds r2, r7
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813870C: .4byte 0x03004360
@@ -389583,7 +389583,7 @@ _08138714:
lsls r2, 9
adds r2, r7
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813872C: .4byte 0x03004360
@@ -389598,7 +389598,7 @@ _08138734:
lsls r2, 9
adds r2, r7
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813874C: .4byte 0x03004360
@@ -389613,7 +389613,7 @@ _08138754:
lsls r2, 9
adds r2, r7
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813876C: .4byte 0x03004360
@@ -389628,7 +389628,7 @@ _08138774:
lsls r2, 9
adds r2, r7
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813878C: .4byte 0x03004360
@@ -389643,7 +389643,7 @@ _08138794:
lsls r2, 9
adds r2, r7
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081387AC: .4byte 0x03004360
@@ -389658,7 +389658,7 @@ _081387B4:
lsls r2, 9
adds r2, r7
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081387CC: .4byte 0x03004360
@@ -389673,7 +389673,7 @@ _081387D4:
lsls r2, 9
adds r2, r7
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081387EC: .4byte 0x03004360
@@ -389688,7 +389688,7 @@ _081387F4:
lsls r2, 9
adds r2, r7
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813880C: .4byte 0x03004360
@@ -389703,7 +389703,7 @@ _08138814:
lsls r2, 9
adds r2, r7
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813882C: .4byte 0x03004360
@@ -389718,7 +389718,7 @@ _08138834:
lsls r2, 9
adds r2, r7
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813884C: .4byte 0x03004360
@@ -389733,7 +389733,7 @@ _08138854:
lsls r2, 9
adds r2, r7
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813886C: .4byte 0x03004360
@@ -389750,35 +389750,35 @@ _08138874:
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
@@ -389798,7 +389798,7 @@ _081388E4:
lsls r2, 9
adds r2, r7
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081388FC: .4byte 0x03004360
@@ -389813,7 +389813,7 @@ _08138904:
lsls r2, 9
adds r2, r7
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813891C: .4byte 0x03004360
@@ -389828,7 +389828,7 @@ _08138924:
lsls r2, 9
adds r2, r7
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813893C: .4byte 0x03004360
@@ -389843,7 +389843,7 @@ _08138944:
lsls r2, 9
adds r2, r7
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813895C: .4byte 0x03004360
@@ -389858,7 +389858,7 @@ _08138964:
lsls r2, 9
adds r2, r7
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813897C: .4byte 0x03004360
@@ -389874,7 +389874,7 @@ _08138984:
adds r2, r7
_08138994:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_0813899C: .4byte 0x03004360
@@ -389889,7 +389889,7 @@ _081389A4:
lsls r2, 9
adds r2, r7
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081389BC: .4byte 0x03004360
@@ -389904,7 +389904,7 @@ _081389C4:
lsls r2, 9
adds r2, r7
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081389DC: .4byte 0x03004360
@@ -389919,7 +389919,7 @@ _081389E4:
lsls r2, 9
adds r2, r7
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_081389FC: .4byte 0x03004360
@@ -389934,7 +389934,7 @@ _08138A04:
lsls r2, 9
adds r2, r7
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138A1C: .4byte 0x03004360
@@ -389949,7 +389949,7 @@ _08138A24:
lsls r2, 9
adds r2, r7
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138A3C: .4byte 0x03004360
@@ -389964,7 +389964,7 @@ _08138A44:
lsls r2, 9
adds r2, r7
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138A5C: .4byte 0x03004360
@@ -389979,7 +389979,7 @@ _08138A64:
lsls r2, 9
adds r2, r7
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138A7C: .4byte 0x03004360
@@ -389994,7 +389994,7 @@ _08138A84:
lsls r2, 9
adds r2, r7
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138A9C: .4byte 0x03004360
@@ -390009,7 +390009,7 @@ _08138AA4:
lsls r2, 9
adds r2, r7
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138ABC: .4byte 0x03004360
@@ -390024,7 +390024,7 @@ _08138AC4:
lsls r2, 9
adds r2, r7
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138ADC: .4byte 0x03004360
@@ -390039,7 +390039,7 @@ _08138AE4:
lsls r2, 9
adds r2, r7
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138AFC: .4byte 0x03004360
@@ -390054,7 +390054,7 @@ _08138B04:
lsls r2, 9
adds r2, r7
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138B1C: .4byte 0x03004360
@@ -390069,7 +390069,7 @@ _08138B24:
lsls r2, 9
adds r2, r7
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138B3C: .4byte 0x03004360
@@ -390084,7 +390084,7 @@ _08138B44:
lsls r2, 9
adds r2, r7
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138B5C: .4byte 0x03004360
@@ -390099,7 +390099,7 @@ _08138B64:
lsls r2, 9
adds r2, r7
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138B7C: .4byte 0x03004360
@@ -390114,7 +390114,7 @@ _08138B84:
lsls r2, 9
adds r2, r7
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138B9C: .4byte 0x03004360
@@ -390129,7 +390129,7 @@ _08138BA4:
lsls r2, 9
adds r2, r7
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138BBC: .4byte 0x03004360
@@ -390144,7 +390144,7 @@ _08138BC4:
lsls r2, 9
adds r2, r7
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138BDC: .4byte 0x03004360
@@ -390159,7 +390159,7 @@ _08138BE4:
lsls r2, 9
adds r2, r7
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138BFC: .4byte 0x03004360
@@ -390174,7 +390174,7 @@ _08138C04:
lsls r2, 9
adds r2, r7
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138C1C: .4byte 0x03004360
@@ -390189,7 +390189,7 @@ _08138C24:
lsls r2, 9
adds r2, r7
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _08138C5A
.align 2, 0
_08138C3C: .4byte 0x03004360
@@ -390204,7 +390204,7 @@ _08138C44:
lsls r2, 9
adds r2, r7
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_08138C5A:
ldr r2, _08138C8C
ldr r0, _08138C88
@@ -391218,7 +391218,7 @@ sub_8139444: @ 8139444
ldr r4, _081394CC
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -391228,7 +391228,7 @@ sub_8139444: @ 8139444
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -391256,7 +391256,7 @@ _081394D4:
ldr r1, _08139530
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -391550,7 +391550,7 @@ sub_81396E0: @ 81396E0
ldr r1, _08139718
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -391786,7 +391786,7 @@ sub_81398BC: @ 81398BC
ldr r1, _08139A0C
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -403894,7 +403894,7 @@ _0813F88C:
_0813F89C:
adds r0, r1
movs r1, 0x26
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl ball_number_to_ball_processing_index
@@ -407935,11 +407935,11 @@ sub_8141828: @ 8141828
strb r1, [r0]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
adds r0, r6, 0
bl b_side_obj__get_some_boolean
@@ -408926,13 +408926,13 @@ _08142024:
adds r6, r1, r0
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
cmp r3, 0
beq _081420DC
adds r0, r6, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r4, r7, 2
adds r4, r7
lsls r4, 2
@@ -408948,18 +408948,18 @@ _08142024:
strh r1, [r5, 0x8]
adds r0, r6, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [r5]
adds r0, r6, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
adds r1, 0x4
adds r1, r4
str r0, [r1]
adds r0, r6, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
lsls r0, 1
ldrb r2, [r5, 0x9]
movs r1, 0x1
@@ -408969,7 +408969,7 @@ _08142024:
adds r0, r6, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
movs r2, 0
mov r6, r8
lsls r5, r6, 2
@@ -416344,17 +416344,17 @@ _08145B18:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08145B74
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08145B6A
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
ldr r0, _08145C2C
ldrh r0, [r0]
@@ -416400,17 +416400,17 @@ _08145B80:
adds r4, r2, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _08145BD8
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _08145BD8
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
ldr r0, _08145C2C
ldrh r0, [r0]
@@ -416465,7 +416465,7 @@ _08145BD8:
adds r0, r1
ldr r2, _08145C40
movs r1, 0x2
- bl PokemonGetField
+ bl GetMonData
b _08145C6C
.align 2, 0
_08145C24: .4byte 0x0202e8cc
@@ -416495,7 +416495,7 @@ _08145C44:
adds r0, r1
ldr r2, _08145C88
movs r1, 0x2
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
_08145C6C:
ldr r0, _08145C88
bl StringGetEnd10
@@ -419382,7 +419382,7 @@ sub_8147478: @ 8147478
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
ldr r1, _081474B8
cmp r0, r1
bne _081474C0
@@ -419396,7 +419396,7 @@ sub_8147478: @ 8147478
adds r0, r1
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x9D
lsls r1, 1
cmp r0, r1
@@ -420224,12 +420224,12 @@ _08147B4C:
_08147B70:
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r0, r5, 3
ldr r1, _08147BAC
@@ -420255,16 +420255,16 @@ _08147BB4: .4byte gUnknown_081FAF4C
_08147BB8:
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
adds r0, r5, 0
adds r2, r6, 0
@@ -420723,7 +420723,7 @@ sub_8147F84: @ 8147F84
push {r6,r7}
adds r5, r0, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
diff --git a/asm/rom_803D1FC.s b/asm/rom_803D1FC.s
new file mode 100644
index 000000000..7da321476
--- /dev/null
+++ b/asm/rom_803D1FC.s
@@ -0,0 +1,7860 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetMonData
+SetMonData: @ 803D1FC
+ push {lr}
+ adds r3, r0, 0
+ adds r0, r1, 0
+ subs r0, 0x37
+ cmp r0, 0xA
+ bhi _0803D2E0
+ lsls r0, 2
+ ldr r1, _0803D214
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803D214: .4byte _0803D218
+ .align 2, 0
+_0803D218:
+ .4byte _0803D244
+ .4byte _0803D25C
+ .4byte _0803D266
+ .4byte _0803D276
+ .4byte _0803D286
+ .4byte _0803D296
+ .4byte _0803D2A6
+ .4byte _0803D2B6
+ .4byte _0803D2C6
+ .4byte _0803D2D6
+ .4byte _0803D2E6
+_0803D244:
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3, 0x50]
+ b _0803D2E6
+_0803D25C:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ adds r0, 0x54
+ strb r1, [r0]
+ b _0803D2E6
+_0803D266:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x56
+ strh r0, [r1]
+ b _0803D2E6
+_0803D276:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ b _0803D2E6
+_0803D286:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x5A
+ strh r0, [r1]
+ b _0803D2E6
+_0803D296:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x5C
+ strh r0, [r1]
+ b _0803D2E6
+_0803D2A6:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ b _0803D2E6
+_0803D2B6:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ b _0803D2E6
+_0803D2C6:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x62
+ strh r0, [r1]
+ b _0803D2E6
+_0803D2D6:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ adds r0, 0x55
+ strb r1, [r0]
+ b _0803D2E6
+_0803D2E0:
+ adds r0, r3, 0
+ bl SetMonBoxData
+_0803D2E6:
+ pop {r0}
+ bx r0
+ thumb_func_end SetMonData
+
+ thumb_func_start SetMonBoxData
+SetMonBoxData: @ 803D2EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ mov r10, r1
+ adds r4, r2, 0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ movs r6, 0
+ movs r5, 0
+ cmp r1, 0xA
+ ble _0803D36C
+ ldr r1, [r7]
+ adds r0, r7, 0
+ movs r2, 0
+ bl GetSubstruct
+ mov r8, r0
+ ldr r1, [r7]
+ adds r0, r7, 0
+ movs r2, 0x1
+ bl GetSubstruct
+ mov r9, r0
+ ldr r1, [r7]
+ adds r0, r7, 0
+ movs r2, 0x2
+ bl GetSubstruct
+ adds r6, r0, 0
+ ldr r1, [r7]
+ adds r0, r7, 0
+ movs r2, 0x3
+ bl GetSubstruct
+ adds r5, r0, 0
+ adds r0, r7, 0
+ bl DecryptMon
+ adds r0, r7, 0
+ bl pokemon_calc_checksum
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r7, 0x1C]
+ cmp r0, r1
+ beq _0803D36C
+ ldrb r0, [r7, 0x13]
+ movs r1, 0x1
+ orrs r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r7, 0x13]
+ ldrb r0, [r5, 0x7]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r5, 0x7]
+ adds r0, r7, 0
+ bl EncryptMon
+ b _0803D8F6
+_0803D36C:
+ mov r0, r10
+ cmp r0, 0x4F
+ bls _0803D374
+ b _0803D8E2
+_0803D374:
+ lsls r0, 2
+ ldr r1, _0803D380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803D380: .4byte _0803D384
+ .align 2, 0
+_0803D384:
+ .4byte _0803D4C4
+ .4byte _0803D4DC
+ .4byte _0803D4F4
+ .4byte _0803D50A
+ .4byte _0803D510
+ .4byte _0803D520
+ .4byte _0803D532
+ .4byte _0803D544
+ .4byte _0803D55A
+ .4byte _0803D560
+ .4byte _0803D56C
+ .4byte _0803D578
+ .4byte _0803D598
+ .4byte _0803D5D0
+ .4byte _0803D5D0
+ .4byte _0803D5D0
+ .4byte _0803D5D0
+ .4byte _0803D5E4
+ .4byte _0803D5E4
+ .4byte _0803D5E4
+ .4byte _0803D5E4
+ .4byte _0803D5C0
+ .4byte _0803D614
+ .4byte _0803D61A
+ .4byte _0803D620
+ .4byte _0803D5A6
+ .4byte _0803D5F0
+ .4byte _0803D5F6
+ .4byte _0803D5FC
+ .4byte _0803D602
+ .4byte _0803D608
+ .4byte _0803D60E
+ .4byte _0803D5C8
+ .4byte _0803D626
+ .4byte _0803D638
+ .4byte _0803D63E
+ .4byte _0803D644
+ .4byte _0803D658
+ .4byte _0803D670
+ .4byte _0803D696
+ .4byte _0803D6AA
+ .4byte _0803D6C4
+ .4byte _0803D6DA
+ .4byte _0803D6F4
+ .4byte _0803D70C
+ .4byte _0803D720
+ .4byte _0803D750
+ .4byte _0803D62C
+ .4byte _0803D632
+ .4byte _0803D686
+ .4byte _0803D760
+ .4byte _0803D76E
+ .4byte _0803D784
+ .4byte _0803D79C
+ .4byte _0803D7AC
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D8E2
+ .4byte _0803D89A
+ .4byte _0803D7C2
+ .4byte _0803D7D2
+ .4byte _0803D7E0
+ .4byte _0803D7F0
+ .4byte _0803D800
+ .4byte _0803D810
+ .4byte _0803D820
+ .4byte _0803D830
+ .4byte _0803D846
+ .4byte _0803D856
+ .4byte _0803D864
+ .4byte _0803D874
+ .4byte _0803D88A
+_0803D4C4:
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r4, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r7]
+ b _0803D8E2
+_0803D4DC:
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r4, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r7, 0x4]
+ b _0803D8E2
+_0803D4F4:
+ movs r2, 0
+ adds r3, r7, 0
+ adds r3, 0x8
+_0803D4FA:
+ adds r0, r3, r2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _0803D4FA
+ b _0803D8E2
+_0803D50A:
+ ldrb r0, [r4]
+ strb r0, [r7, 0x12]
+ b _0803D8E2
+_0803D510:
+ ldrb r0, [r4]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r7, 0x13]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ b _0803D73E
+_0803D520:
+ ldrb r0, [r4]
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r7, 0x13]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ b _0803D73E
+_0803D532:
+ ldrb r0, [r4]
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x13]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _0803D73E
+_0803D544:
+ movs r2, 0
+ adds r3, r7, 0
+ adds r3, 0x14
+_0803D54A:
+ adds r0, r3, r2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _0803D54A
+ b _0803D8E2
+_0803D55A:
+ ldrb r0, [r4]
+ strb r0, [r7, 0x1B]
+ b _0803D8E2
+_0803D560:
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ strh r1, [r7, 0x1C]
+ b _0803D8E2
+_0803D56C:
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ strh r1, [r7, 0x1E]
+ b _0803D8E2
+_0803D578:
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0]
+ lsls r1, 16
+ cmp r1, 0
+ beq _0803D590
+ ldrb r0, [r7, 0x13]
+ movs r1, 0x2
+ b _0803D73E
+_0803D590:
+ ldrb r1, [r7, 0x13]
+ movs r0, 0x3
+ negs r0, r0
+ b _0803D74A
+_0803D598:
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x2]
+ b _0803D8E2
+_0803D5A6:
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r4, 0x2]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ adds r1, r0
+ mov r0, r8
+ str r1, [r0, 0x4]
+ b _0803D8E2
+_0803D5C0:
+ ldrb r0, [r4]
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ b _0803D8E2
+_0803D5C8:
+ ldrb r0, [r4]
+ mov r1, r8
+ strb r0, [r1, 0x9]
+ b _0803D8E2
+_0803D5D0:
+ mov r2, r10
+ subs r2, 0xD
+ lsls r2, 1
+ add r2, r9
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ lsls r0, 8
+ adds r1, r0
+ strh r1, [r2]
+ b _0803D8E2
+_0803D5E4:
+ mov r0, r9
+ add r0, r10
+ subs r0, 0x9
+ ldrb r1, [r4]
+ strb r1, [r0]
+ b _0803D8E2
+_0803D5F0:
+ ldrb r0, [r4]
+ strb r0, [r6]
+ b _0803D8E2
+_0803D5F6:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x1]
+ b _0803D8E2
+_0803D5FC:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x2]
+ b _0803D8E2
+_0803D602:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x3]
+ b _0803D8E2
+_0803D608:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x4]
+ b _0803D8E2
+_0803D60E:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x5]
+ b _0803D8E2
+_0803D614:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x6]
+ b _0803D8E2
+_0803D61A:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x7]
+ b _0803D8E2
+_0803D620:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x8]
+ b _0803D8E2
+_0803D626:
+ ldrb r0, [r4]
+ strb r0, [r6, 0x9]
+ b _0803D8E2
+_0803D62C:
+ ldrb r0, [r4]
+ strb r0, [r6, 0xA]
+ b _0803D8E2
+_0803D632:
+ ldrb r0, [r4]
+ strb r0, [r6, 0xB]
+ b _0803D8E2
+_0803D638:
+ ldrb r0, [r4]
+ strb r0, [r5]
+ b _0803D8E2
+_0803D63E:
+ ldrb r0, [r4]
+ strb r0, [r5, 0x1]
+ b _0803D8E2
+_0803D644:
+ ldrb r1, [r4]
+ movs r0, 0x7F
+ ands r1, r0
+ ldrb r2, [r5, 0x2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x2]
+ b _0803D8E2
+_0803D658:
+ ldrb r1, [r4]
+ movs r0, 0xF
+ ands r1, r0
+ lsls r1, 7
+ ldrh r2, [r5, 0x2]
+ ldr r0, _0803D66C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x2]
+ b _0803D8E2
+ .align 2, 0
+_0803D66C: .4byte 0xfffff87f
+_0803D670:
+ ldrb r1, [r4]
+ movs r0, 0xF
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r5, 0x3]
+ movs r0, 0x79
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ b _0803D8E2
+_0803D686:
+ ldrb r0, [r4]
+ lsls r0, 7
+ ldrb r2, [r5, 0x3]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ b _0803D8E2
+_0803D696:
+ ldrb r1, [r4]
+ movs r0, 0x1F
+ ands r1, r0
+ ldrb r2, [r5, 0x4]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x4]
+ b _0803D8E2
+_0803D6AA:
+ ldrb r1, [r4]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 5
+ ldrh r2, [r5, 0x4]
+ ldr r0, _0803D6C0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ b _0803D8E2
+ .align 2, 0
+_0803D6C0: .4byte 0xfffffc1f
+_0803D6C4:
+ ldrb r1, [r4]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0x7D
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0803D8E2
+_0803D6DA:
+ ldrb r2, [r4]
+ movs r0, 0x1F
+ ands r2, r0
+ lsls r2, 15
+ ldr r0, [r5, 0x4]
+ ldr r1, _0803D6F0
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r5, 0x4]
+ b _0803D8E2
+ .align 2, 0
+_0803D6F0: .4byte 0xfff07fff
+_0803D6F4:
+ ldrb r1, [r4]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 4
+ ldrh r2, [r5, 0x6]
+ ldr r0, _0803D708
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x6]
+ b _0803D8E2
+ .align 2, 0
+_0803D708: .4byte 0xfffffe0f
+_0803D70C:
+ ldrb r1, [r4]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0x7]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ b _0803D8E0
+_0803D720:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 6
+ ldrb r2, [r5, 0x7]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x7]
+ lsls r0, 25
+ cmp r0, 0
+ bge _0803D744
+ ldrb r0, [r7, 0x13]
+ movs r1, 0x4
+_0803D73E:
+ orrs r0, r1
+ strb r0, [r7, 0x13]
+ b _0803D8E2
+_0803D744:
+ ldrb r1, [r7, 0x13]
+ movs r0, 0x5
+ negs r0, r0
+_0803D74A:
+ ands r0, r1
+ strb r0, [r7, 0x13]
+ b _0803D8E2
+_0803D750:
+ ldrb r0, [r4]
+ lsls r0, 7
+ ldrb r2, [r5, 0x7]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x7]
+ b _0803D8E2
+_0803D760:
+ ldrb r1, [r4]
+ movs r0, 0x7
+ ands r1, r0
+ ldrb r2, [r5, 0x8]
+ movs r0, 0x8
+ negs r0, r0
+ b _0803D77C
+_0803D76E:
+ ldrb r1, [r4]
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r5, 0x8]
+ movs r0, 0x39
+ negs r0, r0
+_0803D77C:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x8]
+ b _0803D8E2
+_0803D784:
+ ldrb r1, [r4]
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 6
+ ldrh r2, [r5, 0x8]
+ ldr r0, _0803D798
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x8]
+ b _0803D8E2
+ .align 2, 0
+_0803D798: .4byte 0xfffffe3f
+_0803D79C:
+ ldrb r1, [r4]
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0x9]
+ movs r0, 0xF
+ negs r0, r0
+ b _0803D7BA
+_0803D7AC:
+ ldrb r1, [r4]
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 4
+ ldrb r2, [r5, 0x9]
+ movs r0, 0x71
+ negs r0, r0
+_0803D7BA:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x9]
+ b _0803D8E2
+_0803D7C2:
+ ldrb r0, [r4]
+ lsls r0, 7
+ ldrb r2, [r5, 0x9]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x9]
+ b _0803D8E2
+_0803D7D2:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ ldrb r2, [r5, 0xA]
+ movs r0, 0x2
+ negs r0, r0
+ b _0803D83E
+_0803D7E0:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0xA]
+ movs r0, 0x3
+ negs r0, r0
+ b _0803D83E
+_0803D7F0:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0xA]
+ movs r0, 0x5
+ negs r0, r0
+ b _0803D83E
+_0803D800:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r5, 0xA]
+ movs r0, 0x9
+ negs r0, r0
+ b _0803D83E
+_0803D810:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 4
+ ldrb r2, [r5, 0xA]
+ movs r0, 0x11
+ negs r0, r0
+ b _0803D83E
+_0803D820:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 5
+ ldrb r2, [r5, 0xA]
+ movs r0, 0x21
+ negs r0, r0
+ b _0803D83E
+_0803D830:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 6
+ ldrb r2, [r5, 0xA]
+ movs r0, 0x41
+ negs r0, r0
+_0803D83E:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0xA]
+ b _0803D8E2
+_0803D846:
+ ldrb r0, [r4]
+ lsls r0, 7
+ ldrb r2, [r5, 0xA]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0xA]
+ b _0803D8E2
+_0803D856:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ ldrb r2, [r5, 0xB]
+ movs r0, 0x2
+ negs r0, r0
+ b _0803D882
+_0803D864:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0xB]
+ movs r0, 0x3
+ negs r0, r0
+ b _0803D882
+_0803D874:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0xB]
+ movs r0, 0x5
+ negs r0, r0
+_0803D882:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0xB]
+ b _0803D8E2
+_0803D88A:
+ ldrb r0, [r4]
+ lsls r0, 3
+ ldrb r2, [r5, 0xB]
+ movs r1, 0x7
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0xB]
+ b _0803D8E2
+_0803D89A:
+ ldrb r1, [r4]
+ movs r4, 0x1F
+ adds r2, r1, 0
+ ands r2, r4
+ ldrb r3, [r5, 0x4]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r5, 0x4]
+ lsrs r1, 5
+ ands r1, r4
+ lsls r1, 5
+ ldrh r2, [r5, 0x4]
+ ldr r0, _0803D904
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldrb r1, [r5, 0x5]
+ movs r0, 0x7D
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, [r5, 0x4]
+ ldr r1, _0803D908
+ ands r0, r1
+ str r0, [r5, 0x4]
+ ldrh r1, [r5, 0x6]
+ ldr r0, _0803D90C
+ ands r0, r1
+ strh r0, [r5, 0x6]
+ ldrb r1, [r5, 0x7]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+_0803D8E0:
+ strb r0, [r5, 0x7]
+_0803D8E2:
+ mov r0, r10
+ cmp r0, 0xA
+ ble _0803D8F6
+ adds r0, r7, 0
+ bl pokemon_calc_checksum
+ strh r0, [r7, 0x1C]
+ adds r0, r7, 0
+ bl EncryptMon
+_0803D8F6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803D904: .4byte 0xfffffc1f
+_0803D908: .4byte 0xfff07fff
+_0803D90C: .4byte 0xfffffe0f
+ thumb_func_end SetMonBoxData
+
+ thumb_func_start CopyMon
+CopyMon: @ 803D910
+ push {lr}
+ bl memcpy
+ pop {r0}
+ bx r0
+ thumb_func_end CopyMon
+
+ thumb_func_start pokemon_catch
+pokemon_catch: @ 803D91C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r4, _0803D948
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl SetMonData
+ adds r2, r4, 0
+ adds r2, 0x8
+ adds r0, r6, 0
+ movs r1, 0x31
+ bl SetMonData
+ adds r4, 0xA
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl SetMonData
+ movs r5, 0
+ b _0803D94E
+ .align 2, 0
+_0803D948: .4byte gSaveBlock2
+_0803D94C:
+ adds r5, 0x1
+_0803D94E:
+ cmp r5, 0x5
+ bgt _0803D988
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0803D980
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0803D94C
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x64
+ bl CopyMon
+ ldr r1, _0803D984
+ adds r0, r5, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ b _0803D992
+ .align 2, 0
+_0803D980: .4byte 0x03004360
+_0803D984: .4byte 0x03004350
+_0803D988:
+ adds r0, r6, 0
+ bl sub_803D998
+ lsls r0, 24
+ lsrs r0, 24
+_0803D992:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_catch
+
+ thumb_func_start sub_803D998
+sub_803D998: @ 803D998
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r9, r0
+ ldr r0, _0803D9E8
+ ldrb r5, [r0]
+_0803D9A8:
+ movs r7, 0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ mov r8, r0
+ movs r6, 0
+_0803D9B8:
+ ldr r3, _0803D9EC
+ adds r0, r6, r3
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ str r3, [sp]
+ bl GetMonBoxData
+ ldr r3, [sp]
+ cmp r0, 0
+ bne _0803D9F0
+ mov r0, r9
+ bl sub_8040B1C
+ adds r0, r4, 0
+ mov r1, r9
+ movs r2, 0x50
+ bl CopyMon
+ movs r0, 0x1
+ b _0803DA0A
+ .align 2, 0
+_0803D9E8: .4byte 0x020300a0
+_0803D9EC: .4byte 0x020300a4
+_0803D9F0:
+ adds r6, 0x50
+ adds r7, 0x1
+ cmp r7, 0x1D
+ ble _0803D9B8
+ adds r5, 0x1
+ cmp r5, 0xE
+ bne _0803DA00
+ movs r5, 0
+_0803DA00:
+ subs r0, r3, 0x4
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _0803D9A8
+ movs r0, 0x2
+_0803DA0A:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803D998
+
+ thumb_func_start calc_player_party_count
+calc_player_party_count: @ 803DA18
+ push {r4,lr}
+ ldr r0, _0803DA24
+ movs r1, 0
+ strb r1, [r0]
+ b _0803DA30
+ .align 2, 0
+_0803DA24: .4byte 0x03004350
+_0803DA28:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r0, r4, 0
+_0803DA30:
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bhi _0803DA4E
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803DA58
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0803DA28
+_0803DA4E:
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803DA58: .4byte 0x03004360
+ thumb_func_end calc_player_party_count
+
+ thumb_func_start calc_enemy_party_count
+calc_enemy_party_count: @ 803DA5C
+ push {r4,lr}
+ ldr r0, _0803DA68
+ movs r1, 0
+ strb r1, [r0]
+ b _0803DA74
+ .align 2, 0
+_0803DA68: .4byte 0x030045b8
+_0803DA6C:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r0, r4, 0
+_0803DA74:
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bhi _0803DA92
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803DA9C
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0803DA6C
+_0803DA92:
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803DA9C: .4byte 0x030045c0
+ thumb_func_end calc_enemy_party_count
+
+ thumb_func_start sub_803DAA0
+sub_803DAA0: @ 803DAA0
+ push {r4-r6,lr}
+ movs r6, 0
+ bl calc_player_party_count
+ ldr r1, _0803DB0C
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _0803DB04
+ movs r5, 0
+ ldrb r1, [r1]
+ cmp r6, r1
+ bge _0803DAFC
+_0803DAB8:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0803DB10
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0803DAF2
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0803DAF2
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0803DAF2
+ adds r6, 0x1
+_0803DAF2:
+ adds r5, 0x1
+ ldr r0, _0803DB0C
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0803DAB8
+_0803DAFC:
+ movs r0, 0
+ cmp r6, 0x1
+ bgt _0803DB04
+ movs r0, 0x2
+_0803DB04:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803DB0C: .4byte 0x03004350
+_0803DB10: .4byte 0x03004360
+ thumb_func_end sub_803DAA0
+
+ thumb_func_start sub_803DB14
+sub_803DB14: @ 803DB14
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 24
+ cmp r1, 0
+ beq _0803DB38
+ ldr r2, _0803DB30
+ ldr r1, _0803DB34
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x17]
+ b _0803DB46
+ .align 2, 0
+_0803DB30: .4byte 0x02024c06
+_0803DB34: .4byte gBaseStats
+_0803DB38:
+ ldr r2, _0803DB50
+ ldr r1, _0803DB54
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+_0803DB46:
+ strb r0, [r2]
+ ldrb r0, [r2]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803DB50: .4byte 0x02024c06
+_0803DB54: .4byte gBaseStats
+ thumb_func_end sub_803DB14
+
+ thumb_func_start GetMonAbility
+GetMonAbility: @ 803DB58
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x2E
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_803DB14
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonAbility
+
+ thumb_func_start create_enemy_party
+create_enemy_party: @ 803DB8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r4, r0, 0
+ bl zero_enemy_party_data
+ ldr r5, _0803DC8C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0xA0
+ bl memcpy
+ movs r7, 0
+_0803DBAC:
+ lsls r0, r7, 1
+ mov r9, r0
+ ldr r2, _0803DC8C
+ adds r2, 0x7C
+ mov r10, r2
+ mov r1, r9
+ add r1, r10
+ ldrh r0, [r1]
+ adds r2, r7, 0x1
+ str r2, [sp, 0x10]
+ cmp r0, 0
+ beq _0803DC64
+ movs r0, 0x64
+ adds r6, r7, 0
+ muls r6, r0
+ ldr r2, _0803DC90
+ mov r8, r2
+ adds r5, r6, r2
+ ldrh r1, [r1]
+ ldr r0, _0803DC8C
+ adds r0, 0x94
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ lsls r4, r7, 2
+ ldr r0, _0803DC8C
+ adds r0, 0x34
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ str r0, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r3, 0xF
+ bl create_pokemon_set_level
+ ldr r2, _0803DC94
+ add r2, r9
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r5, 0
+ mov r9, r4
+ mov r3, r8
+ mov r4, r10
+ adds r4, 0x1E
+_0803DC10:
+ adds r1, r5, 0
+ adds r1, 0x1A
+ adds r0, r6, r3
+ adds r2, r7, r4
+ str r3, [sp, 0x14]
+ bl SetMonData
+ adds r5, 0x1
+ ldr r3, [sp, 0x14]
+ cmp r5, 0x5
+ ble _0803DC10
+ movs r5, 0
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _0803DC90
+ adds r7, r1, r0
+ mov r2, r9
+ lsls r6, r2, 1
+_0803DC36:
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r4, _0803DC98
+ adds r4, r6, r4
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl SetMonData
+ adds r1, r5, 0
+ adds r1, 0x11
+ ldrh r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0803DC9C
+ adds r2, r0
+ adds r0, r7, 0
+ bl SetMonData
+ adds r6, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0803DC36
+_0803DC64:
+ ldr r7, [sp, 0x10]
+ cmp r7, 0x5
+ ble _0803DBAC
+ ldr r1, _0803DCA0
+ movs r0, 0x8
+ strh r0, [r1]
+ ldr r1, _0803DCA4
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803DC8C: .4byte 0x02017000
+_0803DC90: .4byte 0x030045c0
+_0803DC94: .4byte 0x02017088
+_0803DC98: .4byte 0x0201704c
+_0803DC9C: .4byte gBattleMoves + 0x4 @ PP offset
+_0803DCA0: .4byte 0x020239f8
+_0803DCA4: .4byte 0x0202ff5e
+ thumb_func_end create_enemy_party
+
+ thumb_func_start sub_803DCA8
+sub_803DCA8: @ 803DCA8
+ push {r4,r5,lr}
+ ldr r5, _0803DCD8
+ ldr r4, _0803DCDC
+ ldrb r0, [r4, 0x9]
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4, 0x1]
+ lsls r2, 27
+ lsrs r2, 31
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r0, r1
+ adds r0, r5
+ ldrb r0, [r0]
+ ldr r1, _0803DCE0
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803DCD8: .4byte gUnknown_082082E8
+_0803DCDC: .4byte 0x02017000
+_0803DCE0: .4byte gTrainerClassToPicIndex
+ thumb_func_end sub_803DCA8
+
+ thumb_func_start sub_803DCE4
+sub_803DCE4: @ 803DCE4
+ push {r4,r5,lr}
+ ldr r5, _0803DD14
+ ldr r4, _0803DD18
+ ldrb r0, [r4, 0x9]
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4, 0x1]
+ lsls r2, 27
+ lsrs r2, 31
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r0, r1
+ adds r0, r5
+ ldrb r0, [r0]
+ ldr r1, _0803DD1C
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803DD14: .4byte gUnknown_082082E8
+_0803DD18: .4byte 0x02017000
+_0803DD1C: .4byte gTrainerClassToNameIndex
+ thumb_func_end sub_803DCE4
+
+ thumb_func_start sub_803DD20
+sub_803DD20: @ 803DD20
+ push {r4,lr}
+ movs r4, 0
+_0803DD24:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0803DD3C
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0803DD40
+ movs r0, 0
+ b _0803DD4E
+ .align 2, 0
+_0803DD3C: .4byte 0x03004360
+_0803DD40:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _0803DD24
+ bl sub_803DD54
+ lsls r0, 24
+ lsrs r0, 24
+_0803DD4E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803DD20
+
+ thumb_func_start sub_803DD54
+sub_803DD54: @ 803DD54
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r3, 0
+ movs r7, 0
+_0803DD5C:
+ movs r5, 0
+ adds r6, r7, 0
+ movs r4, 0
+_0803DD62:
+ ldr r0, _0803DD7C
+ adds r0, r4, r0
+ adds r0, r6, r0
+ movs r1, 0xB
+ movs r2, 0
+ str r3, [sp]
+ bl GetMonBoxData
+ ldr r3, [sp]
+ cmp r0, 0
+ bne _0803DD80
+ movs r0, 0
+ b _0803DD96
+ .align 2, 0
+_0803DD7C: .4byte 0x020300a4
+_0803DD80:
+ adds r4, 0x50
+ adds r5, 0x1
+ cmp r5, 0x1D
+ ble _0803DD62
+ movs r0, 0x96
+ lsls r0, 4
+ adds r7, r0
+ adds r3, 0x1
+ cmp r3, 0xD
+ ble _0803DD5C
+ movs r0, 0x1
+_0803DD96:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803DD54
+
+ thumb_func_start GetSpeciesName
+GetSpeciesName: @ 803DDA0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r1, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ mov r12, r0
+ ldr r7, _0803DDBC
+ movs r0, 0xB
+ muls r0, r5
+ adds r3, r0, r7
+ adds r2, r6, 0
+ b _0803DDC6
+ .align 2, 0
+_0803DDBC: .4byte gSpeciesNames
+_0803DDC0:
+ adds r3, 0x1
+ adds r2, 0x1
+ adds r1, 0x1
+_0803DDC6:
+ adds r4, r6, r1
+ cmp r1, 0xA
+ bgt _0803DDE0
+ cmp r5, r12
+ bls _0803DDD6
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ b _0803DDD8
+_0803DDD6:
+ ldrb r0, [r3]
+_0803DDD8:
+ strb r0, [r2]
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _0803DDC0
+_0803DDE0:
+ movs r0, 0xFF
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end GetSpeciesName
+
+ thumb_func_start CalcPPWithPPUps
+CalcPPWithPPUps: @ 803DDEC
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r4, _0803DE2C
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r4
+ ldrb r4, [r3, 0x4]
+ ldr r0, _0803DE30
+ adds r0, r2, r0
+ ldrb r3, [r0]
+ ands r3, r1
+ lsls r2, 1
+ asrs r3, r2
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ muls r0, r4
+ movs r1, 0x64
+ bl __divsi3
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803DE2C: .4byte gBattleMoves
+_0803DE30: .4byte gUnknown_08208238
+ thumb_func_end CalcPPWithPPUps
+
+ thumb_func_start sub_803DE34
+sub_803DE34: @ 803DE34
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ ldr r1, _0803DE6C
+ adds r4, r1
+ ldrb r1, [r4]
+ ands r1, r0
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x15
+ mov r2, sp
+ bl SetMonData
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803DE6C: .4byte gUnknown_0820823C
+ thumb_func_end sub_803DE34
+
+ thumb_func_start sub_803DE70
+sub_803DE70: @ 803DE70
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, 0x3B
+ ldr r2, _0803DE84
+ adds r1, r2
+ ldrb r2, [r0]
+ ldrb r1, [r1]
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0803DE84: .4byte gUnknown_0820823C
+ thumb_func_end sub_803DE70
+
+ thumb_func_start battle_data_fill
+battle_data_fill: @ 803DE88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0x64
+ mov r5, r9
+ muls r5, r0
+ ldr r0, _0803E170
+ adds r5, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803E174
+ mov r8, r1
+ movs r1, 0x58
+ ldr r2, [sp, 0x14]
+ adds r4, r2, 0
+ muls r4, r1
+ mov r3, r8
+ adds r6, r4, r3
+ strh r0, [r6]
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r6, 0x2E]
+ movs r6, 0
+ mov r0, r8
+ adds r0, 0x24
+ adds r7, r4, r0
+_0803DEDA:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r5, 0
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xC
+ add r1, r8
+ mov r10, r1
+ adds r1, r4, r1
+ strh r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r5, 0
+ movs r2, 0
+ bl GetMonData
+ strb r0, [r7]
+ adds r7, 0x1
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0803DEDA
+ movs r0, 0x64
+ mov r4, r9
+ muls r4, r0
+ ldr r0, _0803E170
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ movs r2, 0xC
+ negs r2, r2
+ add r2, r10
+ mov r9, r2
+ movs r1, 0x58
+ ldr r3, [sp, 0x14]
+ adds r5, r3, 0
+ muls r5, r1
+ adds r7, r5, r2
+ adds r1, r7, 0
+ adds r1, 0x3B
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r1, r7, 0
+ adds r1, 0x2B
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x19
+ movs r2, 0
+ bl GetMonData
+ mov r1, r10
+ adds r1, 0x38
+ adds r1, r5, r1
+ str r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x27
+ movs r2, 0
+ bl GetMonData
+ movs r6, 0x1F
+ ands r0, r6
+ ldrb r2, [r7, 0x14]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x28
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0x1F
+ mov r8, r1
+ mov r2, r8
+ ands r0, r2
+ lsls r0, 5
+ ldrh r2, [r7, 0x14]
+ ldr r1, _0803E178
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x29
+ movs r2, 0
+ bl GetMonData
+ ands r0, r6
+ lsls r0, 2
+ ldrb r2, [r7, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x15]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r1, 15
+ ldr r0, [r7, 0x14]
+ ldr r2, _0803E17C
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r7, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ movs r2, 0
+ bl GetMonData
+ mov r3, r8
+ ands r0, r3
+ lsls r0, 4
+ ldrh r2, [r7, 0x16]
+ ldr r1, _0803E180
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r7, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ movs r2, 0
+ bl GetMonData
+ ands r0, r6
+ lsls r0, 1
+ ldrb r2, [r7, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x17]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ mov r1, r10
+ adds r1, 0x3C
+ adds r1, r5, r1
+ str r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x37
+ movs r2, 0
+ bl GetMonData
+ mov r1, r10
+ adds r1, 0x40
+ adds r1, r5, r1
+ str r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x28]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x2C]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r7, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 7
+ ldrb r2, [r7, 0x17]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ mov r1, r10
+ adds r1, 0x48
+ adds r1, r5, r1
+ str r0, [r1]
+ ldr r2, _0803E184
+ ldrh r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ adds r1, r7, 0
+ adds r1, 0x21
+ strb r0, [r1]
+ ldrh r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ adds r1, r7, 0
+ adds r1, 0x22
+ strb r0, [r1]
+ ldrh r0, [r7]
+ ldrb r1, [r7, 0x17]
+ lsrs r1, 7
+ bl sub_803DB14
+ adds r1, r7, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ mov r0, r10
+ adds r0, 0x24
+ adds r0, r5, r0
+ mov r1, sp
+ bl StringCopy10
+ mov r2, r10
+ adds r2, 0x30
+ adds r2, r5, r2
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl GetMonData
+ ldr r0, [sp, 0x14]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _0803E188
+ adds r0, r1
+ ldrh r1, [r7, 0x28]
+ strh r1, [r0]
+ movs r2, 0x6
+ mov r1, r9
+ movs r6, 0x7
+ add r5, r10
+ adds r0, r5, 0
+ adds r0, 0x13
+_0803E13A:
+ strb r2, [r0]
+ subs r0, 0x1
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0803E13A
+ movs r2, 0
+ movs r0, 0x58
+ ldr r3, [sp, 0x14]
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ str r2, [r0]
+ ldr r0, [sp, 0x14]
+ bl sub_80157C4
+ ldr r0, [sp, 0x14]
+ movs r1, 0
+ bl sub_8032AA8
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803E170: .4byte 0x03004360
+_0803E174: .4byte 0x02024a80
+_0803E178: .4byte 0xfffffc1f
+_0803E17C: .4byte 0xfff07fff
+_0803E180: .4byte 0xfffffe0f
+_0803E184: .4byte gBaseStats
+_0803E188: .4byte 0x020160bc
+ thumb_func_end battle_data_fill
+
+ 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
+ ldr r4, _0803E220
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E22C
+ ldr r2, _0803E224
+ ldr r0, _0803E228
+ 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 0x03001770
+_0803E220: .4byte 0x0000043d
+_0803E224: .4byte 0x02024df0
+_0803E228: .4byte 0x02024e6c
+_0803E22C:
+ ldr r0, _0803E238
+ ldr r5, _0803E23C
+ adds r0, r5
+ ldrb r0, [r0]
+ b _0803E248
+ .align 2, 0
+_0803E238: .4byte 0x02025734
+_0803E23C: .4byte 0x00003688
+_0803E240:
+ bl itemid_get_x12
+ lsls r0, 24
+ lsrs r0, 24
+_0803E248:
+ str r0, [sp, 0x30]
+ ldr r1, _0803E2A4
+ ldr r0, _0803E2A8
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r0, _0803E2AC
+ ldr r1, _0803E2B0
+ 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
+ strb r2, [r0]
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2B8
+ ldr r4, [sp, 0x8]
+ subs r4, 0xD
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0803E2F4
+ ldr r2, _0803E2BC
+ 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 0x02024c0b
+_0803E2A8: .4byte 0x02024e6c
+_0803E2AC: .4byte 0x03001770
+_0803E2B0: .4byte 0x0000043d
+_0803E2B4: .4byte 0x02024a60
+_0803E2B8: .4byte 0x02024a68
+_0803E2BC: .4byte 0x02024a6a
+_0803E2C0:
+ ldr r1, [sp, 0x18]
+ adds r1, 0x2
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2E4
+ 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 0x02024a68
+_0803E2E8:
+ ldr r0, _0803E310
+ 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
+ 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 0x02024a60
+_0803E314: .4byte gItemEffectTable
+_0803E318:
+ ldr r5, [sp, 0x8]
+ cmp r5, 0xAF
+ bne _0803E372
+_0803E31E:
+ ldr r0, _0803E340
+ ldr r1, _0803E344
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E350
+ ldr r0, _0803E348
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0803E34C
+ adds r0, r1
+ b _0803E372
+ .align 2, 0
+_0803E340: .4byte 0x03001770
+_0803E344: .4byte 0x0000043d
+_0803E348: .4byte 0x02024a60
+_0803E34C: .4byte 0x02024df8
+_0803E350:
+ ldr r2, _0803E358
+ str r2, [sp, 0x20]
+ b _0803E374
+ .align 2, 0
+_0803E358: .4byte 0x02028daa
+_0803E35C:
+ mov r0, r8
+ movs r2, 0
+ ldr r3, [sp, 0xC]
+ bl sub_8111924
+ 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
+ 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
+ ldr r1, _0803E464
+ 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
+ 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
+ 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
+ ldr r0, _0803E470
+ 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
+ ldr r5, _0803E470
+ 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 0x03001770
+_0803E464: .4byte 0x0000043d
+_0803E468: .4byte 0x02024a80
+_0803E46C: .4byte 0xfff0ffff
+_0803E470: .4byte 0x02024a60
+_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
+ ldr r5, _0803E504
+ 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
+ ldr r5, _0803E504
+ 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 0x02024a80
+_0803E504: .4byte 0x02024a60
+_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
+ ldr r5, _0803E598
+ 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
+ ldr r5, _0803E598
+ 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 0x02024a80
+_0803E598: .4byte 0x02024a60
+_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
+ ldr r4, _0803E75C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ 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 battle_side_get_owner
+ 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
+ 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
+ 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 pokemon_calc_effective_stats
+ 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
+ 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
+ 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
+ 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
+ ldr r3, _0803E778
+ 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
+ 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 0x02024c80
+_0803E75C: .4byte 0x02024a60
+_0803E760: .4byte gExperienceTables
+_0803E764: .4byte gBaseStats
+_0803E768: .4byte 0x02024a80
+_0803E76C: .4byte 0xf7ffffff
+_0803E770: .4byte 0x00000f88
+_0803E774: .4byte 0x03001770
+_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
+ 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 CalcPPWithPPUps
+ 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
+ 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 CalcPPWithPPUps
+ 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
+ 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 sub_8040020
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803E8EC
+ cmp r5, r0
+ bls _0803E8BE
+ b _0803E36C
+_0803E8BE:
+ ldr r0, _0803E8F0
+ 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
+ ldr r3, [sp, 0x28]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl pokemon_calc_effective_stats
+ 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
+ ldr r1, _0803E9A0
+ 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
+ ldr r1, _0803E9A8
+ 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
+ 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 battle_data_fill
+ ldr r0, _0803E9B0
+ ldrb r0, [r0]
+ b _0803E9CC
+ .align 2, 0
+_0803E99C: .4byte 0x03001770
+_0803E9A0: .4byte 0x0000043d
+_0803E9A4: .4byte 0x02024c0c
+_0803E9A8: .4byte gBitTable
+_0803E9AC: .4byte 0x02024a6a
+_0803E9B0: .4byte 0x02024a60
+_0803E9B4:
+ ldr r3, _0803E9E4
+ ldr r1, _0803E9E8
+ ldr r2, _0803E9EC
+ 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 battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EA0A
+ ldr r1, _0803E9F0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0xFE
+ bhi _0803EA0A
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0803EA0A
+ .align 2, 0
+_0803E9E4: .4byte 0x02024c0c
+_0803E9E8: .4byte gBitTable
+_0803E9EC: .4byte 0x02024a60
+_0803E9F0: .4byte 0x030042e0
+_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
+ ldr r5, _0803EB28
+ 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
+ ldr r1, _0803EB30
+ 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
+ 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
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EB48
+ ldr r1, _0803EB3C
+ 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 dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ strb r5, [r4]
+ b _0803EB48
+ .align 2, 0
+_0803EB24: .4byte 0x02000000
+_0803EB28: .4byte 0x000160fa
+_0803EB2C: .4byte 0x03001770
+_0803EB30: .4byte 0x0000043d
+_0803EB34: .4byte 0x02024a80
+_0803EB38: .4byte 0x02024a60
+_0803EB3C: .4byte 0x030042e0
+_0803EB40:
+ ldr r1, _0803EB58
+ 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 0x02024bec
+_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 CalcPPWithPPUps
+ 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 CalcPPWithPPUps
+ 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 CalcPPWithPPUps
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_0803EC28:
+ mov r0, r8
+ mov r1, r9
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803ECA4
+ ldr r4, _0803ECA8
+ 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
+ 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
+ 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
+ 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 0x03001770
+_0803ECA8: .4byte 0x0000043d
+_0803ECAC: .4byte 0x02024a80
+_0803ECB0: .4byte 0x02024ca8
+_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 CalcPPWithPPUps
+ 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 CalcPPWithPPUps
+ 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 CalcPPWithPPUps
+ 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
+ ldr r1, _0803EDE4
+ 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
+ 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
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0803EDF0
+ 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 0x03001770
+_0803EDE4: .4byte 0x0000043d
+_0803EDE8: .4byte 0x02024a80
+_0803EDEC: .4byte 0x02024ca8
+_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
+ 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 sub_8040020
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803EEBC
+ cmp r5, r0
+ bls _0803EE88
+ bl _0803E36C
+_0803EE88:
+ ldr r0, _0803EEC0
+ 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
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl pokemon_calc_effective_stats
+ 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
+ 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 CalcPPWithPPUps
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r1, _0803EFC4
+ ldr r3, [sp, 0x10]
+ adds r1, r3, r1
+ ldrb r2, [r1]
+ ands r2, r0
+ str r2, [sp]
+ ldr r0, _0803EFC8
+ 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 CalcPPWithPPUps
+ 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
+
+ thumb_func_start HealStatusConditions
+HealStatusConditions: @ 803F16C
+ 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 _0803F1D0
+ mvns r4, r4
+ ands r1, r4
+ str r1, [sp]
+ adds r0, r5, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803F1C4
+ ldr r1, _0803F1C8
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803F1BE
+ cmp r6, 0x4
+ beq _0803F1BE
+ ldr r0, _0803F1CC
+ movs r1, 0x58
+ muls r1, r6
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r4
+ str r0, [r1]
+_0803F1BE:
+ movs r0, 0
+ b _0803F1D2
+ .align 2, 0
+_0803F1C4: .4byte 0x03001770
+_0803F1C8: .4byte 0x0000043d
+_0803F1CC: .4byte 0x02024a80
+_0803F1D0:
+ movs r0, 0x1
+_0803F1D2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end HealStatusConditions
+
+ thumb_func_start sub_803F1DC
+sub_803F1DC: @ 803F1DC
+ 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, _0803F204
+ adds r0, r3, 0
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0803F208
+ cmp r3, 0xAF
+ beq _0803F20C
+_0803F200:
+ movs r0, 0
+ b _0803F31C
+ .align 2, 0
+_0803F204: .4byte gItemEffectTable
+_0803F208:
+ cmp r3, 0xAF
+ bne _0803F21A
+_0803F20C:
+ ldr r0, _0803F22C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0803F230
+ adds r0, r1
+_0803F21A:
+ mov r12, r0
+ movs r2, 0
+_0803F21E:
+ cmp r2, 0x4
+ beq _0803F23E
+ cmp r2, 0x4
+ ble _0803F234
+ cmp r2, 0x5
+ beq _0803F2C8
+ b _0803F312
+ .align 2, 0
+_0803F22C: .4byte 0x02024a60
+_0803F230: .4byte 0x02024df8
+_0803F234:
+ cmp r2, 0
+ blt _0803F312
+ cmp r2, r4
+ bne _0803F312
+ b _0803F200
+_0803F23E:
+ mov r0, r12
+ ldrb r3, [r0, 0x4]
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0803F24E
+ movs r0, 0xDF
+ ands r3, r0
+_0803F24E:
+ movs r6, 0
+ cmp r3, 0
+ beq _0803F312
+_0803F254:
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0803F2B4
+ cmp r6, 0x7
+ bhi _0803F2B4
+ lsls r0, r6, 2
+ ldr r1, _0803F26C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803F26C: .4byte _0803F270
+ .align 2, 0
+_0803F270:
+ .4byte _0803F29C
+ .4byte _0803F29C
+ .4byte _0803F290
+ .4byte _0803F29C
+ .4byte _0803F2B4
+ .4byte _0803F2B4
+ .4byte _0803F2B4
+ .4byte _0803F2B0
+_0803F290:
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _0803F29C
+ movs r0, 0xEF
+ ands r3, r0
+_0803F29C:
+ cmp r2, r4
+ bne _0803F2A8
+ adds r0, r3, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _0803F31A
+_0803F2A8:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _0803F2B4
+_0803F2B0:
+ cmp r2, r4
+ beq _0803F200
+_0803F2B4:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsrs r3, 1
+ cmp r2, r4
+ bne _0803F2C2
+ lsrs r5, 1
+_0803F2C2:
+ cmp r3, 0
+ bne _0803F254
+ b _0803F312
+_0803F2C8:
+ mov r0, r12
+ ldrb r3, [r0, 0x5]
+ movs r6, 0
+_0803F2CE:
+ cmp r3, 0
+ beq _0803F312
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0803F302
+ cmp r6, 0
+ blt _0803F302
+ cmp r6, 0x6
+ ble _0803F2E8
+ cmp r6, 0x7
+ beq _0803F2FC
+ b _0803F302
+_0803F2E8:
+ cmp r2, r4
+ bne _0803F2F4
+ adds r0, r3, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _0803F31A
+_0803F2F4:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _0803F302
+_0803F2FC:
+ cmp r2, r4
+ bne _0803F302
+ b _0803F200
+_0803F302:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsrs r3, 1
+ cmp r2, r4
+ bne _0803F2CE
+ lsrs r5, 1
+ b _0803F2CE
+_0803F312:
+ adds r2, 0x1
+ cmp r2, 0x5
+ bgt _0803F31A
+ b _0803F21E
+_0803F31A:
+ adds r0, r7, 0
+_0803F31C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803F1DC
+
+ thumb_func_start sub_803F324
+sub_803F324: @ 803F324
+ push {lr}
+ ldr r2, _0803F358
+ ldr r1, _0803F35C
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r3, _0803F360
+ ldr r2, _0803F364
+ ldr r1, _0803F368
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r0]
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r0, _0803F36C
+ ldr r1, _0803F370
+ bl StringCopy
+ ldr r0, _0803F374
+ bl get_battle_strings_
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803F358: .4byte 0x02024c08
+_0803F35C: .4byte 0x02024e6c
+_0803F360: .4byte 0x030041c0
+_0803F364: .4byte gUnknown_08400F58
+_0803F368: .4byte gUnknown_082082F8
+_0803F36C: .4byte 0x03004290
+_0803F370: .4byte gUnknown_083FFDB3
+_0803F374: .4byte gUnknown_083FFDD3
+ thumb_func_end sub_803F324
+
+ thumb_func_start sub_803F378
+sub_803F378: @ 803F378
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803F3C0
+ ldr r0, _0803F3A8
+ ldr r1, _0803F3AC
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803F3B8
+ ldr r2, _0803F3B0
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0803F3B4
+ adds r7, r0, r1
+ b _0803F3CC
+ .align 2, 0
+_0803F3A8: .4byte 0x03001770
+_0803F3AC: .4byte 0x0000043d
+_0803F3B0: .4byte 0x02024e6c
+_0803F3B4: .4byte 0x02024df8
+_0803F3B8:
+ ldr r7, _0803F3BC
+ b _0803F3CA
+ .align 2, 0
+_0803F3BC: .4byte 0x02028daa
+_0803F3C0:
+ ldr r1, _0803F404
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r7, [r0]
+_0803F3CA:
+ ldr r2, _0803F408
+_0803F3CC:
+ ldr r1, _0803F40C
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0
+ ldr r0, _0803F410
+ mov r8, r0
+ movs r6, 0
+_0803F3DA:
+ adds r4, r7, r5
+ ldrb r1, [r4]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _0803F3EC
+ adds r0, r6, 0
+ bl sub_803F324
+_0803F3EC:
+ ldrb r1, [r4]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803F422
+ cmp r5, 0
+ beq _0803F414
+ adds r0, r6, 0x1
+ bl sub_803F324
+ b _0803F422
+ .align 2, 0
+_0803F404: .4byte gItemEffectTable
+_0803F408: .4byte 0x02024e6c
+_0803F40C: .4byte 0x02024c0b
+_0803F410: .4byte 0x02024c07
+_0803F414:
+ ldr r0, _0803F450
+ ldrb r0, [r0]
+ mov r1, r8
+ strb r0, [r1]
+ ldr r0, _0803F454
+ bl get_battle_strings_
+_0803F422:
+ adds r6, 0x2
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _0803F3DA
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0803F442
+ ldr r1, _0803F458
+ ldr r0, _0803F450
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0803F45C
+ bl get_battle_strings_
+_0803F442:
+ ldr r0, _0803F460
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803F450: .4byte 0x02024e6c
+_0803F454: .4byte gUnknown_083FEE92
+_0803F458: .4byte 0x02024c07
+_0803F45C: .4byte gUnknown_083FEE5D
+_0803F460: .4byte 0x020238cc
+ thumb_func_end sub_803F378
+
+ thumb_func_start GetNature
+GetNature: @ 803F464
+ 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: @ 803F47C
+ push {lr}
+ movs r1, 0x19
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end GetNatureFromPersonality
+
+ thumb_func_start GetEvolutionTargetSpecies
+GetEvolutionTargetSpecies: @ 803F48C
+ 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 _0803F500
+ ldr r0, _0803F4F8
+ ldr r1, _0803F4FC
+ adds r0, r1
+ ldrb r0, [r0]
+ b _0803F508
+ .align 2, 0
+_0803F4F8: .4byte 0x02025734
+_0803F4FC: .4byte 0x00003688
+_0803F500:
+ bl itemid_get_x12
+ lsls r0, 24
+ lsrs r0, 24
+_0803F508:
+ cmp r0, 0x26
+ bne _0803F514
+ cmp r5, 0x3
+ beq _0803F514
+ movs r0, 0
+ b _0803F7A4
+_0803F514:
+ cmp r5, 0x1
+ bne _0803F51A
+ b _0803F734
+_0803F51A:
+ cmp r5, 0x1
+ bgt _0803F524
+ cmp r5, 0
+ beq _0803F538
+ b _0803F7A2
+_0803F524:
+ cmp r5, 0x3
+ ble _0803F52A
+ b _0803F7A2
+_0803F52A:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r3, _0803F534
+ lsls r6, r7, 2
+ b _0803F782
+ .align 2, 0
+_0803F534: .4byte gEvolutionTable
+_0803F538:
+ 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
+_0803F55E:
+ ldr r1, _0803F584
+ 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
+ adds r4, r2, 0
+ cmp r0, 0xE
+ bls _0803F57A
+ b _0803F726
+_0803F57A:
+ lsls r0, 2
+ ldr r1, _0803F588
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803F584: .4byte gEvolutionTable
+_0803F588: .4byte _0803F58C
+ .align 2, 0
+_0803F58C:
+ .4byte _0803F5C8
+ .4byte _0803F5DA
+ .4byte _0803F5FC
+ .4byte _0803F62C
+ .4byte _0803F726
+ .4byte _0803F726
+ .4byte _0803F726
+ .4byte _0803F63C
+ .4byte _0803F666
+ .4byte _0803F690
+ .4byte _0803F6BE
+ .4byte _0803F6DE
+ .4byte _0803F702
+ .4byte _0803F726
+ .4byte _0803F712
+_0803F5C8:
+ ldr r1, [sp, 0x8]
+ cmp r1, 0xDB
+ bhi _0803F5D0
+ b _0803F726
+_0803F5D0:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r0, r3
+ b _0803F61C
+_0803F5DA:
+ bl RtcCalcLocalTime
+ ldr r0, _0803F5F8
+ ldrb r0, [r0, 0x2]
+ subs r0, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bls _0803F5EE
+ b _0803F726
+_0803F5EE:
+ ldr r2, [sp, 0x8]
+ cmp r2, 0xDB
+ bhi _0803F5F6
+ b _0803F726
+_0803F5F6:
+ b _0803F612
+ .align 2, 0
+_0803F5F8: .4byte 0x03004038
+_0803F5FC:
+ bl RtcCalcLocalTime
+ ldr r0, _0803F624
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xB
+ bls _0803F60A
+ b _0803F726
+_0803F60A:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0xDB
+ bhi _0803F612
+ b _0803F726
+_0803F612:
+ ldr r1, _0803F628
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r0, r1
+_0803F61C:
+ ldrh r0, [r0, 0x4]
+ mov r10, r0
+ b _0803F726
+ .align 2, 0
+_0803F624: .4byte 0x03004038
+_0803F628: .4byte gEvolutionTable
+_0803F62C:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2]
+ cmp r0, r9
+ bhi _0803F726
+ b _0803F722
+_0803F63C:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r5, r0, r3
+ ldrh r0, [r5, 0x2]
+ cmp r0, r9
+ bhi _0803F726
+ 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 _0803F726
+ b _0803F6B8
+_0803F666:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r5, r0, r3
+ ldrh r0, [r5, 0x2]
+ cmp r0, r9
+ bhi _0803F726
+ 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 _0803F726
+ b _0803F6B8
+_0803F690:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r5, r0, r3
+ ldrh r0, [r5, 0x2]
+ cmp r0, r9
+ bhi _0803F726
+ 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 _0803F726
+_0803F6B8:
+ ldrh r5, [r5, 0x4]
+ mov r10, r5
+ b _0803F726
+_0803F6BE:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r4, r0, r3
+ ldrh r0, [r4, 0x2]
+ cmp r0, r9
+ bhi _0803F726
+ ldr r0, [sp, 0x10]
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _0803F726
+ b _0803F6FC
+_0803F6DE:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r4, r0, r3
+ ldrh r0, [r4, 0x2]
+ cmp r0, r9
+ bhi _0803F726
+ ldr r0, [sp, 0x10]
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _0803F726
+_0803F6FC:
+ ldrh r4, [r4, 0x4]
+ mov r10, r4
+ b _0803F726
+_0803F702:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2]
+ cmp r0, r9
+ bhi _0803F726
+ b _0803F722
+_0803F712:
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r0, r4, r0
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2]
+ ldr r2, [sp, 0xC]
+ cmp r0, r2
+ bhi _0803F726
+_0803F722:
+ ldrh r1, [r1, 0x4]
+ mov r10, r1
+_0803F726:
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+ cmp r0, 0x4
+ bgt _0803F732
+ b _0803F55E
+_0803F732:
+ b _0803F7A2
+_0803F734:
+ lsls r6, r7, 2
+ ldr r1, _0803F778
+ adds r0, r6, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ mov r5, sp
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+_0803F744:
+ ldrh r0, [r4]
+ cmp r0, 0x5
+ beq _0803F764
+ cmp r0, 0x6
+ bne _0803F768
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _0803F768
+ movs r0, 0
+ strh r0, [r5]
+ mov r0, r8
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_0803F764:
+ ldrh r2, [r4, 0x4]
+ mov r10, r2
+_0803F768:
+ adds r4, 0x8
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x4]
+ cmp r0, 0
+ bge _0803F744
+ b _0803F7A2
+ .align 2, 0
+_0803F778: .4byte gEvolutionTable
+_0803F77C:
+ ldrh r1, [r1, 0x4]
+ mov r10, r1
+ b _0803F7A2
+_0803F782:
+ 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 _0803F798
+ ldrh r0, [r1, 0x2]
+ cmp r0, r9
+ beq _0803F77C
+_0803F798:
+ ldr r2, [sp, 0x4]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+ cmp r2, 0x4
+ ble _0803F782
+_0803F7A2:
+ mov r0, r10
+_0803F7A4:
+ 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 GetEvolutionTargetSpecies
+
+ thumb_func_start HoennPokedexNumToSpecies
+HoennPokedexNumToSpecies: @ 803F7B4
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _0803F7F8
+ movs r1, 0
+ ldr r3, _0803F7F0
+ ldrh r0, [r3]
+ cmp r0, r2
+ beq _0803F7E0
+ movs r4, 0xCD
+ lsls r4, 1
+_0803F7CC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bhi _0803F7E0
+ lsls r0, r1, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _0803F7CC
+_0803F7E0:
+ ldr r0, _0803F7F4
+ cmp r1, r0
+ beq _0803F7F8
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ b _0803F7FA
+ .align 2, 0
+_0803F7F0: .4byte gSpeciesToHoennPokedexNum
+_0803F7F4: .4byte 0x0000019b
+_0803F7F8:
+ movs r0, 0
+_0803F7FA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end HoennPokedexNumToSpecies
+
+ thumb_func_start NationalPokedexNumToSpecies
+NationalPokedexNumToSpecies: @ 803F800
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _0803F844
+ movs r1, 0
+ ldr r3, _0803F83C
+ ldrh r0, [r3]
+ cmp r0, r2
+ beq _0803F82C
+ movs r4, 0xCD
+ lsls r4, 1
+_0803F818:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bhi _0803F82C
+ lsls r0, r1, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _0803F818
+_0803F82C:
+ ldr r0, _0803F840
+ cmp r1, r0
+ beq _0803F844
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ b _0803F846
+ .align 2, 0
+_0803F83C: .4byte gSpeciesToNationalPokedexNum
+_0803F840: .4byte 0x0000019b
+_0803F844:
+ movs r0, 0
+_0803F846:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end NationalPokedexNumToSpecies
+
+ thumb_func_start NationalToHoennOrder
+NationalToHoennOrder: @ 803F84C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _0803F890
+ movs r1, 0
+ ldr r3, _0803F888
+ ldrh r0, [r3]
+ cmp r0, r2
+ beq _0803F878
+ movs r4, 0xCD
+ lsls r4, 1
+_0803F864:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bhi _0803F878
+ lsls r0, r1, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _0803F864
+_0803F878:
+ ldr r0, _0803F88C
+ cmp r1, r0
+ beq _0803F890
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ b _0803F892
+ .align 2, 0
+_0803F888: .4byte gHoennToNationalOrder
+_0803F88C: .4byte 0x0000019b
+_0803F890:
+ movs r0, 0
+_0803F892:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end NationalToHoennOrder
+
+ thumb_func_start SpeciesToNationalPokedexNum
+SpeciesToNationalPokedexNum: @ 803F898
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0803F8B4
+ ldr r0, _0803F8B0
+ subs r1, 0x1
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ b _0803F8B6
+ .align 2, 0
+_0803F8B0: .4byte gSpeciesToNationalPokedexNum
+_0803F8B4:
+ movs r0, 0
+_0803F8B6:
+ pop {r1}
+ bx r1
+ thumb_func_end SpeciesToNationalPokedexNum
+
+ thumb_func_start SpeciesToHoennPokedexNum
+SpeciesToHoennPokedexNum: @ 803F8BC
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0803F8D8
+ ldr r0, _0803F8D4
+ subs r1, 0x1
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ b _0803F8DA
+ .align 2, 0
+_0803F8D4: .4byte gSpeciesToHoennPokedexNum
+_0803F8D8:
+ movs r0, 0
+_0803F8DA:
+ pop {r1}
+ bx r1
+ thumb_func_end SpeciesToHoennPokedexNum
+
+ thumb_func_start HoennToNationalOrder
+HoennToNationalOrder: @ 803F8E0
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0803F8FC
+ ldr r0, _0803F8F8
+ subs r1, 0x1
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ b _0803F8FE
+ .align 2, 0
+_0803F8F8: .4byte gHoennToNationalOrder
+_0803F8FC:
+ movs r0, 0
+_0803F8FE:
+ pop {r1}
+ bx r1
+ thumb_func_end HoennToNationalOrder
+
+ thumb_func_start speciesid_conv
+speciesid_conv: @ 803F904
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0xFA
+ bls _0803F932
+ ldr r0, _0803F924
+ cmp r1, r0
+ bls _0803F930
+ ldr r0, _0803F928
+ ldr r2, _0803F92C
+ adds r1, r2
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ b _0803F932
+ .align 2, 0
+_0803F924: .4byte 0x00000113
+_0803F928: .4byte gSpeciesIdToCryId
+_0803F92C: .4byte 0xfffffeec
+_0803F930:
+ movs r0, 0xC8
+_0803F932:
+ pop {r1}
+ bx r1
+ thumb_func_end speciesid_conv
+
+ thumb_func_start unref_sub_803F938
+unref_sub_803F938: @ 803F938
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r1, 0
+ mov r10, r2
+ lsls r0, 16
+ movs r1, 0x9A
+ lsls r1, 17
+ cmp r0, r1
+ bne _0803FA42
+ ldr r1, _0803FA04
+ ldr r0, [r1]
+ cmp r10, r0
+ beq _0803FA42
+ ldr r0, [r1, 0x8]
+ cmp r10, r0
+ beq _0803FA42
+ movs r6, 0
+_0803F962:
+ lsls r3, r6, 3
+ adds r3, r6
+ lsls r3, 2
+ ldr r0, _0803FA08
+ 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
+ str r6, [sp]
+ mov r9, r3
+_0803F99A:
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r3, _0803FA0C
+ 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 _0803FA30
+ lsrs r0, r1, 3
+ lsls r6, r0, 8
+ movs r0, 0x7
+ ands r1, r0
+ lsls r5, r1, 2
+_0803F9BE:
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _0803F9C6
+ adds r0, r4, 0x7
+_0803F9C6:
+ 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 _0803FA24
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FA10
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x20
+ bhi _0803FA24
+ adds r0, r1, 0
+ adds r0, 0x40
+ b _0803FA22
+ .align 2, 0
+_0803FA04: .4byte gUnknown_081FAF4C
+_0803FA08: .4byte gSpindaSpotGraphics
+_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
+_0803FA10:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _0803FA24
+ adds r0, r1, 0x4
+_0803FA22:
+ strb r0, [r2]
+_0803FA24:
+ asrs r3, 1
+ adds r4, 0x1
+ mov r0, r12
+ adds r0, 0x10
+ cmp r4, r0
+ blt _0803F9BE
+_0803FA30:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ mov r2, r8
+ cmp r2, 0xF
+ ble _0803F99A
+ ldr r5, [sp, 0x4]
+ ldr r6, [sp]
+ cmp r6, 0x3
+ ble _0803F962
+_0803FA42:
+ 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 unref_sub_803F938
+
+ thumb_func_start DrawSpindaSpots
+DrawSpindaSpots: @ 803FA54
+ 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 _0803FB56
+ cmp r3, 0
+ beq _0803FB56
+ movs r6, 0
+_0803FA78:
+ lsls r3, r6, 3
+ adds r3, r6
+ lsls r3, 2
+ ldr r0, _0803FB1C
+ 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
+_0803FAB0:
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r3, _0803FB20
+ 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 _0803FB44
+ lsrs r0, r1, 3
+ lsls r6, r0, 8
+ movs r0, 0x7
+ ands r1, r0
+ lsls r5, r1, 2
+_0803FAD4:
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _0803FADC
+ adds r0, r4, 0x7
+_0803FADC:
+ 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 _0803FB38
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FB24
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x20
+ bhi _0803FB38
+ adds r0, r1, 0
+ adds r0, 0x40
+ b _0803FB36
+ .align 2, 0
+_0803FB1C: .4byte gSpindaSpotGraphics
+_0803FB20: .4byte gSpindaSpotGraphics + 0x2
+_0803FB24:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _0803FB38
+ adds r0, r1, 0x4
+_0803FB36:
+ strb r0, [r2]
+_0803FB38:
+ asrs r3, 1
+ adds r4, 0x1
+ mov r0, r12
+ adds r0, 0x10
+ cmp r4, r0
+ blt _0803FAD4
+_0803FB44:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ mov r2, r8
+ cmp r2, 0xF
+ ble _0803FAB0
+ ldr r5, [sp, 0x4]
+ mov r6, r10
+ cmp r6, 0x3
+ ble _0803FA78
+_0803FB56:
+ 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 sub_803FB68
+sub_803FB68: @ 803FB68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r5, _0803FBB4
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ movs r6, 0xB
+ adds r0, r4, 0
+ muls r0, r6
+ ldr r4, _0803FBB8
+ adds r0, r4
+ adds r1, r5, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0803FBA8
+ mov r2, r8
+ muls r2, r6
+ adds r2, r4
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl SetMonData
+_0803FBA8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803FBB4: .4byte 0x020231cc
+_0803FBB8: .4byte gSpeciesNames
+ thumb_func_end sub_803FB68
+
+ thumb_func_start sub_803FBBC
+sub_803FBBC: @ 803FBBC
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _0803FBE4
+ 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 _0803FBE8
+ cmp r0, 0x1
+ bge _0803FBF0
+ cmp r0, 0
+ beq _0803FBEC
+ b _0803FBF2
+ .align 2, 0
+_0803FBE4: .4byte 0x03002970
+_0803FBE8:
+ cmp r0, 0x3
+ bne _0803FBF2
+_0803FBEC:
+ movs r5, 0
+ b _0803FBF2
+_0803FBF0:
+ movs r5, 0x1
+_0803FBF2:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FBBC
+
+ thumb_func_start sub_803FBFC
+sub_803FBFC: @ 803FBFC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r2, _0803FC20
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x18]
+ cmp r0, 0x2
+ bgt _0803FC24
+ cmp r0, 0x1
+ bge _0803FC2C
+ cmp r0, 0
+ beq _0803FC28
+ b _0803FC2E
+ .align 2, 0
+_0803FC20: .4byte 0x03002970
+_0803FC24:
+ cmp r0, 0x3
+ bne _0803FC2E
+_0803FC28:
+ movs r3, 0
+ b _0803FC2E
+_0803FC2C:
+ movs r3, 0x1
+_0803FC2E:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FBFC
+
+ thumb_func_start sub_803FC34
+sub_803FC34: @ 803FC34
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r1, _0803FC40
+ b _0803FC4C
+ .align 2, 0
+_0803FC40: .4byte 0x03002970
+_0803FC44:
+ adds r1, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _0803FC52
+_0803FC4C:
+ ldrh r0, [r1, 0x18]
+ cmp r0, r3
+ bne _0803FC44
+_0803FC52:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803FC34
+
+ thumb_func_start sub_803FC58
+sub_803FC58: @ 803FC58
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0803FC70
+ 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
+_0803FC70: .4byte gTrainers
+ thumb_func_end sub_803FC58
+
+ thumb_func_start nature_stat_mod
+nature_stat_mod: @ 803FC74
+ 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 _0803FC92
+ adds r0, r3, 0
+ b _0803FCCE
+_0803FC92:
+ ldr r0, _0803FCB4
+ 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 _0803FCB8
+ cmp r1, 0x1
+ bne _0803FCCC
+ movs r0, 0x6E
+ b _0803FCBA
+ .align 2, 0
+_0803FCB4: .4byte gNatureStatTable
+_0803FCB8:
+ movs r0, 0x5A
+_0803FCBA:
+ muls r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ b _0803FCCE
+_0803FCCC:
+ adds r0, r3, 0
+_0803FCCE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end nature_stat_mod
+
+ thumb_func_start sub_803FCD4
+sub_803FCD4: @ 803FCD4
+ 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 _0803FD34
+ ldr r0, _0803FD14
+ ldr r1, _0803FD18
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FD20
+ ldr r0, _0803FD1C
+ ldrb r4, [r0, 0x7]
+ b _0803FD3C
+ .align 2, 0
+_0803FD14: .4byte 0x03001770
+_0803FD18: .4byte 0x0000043d
+_0803FD1C: .4byte 0x02024df0
+_0803FD20:
+ ldr r0, _0803FD2C
+ ldr r1, _0803FD30
+ adds r0, r1
+ ldrb r4, [r0]
+ b _0803FD3C
+ .align 2, 0
+_0803FD2C: .4byte 0x02025734
+_0803FD30: .4byte 0x00003688
+_0803FD34:
+ bl itemid_get_x12
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0803FD3C:
+ cmp r6, 0
+ bne _0803FD42
+ b _0803FE56
+_0803FD42:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ bne _0803FD4C
+ b _0803FE56
+_0803FD4C:
+ 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 _0803FD6A
+ movs r6, 0x1
+_0803FD6A:
+ cmp r0, 0xC7
+ ble _0803FD74
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0803FD74:
+ cmp r5, 0x5
+ bne _0803FD84
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0803FE56
+_0803FD84:
+ cmp r5, 0x3
+ bne _0803FDB4
+ ldr r0, _0803FE60
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FE56
+ ldr r2, _0803FE64
+ ldr r0, _0803FE68
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ adds r0, r1, 0
+ subs r0, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0803FDB4
+ cmp r1, 0x20
+ bne _0803FE56
+_0803FDB4:
+ ldr r1, _0803FE6C
+ 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 _0803FDDA
+ cmp r4, 0x1B
+ bne _0803FDDA
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0803FDDA:
+ 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 _0803FE2C
+ adds r0, r7, 0
+ movs r1, 0x26
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xB
+ bne _0803FE08
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x1
+ mov r1, sp
+ strh r0, [r1]
+_0803FE08:
+ 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 _0803FE2C
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x1
+ mov r1, sp
+ strh r0, [r1]
+_0803FE2C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0803FE3C
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+_0803FE3C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ ble _0803FE4C
+ movs r1, 0xFF
+ mov r0, sp
+ strh r1, [r0]
+_0803FE4C:
+ adds r0, r7, 0
+ movs r1, 0x20
+ mov r2, sp
+ bl SetMonData
+_0803FE56:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803FE60: .4byte 0x020239f8
+_0803FE64: .4byte gTrainers
+_0803FE68: .4byte 0x0202ff5e
+_0803FE6C: .4byte gUnknown_082082FE
+ thumb_func_end sub_803FCD4
+
+ thumb_func_start sub_803FE70
+sub_803FE70: @ 803FE70
+ 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
+_0803FE84:
+ 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 _0803FE84
+ movs r6, 0
+ b _08040006
+_0803FEA8:
+ mov r0, r8
+ movs r1, 0
+ bl sub_8040178
+ lsls r0, 24
+ movs r2, 0x1
+ cmp r0, 0
+ beq _0803FEBA
+ movs r2, 0x2
+_0803FEBA:
+ cmp r6, 0x5
+ bhi _0803FF5C
+ lsls r0, r6, 2
+ ldr r1, _0803FEC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803FEC8: .4byte _0803FECC
+ .align 2, 0
+_0803FECC:
+ .4byte _0803FEE4
+ .4byte _0803FEF8
+ .4byte _0803FF0C
+ .4byte _0803FF20
+ .4byte _0803FF34
+ .4byte _0803FF48
+_0803FEE4:
+ ldr r0, _0803FEF4
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 30
+ b _0803FF56
+ .align 2, 0
+_0803FEF4: .4byte gBaseStats
+_0803FEF8:
+ ldr r0, _0803FF08
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0803FF54
+ .align 2, 0
+_0803FF08: .4byte gBaseStats
+_0803FF0C:
+ ldr r0, _0803FF1C
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 26
+ b _0803FF56
+ .align 2, 0
+_0803FF1C: .4byte gBaseStats
+_0803FF20:
+ ldr r0, _0803FF30
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsrs r0, 6
+ b _0803FF58
+ .align 2, 0
+_0803FF30: .4byte gBaseStats
+_0803FF34:
+ ldr r0, _0803FF44
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 30
+ b _0803FF56
+ .align 2, 0
+_0803FF44: .4byte gBaseStats
+_0803FF48:
+ ldr r0, _0803FF84
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xB]
+_0803FF54:
+ lsls r0, 28
+_0803FF56:
+ lsrs r0, 30
+_0803FF58:
+ adds r4, r0, 0
+ muls r4, r2
+_0803FF5C:
+ mov r0, r8
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803FFA8
+ ldr r0, _0803FF88
+ ldr r1, _0803FF8C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803FF94
+ ldr r0, _0803FF90
+ ldrb r0, [r0, 0x7]
+ b _0803FFB0
+ .align 2, 0
+_0803FF84: .4byte gBaseStats
+_0803FF88: .4byte 0x03001770
+_0803FF8C: .4byte 0x0000043d
+_0803FF90: .4byte 0x02024df0
+_0803FF94:
+ ldr r0, _0803FFA0
+ ldr r2, _0803FFA4
+ adds r0, r2
+ ldrb r0, [r0]
+ b _0803FFB0
+ .align 2, 0
+_0803FFA0: .4byte 0x02025734
+_0803FFA4: .4byte 0x00003688
+_0803FFA8:
+ bl itemid_get_x12
+ lsls r0, 24
+ lsrs r0, 24
+_0803FFB0:
+ cmp r0, 0x18
+ bne _0803FFB8
+ lsls r0, r4, 17
+ lsrs r4, r0, 16
+_0803FFB8:
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ adds r1, r7, r2
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ ble _0803FFD0
+ adds r0, r2, r0
+ adds r1, r7, r4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0803FFD0:
+ 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 _0803FFEC
+ adds r0, r1, 0
+ adds r0, 0xFF
+ adds r1, r3, r4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0803FFEC:
+ 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 SetMonData
+ adds r6, 0x1
+ cmp r6, 0x5
+ bgt _0804000E
+_08040006:
+ ldr r0, _0804001C
+ cmp r7, r0
+ bhi _0804000E
+ b _0803FEA8
+_0804000E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804001C: .4byte 0x000001fd
+ thumb_func_end sub_803FE70
+
+ thumb_func_start sub_8040020
+sub_8040020: @ 8040020
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ movs r4, 0
+_08040028:
+ 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 _08040028
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040020
+
+ thumb_func_start sub_8040048
+sub_8040048: @ 8040048
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x80
+ lsls r0, 7
+ cmp r5, r0
+ beq _0804006E
+ movs r0, 0x80
+ lsls r0, 8
+ cmp r5, r0
+ beq _0804006E
+ movs r0, 0xC0
+ lsls r0, 8
+ cmp r5, r0
+ bne _08040104
+_0804006E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x64
+ muls r0, r5
+ adds r4, r6, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0804006E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0804006E
+ ldr r1, _0804010C
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8040178
+ lsls r0, 24
+ cmp r0, 0
+ bne _08040104
+ mov r4, sp
+_080400B8:
+ bl Random
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r4]
+ cmp r0, 0
+ beq _080400B8
+ movs r0, 0xF0
+ mov r1, sp
+ ldrb r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _080400DA
+ movs r0, 0x7
+ ands r1, r0
+ mov r0, sp
+ strb r1, [r0]
+_080400DA:
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ orrs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ movs r1, 0xF3
+ ands r1, r0
+ mov r0, sp
+ strb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, r6, r0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_08040104:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804010C: .4byte gBitTable
+ thumb_func_end sub_8040048
+
+ thumb_func_start sub_8040110
+sub_8040110: @ 8040110
+ 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 _08040158
+_08040124:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0804014C
+ 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 _0804014C
+ orrs r5, r6
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_0804014C:
+ adds r3, 0x1
+ lsls r6, 1
+ lsrs r4, 1
+ cmp r4, 0
+ bne _08040124
+ b _0804016C
+_08040158:
+ adds r0, r7, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0
+ beq _0804016C
+ movs r5, 0x1
+_0804016C:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040110
+
+ thumb_func_start sub_8040178
+sub_8040178: @ 8040178
+ 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 _080401BC
+_0804018C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080401B0
+ 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 _080401B0
+ orrs r5, r6
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080401B0:
+ adds r3, 0x1
+ lsls r6, 1
+ lsrs r4, 1
+ cmp r4, 0
+ bne _0804018C
+ b _080401CC
+_080401BC:
+ adds r0, r7, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _080401CC
+ movs r5, 0x1
+_080401CC:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040178
+
+ thumb_func_start sub_80401D8
+sub_80401D8: @ 80401D8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+ mov r6, sp
+_080401E4:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08040224
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0804023C
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r6]
+ movs r1, 0xF
+ adds r2, r0, 0
+ ands r1, r2
+ cmp r1, 0
+ beq _0804023C
+ cmp r1, r7
+ bcc _0804021E
+ cmp r7, 0x4
+ bls _08040228
+_0804021E:
+ movs r0, 0xF0
+ ands r0, r2
+ b _0804022A
+ .align 2, 0
+_08040224: .4byte 0x03004360
+_08040228:
+ subs r0, r2, r7
+_0804022A:
+ strb r0, [r6]
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0804024C
+ adds r0, r1
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_0804023C:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080401E4
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804024C: .4byte 0x03004360
+ thumb_func_end sub_80401D8
+
+ thumb_func_start atkE5_pickupitemcalculation
+atkE5_pickupitemcalculation: @ 8040250
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080402F6
+ movs r5, 0
+_0804026C:
+ movs r0, 0x64
+ adds r6, r5, 0
+ muls r6, r0
+ adds r4, r7, r6
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _080402F0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ mov r0, sp
+ strb r1, [r0]
+ cmp r1, 0
+ beq _080402F0
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080402F0
+ cmp r5, 0
+ beq _080402C6
+ adds r0, r6, 0
+ subs r0, 0x64
+ adds r4, r7, r0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0
+ bne _080402C6
+ adds r0, r4, 0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+_080402C6:
+ cmp r5, 0x5
+ beq _080402F0
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, 0x64
+ adds r4, r7, r0
+ adds r0, r4, 0
+ movs r1, 0x22
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0
+ bne _080402F0
+ adds r0, r4, 0
+ movs r1, 0x22
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+_080402F0:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0804026C
+_080402F6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atkE5_pickupitemcalculation
+
+ thumb_func_start sub_8040300
+sub_8040300: @ 8040300
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ adds r0, 0x1
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x19
+ movs r2, 0
+ bl GetMonData
+ ldr r5, _08040358
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r2, 2
+ ldr r3, _0804035C
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r3
+ ldrb r3, [r1, 0x13]
+ movs r1, 0xCA
+ lsls r1, 1
+ muls r1, r3
+ adds r2, r1
+ adds r2, r5
+ ldr r1, [r2]
+ cmp r0, r1
+ bhi _08040360
+ movs r0, 0
+ b _0804036C
+ .align 2, 0
+_08040358: .4byte gExperienceTables
+_0804035C: .4byte gBaseStats
+_08040360:
+ adds r0, r6, 0
+ movs r1, 0x38
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0x1
+_0804036C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040300
+
+ thumb_func_start sub_8040374
+sub_8040374: @ 8040374
+ 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 _08040396
+ movs r0, 0
+ b _080403C2
+_08040396:
+ cmp r4, 0x1F
+ bls _080403B4
+ adds r0, r4, 0
+ subs r0, 0x20
+ movs r2, 0x1
+ lsls r2, r0
+ ldr r0, _080403B0
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r2
+ b _080403C2
+ .align 2, 0
+_080403B0: .4byte gTMHMLearnsets
+_080403B4:
+ movs r1, 0x1
+ lsls r1, r5
+ ldr r2, _080403C8
+ lsls r0, r3, 3
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+_080403C2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080403C8: .4byte gTMHMLearnsets
+ thumb_func_end sub_8040374
+
+ thumb_func_start sub_80403CC
+sub_80403CC: @ 80403CC
+ 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
+_08040402:
+ 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 _08040402
+ movs r5, 0
+ ldr r6, _08040510
+ lsls r1, r7, 2
+ adds r2, r1, r6
+ ldr r3, [r2]
+ ldrh r0, [r3]
+ ldr r4, _08040514
+ str r1, [sp, 0x14]
+ cmp r0, r4
+ beq _080404FC
+ mov r9, r2
+ str r3, [sp, 0x10]
+_08040430:
+ 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 _080404E6
+ movs r4, 0
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _08040518
+ ands r0, r3
+ cmp r1, r0
+ beq _08040480
+ ldr r0, [sp, 0x14]
+ ldr r1, _08040510
+ adds r6, r0, r1
+ ldr r2, _08040518
+ mov r8, r2
+ mov r3, sp
+ adds r5, r7, 0
+_08040468:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08040480
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040468
+_08040480:
+ cmp r4, 0x4
+ bne _080404E6
+ movs r4, 0
+ cmp r4, r10
+ bge _080404C4
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, [sp, 0x8]
+ ldrh r2, [r0]
+ ldr r0, _08040518
+ ands r0, r1
+ cmp r2, r0
+ beq _080404C4
+ ldr r1, [sp, 0x14]
+ ldr r2, _08040510
+ adds r6, r1, r2
+ ldr r0, _08040518
+ mov r8, r0
+ ldr r3, [sp, 0x8]
+ adds r5, r7, 0
+_080404AC:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, r10
+ bge _080404C4
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _080404AC
+_080404C4:
+ cmp r4, r10
+ bne _080404E6
+ 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, _08040518
+ ands r0, r1
+ strh r0, [r2]
+_080404E6:
+ mov r5, r12
+ cmp r5, 0x13
+ bgt _080404FC
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r2, _08040514
+ cmp r0, r2
+ bne _08040430
+_080404FC:
+ 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
+_08040510: .4byte gLevelUpLearnsetPointers
+_08040514: .4byte 0x0000ffff
+_08040518: .4byte 0x000001ff
+ thumb_func_end sub_80403CC
+
+ thumb_func_start sub_804051C
+sub_804051C: @ 804051C
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ movs r5, 0
+ movs r4, 0
+ ldr r1, _08040568
+ lsrs r0, 14
+ adds r0, r1
+ ldr r2, [r0]
+ ldrh r0, [r2]
+ ldr r1, _0804056C
+ cmp r0, r1
+ beq _08040560
+ ldr r0, _08040570
+ mov r12, r0
+ adds r7, r1, 0
+ adds r3, r2, 0
+_0804053E:
+ 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 _08040560
+ ldrh r0, [r3]
+ cmp r0, r7
+ bne _0804053E
+_08040560:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040568: .4byte gLevelUpLearnsetPointers
+_0804056C: .4byte 0x0000ffff
+_08040570: .4byte 0x000001ff
+ thumb_func_end sub_804051C
+
+ thumb_func_start sub_8040574
+sub_8040574: @ 8040574
+ 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 _080405B0
+ movs r0, 0
+ b _080406BA
+_080405B0:
+ movs r5, 0
+ lsls r4, 2
+ str r4, [sp, 0x38]
+ mov r4, sp
+_080405B8:
+ 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 _080405B8
+ movs r5, 0
+ ldr r3, _080406CC
+ ldr r2, [sp, 0x38]
+ adds r1, r2, r3
+ ldr r0, [r1]
+ ldrh r0, [r0]
+ ldr r2, _080406D0
+ cmp r0, r2
+ beq _080406B8
+ mov r9, r1
+ mov r4, sp
+ adds r4, 0x8
+ str r4, [sp, 0x34]
+_080405E8:
+ 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 _080406A2
+ movs r4, 0
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080406D4
+ ands r0, r3
+ cmp r1, r0
+ beq _0804063A
+ ldr r0, [sp, 0x38]
+ ldr r1, _080406CC
+ adds r6, r0, r1
+ ldr r2, _080406D4
+ mov r8, r2
+ mov r3, sp
+ adds r5, r7, 0
+_08040622:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0804063A
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040622
+_0804063A:
+ cmp r4, 0x4
+ bne _080406A2
+ movs r4, 0
+ cmp r4, r10
+ bge _08040680
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r0, [sp, 0x34]
+ ldrh r2, [r0]
+ ldr r0, _080406D4
+ ands r0, r1
+ add r1, sp, 0x8
+ cmp r2, r0
+ beq _08040680
+ ldr r2, [sp, 0x38]
+ ldr r0, _080406CC
+ adds r6, r2, r0
+ ldr r2, _080406D4
+ mov r8, r2
+ adds r3, r1, 0
+ adds r5, r7, 0
+_08040668:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, r10
+ bge _08040680
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r2, r0
+ bne _08040668
+_08040680:
+ cmp r4, r10
+ bne _080406A2
+ 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, _080406D4
+ ands r0, r1
+ strh r0, [r2]
+_080406A2:
+ mov r5, r12
+ cmp r5, 0x13
+ bgt _080406B8
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r4, _080406D0
+ cmp r0, r4
+ bne _080405E8
+_080406B8:
+ mov r0, r10
+_080406BA:
+ 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
+_080406CC: .4byte gLevelUpLearnsetPointers
+_080406D0: .4byte 0x0000ffff
+_080406D4: .4byte 0x000001ff
+ thumb_func_end sub_8040574
+
+ thumb_func_start sub_80406D8
+sub_80406D8: @ 80406D8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_806912C
+ cmp r0, 0
+ beq _080406F2
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ b _0804070A
+_080406F2:
+ adds r0, r4, 0
+ bl SpeciesToHoennPokedexNum
+ adds r4, r0, 0
+ cmp r4, 0xCA
+ bls _08040708
+ ldr r0, _08040704
+ b _0804070A
+ .align 2, 0
+_08040704: .4byte 0x0000ffff
+_08040708:
+ adds r0, r4, 0
+_0804070A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80406D8
+
+ thumb_func_start sub_8040710
+sub_8040710: @ 8040710
+ push {lr}
+ ldr r1, _08040724
+ movs r2, 0
+ adds r0, r1, 0x3
+_08040718:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08040718
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08040724: .4byte 0x02024e84
+ thumb_func_end sub_8040710
+
+ thumb_func_start sub_8040728
+sub_8040728: @ 8040728
+ push {lr}
+ ldr r0, _0804073C
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08040744
+ ldr r0, _08040740
+ b _080408B2
+ .align 2, 0
+_0804073C: .4byte 0x020239f8
+_08040740: .4byte 0x000001cf
+_08040744:
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ beq _08040754
+ movs r0, 0xE7
+ lsls r0, 1
+ b _080408B2
+_08040754:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0804075E
+ b _080408A8
+_0804075E:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08040768
+ b _080408B0
+_08040768:
+ ldr r3, _0804078C
+ ldr r2, _08040790
+ ldrh r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x2
+ cmp r0, 0x31
+ bls _08040780
+ b _080408A8
+_08040780:
+ lsls r0, 2
+ ldr r1, _08040794
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804078C: .4byte gTrainers
+_08040790: .4byte 0x0202ff5e
+_08040794: .4byte _08040798
+ .align 2, 0
+_08040798:
+ .4byte _08040860
+ .4byte _08040866
+ .4byte _08040866
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A0
+ .4byte _0804086C
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _08040872
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _0804087C
+ .4byte _080408A8
+ .4byte _080408A8
+ .4byte _08040860
+ .4byte _08040866
+ .4byte _08040866
+_08040860:
+ movs r0, 0xE9
+ lsls r0, 1
+ b _080408B2
+_08040866:
+ movs r0, 0xE5
+ lsls r0, 1
+ b _080408B2
+_0804086C:
+ movs r0, 0xE6
+ lsls r0, 1
+ b _080408B2
+_08040872:
+ ldr r0, _08040878
+ b _080408B2
+ .align 2, 0
+_08040878: .4byte 0x000001cd
+_0804087C:
+ ldrh r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08040898
+ adds r0, r1
+ ldr r1, _0804089C
+ bl StringCompare
+ cmp r0, 0
+ beq _080408A8
+ movs r0, 0xE8
+ lsls r0, 1
+ b _080408B2
+ .align 2, 0
+_08040898: .4byte gTrainers + 0x4
+_0804089C: .4byte gUnknown_08400E42
+_080408A0:
+ ldr r0, _080408A4
+ b _080408B2
+ .align 2, 0
+_080408A4: .4byte 0x000001d1
+_080408A8:
+ ldr r0, _080408AC
+ b _080408B2
+ .align 2, 0
+_080408AC: .4byte 0x000001cb
+_080408B0:
+ ldr r0, _080408B8
+_080408B2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080408B8: .4byte 0x000001c9
+ thumb_func_end sub_8040728
+
+ thumb_func_start sub_80408BC
+sub_80408BC: @ 80408BC
+ push {lr}
+ bl map_music_set_to_zero
+ bl m4aMPlayAllStop
+ bl sub_8040728
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8075474
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80408BC
+
+ thumb_func_start current_map_music_set__default_for_battle
+current_map_music_set__default_for_battle: @ 80408D8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl map_music_set_to_zero
+ bl m4aMPlayAllStop
+ cmp r4, 0
+ beq _080408F2
+ adds r0, r4, 0
+ bl current_map_music_set
+ b _080408FE
+_080408F2:
+ bl sub_8040728
+ lsls r0, 16
+ lsrs r0, 16
+ bl current_map_music_set
+_080408FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end current_map_music_set__default_for_battle
+
+ thumb_func_start pokemon_get_pal
+pokemon_get_pal: @ 8040904
+ 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 species_and_otid_get_pal
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_get_pal
+
+ thumb_func_start species_and_otid_get_pal
+species_and_otid_get_pal: @ 804093C
+ 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 _08040958
+ ldr r0, _08040954
+ ldr r0, [r0]
+ b _08040984
+ .align 2, 0
+_08040954: .4byte gMonPaletteTable
+_08040958:
+ lsrs r0, r1, 16
+ ldr r2, _08040974
+ ands r1, r2
+ eors r0, r1
+ lsrs r1, r3, 16
+ eors r0, r1
+ ands r3, r2
+ eors r0, r3
+ cmp r0, 0x7
+ bls _0804097C
+ ldr r0, _08040978
+ lsls r1, r4, 3
+ b _08040980
+ .align 2, 0
+_08040974: .4byte 0x0000ffff
+_08040978: .4byte gMonPaletteTable
+_0804097C:
+ ldr r0, _0804098C
+ lsls r1, r5, 3
+_08040980:
+ adds r1, r0
+ ldr r0, [r1]
+_08040984:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804098C: .4byte gMonShinyPaletteTable
+ thumb_func_end species_and_otid_get_pal
+
+ thumb_func_start sub_8040990
+sub_8040990: @ 8040990
+ 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 sub_80409C8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040990
+
+ thumb_func_start sub_80409C8
+sub_80409C8: @ 80409C8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsrs r0, r1, 16
+ ldr r3, _080409E8
+ ands r1, r3
+ eors r0, r1
+ lsrs r1, r2, 16
+ eors r0, r1
+ ands r2, r3
+ eors r0, r2
+ cmp r0, 0x7
+ bls _080409F0
+ lsls r0, r4, 3
+ ldr r1, _080409EC
+ b _080409F4
+ .align 2, 0
+_080409E8: .4byte 0x0000ffff
+_080409EC: .4byte gMonPaletteTable
+_080409F0:
+ lsls r0, r4, 3
+ ldr r1, _080409FC
+_080409F4:
+ adds r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080409FC: .4byte gMonShinyPaletteTable
+ thumb_func_end sub_80409C8
+
+ thumb_func_start sub_8040A00
+sub_8040A00: @ 8040A00
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, _08040A24
+ ldrh r0, [r2]
+ ldr r1, _08040A28
+ cmp r0, r1
+ beq _08040A32
+ adds r4, r1, 0
+ adds r1, r2, 0
+_08040A14:
+ ldrh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ cmp r0, r3
+ bne _08040A2C
+ movs r0, 0x1
+ b _08040A34
+ .align 2, 0
+_08040A24: .4byte gUnknown_0820831A
+_08040A28: .4byte 0x0000ffff
+_08040A2C:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08040A14
+_08040A32:
+ movs r0, 0
+_08040A34:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040A00
+
+ thumb_func_start sub_8040A3C
+sub_8040A3C: @ 8040A3C
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08040A50
+ 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
+_08040A50: .4byte gBaseStats
+ thumb_func_end sub_8040A3C
+
+ thumb_func_start sub_8040A54
+sub_8040A54: @ 8040A54
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08040A78
+ 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
+_08040A78: .4byte gUnknown_083F7E28
+ thumb_func_end sub_8040A54
+
+ thumb_func_start sub_8040A7C
+sub_8040A7C: @ 8040A7C
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl GetNatureFromPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08040AA0
+ 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
+_08040AA0: .4byte gUnknown_083F7E28
+ thumb_func_end sub_8040A7C
+
+ thumb_func_start sub_8040AA4
+sub_8040AA4: @ 8040AA4
+ 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 sub_8040AD0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040AA4
+
+ thumb_func_start sub_8040AD0
+sub_8040AD0: @ 8040AD0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ ldr r3, _08040B10
+ 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 _08040B14
+ movs r4, 0
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _08040B0C
+ adds r2, r5, 0
+_08040AF8:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08040B14
+ adds r2, 0x1
+ adds r4, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _08040AF8
+_08040B0C:
+ movs r0, 0
+ b _08040B16
+ .align 2, 0
+_08040B10: .4byte gSaveBlock2
+_08040B14:
+ movs r0, 0x1
+_08040B16:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040AD0
+
+ thumb_func_start sub_8040B1C
+sub_8040B1C: @ 8040B1C
+ push {lr}
+ bl pokemon_restore_pp
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040B1C
+
+ thumb_func_start pokemon_restore_pp
+pokemon_restore_pp: @ 8040B28
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r6, 0
+_08040B30:
+ adds r4, r6, 0
+ adds r4, 0xD
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonBoxData
+ cmp r0, 0
+ beq _08040B7C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonBoxData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonBoxData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r6, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl CalcPPWithPPUps
+ mov r1, sp
+ strb r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r5, 0
+ mov r2, sp
+ bl SetMonBoxData
+_08040B7C:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08040B30
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end pokemon_restore_pp
+
+ thumb_func_start sub_8040B8C
+sub_8040B8C: @ 8040B8C
+ push {r4,r5,lr}
+ ldr r1, _08040BCC
+ ldr r2, _08040BD0
+ ldr r3, _08040BD4
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r5, _08040BD8
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x4
+ strb r0, [r5, 0x1]
+ ldr r0, _08040BDC
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x4]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08040BE4
+ ldr r1, _08040BE0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ b _08040BEE
+ .align 2, 0
+_08040BCC: .4byte 0x02024c06
+_08040BD0: .4byte 0x02000000
+_08040BD4: .4byte 0x000160c0
+_08040BD8: .4byte 0x030041c0
+_08040BDC: .4byte 0x00016054
+_08040BE0: .4byte 0x02024a6a
+_08040BE4:
+ ldr r0, _08040C24
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+_08040BEE:
+ strb r0, [r5, 0x3]
+ ldr r4, _08040C28
+ movs r0, 0xFD
+ strb r0, [r4]
+ movs r0, 0x4
+ strb r0, [r4, 0x1]
+ ldr r1, _08040C2C
+ ldrb r0, [r1]
+ strb r0, [r4, 0x2]
+ ldr r2, _08040C24
+ 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, _08040C30
+ ldr r1, _08040C34
+ bl sub_8120FFC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08040C24: .4byte 0x02024a6a
+_08040C28: .4byte 0x03004290
+_08040C2C: .4byte 0x02024e6c
+_08040C30: .4byte gUnknown_083FFCCA
+_08040C34: .4byte 0x020234cc
+ thumb_func_end sub_8040B8C
+
+ thumb_func_start sub_8040C38
+sub_8040C38: @ 8040C38
+ push {r4,r5,lr}
+ ldr r0, _08040C90
+ ldrh r1, [r0]
+ ldr r0, _08040C94
+ ands r0, r1
+ cmp r0, 0
+ bne _08040CAC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r4, _08040C98
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08040C9C
+ 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 _08040C82
+ cmp r5, 0x2C
+ bls _08040CAC
+ cmp r5, 0x5E
+ bhi _08040CA0
+_08040C82:
+ adds r2, 0xC
+ adds r2, r3, r2
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ b _08040CAC
+ .align 2, 0
+_08040C90: .4byte 0x020239f8
+_08040C94: .4byte 0x00002008
+_08040C98: .4byte 0x030045c0
+_08040C9C: .4byte gBaseStats
+_08040CA0:
+ adds r2, 0xE
+ adds r2, r3, r2
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+_08040CAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8040C38
+
+ thumb_func_start sub_8040CB4
+sub_8040CB4: @ 8040CB4
+ 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 sub_8040CE0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040CB4
+
+ thumb_func_start sub_8040CE0
+sub_8040CE0: @ 8040CE0
+ push {r4,lr}
+ movs r4, 0
+ lsrs r2, r0, 16
+ ldr r3, _08040D04
+ ands r0, r3
+ eors r2, r0
+ lsrs r0, r1, 16
+ eors r2, r0
+ ands r1, r3
+ eors r2, r1
+ cmp r2, 0x7
+ bhi _08040CFA
+ movs r4, 0x1
+_08040CFA:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D04: .4byte 0x0000ffff
+ thumb_func_end sub_8040CE0
+
+ thumb_func_start sub_8040D08
+sub_8040D08: @ 8040D08
+ push {r4,lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08040D38
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x18]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_803FC34
+ 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
+_08040D38: .4byte 0x03002970
+ thumb_func_end sub_8040D08
+
+ thumb_func_start sub_8040D3C
+sub_8040D3C: @ 8040D3C
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r0, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ cmp r1, 0x20
+ beq _08040D54
+ cmp r1, 0x1D
+ bne _08040D7E
+_08040D54:
+ cmp r2, 0x2
+ bne _08040D68
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _08040D64
+ adds r1, r0
+ b _08040D70
+ .align 2, 0
+_08040D64: .4byte gSpeciesNames
+_08040D68:
+ ldr r1, _08040D88
+ cmp r0, 0x20
+ bne _08040D70
+ subs r1, 0xB
+_08040D70:
+ adds r0, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ movs r3, 0
+ cmp r0, 0
+ bne _08040D7E
+ movs r3, 0x1
+_08040D7E:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08040D88: .4byte gUnknown_08208337
+ thumb_func_end sub_8040D3C
+
+ thumb_func_start sub_8040D8C
+sub_8040D8C: @ 8040D8C
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0xFC
+ bne _08040DA2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x15
+ bne _08040DA2
+ movs r2, 0x1
+_08040DA2:
+ adds r0, r3, 0
+ bl sub_8040D3C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8040D8C
+
+ thumb_func_start unref_sub_8040DAC
+unref_sub_8040DAC: @ 8040DAC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_8040D3C
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8040DAC
+
+ thumb_func_start sine
+sine: @ 8040DEC
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _08040E04
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ lsls r0, 8
+ asrs r0, 16
+ bx lr
+ .align 2, 0
+_08040E04: .4byte gSineTable
+ thumb_func_end sine
+
+ thumb_func_start cosine
+cosine: @ 8040E08
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _08040E24
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, 0x80
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ lsls r0, 8
+ asrs r0, 16
+ bx lr
+ .align 2, 0
+_08040E24: .4byte gSineTable
+ thumb_func_end cosine
+
+ thumb_func_start sine2
+sine2: @ 8040E28
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+ movs r1, 0xB4
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0xB4
+ bl __udivsi3
+ movs r1, 0x1
+ ands r0, r1
+ ldr r1, _08040E5C
+ lsls r4, 1
+ adds r4, r1
+ ldrh r1, [r4]
+ cmp r0, 0
+ bne _08040E60
+ lsls r0, r1, 16
+ b _08040E64
+ .align 2, 0
+_08040E5C: .4byte gSineDegreeTable
+_08040E60:
+ lsls r0, r1, 16
+ negs r0, r0
+_08040E64:
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sine2
+
+ thumb_func_start cosine2
+cosine2: @ 8040E6C
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xB4
+ lsls r1, 15
+ adds r0, r1
+ lsrs r0, 16
+ bl sine2
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end cosine2
diff --git a/asm/rom_8040EB4.s b/asm/rom_8040EB4.s
index c0a981e6c..b38c91c96 100644
--- a/asm/rom_8040EB4.s
+++ b/asm/rom_8040EB4.s
@@ -566,7 +566,7 @@ pokemon_get_nick: @ 80412B0
adds r4, r1, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
mov r1, sp
bl StringCopy10
@@ -583,7 +583,7 @@ pokemon_get_nick_: @ 80412D0
adds r4, r1, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r0, r4, 0
mov r1, sp
bl StringCopy10
@@ -605,7 +605,7 @@ _080412F8:
lsls r0, 4
adds r0, r6, r0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _08041310
adds r0, r5, 0x1
@@ -646,7 +646,7 @@ _0804133E:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _0804136E
adds r0, r7, 0x1
@@ -654,7 +654,7 @@ _0804133E:
lsrs r7, r0, 24
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
cmp r1, 0
bne _0804136E
@@ -694,7 +694,7 @@ _0804139A:
lsls r0, 4
adds r0, r5, r0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _080413B2
lsls r0, r4, 24
@@ -754,7 +754,7 @@ sub_80413C8: @ 80413C8
bl pokemon_get_nick
adds r0, r7, 0
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
add r4, r8
@@ -837,12 +837,12 @@ sub_80414C0: @ 80414C0
adds r4, 0x50
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _08041516
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r6, r0, 0
cmp r6, 0
bne _08041516
@@ -851,7 +851,7 @@ sub_80414C0: @ 80414C0
movs r2, 0x50
bl memcpy
adds r0, r4, 0
- bl zero_pokemon_boxed_data
+ bl ZeroPokemonBoxData
adds r0, r5, 0
adds r0, 0xA0
adds r4, 0x88
@@ -938,7 +938,7 @@ sub_8041570: @ 8041570
bl pokemon_get_nick_
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r0, 16
mov r9, r0
@@ -947,12 +947,12 @@ sub_8041570: @ 8041570
bl sub_803B4B4
mov r0, sp
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x64
beq _080415D8
mov r0, sp
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
movs r2, 0x88
lsls r2, 1
adds r1, r5, r2
@@ -963,7 +963,7 @@ sub_8041570: @ 8041570
add r2, sp, 0x64
mov r0, sp
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
mov r0, sp
bl sub_804151C
_080415D8:
@@ -995,7 +995,7 @@ _080415D8:
_08041610:
bl party_compaction
adds r0, r6, 0
- bl zero_pokemon_boxed_data
+ bl ZeroPokemonBoxData
movs r2, 0x88
lsls r2, 1
adds r0, r5, r2
@@ -1046,13 +1046,13 @@ sub_8041664: @ 8041664
bl memcpy
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r0, r5
str r0, [sp, 0x50]
add r2, sp, 0x50
mov r0, sp
movs r1, 0x19
- bl PokemonSetEncryptedField
+ bl SetMonBoxData
mov r0, sp
bl sub_803B570
lsls r0, 24
@@ -1218,7 +1218,7 @@ sub_80417B8: @ 80417B8
ldr r4, _080417DC
adds r0, r4
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
bne _080417E0
movs r0, 0
@@ -1276,7 +1276,7 @@ _0804182A:
adds r0, r4, r5
lsls r0, 4
adds r0, r6, r0
- bl zero_pokemon_boxed_data
+ bl ZeroPokemonBoxData
movs r1, 0x88
lsls r1, 1
adds r0, r6, r1
@@ -1574,12 +1574,12 @@ _08041A4C:
lsls r0, 4
add r0, r8
movs r1, 0x27
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
add r2, sp, 0x10
strb r0, [r2]
mov r0, r9
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _08041B02
_08041A6C:
add r4, sp, 0x10
@@ -1590,7 +1590,7 @@ _08041A6C:
lsls r0, 4
add r0, r8
movs r1, 0x28
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
strb r0, [r4]
mov r0, r9
movs r1, 0x28
@@ -1604,7 +1604,7 @@ _08041A88:
lsls r0, 4
add r0, r8
movs r1, 0x29
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
strb r0, [r4]
mov r0, r9
movs r1, 0x29
@@ -1618,7 +1618,7 @@ _08041AA4:
lsls r0, 4
add r0, r8
movs r1, 0x2A
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
strb r0, [r4]
mov r0, r9
movs r1, 0x2A
@@ -1632,13 +1632,13 @@ _08041AC0:
lsls r0, 4
add r0, r8
movs r1, 0x2B
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
strb r0, [r4]
mov r0, r9
movs r1, 0x2B
_08041ADA:
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
b _08041B02
_08041AE2:
add r4, sp, 0x10
@@ -1649,12 +1649,12 @@ _08041AE2:
lsls r0, 4
add r0, r8
movs r1, 0x2C
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
strb r0, [r4]
mov r0, r9
movs r1, 0x2C
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
_08041B02:
adds r0, r5, 0x1
lsls r0, 24
@@ -1679,7 +1679,7 @@ pokemon_get_eggmoves: @ 8041B1C
movs r6, 0
movs r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
@@ -1815,7 +1815,7 @@ _08041C18:
bls _08041C18
adds r0, r7, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r1, _08041CD8
@@ -1831,14 +1831,14 @@ _08041C46:
adds r5, 0xD
mov r0, r10
adds r1, r5, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r4, r6, 1
mov r2, r8
adds r1, r4, r2
strh r0, [r1]
mov r0, r9
adds r1, r5, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
ldr r1, _08041CC8
adds r4, r1
strh r0, [r4]
@@ -2140,13 +2140,13 @@ incense_effects: @ 8041E8C
_08041EA4:
adds r0, r5, 0
movs r1, 0xC
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r5, 0
adds r0, 0x50
movs r1, 0xC
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r2, r0, 16
ldrh r0, [r4]
@@ -2194,7 +2194,7 @@ _08041EFC:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r1, r4, 1
add r1, sp
strh r0, [r1]
@@ -2328,7 +2328,7 @@ sub_8041FC4: @ 8041FC4
strb r0, [r2]
mov r0, sp
movs r1, 0x2D
- bl pokemon_setattr
+ bl SetMonData
ldr r0, _08042040
movs r1, 0xFA
lsls r1, 1
@@ -2387,11 +2387,11 @@ sub_8042044: @ 8042044
adds r0, r7, 0
movs r1, 0x26
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
ldr r2, _080420F4
adds r0, r7, 0
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
lsls r2, r5, 3
subs r2, r5
lsls r2, 2
@@ -2399,15 +2399,15 @@ sub_8042044: @ 8042044
adds r2, r0
adds r0, r7, 0
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
adds r0, r7, 0
movs r1, 0x24
mov r2, r8
- bl pokemon_setattr
+ bl SetMonData
adds r0, r7, 0
movs r1, 0x3
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
cmp r6, 0
beq _080420D6
add r2, sp, 0x14
@@ -2415,7 +2415,7 @@ sub_8042044: @ 8042044
strb r0, [r2]
adds r0, r7, 0
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
_080420D6:
mov r2, sp
adds r2, 0x15
@@ -2423,7 +2423,7 @@ _080420D6:
strb r0, [r2]
adds r0, r7, 0
movs r1, 0x2D
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x18
pop {r3,r4}
mov r8, r3
@@ -2481,11 +2481,11 @@ sub_80420FC: @ 80420FC
adds r0, r6, 0
movs r1, 0x26
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
ldr r2, _08042198
adds r0, r6, 0
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
lsls r2, r5, 3
subs r2, r5
lsls r2, 2
@@ -2493,15 +2493,15 @@ sub_80420FC: @ 80420FC
adds r2, r0
adds r0, r6, 0
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x24
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x3
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
add sp, 0x14
pop {r3,r4}
mov r8, r3
@@ -2538,7 +2538,7 @@ _080421BC:
adds r0, r5, 0
movs r1, 0x5
str r2, [sp, 0x4]
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
ldr r2, [sp, 0x4]
cmp r0, 0
beq _080421DE
@@ -2606,12 +2606,12 @@ _08042244:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08042286
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
str r0, [sp]
cmp r0, 0
bne _08042278
@@ -2628,7 +2628,7 @@ _08042278:
adds r0, r4, 0
movs r1, 0x20
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
_08042286:
adds r6, 0x1
_08042288:
@@ -2677,7 +2677,7 @@ sub_80422C4: @ 80422C4
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _080422FC
ldr r1, _0804231C
@@ -2685,7 +2685,7 @@ sub_80422C4: @ 80422C4
bl pokemon_get_nick_
adds r0, r6, 0
movs r1, 0x3
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -2693,7 +2693,7 @@ sub_80422C4: @ 80422C4
adds r0, r6, 0
movs r1, 0x7
adds r2, r5, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r0, r5, 0
adds r1, r4, 0
bl ConvertInternationalString
@@ -2702,7 +2702,7 @@ _080422FC:
adds r4, 0x50
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
cmp r0, 0
beq _08042314
ldr r1, _08042324
@@ -2733,7 +2733,7 @@ sub_8042328: @ 8042328
muls r0, r5
adds r0, r4
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
lsls r0, 16
lsrs r0, 16
pop {r4-r6}
@@ -2852,17 +2852,17 @@ daycare_relationship_score: @ 80423D8
_0804240E:
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
ldr r1, [sp, 0x28]
stm r1!, {r0}
str r1, [sp, 0x28]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetEncryptedField
+ bl GetMonBoxData
adds r1, r0, 0
ldrh r0, [r5]
bl pokemon_species_get_gender_info
@@ -3464,7 +3464,7 @@ sub_80428A4: @ 80428A4
adds r6, r0, 0
adds r5, r1, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r10, r0
@@ -3487,7 +3487,7 @@ _080428DE:
adds r1, r4, 0
adds r1, 0xD
adds r0, r6, 0
- bl PokemonGetField
+ bl GetMonData
lsls r1, r4, 1
add r1, sp
adds r1, 0x10
@@ -3499,14 +3499,14 @@ _080428DE:
bls _080428DE
adds r0, r6, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
movs r4, 0
_08042906:
adds r1, r4, 0
adds r1, 0x27
adds r0, r6, 0
- bl PokemonGetField
+ bl GetMonData
lsls r1, r4, 2
adds r1, r7, r1
str r0, [r1]
@@ -3517,17 +3517,17 @@ _08042906:
bls _08042906
adds r0, r6, 0
movs r1, 0x25
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x38]
strb r0, [r1]
adds r0, r6, 0
movs r1, 0x8
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x3C]
strb r0, [r1]
adds r0, r6, 0
movs r1, 0x22
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x34]
movs r0, 0x1
str r0, [sp]
@@ -3550,7 +3550,7 @@ _0804295E:
adds r2, r0
adds r2, 0x10
adds r0, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -3563,7 +3563,7 @@ _0804297C:
lsls r2, r4, 2
adds r2, r7, r2
adds r0, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -3575,26 +3575,26 @@ _0804297C:
adds r0, r5, 0
movs r1, 0x3
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x25
ldr r2, [sp, 0x38]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x8
ldr r2, [sp, 0x3C]
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0x78
ldr r1, [sp, 0x40]
strb r0, [r1]
adds r0, r5, 0
movs r1, 0x20
ldr r2, [sp, 0x40]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0x22
ldr r2, [sp, 0x44]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
adds r1, r5, 0
movs r2, 0x64
@@ -3628,10 +3628,10 @@ sub_80429EC: @ 80429EC
strb r6, [r2]
adds r0, r5, 0
movs r1, 0x2D
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -3641,7 +3641,7 @@ sub_80429EC: @ 80429EC
adds r0, r5, 0
movs r1, 0x2
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
bl SpeciesToNationalPokedexNum
adds r4, r0, 0
@@ -3662,19 +3662,19 @@ sub_80429EC: @ 80429EC
strh r0, [r2]
adds r0, r5, 0
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
add r2, sp, 0x10
strh r6, [r2]
adds r0, r5, 0
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
bl sav1_map_get_name
mov r2, sp
adds r2, 0x12
strb r0, [r2]
adds r0, r5, 0
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
bl sub_8040B1C
adds r0, r5, 0
@@ -3829,13 +3829,13 @@ _08042BB0: .4byte 0x03004360
_08042BB4:
adds r0, r7, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r7, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, r5, 3
ldr r1, _08042C04
@@ -4264,7 +4264,7 @@ sub_8042F88: @ 8042F88
adds r0, r1
ldr r2, _08042FB0
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
ldr r0, _08042FB4
bl SetMainCallback2
pop {r0}
@@ -4569,7 +4569,7 @@ _080431DA:
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
@@ -4593,7 +4593,7 @@ _080431DA:
adds r0, r6
movs r1, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp]
ldr r0, _08043284
str r0, [sp, 0x4]
@@ -4780,7 +4780,7 @@ sub_80433A0: @ 80433A0
ldr r1, _0804340C
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
ldr r4, _08043410
ldr r3, [r5]
@@ -7161,7 +7161,7 @@ _0804460C:
ldr r2, _08044690
adds r0, r2
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
@@ -7270,7 +7270,7 @@ _0804470C:
ldr r2, _08044788
adds r0, r2
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
@@ -7286,7 +7286,7 @@ _0804470C:
_08044766:
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
@@ -8644,7 +8644,7 @@ sub_80451A0: @ 80451A0
adds r0, r7, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
mov r0, sp
bl StringGetEnd10
adds r4, 0x3
@@ -8668,13 +8668,13 @@ sub_80451A0: @ 80451A0
lsrs r6, r0, 24
adds r0, r7, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r7, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -8748,13 +8748,13 @@ _08045256:
mov r10, r1
adds r0, r7, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
str r4, [sp, 0xC]
cmp r0, 0x1
bne _08045338
adds r0, r7, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08045338
mov r4, r8
@@ -9005,7 +9005,7 @@ sub_8045458: @ 8045458
ldr r1, _08045500
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl SpeciesToNationalPokedexNum
@@ -9109,7 +9109,7 @@ draw_status_ailment_maybe: @ 8045540
ldr r1, _080455AC
adds r0, r1
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
bl battle_type_is_double
lsls r0, 24
@@ -9134,7 +9134,7 @@ _080455B0:
ldr r1, _080455F0
adds r0, r1
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
movs r1, 0x11
mov r8, r1
@@ -9719,7 +9719,7 @@ _08045A92:
_08045A9A:
mov r0, r9
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -9730,7 +9730,7 @@ _08045AAE:
bhi _08045AC8
mov r0, r9
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
@@ -9745,7 +9745,7 @@ _08045AC8:
_08045AD0:
mov r0, r9
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
@@ -9762,11 +9762,11 @@ _08045AEE:
bl load_gfxc_health_bar
mov r0, r9
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
mov r0, r9
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
movs r0, 0
str r0, [sp]
@@ -9795,19 +9795,19 @@ _08045B38:
bl load_gfxc_health_bar
mov r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
mov r0, r9
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r0, r9
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
ldr r6, _08045BE8
lsls r1, r4, 2
@@ -9884,7 +9884,7 @@ _08045BF0:
_08045BF8:
mov r0, r9
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -9900,11 +9900,11 @@ _08045C14:
bl load_gfxc_health_bar
mov r0, r9
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
mov r0, r9
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
movs r0, 0
str r0, [sp]
@@ -10209,7 +10209,7 @@ _08045E54:
ldr r1, _08045EF8
adds r0, r1
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r0, 24
adds r1, r5, 0
@@ -11047,7 +11047,7 @@ _080464C8:
_080464D6:
adds r0, r1
movs r1, 0x26
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl ball_number_to_ball_processing_index
@@ -12090,7 +12090,7 @@ _08046D20:
mov r8, r1
_08046D34:
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
movs r0, 0
@@ -13705,7 +13705,7 @@ _080479A4:
_080479B2:
adds r0, r1
movs r1, 0x26
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
pop {r4}
@@ -14726,13 +14726,13 @@ _080481BA:
adds r4, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldrb r2, [r7]
lsls r2, 19
movs r1, 0xE0
@@ -14783,13 +14783,13 @@ _0804822C:
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldrb r2, [r7]
lsls r2, 19
movs r3, 0xE0
@@ -15298,13 +15298,13 @@ _080486DE:
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldrb r2, [r7]
lsls r2, 19
movs r1, 0xE0
@@ -15355,13 +15355,13 @@ _08048752:
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldrb r2, [r7]
lsls r2, 19
movs r3, 0xE0
@@ -16408,7 +16408,7 @@ _08049018:
_0804901E:
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -16417,13 +16417,13 @@ _0804901E:
bne _0804905E
adds r0, r4, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _0804905E
adds r0, r4, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
mov r0, sp
ldr r1, _08049074
bl StringCompareWithoutExtCtrlCodes
@@ -16432,7 +16432,7 @@ _0804901E:
adds r0, r4, 0
movs r1, 0x2
ldr r2, _08049078
- bl pokemon_setattr
+ bl SetMonData
_0804905E:
adds r4, 0x64
subs r5, 0x1
@@ -18775,7 +18775,7 @@ sub_804A2B4: @ 804A2B4
adds r0, r4, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
adds r0, r5, 0
mov r1, sp
bl StringCopy10
@@ -18783,7 +18783,7 @@ sub_804A2B4: @ 804A2B4
bl pokemon_get_gender
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
b _0804A31E
.align 2, 0
_0804A2F0: .4byte 0x03004360
@@ -18796,7 +18796,7 @@ _0804A2F4:
adds r0, r4, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
adds r0, r5, 0
mov r1, sp
bl StringCopy10
@@ -18804,7 +18804,7 @@ _0804A2F4:
bl pokemon_get_gender
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
_0804A31E:
ldr r0, _0804A338
adds r1, r5, 0
@@ -18869,7 +18869,7 @@ _0804A390:
_0804A396:
adds r0, r5, r2
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r1, r4, 1
add r1, sp
strh r0, [r1]
@@ -18989,7 +18989,7 @@ _0804A484:
adds r0, r4, 0
movs r1, 0x2
add r2, sp, 0x4
- bl PokemonGetField
+ bl GetMonData
mov r0, sp
adds r0, 0x22
add r1, sp, 0x4
@@ -19108,7 +19108,7 @@ sub_804A51C: @ 804A51C
adds r0, r4, 0
movs r1, 0x38
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r6, r0, 24
adds r0, r4, 0
@@ -19118,7 +19118,7 @@ sub_804A51C: @ 804A51C
adds r0, r4, 0
movs r1, 0x2
add r2, sp, 0xC
- bl PokemonGetField
+ bl GetMonData
b _0804A5D4
.align 2, 0
_0804A59C: .4byte 0x03004824
@@ -19133,7 +19133,7 @@ _0804A5A8:
adds r0, r4, 0
movs r1, 0x38
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r6, r0, 24
adds r0, r4, 0
@@ -19143,7 +19143,7 @@ _0804A5A8:
adds r0, r4, 0
movs r1, 0x2
add r2, sp, 0xC
- bl PokemonGetField
+ bl GetMonData
_0804A5D4:
ldr r1, _0804A660
ldr r5, [r1]
@@ -20106,7 +20106,7 @@ _0804AD22:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r1, 0x1
bne _0804AD54
@@ -20125,7 +20125,7 @@ _0804AD50: .4byte 0x03004360
_0804AD54:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r1, 0
bne _0804AD72
@@ -20181,7 +20181,7 @@ _0804ADB6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r1, 0x1
bne _0804ADE8
@@ -20200,7 +20200,7 @@ _0804ADE4: .4byte 0x030045c0
_0804ADE8:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r1, 0
bne _0804AE06
@@ -20271,12 +20271,12 @@ _0804AE5C:
adds r4, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r0, r5, 16
asrs r0, 16
@@ -20316,12 +20316,12 @@ _0804AEBC:
adds r4, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r0, r5, 16
asrs r0, 16
@@ -20921,13 +20921,13 @@ _0804B32C: .4byte 0x030045c0
_0804B330:
mov r0, r10
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
mov r0, r10
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
lsls r0, r5, 3
ldr r1, _0804B390
@@ -21460,7 +21460,7 @@ _0804B7F4:
ldr r0, _0804B8F0
movs r1, 0x7
add r2, sp, 0x4
- bl PokemonGetField
+ bl GetMonData
adds r4, 0x1C
adds r0, r4, 0
add r1, sp, 0x4
@@ -21690,13 +21690,13 @@ sub_804BA18: @ 804BA18
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0804BA5A
adds r0, r4, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl SpeciesToNationalPokedexNum
@@ -21764,7 +21764,7 @@ sub_804BA94: @ 804BA94
adds r7, r1, r0
adds r0, r7, 0
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r1, r4, 0
@@ -21773,7 +21773,7 @@ sub_804BA94: @ 804BA94
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x40
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r8, r0
@@ -21806,13 +21806,13 @@ _0804BAE8:
strb r1, [r0]
adds r0, r7, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0804BB28
adds r0, r7, 0
movs r1, 0x20
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
_0804BB28:
mov r0, r8
cmp r0, 0xFF
@@ -22615,7 +22615,7 @@ sub_804C1A8: @ 804C1A8
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
ldr r0, _0804C230
mov r1, sp
bl StringCopy10
@@ -22625,7 +22625,7 @@ sub_804C1A8: @ 804C1A8
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
ldr r0, _0804C238
mov r1, sp
bl StringCopy10
@@ -22662,7 +22662,7 @@ _0804C23C:
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
ldr r0, _0804C298
mov r1, sp
bl StringCopy10
@@ -25255,7 +25255,7 @@ sub_804D8E4: @ 804D8E4
adds r0, r1
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
ldr r0, _0804D93C
mov r1, sp
bl StringCopy10
@@ -25298,7 +25298,7 @@ sub_804D948: @ 804D948
ldr r1, _0804DAA8
adds r0, r1
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -25321,85 +25321,85 @@ sub_804D948: @ 804D948
adds r2, 0xE
adds r0, r6, 0
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0xF
adds r0, r6, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x10
adds r0, r6, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x11
adds r0, r6, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x12
adds r0, r6, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x13
adds r0, r6, 0
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x2
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x2B
adds r0, r6, 0
movs r1, 0x7
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x36
adds r0, r6, 0
movs r1, 0x31
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x14
adds r0, r6, 0
movs r1, 0x2E
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1D
adds r0, r6, 0
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1E
adds r0, r6, 0
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1C
adds r0, r6, 0
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x1F
adds r0, r6, 0
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x20
adds r0, r6, 0
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x37
adds r0, r6, 0
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
movs r1, 0x23
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r4, sp
adds r4, 0x35
movs r0, 0
@@ -25425,12 +25425,12 @@ sub_804D948: @ 804D948
adds r0, r6, 0
movs r1, 0x40
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r5, 0
adds r2, 0x28
adds r0, r6, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _0804DAC0
.align 2, 0
_0804DAA4: .4byte gIngameTrades
@@ -25442,7 +25442,7 @@ _0804DAB4:
adds r2, 0x28
adds r0, r6, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
_0804DAC0:
ldr r0, _0804DAD0
bl pokemon_calc_effective_stats
@@ -25511,14 +25511,14 @@ sub_804DB2C: @ 804DB2C
ldr r4, _0804DB5C
adds r0, r4
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0804DB60
ldrh r0, [r6]
muls r0, r5
adds r0, r4
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
b _0804DB62
@@ -26230,7 +26230,7 @@ _0804E1E2:
adds r0, r1
adds r1, r4, 0
adds r1, 0x43
- bl PokemonGetField
+ bl GetMonData
adds r0, r5, r0
lsls r0, 24
lsrs r5, r0, 24
diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s
index f3809002f..ecc7a720e 100644
--- a/asm/rom_8065394.s
+++ b/asm/rom_8065394.s
@@ -4408,7 +4408,7 @@ s7E_load_first_pokenames: @ 80673C0
adds r0, r1
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xB
muls r1, r0
ldr r0, _08067408
@@ -4448,7 +4448,7 @@ s7F_load_pokename_team: @ 806740C
ldr r4, [r4]
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
bl StringGetEnd10
movs r0, 0
@@ -4800,7 +4800,7 @@ _080676F4: .4byte 0x0202e8dc
_080676F8:
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08067728
adds r0, r4, 0
@@ -4833,7 +4833,7 @@ _0806772E:
adds r0, r4, 0
movs r1, 0xB
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
@@ -13141,7 +13141,7 @@ _0806B6C2:
bne _0806B6F6
ldr r0, _0806B6EC
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806B6F0
ldrb r0, [r4, 0x4]
@@ -13208,7 +13208,7 @@ _0806B74A:
bne _0806B77E
ldr r0, _0806B774
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806B778
ldrb r0, [r4, 0x6]
@@ -13276,7 +13276,7 @@ _0806B7D2:
bne _0806B80A
ldr r0, _0806B800
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806B804
ldrb r0, [r4, 0x8]
@@ -13335,7 +13335,7 @@ _0806B84C:
bne _0806B88E
ldr r0, _0806B87C
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806B880
ldrb r0, [r4, 0xA]
@@ -13444,7 +13444,7 @@ sub_806B908: @ 806B908
bl sub_806B9A4
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806B958
ldrb r0, [r4, 0x4]
@@ -13468,7 +13468,7 @@ _0806B964:
adds r0, r5, 0
adds r0, 0x64
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806B980
ldrb r0, [r4, 0x6]
@@ -13964,7 +13964,7 @@ _0806BCEE:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806BD38
adds r0, r4, 0
@@ -14282,12 +14282,12 @@ sub_806BF24: @ 806BF24
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806BF56
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806BF56
movs r4, 0x5
@@ -15044,7 +15044,7 @@ _0806C500:
ldr r1, _0806C520
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806C528
_0806C518:
@@ -15076,7 +15076,7 @@ _0806C538:
ldr r1, _0806C574
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806C528
_0806C554:
@@ -15117,7 +15117,7 @@ _0806C57C:
ldr r5, _0806C5B0
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806C5B4
movs r0, 0x2
@@ -15130,7 +15130,7 @@ _0806C5B4:
adds r0, r5, 0
adds r0, 0x64
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806C64E
movs r0, 0x3
@@ -15159,7 +15159,7 @@ _0806C5EC:
ldr r5, _0806C600
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806C604
movs r0, 0x4
@@ -15171,7 +15171,7 @@ _0806C604:
adds r0, r5, 0
adds r0, 0x64
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806C64E
movs r0, 0x5
@@ -17508,13 +17508,13 @@ sub_806D84C: @ 806D84C
lsrs r5, 24
adds r0, r6, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r6, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
@@ -17556,13 +17556,13 @@ sub_806D880: @ 806D880
mov r10, r1
mov r0, r8
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, r8
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0806D908
movs r2, 0x5
str r2, [sp]
@@ -17608,7 +17608,7 @@ sub_806D90C: @ 806D90C
adds r7, r5, 0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806D95A
bl sub_806B528
@@ -17957,7 +17957,7 @@ _0806DBAC:
ldr r1, _0806DBE8
adds r0, r1
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
@@ -17990,7 +17990,7 @@ _0806DBF0:
ldr r1, _0806DC30
adds r0, r1
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
@@ -18042,7 +18042,7 @@ _0806DC50:
ldr r1, _0806DCCC
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806DCB0
mov r0, r8
@@ -18455,7 +18455,7 @@ sub_806DF60: @ 806DF60
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806DFAC
ldr r1, _0806DFA8
@@ -18475,7 +18475,7 @@ _0806DFA8: .4byte 0x02020004
_0806DFAC:
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl itemid_is_mail
@@ -18585,7 +18585,7 @@ sub_806E07C: @ 806E07C
adds r6, r5, 0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806E0BC
bl sub_806B528
@@ -18642,7 +18642,7 @@ GetMonNickname: @ 806E0EC
adds r4, r1, 0
movs r1, 0x2
adds r2, r4, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
bl StringGetEnd10
pop {r4}
@@ -18862,7 +18862,7 @@ sub_806E294: @ 806E294
lsls r5, 24
lsrs r5, 24
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -18882,12 +18882,12 @@ sub_806E2C0: @ 806E2C0
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806E32E
adds r0, r5, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806E32E
adds r0, r5, 0
@@ -19032,7 +19032,7 @@ sub_806E3C0: @ 806E3C0
bl GetMonNickname
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -19131,13 +19131,13 @@ sub_806E4A4: @ 806E4A4
lsrs r6, 24
mov r0, r8
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, r8
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
lsls r3, 16
lsrs r3, 16
@@ -19161,12 +19161,12 @@ sub_806E4E8: @ 806E4E8
adds r6, r5, 0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806E534
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806E534
bl sub_806B528
@@ -19348,13 +19348,13 @@ sub_806E630: @ 806E630
lsrs r6, 24
mov r0, r8
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, r8
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
lsls r3, 16
lsrs r3, 16
@@ -19378,12 +19378,12 @@ sub_806E674: @ 806E674
adds r6, r5, 0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0806E6C0
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0806E6C0
bl sub_806B528
@@ -19749,7 +19749,7 @@ _0806E940:
adds r0, r5, 0
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
_0806E958:
add sp, 0x4
@@ -19786,7 +19786,7 @@ sub_806E964: @ 806E964
ldr r4, _0806E9DC
ldr r0, [r4]
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r2, r0, 16
adds r7, r2, 0
@@ -19939,7 +19939,7 @@ sub_806EACC: @ 806EACC
ldr r4, _0806EB30
ldr r0, [r4]
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
ldrh r0, [r4, 0x6]
@@ -20116,7 +20116,7 @@ sub_806EC44: @ 806EC44
ldr r5, _0806ECA8
ldr r0, [r5]
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
ldr r2, _0806ECAC
movs r1, 0
@@ -20190,7 +20190,7 @@ sub_806ECE8: @ 806ECE8
ldr r5, _0806ED40
ldr r0, [r5]
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
@@ -20242,7 +20242,7 @@ _0806ED7C:
ldr r0, [r5]
movs r1, 0xC
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
b _0806ED9A
_0806ED92:
ldr r0, _0806EDAC
@@ -20318,7 +20318,7 @@ sub_806EE08: @ 806EE08
ldr r4, _0806EE50
ldr r0, [r4]
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x6]
ldr r0, _0806EE54
movs r1, 0x1
@@ -20590,7 +20590,7 @@ _0806F046:
adds r1, r4, 0
adds r1, 0xD
adds r0, r6, 0
- bl PokemonGetField
+ bl GetMonData
cmp r0, r5
bne _0806F058
movs r0, 0x1
@@ -21144,7 +21144,7 @@ sub_806F490: @ 806F490
ldr r5, _0806F520
ldr r0, [r5]
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -21720,7 +21720,7 @@ _0806F964:
ldr r0, [r4]
movs r1, 0x39
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
ldrh r0, [r4, 0x6]
movs r1, 0x1
bl sub_80A9538
@@ -21802,7 +21802,7 @@ sub_806FA18: @ 806FA18
adds r2, r3
adds r2, 0x1E
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r4, 0x4]
ldr r1, _0806FAD0
adds r6, r1
@@ -21827,11 +21827,11 @@ sub_806FA18: @ 806FA18
adds r0, r1
str r0, [r4]
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x1C]
ldr r0, [r4]
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x1E]
ldr r0, _0806FADC
str r0, [r4, 0xC]
@@ -22178,7 +22178,7 @@ sub_806FD90: @ 806FD90
bne _0806FDBC
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0806FDB8
cmp r0, r1
bne _0806FDBC
@@ -22296,7 +22296,7 @@ sub_806FE2C: @ 806FE2C
bne _0806FEC2
ldr r0, [r5]
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r3, r8
adds r1, r3, r7
lsls r1, 3
@@ -22305,7 +22305,7 @@ sub_806FE2C: @ 806FE2C
strh r0, [r4, 0x1C]
ldr r0, [r5]
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x1E]
movs r3, 0x1C
ldrsh r1, [r4, r3]
@@ -22392,7 +22392,7 @@ _0806FF56:
ldr r4, _0806FF88
ldr r0, [r4]
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0806FF8C
mov r3, r8
adds r1, r3, r7
@@ -22566,7 +22566,7 @@ sub_8070088: @ 8070088
mov r8, r1
add r0, r8
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08070118
adds r0, r5, 0
@@ -22589,11 +22589,11 @@ sub_8070088: @ 8070088
add r0, r8
str r0, [r4]
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
strh r0, [r6, 0x14]
ldr r0, [r4]
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r6, 0x16]
ldrb r0, [r4, 0x5]
ldrh r1, [r4, 0x6]
@@ -22648,7 +22648,7 @@ _08070134:
strb r0, [r1]
ldr r0, [r4]
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
ldrh r1, [r6, 0x16]
subs r0, r1
strh r0, [r6, 0x18]
@@ -22714,7 +22714,7 @@ sub_80701DC: @ 80701DC
ldr r1, _08070288
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0807023A
bl battle_type_is_double
@@ -22837,7 +22837,7 @@ _0807030C:
adds r1, 0xD
mov r2, r8
adds r0, r7, r2
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -23171,7 +23171,7 @@ _080705B8:
movs r2, 0x1E
ldrsh r1, [r7, r2]
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
ldr r0, _08070610
@@ -23264,7 +23264,7 @@ sub_8070680: @ 8070680
ldr r5, _080706E8
ldr r0, [r5]
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x64
beq _080706F4
movs r4, 0
@@ -23275,7 +23275,7 @@ _080706B2:
ldr r1, _080706F0
adds r1, r4, r1
ldrb r1, [r1]
- bl PokemonGetField
+ bl GetMonData
lsls r1, r4, 1
adds r1, r7, r1
strh r0, [r1]
@@ -23337,7 +23337,7 @@ _08070724:
bl GetMonNickname
ldr r0, [r4]
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -23474,7 +23474,7 @@ _08070864:
ldr r1, _080708EC
adds r1, r7, r1
ldrb r1, [r1]
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, 0x6
lsls r1, 1
ldr r2, _080708F0
@@ -23610,7 +23610,7 @@ _08070982:
ldr r1, _08070A1C
adds r1, r7, r1
ldrb r1, [r1]
- bl PokemonGetField
+ bl GetMonData
adds r6, r7, 0x6
lsls r6, 1
add r6, r10
@@ -23702,13 +23702,13 @@ _08070A42:
lsrs r5, 24
adds r0, r6, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r6, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
lsls r3, 16
lsrs r3, 16
diff --git a/asm/rom_8074BAC.s b/asm/rom_8074BAC.s
index 3f0ab95cb..0a55d74f3 100644
--- a/asm/rom_8074BAC.s
+++ b/asm/rom_8074BAC.s
@@ -1578,7 +1578,7 @@ _08075798:
_0807579E:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r6, 0x2
adds r5, 0x2
@@ -6249,7 +6249,7 @@ _08077BA8:
_08077BC2:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
b _08077BDE
@@ -6330,7 +6330,7 @@ _08077C44:
ldr r1, _08077C74
adds r0, r1
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
b _08077C7E
.align 2, 0
@@ -6428,7 +6428,7 @@ _08077D04:
ldr r1, _08077D38
adds r0, r1
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
b _08077D42
.align 2, 0
@@ -6831,7 +6831,7 @@ _08078010:
_0807802A:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
b _08078046
@@ -8059,7 +8059,7 @@ _080788D4:
_080788E2:
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080788FC
_080788EE:
@@ -10557,7 +10557,7 @@ _08079B54:
ldr r1, _08079B90
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
b _08079B96
@@ -10587,7 +10587,7 @@ _08079B9E:
ldr r1, _08079BCC
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
b _08079BD2
@@ -11396,14 +11396,14 @@ _0807A1A4:
ldr r5, _0807A1F4
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
b _0807A200
.align 2, 0
@@ -11491,14 +11491,14 @@ _0807A26C:
ldr r5, _0807A2B0
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
b _0807A2BC
.align 2, 0
diff --git a/data/data2.s b/data/data2.s
index 3783dab93..0428e7ede 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -32324,8 +32324,7 @@ OtherText_Cancel::
OtherText_Lv::
.string "LV$"
-gUnknown_0842CC34:: @ 842CC34
-OtherText_Egg::
+gEggNickname:: @ 842CC34
.string "EGG$"
gUnknown_0842CC38:: @ 842CC38
diff --git a/data/text/battle_strings.s b/data/text/battle_strings.s
index e9195e261..b4542b1b9 100644
--- a/data/text/battle_strings.s
+++ b/data/text/battle_strings.s
@@ -1156,8 +1156,7 @@ gUnknown_08400E36:: @ 8400E36
BattleText_Format9:
.string "are$"
-gUnknown_08400E3A:: @ 8400E3A
-BattleText_BadEGG:
+gBadEggNickname:: @ 8400E3A
.string "Bad EGG$"
gUnknown_08400E42:: @ 8400E42
diff --git a/include/pokemon.h b/include/pokemon.h
new file mode 100644
index 000000000..9b29d4322
--- /dev/null
+++ b/include/pokemon.h
@@ -0,0 +1,94 @@
+#ifndef GUARD_POKEMON_H
+#define GUARD_POKEMON_H
+
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_OT_ID 1
+#define MON_DATA_NICKNAME 2
+#define MON_DATA_LANGUAGE 3
+#define MON_DATA_SANITY_BIT1 4
+#define MON_DATA_SANITY_BIT2 5
+#define MON_DATA_SANITY_BIT3 6
+#define MON_DATA_OT_NAME 7
+#define MON_DATA_MARKINGS 8
+#define MON_DATA_CHECKSUM 9
+#define MON_DATA_10 10
+#define MON_DATA_SPECIES 11
+#define MON_DATA_HELD_ITEM 12
+#define MON_DATA_MOVE1 13
+#define MON_DATA_MOVE2 14
+#define MON_DATA_MOVE3 15
+#define MON_DATA_MOVE4 16
+#define MON_DATA_PP1 17
+#define MON_DATA_PP2 18
+#define MON_DATA_PP3 19
+#define MON_DATA_PP4 20
+#define MON_DATA_PP_BONUSES 21
+#define MON_DATA_COOL 22
+#define MON_DATA_BEAUTY 23
+#define MON_DATA_CUTE 24
+#define MON_DATA_EXP 25
+#define MON_DATA_HP_EV 26
+#define MON_DATA_ATK_EV 27
+#define MON_DATA_DEF_EV 28
+#define MON_DATA_SPD_EV 29
+#define MON_DATA_SPATK_EV 30
+#define MON_DATA_SPDEF_EV 31
+#define MON_DATA_FRIENDSHIP 32
+#define MON_DATA_SMART 33
+#define MON_DATA_POKERUS 34
+#define MON_DATA_MET_LOCATION 35
+#define MON_DATA_MET_LEVEL 36
+#define MON_DATA_MET_GAME 37
+#define MON_DATA_POKEBALL 38
+#define MON_DATA_HP_IV 39
+#define MON_DATA_ATK_IV 40
+#define MON_DATA_DEF_IV 41
+#define MON_DATA_SPD_IV 42
+#define MON_DATA_SPATK_IV 43
+#define MON_DATA_SPDEF_IV 44
+#define MON_DATA_IS_EGG 45
+#define MON_DATA_ALT_ABILITY 46
+#define MON_DATA_TOUGH 47
+#define MON_DATA_SHEEN 48
+#define MON_DATA_OT_GENDER 49
+#define MON_DATA_COOL_RIBBON 50
+#define MON_DATA_BEAUTY_RIBBON 51
+#define MON_DATA_CUTE_RIBBON 52
+#define MON_DATA_SMART_RIBBON 53
+#define MON_DATA_TOUGH_RIBBON 54
+#define MON_DATA_STATUS 55
+#define MON_DATA_LEVEL 56
+#define MON_DATA_HP 57
+#define MON_DATA_MAX_HP 58
+#define MON_DATA_ATK 59
+#define MON_DATA_DEF 60
+#define MON_DATA_SPD 61
+#define MON_DATA_SPATK 62
+#define MON_DATA_SPDEF 63
+#define MON_DATA_64 64
+#define MON_DATA_SPECIES2 65
+#define MON_DATA_IVS 66
+#define MON_DATA_CHAMPION_RIBBON 67
+#define MON_DATA_WINNING_RIBBON 68
+#define MON_DATA_VICTORY_RIBBON 69
+#define MON_DATA_ARTIST_RIBBON 70
+#define MON_DATA_EFFORT_RIBBON 71
+#define MON_DATA_GIFT_RIBBON_1 72
+#define MON_DATA_GIFT_RIBBON_2 73
+#define MON_DATA_GIFT_RIBBON_3 74
+#define MON_DATA_GIFT_RIBBON_4 75
+#define MON_DATA_GIFT_RIBBON_5 76
+#define MON_DATA_GIFT_RIBBON_6 77
+#define MON_DATA_GIFT_RIBBON_7 78
+#define MON_DATA_FATEFUL_ENCOUNTER 79
+#define MON_DATA_KNOWN_MOVES 80
+#define MON_DATA_RIBBON_COUNT 81
+#define MON_DATA_RIBBONS 82
+#define MON_DATA_83 83
+#define MON_DATA_ATK2 84
+#define MON_DATA_DEF2 85
+#define MON_DATA_SPD2 86
+#define MON_DATA_SPATK2 87
+#define MON_DATA_SPDEF2 88
+
+#endif // GUARD_POKEMON_H
diff --git a/ld_script.txt b/ld_script.txt
index b9724883c..c323d4b30 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -74,6 +74,8 @@ SECTIONS {
src/rtc.o(.text);
src/main_menu.o(.text);
asm/rom3.o(.text);
+ src/pokemon.o(.text);
+ asm/rom_803D1FC.o(.text);
src/rng.o(.text);
asm/rom_8040EB4.o(.text);
src/play_time.o(.text);
diff --git a/src/pokemon.c b/src/pokemon.c
new file mode 100644
index 000000000..a2c98a71b
--- /dev/null
+++ b/src/pokemon.c
@@ -0,0 +1,607 @@
+#include "global.h"
+#include "text.h"
+#include "string_util.h"
+#include "pokemon.h"
+
+struct PokemonSubstruct0
+{
+ u16 species;
+ u16 heldItem;
+ u32 experience;
+ u8 ppBonuses;
+ u8 friendship;
+};
+
+struct PokemonSubstruct1
+{
+ u16 moves[4];
+ u8 pp[4];
+};
+
+struct PokemonSubstruct2
+{
+ u8 hpEV;
+ u8 attackEV;
+ u8 defenseEV;
+ u8 speedEV;
+ u8 spAttackEV;
+ u8 spDefenseEV;
+ u8 cool;
+ u8 beauty;
+ u8 cute;
+ u8 smart;
+ u8 tough;
+ u8 sheen;
+};
+
+struct PokemonSubstruct3
+{
+ u8 pokerus;
+ u8 metLocation;
+
+ u16 metLevel:7;
+ u16 metGame:4;
+ u16 pokeball:4;
+ u16 otGender:1;
+
+ u32 hpIV:5;
+ u32 attackIV:5;
+ u32 defenseIV:5;
+ u32 speedIV:5;
+ u32 spAttackIV:5;
+ u32 spDefenseIV:5;
+ u32 isEgg:1;
+ u32 altAbility:1;
+
+ u32 coolRibbon:3;
+ u32 beautyRibbon:3;
+ u32 cuteRibbon:3;
+ u32 smartRibbon:3;
+ u32 toughRibbon:3;
+ u32 championRibbon:1;
+ u32 winningRibbon:1;
+ u32 victoryRibbon:1;
+ u32 artistRibbon:1;
+ u32 effortRibbon:1;
+ u32 giftRibbon1:1;
+ u32 giftRibbon2:1;
+ u32 giftRibbon3:1;
+ u32 giftRibbon4:1;
+ u32 giftRibbon5:1;
+ u32 giftRibbon6:1;
+ u32 giftRibbon7:1;
+ u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald
+};
+
+union PokemonSubstruct
+{
+ struct PokemonSubstruct0 type0;
+ struct PokemonSubstruct1 type1;
+ struct PokemonSubstruct2 type2;
+ struct PokemonSubstruct3 type3;
+};
+
+struct BoxPokemon
+{
+ u32 personality;
+ u32 otId;
+ u8 nickname[10];
+ u8 language;
+ u8 isBadEgg:1;
+ u8 sanity2:1;
+ u8 sanity3:1;
+ u8 unused:5;
+ u8 otName[7];
+ u8 markings;
+ u16 checksum;
+ u16 unknown;
+
+ union
+ {
+ u32 raw[12];
+ union PokemonSubstruct substructs[4];
+ } secure;
+};
+
+struct Pokemon
+{
+ struct BoxPokemon box;
+ u32 status;
+ u8 level;
+ u8 pokerus;
+ u16 hp;
+ u16 maxHP;
+ u16 attack;
+ u16 defense;
+ u16 speed;
+ u16 spAttack;
+ u16 spDefense;
+};
+
+void ZeroPokemonBoxData(struct BoxPokemon *mon);
+
+u16 pokemon_calc_checksum(struct Pokemon *mon);
+
+void EncryptMon(struct Pokemon *mon);
+void DecryptMon(struct Pokemon *mon);
+union PokemonSubstruct *GetSubstruct(struct Pokemon *mon, u32 personality, u8 substructType);
+u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data);
+u32 GetMonBoxData(struct Pokemon *mon, s32 field, u8 *data);
+
+extern u8 gBadEggNickname[];
+extern u8 gEggNickname[];
+extern u32 gBitTable[];
+
+/*
+void ZeroPokemonBoxData(struct BoxPokemon *mon)
+{
+ u8 *raw = (u8 *)mon;
+ u32 i;
+ for (i = 0; i < sizeof(struct BoxPokemon); i++)
+ raw[i] = 0;
+}
+*/
+
+void EncryptMon(struct Pokemon *mon)
+{
+ u32 i;
+ for (i = 0; i < 12; i++)
+ {
+ mon->box.secure.raw[i] ^= mon->box.personality;
+ mon->box.secure.raw[i] ^= mon->box.otId;
+ }
+}
+
+void DecryptMon(struct Pokemon *mon)
+{
+ u32 i;
+ for (i = 0; i < 12; i++)
+ {
+ mon->box.secure.raw[i] ^= mon->box.otId;
+ mon->box.secure.raw[i] ^= mon->box.personality;
+ }
+}
+
+#define SUBSTRUCT_CASE(n, v1, v2, v3, v4) \
+case n: \
+ switch (substructType) \
+ { \
+ case 0: \
+ substruct = &substructs ## n [v1]; \
+ break; \
+ case 1: \
+ substruct = &substructs ## n [v2]; \
+ break; \
+ case 2: \
+ substruct = &substructs ## n [v3]; \
+ break; \
+ case 3: \
+ substruct = &substructs ## n [v4]; \
+ break; \
+ } \
+ break;
+
+union PokemonSubstruct *GetSubstruct(struct Pokemon *mon, u32 personality, u8 substructType)
+{
+ union PokemonSubstruct *substruct = NULL;
+
+ union PokemonSubstruct *substructs0 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs1 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs2 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs3 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs4 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs5 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs6 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs7 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs8 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs9 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs10 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs11 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs12 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs13 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs14 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs15 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs16 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs17 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs18 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs19 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs20 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs21 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs22 = mon->box.secure.substructs;
+ union PokemonSubstruct *substructs23 = mon->box.secure.substructs;
+
+ switch (personality % 24)
+ {
+ SUBSTRUCT_CASE( 0,0,1,2,3)
+ SUBSTRUCT_CASE( 1,0,1,3,2)
+ SUBSTRUCT_CASE( 2,0,2,1,3)
+ SUBSTRUCT_CASE( 3,0,3,1,2)
+ SUBSTRUCT_CASE( 4,0,2,3,1)
+ SUBSTRUCT_CASE( 5,0,3,2,1)
+ SUBSTRUCT_CASE( 6,1,0,2,3)
+ SUBSTRUCT_CASE( 7,1,0,3,2)
+ SUBSTRUCT_CASE( 8,2,0,1,3)
+ SUBSTRUCT_CASE( 9,3,0,1,2)
+ SUBSTRUCT_CASE(10,2,0,3,1)
+ SUBSTRUCT_CASE(11,3,0,2,1)
+ SUBSTRUCT_CASE(12,1,2,0,3)
+ SUBSTRUCT_CASE(13,1,3,0,2)
+ SUBSTRUCT_CASE(14,2,1,0,3)
+ SUBSTRUCT_CASE(15,3,1,0,2)
+ SUBSTRUCT_CASE(16,2,3,0,1)
+ SUBSTRUCT_CASE(17,3,2,0,1)
+ SUBSTRUCT_CASE(18,1,2,3,0)
+ SUBSTRUCT_CASE(19,1,3,2,0)
+ SUBSTRUCT_CASE(20,2,1,3,0)
+ SUBSTRUCT_CASE(21,3,1,2,0)
+ SUBSTRUCT_CASE(22,2,3,1,0)
+ SUBSTRUCT_CASE(23,3,2,1,0)
+ }
+
+ return substruct;
+}
+
+u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data)
+{
+ switch (field)
+ {
+ case MON_DATA_STATUS:
+ return mon->status;
+ case MON_DATA_LEVEL:
+ return mon->level;
+ case MON_DATA_HP:
+ return mon->hp;
+ case MON_DATA_MAX_HP:
+ return mon->maxHP;
+ case MON_DATA_ATK:
+ return mon->attack;
+ case MON_DATA_DEF:
+ return mon->defense;
+ case MON_DATA_SPD:
+ return mon->speed;
+ case MON_DATA_SPATK:
+ return mon->spAttack;
+ case MON_DATA_SPDEF:
+ return mon->spDefense;
+ case MON_DATA_64:
+ return mon->pokerus;
+ default:
+ return GetMonBoxData(mon, field, data);
+ }
+}
+
+u32 GetMonBoxData(struct Pokemon *mon, s32 field, u8 *data)
+{
+ u32 retVal = 0;
+ struct PokemonSubstruct0 *substruct0 = NULL;
+ struct PokemonSubstruct1 *substruct1 = NULL;
+ struct PokemonSubstruct2 *substruct2 = NULL;
+ struct PokemonSubstruct3 *substruct3 = NULL;
+
+ if (field > MON_DATA_10)
+ {
+ substruct0 = &(GetSubstruct(mon, mon->box.personality, 0)->type0);
+ substruct1 = &(GetSubstruct(mon, mon->box.personality, 1)->type1);
+ substruct2 = &(GetSubstruct(mon, mon->box.personality, 2)->type2);
+ substruct3 = &(GetSubstruct(mon, mon->box.personality, 3)->type3);
+
+ DecryptMon(mon);
+
+ if (pokemon_calc_checksum(mon) != mon->box.checksum)
+ {
+ mon->box.isBadEgg = 1;
+ mon->box.sanity3 = 1;
+ substruct3->isEgg = 1;
+ }
+ }
+
+ switch (field)
+ {
+ case MON_DATA_PERSONALITY:
+ retVal = mon->box.personality;
+ break;
+ case MON_DATA_OT_ID:
+ retVal = mon->box.otId;
+ break;
+ case MON_DATA_NICKNAME:
+ {
+ if (mon->box.isBadEgg)
+ {
+ StringCopy(data, gBadEggNickname);
+ retVal = StringLength(data);
+ }
+ else if (mon->box.sanity3)
+ {
+ StringCopy(data, gEggNickname);
+ retVal = StringLength(data);
+ }
+ else
+ {
+ retVal = 0;
+
+ while (retVal < 10 && mon->box.nickname[retVal] != EOS)
+ {
+ data[retVal] = mon->box.nickname[retVal];
+ retVal++;
+ }
+
+ data[retVal] = EOS;
+ ConvertInternationalString(data, mon->box.language);
+ retVal = StringLength(data);
+ }
+ break;
+ }
+ case MON_DATA_LANGUAGE:
+ retVal = mon->box.language;
+ break;
+ case MON_DATA_SANITY_BIT1:
+ retVal = mon->box.isBadEgg;
+ break;
+ case MON_DATA_SANITY_BIT2:
+ retVal = mon->box.sanity2;
+ break;
+ case MON_DATA_SANITY_BIT3:
+ retVal = mon->box.sanity3;
+ break;
+ case MON_DATA_OT_NAME:
+ {
+ retVal = 0;
+
+ while (retVal < 7 && mon->box.otName[retVal] != EOS)
+ {
+ data[retVal] = mon->box.otName[retVal];
+ retVal++;
+ }
+
+ data[retVal] = EOS;
+ break;
+ }
+ case MON_DATA_MARKINGS:
+ retVal = mon->box.markings;
+ break;
+ case MON_DATA_CHECKSUM:
+ retVal = mon->box.checksum;
+ break;
+ case MON_DATA_10:
+ retVal = mon->box.unknown;
+ break;
+ case MON_DATA_SPECIES:
+ retVal = mon->box.isBadEgg ? 412 : substruct0->species;
+ break;
+ case MON_DATA_HELD_ITEM:
+ retVal = substruct0->heldItem;
+ break;
+ case MON_DATA_EXP:
+ retVal = substruct0->experience;
+ break;
+ case MON_DATA_PP_BONUSES:
+ retVal = substruct0->ppBonuses;
+ break;
+ case MON_DATA_FRIENDSHIP:
+ retVal = substruct0->friendship;
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ retVal = substruct1->moves[field - MON_DATA_MOVE1];
+ break;
+ case MON_DATA_PP1:
+ case MON_DATA_PP2:
+ case MON_DATA_PP3:
+ case MON_DATA_PP4:
+ retVal = substruct1->pp[field - MON_DATA_PP1];
+ break;
+ case MON_DATA_HP_EV:
+ retVal = substruct2->hpEV;
+ break;
+ case MON_DATA_ATK_EV:
+ retVal = substruct2->attackEV;
+ break;
+ case MON_DATA_DEF_EV:
+ retVal = substruct2->defenseEV;
+ break;
+ case MON_DATA_SPD_EV:
+ retVal = substruct2->speedEV;
+ break;
+ case MON_DATA_SPATK_EV:
+ retVal = substruct2->spAttackEV;
+ break;
+ case MON_DATA_SPDEF_EV:
+ retVal = substruct2->spDefenseEV;
+ break;
+ case MON_DATA_COOL:
+ retVal = substruct2->cool;
+ break;
+ case MON_DATA_BEAUTY:
+ retVal = substruct2->beauty;
+ break;
+ case MON_DATA_CUTE:
+ retVal = substruct2->cute;
+ break;
+ case MON_DATA_SMART:
+ retVal = substruct2->smart;
+ break;
+ case MON_DATA_TOUGH:
+ retVal = substruct2->tough;
+ break;
+ case MON_DATA_SHEEN:
+ retVal = substruct2->sheen;
+ break;
+ case MON_DATA_POKERUS:
+ retVal = substruct3->pokerus;
+ break;
+ case MON_DATA_MET_LOCATION:
+ retVal = substruct3->metLocation;
+ break;
+ case MON_DATA_MET_LEVEL:
+ retVal = substruct3->metLevel;
+ break;
+ case MON_DATA_MET_GAME:
+ retVal = substruct3->metGame;
+ break;
+ case MON_DATA_POKEBALL:
+ retVal = substruct3->pokeball;
+ break;
+ case MON_DATA_OT_GENDER:
+ retVal = substruct3->otGender;
+ break;
+ case MON_DATA_HP_IV:
+ retVal = substruct3->hpIV;
+ break;
+ case MON_DATA_ATK_IV:
+ retVal = substruct3->attackIV;
+ break;
+ case MON_DATA_DEF_IV:
+ retVal = substruct3->defenseIV;
+ break;
+ case MON_DATA_SPD_IV:
+ retVal = substruct3->speedIV;
+ break;
+ case MON_DATA_SPATK_IV:
+ retVal = substruct3->spAttackIV;
+ break;
+ case MON_DATA_SPDEF_IV:
+ retVal = substruct3->spDefenseIV;
+ break;
+ case MON_DATA_IS_EGG:
+ retVal = substruct3->isEgg;
+ break;
+ case MON_DATA_ALT_ABILITY:
+ retVal = substruct3->altAbility;
+ break;
+ case MON_DATA_COOL_RIBBON:
+ retVal = substruct3->coolRibbon;
+ break;
+ case MON_DATA_BEAUTY_RIBBON:
+ retVal = substruct3->beautyRibbon;
+ break;
+ case MON_DATA_CUTE_RIBBON:
+ retVal = substruct3->cuteRibbon;
+ break;
+ case MON_DATA_SMART_RIBBON:
+ retVal = substruct3->smartRibbon;
+ break;
+ case MON_DATA_TOUGH_RIBBON:
+ retVal = substruct3->toughRibbon;
+ break;
+ case MON_DATA_CHAMPION_RIBBON:
+ retVal = substruct3->championRibbon;
+ break;
+ case MON_DATA_WINNING_RIBBON:
+ retVal = substruct3->winningRibbon;
+ break;
+ case MON_DATA_VICTORY_RIBBON:
+ retVal = substruct3->victoryRibbon;
+ break;
+ case MON_DATA_ARTIST_RIBBON:
+ retVal = substruct3->artistRibbon;
+ break;
+ case MON_DATA_EFFORT_RIBBON:
+ retVal = substruct3->effortRibbon;
+ break;
+ case MON_DATA_GIFT_RIBBON_1:
+ retVal = substruct3->giftRibbon1;
+ break;
+ case MON_DATA_GIFT_RIBBON_2:
+ retVal = substruct3->giftRibbon2;
+ break;
+ case MON_DATA_GIFT_RIBBON_3:
+ retVal = substruct3->giftRibbon3;
+ break;
+ case MON_DATA_GIFT_RIBBON_4:
+ retVal = substruct3->giftRibbon4;
+ break;
+ case MON_DATA_GIFT_RIBBON_5:
+ retVal = substruct3->giftRibbon5;
+ break;
+ case MON_DATA_GIFT_RIBBON_6:
+ retVal = substruct3->giftRibbon6;
+ break;
+ case MON_DATA_GIFT_RIBBON_7:
+ retVal = substruct3->giftRibbon7;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ retVal = substruct3->fatefulEncounter;
+ break;
+ case MON_DATA_SPECIES2:
+ retVal = substruct0->species;
+ if (substruct0->species && (substruct3->isEgg || mon->box.isBadEgg))
+ retVal = 412;
+ break;
+ case MON_DATA_IVS:
+ retVal = substruct3->hpIV | (substruct3->attackIV << 5) | (substruct3->defenseIV << 10) | (substruct3->speedIV << 15) | (substruct3->spAttackIV << 20) | (substruct3->spDefenseIV << 25);
+ break;
+ case MON_DATA_KNOWN_MOVES:
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ u16 *moves = (u16 *)data;
+ s32 i = 0;
+
+ while (moves[i] != 355)
+ {
+ u16 move = moves[i];
+ if (substruct1->moves[0] == move
+ || substruct1->moves[1] == move
+ || substruct1->moves[2] == move
+ || substruct1->moves[3] == move)
+ retVal |= gBitTable[i];
+ i++;
+ }
+ }
+ break;
+ case MON_DATA_RIBBON_COUNT:
+ retVal = 0;
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ retVal += substruct3->coolRibbon;
+ retVal += substruct3->beautyRibbon;
+ retVal += substruct3->cuteRibbon;
+ retVal += substruct3->smartRibbon;
+ retVal += substruct3->toughRibbon;
+ retVal += substruct3->championRibbon;
+ retVal += substruct3->winningRibbon;
+ retVal += substruct3->victoryRibbon;
+ retVal += substruct3->artistRibbon;
+ retVal += substruct3->effortRibbon;
+ retVal += substruct3->giftRibbon1;
+ retVal += substruct3->giftRibbon2;
+ retVal += substruct3->giftRibbon3;
+ retVal += substruct3->giftRibbon4;
+ retVal += substruct3->giftRibbon5;
+ retVal += substruct3->giftRibbon6;
+ retVal += substruct3->giftRibbon7;
+ }
+ break;
+ case MON_DATA_RIBBONS:
+ retVal = 0;
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ retVal = substruct3->championRibbon
+ | (substruct3->coolRibbon << 1)
+ | (substruct3->beautyRibbon << 4)
+ | (substruct3->cuteRibbon << 7)
+ | (substruct3->smartRibbon << 10)
+ | (substruct3->toughRibbon << 13)
+ | (substruct3->winningRibbon << 16)
+ | (substruct3->victoryRibbon << 17)
+ | (substruct3->artistRibbon << 18)
+ | (substruct3->effortRibbon << 19)
+ | (substruct3->giftRibbon1 << 20)
+ | (substruct3->giftRibbon2 << 21)
+ | (substruct3->giftRibbon3 << 22)
+ | (substruct3->giftRibbon4 << 23)
+ | (substruct3->giftRibbon5 << 24)
+ | (substruct3->giftRibbon6 << 25)
+ | (substruct3->giftRibbon7 << 26);
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (field > MON_DATA_10)
+ EncryptMon(mon);
+
+ return retVal;
+}