diff options
author | YamaArashi <shadow962@live.com> | 2016-09-08 20:25:40 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-09-08 20:25:40 -0700 |
commit | 06bed8be90c865057378482f2b179749b082619c (patch) | |
tree | 6f9b516a00841e7225290a0d71e9e5d97dd58777 | |
parent | 9ba7169baaee0645f406d95b426f1b2bf750c72e (diff) |
starting decompliation of pokemon functions
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | asm/rom3.s | 11100 | ||||
-rw-r--r-- | asm/rom4.s | 2 | ||||
-rw-r--r-- | asm/rom5.s | 1610 | ||||
-rw-r--r-- | asm/rom_803D1FC.s | 7860 | ||||
-rw-r--r-- | asm/rom_8040EB4.s | 358 | ||||
-rw-r--r-- | asm/rom_8065394.s | 148 | ||||
-rw-r--r-- | asm/rom_8074BAC.s | 24 | ||||
-rw-r--r-- | data/data2.s | 3 | ||||
-rw-r--r-- | data/text/battle_strings.s | 3 | ||||
-rw-r--r-- | include/pokemon.h | 94 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/pokemon.c | 607 |
13 files changed, 10419 insertions, 11394 deletions
@@ -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; +} |