summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf2
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/asm/party.s (renamed from arm9/asm/unk_0206B8A4.s)18
-rw-r--r--arm9/asm/pokemon.s9049
-rw-r--r--arm9/asm/scrcmd.s52
-rw-r--r--arm9/asm/scrcmd_12.s68
-rw-r--r--arm9/asm/scrcmd_18.s204
-rw-r--r--arm9/asm/scrcmd_24.s6
-rw-r--r--arm9/asm/scrcmd_3.s2
-rw-r--r--arm9/asm/scrcmd_4.s8
-rw-r--r--arm9/asm/scrcmd_5.s14
-rw-r--r--arm9/asm/scrcmd_9.s4
-rw-r--r--arm9/asm/unk_0200AA80.s8
-rw-r--r--arm9/asm/unk_02011744.s4
-rw-r--r--arm9/asm/unk_02023C40.s34
-rw-r--r--arm9/asm/unk_02025658.s42
-rw-r--r--arm9/asm/unk_02026CD0.s18
-rw-r--r--arm9/asm/unk_0202B034.s32
-rw-r--r--arm9/asm/unk_0202BE98.s6
-rw-r--r--arm9/asm/unk_0202C144.s4
-rw-r--r--arm9/asm/unk_02035068.s14
-rw-r--r--arm9/asm/unk_020377F0.s22
-rw-r--r--arm9/asm/unk_0204653C.s24
-rw-r--r--arm9/asm/unk_02047500.s2
-rw-r--r--arm9/asm/unk_020476CC.s20
-rw-r--r--arm9/asm/unk_0204A01C.s62
-rw-r--r--arm9/asm/unk_0204AB0C.s4
-rw-r--r--arm9/asm/unk_0204B9EC.s6
-rw-r--r--arm9/asm/unk_0204BE14.s2
-rw-r--r--arm9/asm/unk_02050E48.s8
-rw-r--r--arm9/asm/unk_02054C14.s12
-rw-r--r--arm9/asm/unk_0205EC84.s10
-rw-r--r--arm9/asm/unk_0205FA2C.s2
-rw-r--r--arm9/asm/unk_020603B0.s6
-rw-r--r--arm9/asm/unk_02060CCC.s20
-rw-r--r--arm9/asm/unk_0206439C.s2
-rw-r--r--arm9/asm/unk_020653EC.s4
-rw-r--r--arm9/asm/unk_0206ABC4.s4
-rw-r--r--arm9/asm/unk_0206B16C.s20
-rw-r--r--arm9/asm/unk_0206B688.s20
-rw-r--r--arm9/asm/unk_0206BB5C.s22
-rw-r--r--arm9/asm/unk_0206C700.s52
-rw-r--r--arm9/asm/unk_0206E5B4.s730
-rw-r--r--arm9/asm/unk_0206F3FC.s98
-rw-r--r--arm9/asm/unk_02072548.s22
-rw-r--r--arm9/asm/unk_02073710.s4
-rw-r--r--arm9/asm/unk_02073DA8.s18
-rw-r--r--arm9/asm/unk_0207550C.s106
-rw-r--r--arm9/asm/unk_02079C70.s108
-rw-r--r--arm9/asm/unk_0207FD00.s162
-rw-r--r--arm9/asm/unk_02080C38.s22
-rw-r--r--arm9/asm/unk_020828BC.s20
-rw-r--r--arm9/asm/unk_020842DC.s138
-rw-r--r--arm9/asm/unk_020854E0.s26
-rw-r--r--arm9/asm/unk_020859C0.s10
-rw-r--r--arm9/asm/unk_02086084.s14
-rw-r--r--arm9/asm/unk_02086414.s8
-rw-r--r--arm9/asm/unk_02086FA8.s4
-rw-r--r--arm9/asm/unk_02087D00.s16
-rw-r--r--arm9/asm/unk_02088DD8.s8
-rw-r--r--arm9/global.inc76
-rw-r--r--arm9/lib/include/MI_memory.h2
-rw-r--r--arm9/modules/05/asm/module_05.s332
-rw-r--r--arm9/modules/06/asm/module_06.s228
-rw-r--r--arm9/modules/07/asm/module_07.s36
-rw-r--r--arm9/modules/08/asm/module_08.s6
-rw-r--r--arm9/modules/09/asm/module_09.s84
-rw-r--r--arm9/modules/11/asm/module_11.s782
-rw-r--r--arm9/modules/12/asm/module_12.s88
-rw-r--r--arm9/modules/14/asm/module_14.s188
-rw-r--r--arm9/modules/16/asm/module_16.s166
-rw-r--r--arm9/modules/17/asm/module_17.s2
-rw-r--r--arm9/modules/27/asm/module_27.s22
-rw-r--r--arm9/modules/28/asm/module_28.s12
-rw-r--r--arm9/modules/35/asm/module_35.s10
-rw-r--r--arm9/modules/39/asm/module_39.s8
-rw-r--r--arm9/modules/56/asm/module_56.s16
-rw-r--r--arm9/modules/62/asm/module_62.s30
-rw-r--r--arm9/modules/65/asm/module_65.s8
-rw-r--r--arm9/modules/67/asm/module_67.s2
-rw-r--r--arm9/modules/69/asm/module_69.s40
-rw-r--r--arm9/modules/70/asm/module_70.s2
-rw-r--r--arm9/modules/71/asm/module_71.s118
-rw-r--r--arm9/modules/76/asm/module_76.s10
-rw-r--r--arm9/modules/80/asm/module_80.s130
-rw-r--r--arm9/modules/81/asm/module_81.s18
-rw-r--r--arm9/modules/83/asm/module_83.s148
-rw-r--r--arm9/src/pokemon.c3741
-rw-r--r--arm9/src/string_util.c3
-rw-r--r--include/constants/abilities.h129
-rw-r--r--include/constants/global.h7
-rw-r--r--include/constants/items.h448
-rw-r--r--include/constants/moves.h473
-rw-r--r--include/constants/pokemon.h407
-rw-r--r--include/constants/sinnoh_dex.h158
-rw-r--r--include/filesystem.h1
-rw-r--r--include/global.h8
-rw-r--r--include/math_util.h6
-rw-r--r--include/move_data.h7
-rw-r--r--include/party.h19
-rw-r--r--include/pokemon.h508
-rw-r--r--include/proto.h23
-rw-r--r--include/save_block_2.h18
-rw-r--r--include/seals.h15
-rw-r--r--include/string16.h17
-rw-r--r--include/string_util.h3
-rw-r--r--include/text.h6
107 files changed, 8295 insertions, 11695 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 9fb4de49..adf49127 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -366,7 +366,7 @@ SECTIONS {
unk_0206ABC4.o (.text)
unk_0206B16C.o (.text)
unk_0206B688.o (.text)
- unk_0206B8A4.o (.text)
+ party.o (.text)
unk_0206BB28.o (.text)
unk_0206BB5C.o (.text)
unk_0206BF90.o (.text)
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index dfb38bb4..261c41d5 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -246,7 +246,7 @@ Static arm9
Object unk_0206ABC4.o
Object unk_0206B16C.o
Object unk_0206B688.o
- Object unk_0206B8A4.o
+ Object party.o
Object unk_0206BB28.o
Object unk_0206BB5C.o
Object unk_0206BF90.o
diff --git a/arm9/asm/unk_0206B8A4.s b/arm9/asm/party.s
index 6938e252..de141e25 100644
--- a/arm9/asm/unk_0206B8A4.s
+++ b/arm9/asm/party.s
@@ -153,13 +153,13 @@ _0206B992:
pop {r3-r7, pc}
.balign 4
- thumb_func_start FUN_0206B9AC
-FUN_0206B9AC: ; 0x0206B9AC
+ thumb_func_start GetPartyCount
+GetPartyCount: ; 0x0206B9AC
ldr r0, [r0, #0x4]
bx lr
- thumb_func_start FUN_0206B9B0
-FUN_0206B9B0: ; 0x0206B9B0
+ thumb_func_start GetPartyMonByIndex
+GetPartyMonByIndex: ; 0x0206B9B0
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
@@ -211,12 +211,12 @@ _0206BA00:
add r0, r4, #0x0
mov r1, #0xab
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
mov r1, #0xab
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
sub r2, r7, r0
mov r3, #0x1d
_0206BA24:
@@ -325,8 +325,8 @@ _0206BAD8:
pop {r3-r4}
bx lr
- thumb_func_start FUN_0206BAE4
-FUN_0206BAE4: ; 0x0206BAE4
+ thumb_func_start PartyHasMon
+PartyHasMon: ; 0x0206BAE4
push {r3-r7, lr}
add r6, r0, #0x0
ldr r0, [r6, #0x4]
@@ -340,7 +340,7 @@ _0206BAF6:
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _0206BB0E
ldr r0, [r6, #0x4]
diff --git a/arm9/asm/pokemon.s b/arm9/asm/pokemon.s
deleted file mode 100644
index 3bfbd197..00000000
--- a/arm9/asm/pokemon.s
+++ /dev/null
@@ -1,9049 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .include "constants/species.h"
-
- .extern gGameLanguage
- .extern gGameVersion
-
- .section .rodata
-
- .global sItemOdds
-sItemOdds: ; 0x020F7ECC
- .short 0x002D, 0x005F
- .short 0x0014, 0x0050
-
- .global sFriendshipModTable
-sFriendshipModTable: ; 0x020F7ED4
- .byte 5, 3, 2
- .byte 5, 3, 2
- .byte 1, 1, 0
- .byte 3, 2, 1
- .byte 1, 1, 0
- .byte 1, 1, 1
- .byte -1, -1, -1
- .byte -5, -5, -10
- .byte -5, -5, -10
- .byte 3, 2, 1
-
- .global sLegendaryMonsList
-sLegendaryMonsList: ; 0x020F7EF2
- .short SPECIES_MEWTWO
- .short SPECIES_MEW
- .short SPECIES_HO_OH
- .short SPECIES_LUGIA
- .short SPECIES_CELEBI
- .short SPECIES_KYOGRE
- .short SPECIES_GROUDON
- .short SPECIES_RAYQUAZA
- .short SPECIES_JIRACHI
- .short SPECIES_DEOXYS
- .short SPECIES_DIALGA
- .short SPECIES_PALKIA
- .short SPECIES_GIRATINA
- .short SPECIES_PHIONE
- .short SPECIES_MANAPHY
- .short SPECIES_DARKRAI
- .short SPECIES_SHAYMIN
- .short SPECIES_ARCEUS
-
- .global UNK_020F7F16
-UNK_020F7F16: ; 0x020F7F16
- .byte 0, 0, 0, 0, 0
- .byte 1, 0, 0, 0, -1
- .byte 1, 0, -1, 0, 0
- .byte 1, -1, 0, 0, 0
- .byte 1, 0, 0, -1, 0
- .byte -1, 0, 0, 0, 1
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, -1, 0, 1
- .byte 0, -1, 0, 0, 1
- .byte 0, 0, 0, -1, 1
- .byte -1, 0, 1, 0, 0
- .byte 0, 0, 1, 0, -1
- .byte 0, 0, 0, 0, 0
- .byte 0, -1, 1, 0, 0
- .byte 0, 0, 1, -1, 0
- .byte -1, 1, 0, 0, 0
- .byte 0, 1, 0, 0, -1
- .byte 0, 1, -1, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 1, 0, -1, 0
- .byte -1, 0, 0, 1, 0
- .byte 0, 0, 0, 1, -1
- .byte 0, 0, -1, 1, 0
- .byte 0, -1, 0, 1, 0
- .byte 0, 0, 0, 0, 0
-
- .global sNatureStatMods
-sNatureStatMods: ; 0x020F7F93
- .byte 0, 0, 0, 0, 0
- .byte 1, -1, 0, 0, 0
- .byte 1, 0, -1, 0, 0
- .byte 1, 0, 0, -1, 0
- .byte 1, 0, 0, 0, -1
- .byte -1, 1, 0, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 1, -1, 0, 0
- .byte 0, 1, 0, -1, 0
- .byte 0, 1, 0, 0, -1
- .byte -1, 0, 1, 0, 0
- .byte 0, -1, 1, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, 1, -1, 0
- .byte 0, 0, 1, 0, -1
- .byte -1, 0, 0, 1, 0
- .byte 0, -1, 0, 1, 0
- .byte 0, 0, -1, 1, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, 0, 1, -1
- .byte -1, 0, 0, 0, 1
- .byte 0, -1, 0, 0, 1
- .byte 0, 0, -1, 0, 1
- .byte 0, 0, 0, -1, 1
- .byte 0, 0, 0, 0, 0
-
- .section .data
-
- .global __local_str_poketool_personal_pms_narc
-__local_str_poketool_personal_pms_narc: ; 0x02105FC8
- .asciz "poketool/personal/pms.narc"
-
- .section .bss
-
- .global UNK_021C5AC0
-UNK_021C5AC0: ; 0x021C5AC0
- .space 0x194
-
- .text
-
- thumb_func_start ZeroMonData
-ZeroMonData: ; 0x02066978
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0xec
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- ldrh r2, [r4, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- add r0, r4, #0x0
- ldr r2, [r4, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- pop {r4, pc}
-
- thumb_func_start WipeBoxMonDataAndEncrypt
-WipeBoxMonDataAndEncrypt: ; 0x020669A0
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0x88
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- ldrh r2, [r4, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4, pc}
-
- thumb_func_start SizeOfStructPokemon
-SizeOfStructPokemon: ; 0x020669BC
- mov r0, #0xec
- bx lr
-
- thumb_func_start AllocMonZeroed
-AllocMonZeroed: ; 0x020669C0
- push {r4, lr}
- mov r1, #0xec
- bl AllocFromHeap
- add r4, r0, #0x0
- bl ZeroMonData
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start TryDecryptMon
-TryDecryptMon: ; 0x020669D4
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- mov r4, #0x0
- lsl r1, r0, #0x1f
- lsr r1, r1, #0x1f
- bne _02066A1A
- lsl r0, r0, #0x1e
- mov r4, #0x1
- lsr r0, r0, #0x1f
- beq _020669EE
- bl ErrorHandling
-_020669EE:
- ldrh r1, [r5, #0x4]
- mov r0, #0x1
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r1, [r5, #0x4]
- mov r0, #0x2
- orr r0, r1
- strh r0, [r5, #0x4]
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
-_02066A1A:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start TryEncryptMon
-TryEncryptMon: ; 0x02066A20
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r2, [r5, #0x4]
- mov r4, #0x0
- lsl r0, r2, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #0x1
- bne _02066A68
- cmp r1, #0x1
- bne _02066A68
- mov r0, #0x1
- bic r2, r0
- strh r2, [r5, #0x4]
- ldrh r1, [r5, #0x4]
- mov r0, #0x2
- mov r4, #0x1
- bic r1, r0
- strh r1, [r5, #0x4]
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02066A68:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start TryDecryptBoxMon
-TryDecryptBoxMon: ; 0x02066A6C
- push {r4, lr}
- add r2, r0, #0x0
- ldrh r1, [r2, #0x4]
- mov r4, #0x0
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1f
- bne _02066A8E
- mov r0, #0x2
- orr r0, r1
- strh r0, [r2, #0x4]
- add r0, r2, #0x0
- ldrh r2, [r2, #0x6]
- add r0, #0x8
- mov r1, #0x80
- mov r4, #0x1
- bl MonDecryptSegment
-_02066A8E:
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start TryEncryptBoxMon
-TryEncryptBoxMon: ; 0x02066A94
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r2, [r5, #0x4]
- mov r4, #0x0
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #0x1
- bne _02066AC8
- cmp r1, #0x1
- bne _02066AC8
- mov r0, #0x2
- bic r2, r0
- add r0, r5, #0x0
- strh r2, [r5, #0x4]
- add r0, #0x8
- mov r1, #0x80
- mov r4, #0x1
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02066AC8:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start CreateMon
-CreateMon: ; 0x02066ACC
- push {r0-r3}
- push {r3-r6, lr}
- sub sp, #0x2c
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r3, #0x0
- bl ZeroMonData
- ldr r0, [sp, #0x50]
- add r1, r4, #0x0
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x54]
- add r3, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xc]
- ldr r2, [sp, #0x48]
- add r0, r5, #0x0
- bl CreateBoxMon
- add r0, r5, #0x0
- add r0, #0x88
- mov r1, #0x64
- mov r2, #0x0
- bl MonEncryptSegment
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- mov r1, #0xa0
- add r2, sp, #0x48
- bl SetMonDataEncrypted
- mov r0, #0x0
- bl FUN_020256BC
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa9
- add r2, r4, #0x0
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- bl FreeToHeap
- mov r0, #0x0
- str r0, [sp, #0x10]
- add r0, r5, #0x0
- mov r1, #0xa1
- add r2, sp, #0x10
- bl SetMonDataEncrypted
- mov r0, #0x0
- add r1, sp, #0x14
- mov r2, #0x18
- bl MIi_CpuClearFast
- add r0, r5, #0x0
- mov r1, #0xaa
- add r2, sp, #0x14
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
- add sp, #0x2c
- pop {r3-r6}
- pop {r3}
- add sp, #0x10
- bx r3
-
- thumb_func_start CreateBoxMon
-CreateBoxMon: ; 0x02066B64
- push {r0-r3}
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- bl WipeBoxMonDataAndEncrypt
- add r0, r5, #0x0
- bl TryDecryptBoxMon
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x30]
- cmp r0, #0x0
- bne _02066B8E
- bl rand_LC
- add r4, r0, #0x0
- bl rand_LC
- lsl r0, r0, #0x10
- orr r0, r4
- str r0, [sp, #0x34]
-_02066B8E:
- add r0, r5, #0x0
- mov r1, #0x0
- add r2, sp, #0x34
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x38]
- cmp r0, #0x2
- bne _02066BD6
- ldr r7, _02066D84 ; =0xFFFF0000
- add r6, r7, #0x0
-_02066BA2:
- bl rand_LC
- add r4, r0, #0x0
- bl rand_LC
- ldr r1, [sp, #0x34]
- lsl r0, r0, #0x10
- add r3, r4, #0x0
- orr r3, r0
- lsl r0, r1, #0x10
- lsr r2, r0, #0x10
- add r0, r1, #0x0
- and r0, r7
- lsr r1, r0, #0x10
- add r0, r3, #0x0
- str r3, [sp, #0x3c]
- and r0, r6
- lsl r3, r3, #0x10
- lsr r0, r0, #0x10
- lsr r3, r3, #0x10
- eor r0, r3
- eor r0, r1
- eor r0, r2
- cmp r0, #0x8
- blo _02066BA2
- b _02066BDE
-_02066BD6:
- cmp r0, #0x1
- beq _02066BDE
- mov r0, #0x0
- str r0, [sp, #0x3c]
-_02066BDE:
- add r0, r5, #0x0
- mov r1, #0x7
- add r2, sp, #0x3c
- bl SetBoxMonDataEncrypted
- ldr r2, _02066D88 ; =gGameLanguage
- add r0, r5, #0x0
- mov r1, #0xc
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x5
- add r2, sp, #0x24
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0xb2
- mov r2, #0x0
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x28]
- bl GetMonExpByLevel
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x8
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x24]
- mov r1, #0x14
- bl GetMonBaseStat
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x9b
- add r2, sp, #0x28
- bl SetBoxMonDataEncrypted
- ldr r2, _02066D8C ; =gGameVersion
- add r0, r5, #0x0
- mov r1, #0x79
- bl SetBoxMonDataEncrypted
- mov r0, #0x4
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9a
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x2c]
- cmp r0, #0x20
- bge _02066C94
- add r0, r5, #0x0
- mov r1, #0x46
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x47
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x48
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x49
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x4a
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x4b
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- b _02066D18
-_02066C94:
- bl rand_LC
- mov r1, #0x1f
- str r0, [sp, #0x8]
- and r0, r1
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x46
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x3e
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0x4
- and r0, r1
- lsr r0, r0, #0x5
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x47
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x1f
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0xa
- and r0, r1
- lsr r0, r0, #0xa
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x48
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- bl rand_LC
- mov r1, #0x1f
- str r0, [sp, #0x8]
- and r0, r1
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x49
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x3e
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0x4
- and r0, r1
- lsr r0, r0, #0x5
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x4a
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x1f
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0xa
- and r0, r1
- lsr r0, r0, #0xa
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x4b
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
-_02066D18:
- ldr r0, [sp, #0x24]
- mov r1, #0x18
- bl GetMonBaseStat
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x24]
- mov r1, #0x19
- bl GetMonBaseStat
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _02066D50
- ldr r1, [sp, #0x34]
- mov r0, #0x1
- tst r0, r1
- beq _02066D44
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- b _02066D5A
-_02066D44:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- b _02066D5A
-_02066D50:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
-_02066D5A:
- add r0, r5, #0x0
- bl GetBoxMonGenderEncrypted
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x6f
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- bl InitBoxMonMoveset
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0xc
- pop {r4-r7}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-_02066D84: .word 0xFFFF0000
-_02066D88: .word gGameLanguage
-_02066D8C: .word gGameVersion
-
- thumb_func_start CreateMonWithNature
-CreateMonWithNature: ; 0x02066D90
- push {r3-r7, lr}
- sub sp, #0x18
- str r2, [sp, #0x10]
- str r3, [sp, #0x14]
- ldr r4, [sp, #0x30]
- add r6, r0, #0x0
- add r7, r1, #0x0
-_02066D9E:
- bl rand_LC
- add r5, r0, #0x0
- bl rand_LC
- lsl r0, r0, #0x10
- orr r5, r0
- add r0, r5, #0x0
- bl GetNatureFromPersonality
- cmp r4, r0
- bne _02066D9E
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r5, [sp, #0x4]
- mov r0, #0x0
- str r0, [sp, #0x8]
- str r0, [sp, #0xc]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0x14]
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl CreateMon
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start CreateMonWithNatureGenderLetter
-CreateMonWithNatureGenderLetter: ; 0x02066DD4
- push {r4-r7, lr}
- sub sp, #0x24
- str r1, [sp, #0x14]
- str r2, [sp, #0x18]
- str r3, [sp, #0x1c]
- str r0, [sp, #0x10]
- add r0, sp, #0x28
- ldrb r0, [r0, #0x18]
- ldr r6, [sp, #0x38]
- ldr r7, [sp, #0x3c]
- cmp r0, #0x0
- beq _02066E4C
- cmp r0, #0x1d
- bhs _02066E4C
- sub r0, r0, #0x1
- str r0, [sp, #0x20]
-_02066DF4:
- bl rand_LC
- add r4, r0, #0x0
- bl rand_LC
- lsl r0, r0, #0x10
- orr r4, r0
- mov r3, #0x3
- lsl r3, r3, #0x10
- and r3, r4
- mov r0, #0x3
- add r2, r4, #0x0
- and r2, r0
- lsl r0, r0, #0x8
- and r0, r4
- lsr r1, r0, #0x6
- mov r0, #0x3
- lsl r0, r0, #0x18
- and r0, r4
- lsr r0, r0, #0x12
- lsr r3, r3, #0xc
- orr r0, r3
- orr r0, r1
- orr r0, r2
- mov r1, #0x1c
- bl _u32_div_f
- lsl r0, r1, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0x0
- bl GetNatureFromPersonality
- cmp r7, r0
- bne _02066DF4
- ldr r0, [sp, #0x14]
- add r1, r4, #0x0
- bl GetGenderBySpeciesAndPersonality
- cmp r6, r0
- bne _02066DF4
- ldr r0, [sp, #0x20]
- cmp r5, r0
- bne _02066DF4
- b _02066E58
-_02066E4C:
- ldr r0, [sp, #0x14]
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_02066E74
- add r4, r0, #0x0
-_02066E58:
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r4, [sp, #0x4]
- mov r0, #0x0
- str r0, [sp, #0x8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x18]
- ldr r3, [sp, #0x1c]
- bl CreateMon
- add sp, #0x24
- pop {r4-r7, pc}
-
- thumb_func_start FUN_02066E74
-FUN_02066E74: ; 0x02066E74
- push {r3-r5, lr}
- add r5, r1, #0x0
- mov r1, #0x12
- add r4, r2, #0x0
- bl GetMonBaseStat
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02066EA0
- cmp r0, #0xfe
- beq _02066EA0
- cmp r0, #0xff
- beq _02066EA0
- cmp r5, #0x0
- bne _02066EA0
- mov r1, #0x19
- bl _s32_div_f
- add r1, r0, #0x1
- mov r0, #0x19
- mul r0, r1
- add r4, r0, r4
-_02066EA0:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02066EA4
-FUN_02066EA4: ; 0x02066EA4
- push {r0-r3}
- push {r4, lr}
- sub sp, #0x10
- mov r3, #0x1
- str r3, [sp, #0x0]
- ldr r3, [sp, #0x28]
- add r4, r0, #0x0
- str r3, [sp, #0x4]
- mov r3, #0x0
- str r3, [sp, #0x8]
- str r3, [sp, #0xc]
- bl CreateMon
- add r0, r4, #0x0
- mov r1, #0xae
- add r2, sp, #0x24
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
- add sp, #0x10
- pop {r4}
- pop {r3}
- add sp, #0x10
- bx r3
-
- thumb_func_start UpdateMonLevelAndRecalcStats
-UpdateMonLevelAndRecalcStats: ; 0x02066ED8
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl TryDecryptMon
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl CalcMonLevelEncrypted
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0xa0
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- bl CalcMonStatsMaybeEncrypted
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl TryEncryptMon
- pop {r3-r5, pc}
-
- thumb_func_start CalcMonStatsMaybeEncrypted
-CalcMonStatsMaybeEncrypted: ; 0x02066F04
- push {r3-r7, lr}
- sub sp, #0x58
- add r5, r0, #0x0
- bl TryDecryptMon
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa3
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x2c]
- add r0, r5, #0x0
- mov r1, #0xa2
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x54]
- add r0, r5, #0x0
- mov r1, #0x46
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x30]
- add r0, r5, #0x0
- mov r1, #0xd
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x34]
- add r0, r5, #0x0
- mov r1, #0x47
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x28]
- add r0, r5, #0x0
- mov r1, #0xe
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x14]
- add r0, r5, #0x0
- mov r1, #0x48
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x24]
- add r0, r5, #0x0
- mov r1, #0xf
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x10]
- add r0, r5, #0x0
- mov r1, #0x49
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x20]
- add r0, r5, #0x0
- mov r1, #0x10
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0xc]
- add r0, r5, #0x0
- mov r1, #0x4a
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x1c]
- add r0, r5, #0x0
- mov r1, #0x11
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x4b
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x18]
- add r0, r5, #0x0
- mov r1, #0x12
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x38]
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r7, r0, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- bl AllocFromHeap
- add r6, r0, #0x0
- ldr r1, [sp, #0x38]
- add r0, r7, #0x0
- add r2, r6, #0x0
- bl LoadMonBaseStats_HandleAlternateForme
- mov r0, #0x49
- lsl r0, r0, #0x2
- cmp r7, r0
- bne _02066FFC
- mov r0, #0x1
- b _0206701E
-_02066FFC:
- ldr r0, [sp, #0x34]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x34]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x0]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x30]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r4, r0
- add r0, #0xa
-_0206701E:
- str r0, [sp, #0x50]
- add r0, r5, #0x0
- mov r1, #0xa3
- add r2, sp, #0x50
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x14]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x14]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x1]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x28]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x4c]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x4c]
- mov r2, #0x1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x4c]
- add r0, r5, #0x0
- mov r1, #0xa4
- add r2, sp, #0x4c
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x10]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x2]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x24]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x48]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x48]
- mov r2, #0x2
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x48]
- add r0, r5, #0x0
- mov r1, #0xa5
- add r2, sp, #0x48
- bl SetMonDataEncrypted
- ldr r0, [sp, #0xc]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0xc]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x3]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x20]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x44]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x44]
- mov r2, #0x3
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x44]
- add r0, r5, #0x0
- mov r1, #0xa6
- add r2, sp, #0x44
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x8]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x8]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x4]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x1c]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x40]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x40]
- mov r2, #0x4
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x40]
- add r0, r5, #0x0
- mov r1, #0xa7
- add r2, sp, #0x40
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x4]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x4]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x5]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x18]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x3c]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x3c]
- mov r2, #0x5
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x3c]
- add r0, r5, #0x0
- mov r1, #0xa8
- add r2, sp, #0x3c
- bl SetMonDataEncrypted
- add r0, r6, #0x0
- bl FreeToHeap
- ldr r1, [sp, #0x54]
- cmp r1, #0x0
- bne _0206717C
- ldr r0, [sp, #0x2c]
- cmp r0, #0x0
- bne _020671A0
-_0206717C:
- mov r0, #0x49
- lsl r0, r0, #0x2
- cmp r7, r0
- bne _0206718A
- mov r0, #0x1
- str r0, [sp, #0x54]
- b _020671A0
-_0206718A:
- cmp r1, #0x0
- bne _02067194
- ldr r0, [sp, #0x50]
- str r0, [sp, #0x54]
- b _020671A0
-_02067194:
- ldr r1, [sp, #0x50]
- ldr r0, [sp, #0x2c]
- ldr r2, [sp, #0x54]
- sub r0, r1, r0
- add r0, r2, r0
- str r0, [sp, #0x54]
-_020671A0:
- ldr r0, [sp, #0x54]
- cmp r0, #0x0
- beq _020671B0
- add r0, r5, #0x0
- mov r1, #0xa2
- add r2, sp, #0x54
- bl SetMonDataEncrypted
-_020671B0:
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptMon
- add sp, #0x58
- pop {r3-r7, pc}
-
- thumb_func_start GetMonDataEncrypted
-GetMonDataEncrypted: ; 0x020671BC
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02067204
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _02067204
- cmp r0, r1
- beq _020671FC
- bl ErrorHandling
-_020671FC:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
-_02067204:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl GetMonData
- add r4, r0, #0x0
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02067230
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02067230:
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start GetMonData
-GetMonData: ; 0x02067234
- push {r3, lr}
- add r3, r1, #0x0
- sub r3, #0x9f
- cmp r3, #0xb
- bhi _020672B6
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_0206724A: ; jump table (using 16-bit offset)
- .short _02067262 - _0206724A - 2; case 0
- .short _02067268 - _0206724A - 2; case 1
- .short _0206726E - _0206724A - 2; case 2
- .short _02067274 - _0206724A - 2; case 3
- .short _0206727A - _0206724A - 2; case 4
- .short _02067280 - _0206724A - 2; case 5
- .short _02067286 - _0206724A - 2; case 6
- .short _0206728C - _0206724A - 2; case 7
- .short _02067292 - _0206724A - 2; case 8
- .short _02067298 - _0206724A - 2; case 9
- .short _0206729E - _0206724A - 2; case 10
- .short _020672AA - _0206724A - 2; case 11
-_02067262:
- add r0, #0x88
- ldr r0, [r0, #0x0]
- pop {r3, pc}
-_02067268:
- add r0, #0x8c
- ldrb r0, [r0, #0x0]
- pop {r3, pc}
-_0206726E:
- add r0, #0x8d
- ldrb r0, [r0, #0x0]
- pop {r3, pc}
-_02067274:
- add r0, #0x8e
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_0206727A:
- add r0, #0x90
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067280:
- add r0, #0x92
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067286:
- add r0, #0x94
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_0206728C:
- add r0, #0x96
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067292:
- add r0, #0x98
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067298:
- add r0, #0x9a
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_0206729E:
- add r0, #0x9c
- add r1, r2, #0x0
- bl FUN_020256D0
- mov r0, #0x1
- pop {r3, pc}
-_020672AA:
- add r0, #0xd4
- add r1, r2, #0x0
- bl FUN_02029C74
- mov r0, #0x1
- pop {r3, pc}
-_020672B6:
- bl GetBoxMonData
- pop {r3, pc}
-
- thumb_func_start GetBoxMonDataEncrypted
-GetBoxMonDataEncrypted: ; 0x020672BC
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020672F8
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _020672F8
- cmp r0, r1
- beq _020672F0
- bl ErrorHandling
-_020672F0:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
-_020672F8:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl GetBoxMonData
- add r4, r0, #0x0
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _02067318
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02067318:
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start GetBoxMonData
-GetBoxMonData: ; 0x0206731C
- push {r4-r7, lr}
- sub sp, #0xc
- str r1, [sp, #0x4]
- add r1, r0, #0x0
- mov r4, #0x0
- str r2, [sp, #0x8]
- ldr r1, [r1, #0x0]
- str r0, [sp, #0x0]
- add r2, r4, #0x0
- bl GetSubstruct
- add r5, r0, #0x0
-
- ldr r0, [sp, #0x0]
- mov r2, #0x1
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r6, r0, #0x0
-
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r7, r0, #0x0
-
- ldr r0, [sp, #0x0]
- mov r2, #0x3
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r1, r0, #0x0
-
- ldr r0, [sp, #0x4]
- cmp r0, #0xb2
- bls _02067366
- b _020674D8
-_02067366:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02067372: ; jump table (using 16-bit offset)
- .short _020674DC - _02067372 - 2; case 0
- .short _020674E2 - _02067372 - 2; case 1
- .short _020674EC - _02067372 - 2; case 2
- .short _020674F6 - _02067372 - 2; case 3
- .short _02067500 - _02067372 - 2; case 4
- .short _0206754C - _02067372 - 2; case 5
- .short _0206755E - _02067372 - 2; case 6
- .short _02067562 - _02067372 - 2; case 7
- .short _02067566 - _02067372 - 2; case 8
- .short _0206756A - _02067372 - 2; case 9
- .short _0206756E - _02067372 - 2; case 10
- .short _02067572 - _02067372 - 2; case 11
- .short _02067576 - _02067372 - 2; case 12
- .short _0206757A - _02067372 - 2; case 13
- .short _0206757E - _02067372 - 2; case 14
- .short _02067582 - _02067372 - 2; case 15
- .short _02067586 - _02067372 - 2; case 16
- .short _0206758A - _02067372 - 2; case 17
- .short _0206758E - _02067372 - 2; case 18
- .short _02067592 - _02067372 - 2; case 19
- .short _02067596 - _02067372 - 2; case 20
- .short _0206759A - _02067372 - 2; case 21
- .short _0206759E - _02067372 - 2; case 22
- .short _020675A2 - _02067372 - 2; case 23
- .short _020675A6 - _02067372 - 2; case 24
- .short _020675AA - _02067372 - 2; case 25
- .short _020675AA - _02067372 - 2; case 26
- .short _020675AA - _02067372 - 2; case 27
- .short _020675AA - _02067372 - 2; case 28
- .short _020675AA - _02067372 - 2; case 29
- .short _020675AA - _02067372 - 2; case 30
- .short _020675AA - _02067372 - 2; case 31
- .short _020675AA - _02067372 - 2; case 32
- .short _020675AA - _02067372 - 2; case 33
- .short _020675AA - _02067372 - 2; case 34
- .short _020675AA - _02067372 - 2; case 35
- .short _020675AA - _02067372 - 2; case 36
- .short _020675AA - _02067372 - 2; case 37
- .short _020675AA - _02067372 - 2; case 38
- .short _020675AA - _02067372 - 2; case 39
- .short _020675AA - _02067372 - 2; case 40
- .short _020675AA - _02067372 - 2; case 41
- .short _020675AA - _02067372 - 2; case 42
- .short _020675AA - _02067372 - 2; case 43
- .short _020675AA - _02067372 - 2; case 44
- .short _020675AA - _02067372 - 2; case 45
- .short _020675AA - _02067372 - 2; case 46
- .short _020675AA - _02067372 - 2; case 47
- .short _020675AA - _02067372 - 2; case 48
- .short _020675AA - _02067372 - 2; case 49
- .short _020675AA - _02067372 - 2; case 50
- .short _020675AA - _02067372 - 2; case 51
- .short _020675AA - _02067372 - 2; case 52
- .short _020675AA - _02067372 - 2; case 53
- .short _020675D0 - _02067372 - 2; case 54
- .short _020675D0 - _02067372 - 2; case 55
- .short _020675D0 - _02067372 - 2; case 56
- .short _020675D0 - _02067372 - 2; case 57
- .short _020675DC - _02067372 - 2; case 58
- .short _020675DC - _02067372 - 2; case 59
- .short _020675DC - _02067372 - 2; case 60
- .short _020675DC - _02067372 - 2; case 61
- .short _020675E8 - _02067372 - 2; case 62
- .short _020675E8 - _02067372 - 2; case 63
- .short _020675E8 - _02067372 - 2; case 64
- .short _020675E8 - _02067372 - 2; case 65
- .short _020675F4 - _02067372 - 2; case 66
- .short _020675F4 - _02067372 - 2; case 67
- .short _020675F4 - _02067372 - 2; case 68
- .short _020675F4 - _02067372 - 2; case 69
- .short _0206760C - _02067372 - 2; case 70
- .short _02067614 - _02067372 - 2; case 71
- .short _0206761C - _02067372 - 2; case 72
- .short _02067624 - _02067372 - 2; case 73
- .short _0206762C - _02067372 - 2; case 74
- .short _02067634 - _02067372 - 2; case 75
- .short _0206763C - _02067372 - 2; case 76
- .short _0206764E - _02067372 - 2; case 77
- .short _02067654 - _02067372 - 2; case 78
- .short _02067654 - _02067372 - 2; case 79
- .short _02067654 - _02067372 - 2; case 80
- .short _02067654 - _02067372 - 2; case 81
- .short _02067654 - _02067372 - 2; case 82
- .short _02067654 - _02067372 - 2; case 83
- .short _02067654 - _02067372 - 2; case 84
- .short _02067654 - _02067372 - 2; case 85
- .short _02067654 - _02067372 - 2; case 86
- .short _02067654 - _02067372 - 2; case 87
- .short _02067654 - _02067372 - 2; case 88
- .short _02067654 - _02067372 - 2; case 89
- .short _02067654 - _02067372 - 2; case 90
- .short _02067654 - _02067372 - 2; case 91
- .short _02067654 - _02067372 - 2; case 92
- .short _02067654 - _02067372 - 2; case 93
- .short _02067654 - _02067372 - 2; case 94
- .short _02067654 - _02067372 - 2; case 95
- .short _02067654 - _02067372 - 2; case 96
- .short _02067654 - _02067372 - 2; case 97
- .short _02067654 - _02067372 - 2; case 98
- .short _02067654 - _02067372 - 2; case 99
- .short _02067654 - _02067372 - 2; case 100
- .short _02067654 - _02067372 - 2; case 101
- .short _02067654 - _02067372 - 2; case 102
- .short _02067654 - _02067372 - 2; case 103
- .short _02067654 - _02067372 - 2; case 104
- .short _02067654 - _02067372 - 2; case 105
- .short _02067654 - _02067372 - 2; case 106
- .short _02067654 - _02067372 - 2; case 107
- .short _02067654 - _02067372 - 2; case 108
- .short _02067654 - _02067372 - 2; case 109
- .short _0206767C - _02067372 - 2; case 110
- .short _02067684 - _02067372 - 2; case 111
- .short _0206768C - _02067372 - 2; case 112
- .short _02067694 - _02067372 - 2; case 113
- .short _02067698 - _02067372 - 2; case 114
- .short _020674D8 - _02067372 - 2; case 115
- .short _0206769C - _02067372 - 2; case 116
- .short _020674D8 - _02067372 - 2; case 117
- .short _020676D0 - _02067372 - 2; case 118
- .short _020676CC - _02067372 - 2; case 119
- .short _020676FE - _02067372 - 2; case 120
- .short _02067702 - _02067372 - 2; case 121
- .short _02067706 - _02067372 - 2; case 122
- .short _02067706 - _02067372 - 2; case 123
- .short _02067706 - _02067372 - 2; case 124
- .short _02067706 - _02067372 - 2; case 125
- .short _02067706 - _02067372 - 2; case 126
- .short _02067706 - _02067372 - 2; case 127
- .short _02067706 - _02067372 - 2; case 128
- .short _02067706 - _02067372 - 2; case 129
- .short _02067706 - _02067372 - 2; case 130
- .short _02067706 - _02067372 - 2; case 131
- .short _02067706 - _02067372 - 2; case 132
- .short _02067706 - _02067372 - 2; case 133
- .short _02067706 - _02067372 - 2; case 134
- .short _02067706 - _02067372 - 2; case 135
- .short _02067706 - _02067372 - 2; case 136
- .short _02067706 - _02067372 - 2; case 137
- .short _02067706 - _02067372 - 2; case 138
- .short _02067706 - _02067372 - 2; case 139
- .short _02067706 - _02067372 - 2; case 140
- .short _02067706 - _02067372 - 2; case 141
- .short _02067706 - _02067372 - 2; case 142
- .short _0206772C - _02067372 - 2; case 143
- .short _02067746 - _02067372 - 2; case 144
- .short _0206774E - _02067372 - 2; case 145
- .short _02067752 - _02067372 - 2; case 146
- .short _02067756 - _02067372 - 2; case 147
- .short _0206775A - _02067372 - 2; case 148
- .short _0206775E - _02067372 - 2; case 149
- .short _02067762 - _02067372 - 2; case 150
- .short _02067766 - _02067372 - 2; case 151
- .short _0206776A - _02067372 - 2; case 152
- .short _0206776E - _02067372 - 2; case 153
- .short _02067772 - _02067372 - 2; case 154
- .short _02067776 - _02067372 - 2; case 155
- .short _0206777E - _02067372 - 2; case 156
- .short _02067786 - _02067372 - 2; case 157
- .short _0206778A - _02067372 - 2; case 158
- .short _020674D8 - _02067372 - 2; case 159
- .short _02067540 - _02067372 - 2; case 160
- .short _020674D8 - _02067372 - 2; case 161
- .short _020674D8 - _02067372 - 2; case 162
- .short _020674D8 - _02067372 - 2; case 163
- .short _020674D8 - _02067372 - 2; case 164
- .short _020674D8 - _02067372 - 2; case 165
- .short _020674D8 - _02067372 - 2; case 166
- .short _020674D8 - _02067372 - 2; case 167
- .short _020674D8 - _02067372 - 2; case 168
- .short _020674D8 - _02067372 - 2; case 169
- .short _020674D8 - _02067372 - 2; case 170
- .short _02067506 - _02067372 - 2; case 171
- .short _02067510 - _02067372 - 2; case 172
- .short _02067522 - _02067372 - 2; case 173
- .short _0206778E - _02067372 - 2; case 174
- .short _020677C0 - _02067372 - 2; case 175
- .short _020677D8 - _02067372 - 2; case 176
- .short _020677D8 - _02067372 - 2; case 177
- .short _02067810 - _02067372 - 2; case 178
-_020674D8:
- mov r4, #0x0
- b _0206781A
-_020674DC:
- ldr r0, [sp, #0x0]
- ldr r4, [r0, #0x0]
- b _0206781A
-_020674E2:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1f
- lsr r4, r0, #0x1f
- b _0206781A
-_020674EC:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1e
- lsr r4, r0, #0x1f
- b _0206781A
-_020674F6:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1f
- b _0206781A
-_02067500:
- ldr r0, [sp, #0x0]
- ldrh r4, [r0, #0x6]
- b _0206781A
-_02067506:
- ldrh r0, [r5, #0x0]
- cmp r0, #0x0
- beq _0206753A
- mov r4, #0x1
- b _0206781A
-_02067510:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1f
- bne _0206753A
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1
- lsr r4, r0, #0x1f
- b _0206781A
-_02067522:
- ldrh r4, [r5, #0x0]
- cmp r4, #0x0
- beq _0206753A
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1
- lsr r0, r0, #0x1f
- bne _0206753C
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bne _0206753C
-_0206753A:
- b _0206781A
-_0206753C:
- ldr r4, _02067820 ; =SPECIES_EGG
- b _0206781A
-_02067540:
- ldrh r0, [r5, #0x0]
- ldr r1, [r5, #0x8]
- bl CalcLevelBySpeciesAndExp
- add r4, r0, #0x0
- b _0206781A
-_0206754C:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0206755A
- ldr r4, _02067820 ; =SPECIES_EGG
- b _0206781A
-_0206755A:
- ldrh r4, [r5, #0x0]
- b _0206781A
-_0206755E:
- ldrh r4, [r5, #0x2]
- b _0206781A
-_02067562:
- ldr r4, [r5, #0x4]
- b _0206781A
-_02067566:
- ldr r4, [r5, #0x8]
- b _0206781A
-_0206756A:
- ldrb r4, [r5, #0xc]
- b _0206781A
-_0206756E:
- ldrb r4, [r5, #0xd]
- b _0206781A
-_02067572:
- ldrb r4, [r5, #0xe]
- b _0206781A
-_02067576:
- ldrb r4, [r5, #0xf]
- b _0206781A
-_0206757A:
- ldrb r4, [r5, #0x10]
- b _0206781A
-_0206757E:
- ldrb r4, [r5, #0x11]
- b _0206781A
-_02067582:
- ldrb r4, [r5, #0x12]
- b _0206781A
-_02067586:
- ldrb r4, [r5, #0x13]
- b _0206781A
-_0206758A:
- ldrb r4, [r5, #0x14]
- b _0206781A
-_0206758E:
- ldrb r4, [r5, #0x15]
- b _0206781A
-_02067592:
- ldrb r4, [r5, #0x16]
- b _0206781A
-_02067596:
- ldrb r4, [r5, #0x17]
- b _0206781A
-_0206759A:
- ldrb r4, [r5, #0x18]
- b _0206781A
-_0206759E:
- ldrb r4, [r5, #0x19]
- b _0206781A
-_020675A2:
- ldrb r4, [r5, #0x1a]
- b _0206781A
-_020675A6:
- ldrb r4, [r5, #0x1b]
- b _0206781A
-_020675AA:
- ldr r2, [sp, #0x4]
- mov r0, #0x1
- sub r2, #0x19
- add r1, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- ldr r2, [r5, #0x1c]
- add r3, r4, #0x0
- and r3, r1
- and r2, r0
- mov r1, #0x0
- mov r0, #0x0
- eor r1, r3
- eor r0, r2
- orr r0, r1
- beq _02067676
- mov r4, #0x1
- b _0206781A
-_020675D0:
- ldr r0, [sp, #0x4]
- sub r0, #0x36
- str r0, [sp, #0x4]
- lsl r0, r0, #0x1
- ldrh r4, [r6, r0]
- b _0206781A
-_020675DC:
- ldr r0, [sp, #0x4]
- sub r0, #0x3a
- str r0, [sp, #0x4]
- add r0, r6, r0
- ldrb r4, [r0, #0x8]
- b _0206781A
-_020675E8:
- ldr r0, [sp, #0x4]
- sub r0, #0x3e
- str r0, [sp, #0x4]
- add r0, r6, r0
- ldrb r4, [r0, #0xc]
- b _0206781A
-_020675F4:
- ldr r0, [sp, #0x4]
- sub r0, #0x42
- str r0, [sp, #0x4]
- ldr r1, [sp, #0x4]
- lsl r0, r0, #0x1
- add r1, r6, r1
- ldrh r0, [r6, r0]
- ldrb r1, [r1, #0xc]
- bl FUN_0206AB30
- add r4, r0, #0x0
- b _0206781A
-_0206760C:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1b
- lsr r4, r0, #0x1b
- b _0206781A
-_02067614:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x16
- lsr r4, r0, #0x1b
- b _0206781A
-_0206761C:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x11
- lsr r4, r0, #0x1b
- b _0206781A
-_02067624:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0xc
- lsr r4, r0, #0x1b
- b _0206781A
-_0206762C:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x7
- lsr r4, r0, #0x1b
- b _0206781A
-_02067634:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x2
- lsr r4, r0, #0x1b
- b _0206781A
-_0206763C:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1f
- bne _02067676
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1
- lsr r4, r0, #0x1f
- b _0206781A
-_0206764E:
- ldr r0, [r6, #0x10]
- lsr r4, r0, #0x1f
- b _0206781A
-_02067654:
- ldr r2, [sp, #0x4]
- mov r0, #0x1
- sub r2, #0x4e
- add r1, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- ldr r2, [r6, #0x14]
- add r3, r4, #0x0
- and r3, r1
- and r2, r0
- mov r1, #0x0
- mov r0, #0x0
- eor r1, r3
- eor r0, r2
- orr r0, r1
- bne _02067678
-_02067676:
- b _0206781A
-_02067678:
- mov r4, #0x1
- b _0206781A
-_0206767C:
- ldrb r0, [r6, #0x18]
- lsl r0, r0, #0x1f
- lsr r4, r0, #0x1f
- b _0206781A
-_02067684:
- ldrb r0, [r6, #0x18]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1e
- b _0206781A
-_0206768C:
- ldrb r0, [r6, #0x18]
- lsl r0, r0, #0x18
- lsr r4, r0, #0x1b
- b _0206781A
-_02067694:
- ldrb r4, [r6, #0x19]
- b _0206781A
-_02067698:
- ldrh r4, [r6, #0x1a]
- b _0206781A
-_0206769C:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _020676B2
- ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG
- ldr r2, [sp, #0x8]
- add r1, r4, #0x0
- bl GetSpeciesName
- b _0206781A
-_020676B2:
- ldr r1, [sp, #0x8]
-_020676B4:
- ldrh r0, [r7, #0x0]
- add r4, r4, #0x1
- add r7, r7, #0x2
- strh r0, [r1, #0x0]
- add r1, r1, #0x2
- cmp r4, #0xa
- blo _020676B4
- ldr r2, _02067828 ; =0x0000FFFF
- ldr r0, [sp, #0x8]
- lsl r1, r4, #0x1
- strh r2, [r0, r1]
- b _0206781A
-_020676CC:
- ldr r0, [r6, #0x10]
- lsr r4, r0, #0x1f
-_020676D0:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _020676F4
- ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG
- mov r1, #0x0
- bl FUN_0200AA50
- add r5, r0, #0x0
- ldr r0, [sp, #0x8]
- add r1, r5, #0x0
- bl FUN_02021A74
- add r0, r5, #0x0
- bl FUN_02021A20
- b _0206781A
-_020676F4:
- ldr r0, [sp, #0x8]
- add r1, r7, #0x0
- bl FUN_02021E28
- b _0206781A
-_020676FE:
- ldrb r4, [r7, #0x16]
- b _0206781A
-_02067702:
- ldrb r4, [r7, #0x17]
- b _0206781A
-_02067706:
- ldr r2, [sp, #0x4]
- mov r0, #0x1
- sub r2, #0x7a
- add r1, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- ldr r3, [r7, #0x18]
- ldr r2, [r7, #0x1c]
- and r3, r0
- and r2, r1
- mov r1, #0x0
- mov r0, #0x0
- eor r1, r2
- eor r0, r3
- orr r0, r1
- beq _0206781A
- mov r4, #0x1
- b _0206781A
-_0206772C:
- ldr r2, [sp, #0x8]
-_0206772E:
- ldrh r0, [r1, #0x0]
- add r4, r4, #0x1
- add r1, r1, #0x2
- strh r0, [r2, #0x0]
- add r2, r2, #0x2
- cmp r4, #0x7
- blo _0206772E
- ldr r2, _02067828 ; =0x0000FFFF
- ldr r0, [sp, #0x8]
- lsl r1, r4, #0x1
- strh r2, [r0, r1]
- b _0206781A
-_02067746:
- ldr r0, [sp, #0x8]
- bl FUN_02021E28
- b _0206781A
-_0206774E:
- ldrb r4, [r1, #0x10]
- b _0206781A
-_02067752:
- ldrb r4, [r1, #0x11]
- b _0206781A
-_02067756:
- ldrb r4, [r1, #0x12]
- b _0206781A
-_0206775A:
- ldrb r4, [r1, #0x13]
- b _0206781A
-_0206775E:
- ldrb r4, [r1, #0x14]
- b _0206781A
-_02067762:
- ldrb r4, [r1, #0x15]
- b _0206781A
-_02067766:
- ldrh r4, [r1, #0x16]
- b _0206781A
-_0206776A:
- ldrh r4, [r1, #0x18]
- b _0206781A
-_0206776E:
- ldrb r4, [r1, #0x1a]
- b _0206781A
-_02067772:
- ldrb r4, [r1, #0x1b]
- b _0206781A
-_02067776:
- ldrb r0, [r1, #0x1c]
- lsl r0, r0, #0x19
- lsr r4, r0, #0x19
- b _0206781A
-_0206777E:
- ldrb r0, [r1, #0x1c]
- lsl r0, r0, #0x18
- lsr r4, r0, #0x1f
- b _0206781A
-_02067786:
- ldrb r4, [r1, #0x1d]
- b _0206781A
-_0206778A:
- ldrh r4, [r1, #0x1e]
- b _0206781A
-_0206778E:
- ldr r4, [r6, #0x10]
- lsl r0, r4, #0x2
- lsr r0, r0, #0x1b
- lsl r5, r0, #0x19
- lsl r0, r4, #0x7
- lsr r0, r0, #0x1b
- lsl r3, r0, #0x14
- lsl r0, r4, #0xc
- lsr r0, r0, #0x1b
- lsl r2, r0, #0xf
- lsl r0, r4, #0x11
- lsr r0, r0, #0x1b
- lsl r1, r0, #0xa
- lsl r0, r4, #0x1b
- lsl r4, r4, #0x16
- lsr r4, r4, #0x1b
- lsr r0, r0, #0x1b
- lsl r4, r4, #0x5
- orr r0, r4
- orr r0, r1
- orr r0, r2
- orr r0, r3
- add r4, r5, #0x0
- orr r4, r0
- b _0206781A
-_020677C0:
- ldrh r0, [r5, #0x0]
- cmp r0, #0x1d
- beq _020677CA
- cmp r0, #0x20
- bne _020677D4
-_020677CA:
- ldr r0, [r6, #0x10]
- lsr r0, r0, #0x1f
- bne _020677D4
- mov r4, #0x0
- b _0206781A
-_020677D4:
- mov r4, #0x1
- b _0206781A
-_020677D8:
- ldrh r0, [r5, #0x0]
- ldr r1, _0206782C ; =SPECIES_ARCEUS
- cmp r0, r1
- bne _020677FC
- ldrb r1, [r5, #0xd]
- cmp r1, #0x79
- bne _020677FC
- ldrh r0, [r5, #0x2]
- mov r1, #0x1
- add r2, r4, #0x0
- bl FUN_0206E7B8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl GetArceusTypeByPlate
- add r4, r0, #0x0
- b _0206781A
-_020677FC:
- ldrb r1, [r6, #0x18]
- ldr r2, [sp, #0x4]
- lsl r1, r1, #0x18
- sub r2, #0xaa
- lsr r1, r1, #0x1b
- str r2, [sp, #0x4]
- bl GetMonBaseStat_HandleFormeConversion
- add r4, r0, #0x0
- b _0206781A
-_02067810:
- ldrh r0, [r5, #0x0]
- ldr r2, [sp, #0x8]
- add r1, r4, #0x0
- bl GetSpeciesName
-_0206781A:
- add r0, r4, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02067820: .word SPECIES_EGG
-_02067824: .word SPECIES_MANAPHY_EGG
-_02067828: .word 0x0000FFFF
-_0206782C: .word SPECIES_ARCEUS
-
- thumb_func_start SetMonDataEncrypted
-SetMonDataEncrypted: ; 0x02067830
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02067886
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _02067886
- cmp r0, r1
- beq _02067870
- bl ErrorHandling
-_02067870:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_02067886:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl SetMonData
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _020678BC
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_020678BC:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start SetMonData
-SetMonData: ; 0x020678C0
- push {r3, lr}
- add r3, r0, #0x0
- add r0, r1, #0x0
- sub r0, #0x9f
- cmp r0, #0xb
- bhi _02067958
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020678D8: ; jump table (using 16-bit offset)
- .short _020678F0 - _020678D8 - 2; case 0
- .short _020678F8 - _020678D8 - 2; case 1
- .short _02067900 - _020678D8 - 2; case 2
- .short _02067908 - _020678D8 - 2; case 3
- .short _02067910 - _020678D8 - 2; case 4
- .short _02067918 - _020678D8 - 2; case 5
- .short _02067920 - _020678D8 - 2; case 6
- .short _02067928 - _020678D8 - 2; case 7
- .short _02067930 - _020678D8 - 2; case 8
- .short _02067938 - _020678D8 - 2; case 9
- .short _02067940 - _020678D8 - 2; case 10
- .short _0206794C - _020678D8 - 2; case 11
-_020678F0:
- ldr r0, [r2, #0x0]
- add r3, #0x88
- str r0, [r3, #0x0]
- pop {r3, pc}
-_020678F8:
- ldrb r0, [r2, #0x0]
- add r3, #0x8c
- strb r0, [r3, #0x0]
- pop {r3, pc}
-_02067900:
- ldrb r0, [r2, #0x0]
- add r3, #0x8d
- strb r0, [r3, #0x0]
- pop {r3, pc}
-_02067908:
- ldrh r0, [r2, #0x0]
- add r3, #0x8e
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067910:
- ldrh r0, [r2, #0x0]
- add r3, #0x90
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067918:
- ldrh r0, [r2, #0x0]
- add r3, #0x92
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067920:
- ldrh r0, [r2, #0x0]
- add r3, #0x94
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067928:
- ldrh r0, [r2, #0x0]
- add r3, #0x96
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067930:
- ldrh r0, [r2, #0x0]
- add r3, #0x98
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067938:
- ldrh r0, [r2, #0x0]
- add r3, #0x9a
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067940:
- add r3, #0x9c
- add r0, r2, #0x0
- add r1, r3, #0x0
- bl FUN_020256D0
- pop {r3, pc}
-_0206794C:
- add r3, #0xd4
- add r0, r2, #0x0
- add r1, r3, #0x0
- bl FUN_02029C74
- pop {r3, pc}
-_02067958:
- add r0, r3, #0x0
- bl SetBoxMonData
- pop {r3, pc}
-
- thumb_func_start SetBoxMonDataEncrypted
-SetBoxMonDataEncrypted: ; 0x02067960
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020679AA
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _020679AA
- cmp r0, r1
- beq _02067994
- bl ErrorHandling
-_02067994:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_020679AA:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl SetBoxMonData
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020679D4
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_020679D4:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start SetBoxMonData
-SetBoxMonData: ; 0x020679D8
- push {r4-r7, lr}
- sub sp, #0x4c
- str r1, [sp, #0x4]
- add r1, r0, #0x0
- add r4, r2, #0x0
- ldr r1, [r1, #0x0]
- str r0, [sp, #0x0]
- mov r2, #0x0
- bl GetSubstruct
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x1
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r5, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r6, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x3
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r1, r0, #0x0
- ldr r0, [sp, #0x4]
- cmp r0, #0xb2
- bls _02067A20
- b _02067FF6
-_02067A20:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02067A2C: ; jump table (using 16-bit offset)
- .short _02067B92 - _02067A2C - 2; case 0
- .short _02067B9C - _02067A2C - 2; case 1
- .short _02067BBA - _02067A2C - 2; case 2
- .short _02067BD6 - _02067A2C - 2; case 3
- .short _02067BEE - _02067A2C - 2; case 4
- .short _02067BF8 - _02067A2C - 2; case 5
- .short _02067C00 - _02067A2C - 2; case 6
- .short _02067C08 - _02067A2C - 2; case 7
- .short _02067C10 - _02067A2C - 2; case 8
- .short _02067C18 - _02067A2C - 2; case 9
- .short _02067C20 - _02067A2C - 2; case 10
- .short _02067C28 - _02067A2C - 2; case 11
- .short _02067C30 - _02067A2C - 2; case 12
- .short _02067C38 - _02067A2C - 2; case 13
- .short _02067C40 - _02067A2C - 2; case 14
- .short _02067C48 - _02067A2C - 2; case 15
- .short _02067C50 - _02067A2C - 2; case 16
- .short _02067C58 - _02067A2C - 2; case 17
- .short _02067C60 - _02067A2C - 2; case 18
- .short _02067C68 - _02067A2C - 2; case 19
- .short _02067C70 - _02067A2C - 2; case 20
- .short _02067C78 - _02067A2C - 2; case 21
- .short _02067C80 - _02067A2C - 2; case 22
- .short _02067C88 - _02067A2C - 2; case 23
- .short _02067C90 - _02067A2C - 2; case 24
- .short _02067C98 - _02067A2C - 2; case 25
- .short _02067C98 - _02067A2C - 2; case 26
- .short _02067C98 - _02067A2C - 2; case 27
- .short _02067C98 - _02067A2C - 2; case 28
- .short _02067C98 - _02067A2C - 2; case 29
- .short _02067C98 - _02067A2C - 2; case 30
- .short _02067C98 - _02067A2C - 2; case 31
- .short _02067C98 - _02067A2C - 2; case 32
- .short _02067C98 - _02067A2C - 2; case 33
- .short _02067C98 - _02067A2C - 2; case 34
- .short _02067C98 - _02067A2C - 2; case 35
- .short _02067C98 - _02067A2C - 2; case 36
- .short _02067C98 - _02067A2C - 2; case 37
- .short _02067C98 - _02067A2C - 2; case 38
- .short _02067C98 - _02067A2C - 2; case 39
- .short _02067C98 - _02067A2C - 2; case 40
- .short _02067C98 - _02067A2C - 2; case 41
- .short _02067C98 - _02067A2C - 2; case 42
- .short _02067C98 - _02067A2C - 2; case 43
- .short _02067C98 - _02067A2C - 2; case 44
- .short _02067C98 - _02067A2C - 2; case 45
- .short _02067C98 - _02067A2C - 2; case 46
- .short _02067C98 - _02067A2C - 2; case 47
- .short _02067C98 - _02067A2C - 2; case 48
- .short _02067C98 - _02067A2C - 2; case 49
- .short _02067C98 - _02067A2C - 2; case 50
- .short _02067C98 - _02067A2C - 2; case 51
- .short _02067C98 - _02067A2C - 2; case 52
- .short _02067C98 - _02067A2C - 2; case 53
- .short _02067CC6 - _02067A2C - 2; case 54
- .short _02067CC6 - _02067A2C - 2; case 55
- .short _02067CC6 - _02067A2C - 2; case 56
- .short _02067CC6 - _02067A2C - 2; case 57
- .short _02067CD6 - _02067A2C - 2; case 58
- .short _02067CD6 - _02067A2C - 2; case 59
- .short _02067CD6 - _02067A2C - 2; case 60
- .short _02067CD6 - _02067A2C - 2; case 61
- .short _02067CE6 - _02067A2C - 2; case 62
- .short _02067CE6 - _02067A2C - 2; case 63
- .short _02067CE6 - _02067A2C - 2; case 64
- .short _02067CE6 - _02067A2C - 2; case 65
- .short _02067FF6 - _02067A2C - 2; case 66
- .short _02067FF6 - _02067A2C - 2; case 67
- .short _02067FF6 - _02067A2C - 2; case 68
- .short _02067FF6 - _02067A2C - 2; case 69
- .short _02067CF6 - _02067A2C - 2; case 70
- .short _02067D0A - _02067A2C - 2; case 71
- .short _02067D1E - _02067A2C - 2; case 72
- .short _02067D32 - _02067A2C - 2; case 73
- .short _02067D46 - _02067A2C - 2; case 74
- .short _02067D5A - _02067A2C - 2; case 75
- .short _02067D6E - _02067A2C - 2; case 76
- .short _02067D82 - _02067A2C - 2; case 77
- .short _02067D94 - _02067A2C - 2; case 78
- .short _02067D94 - _02067A2C - 2; case 79
- .short _02067D94 - _02067A2C - 2; case 80
- .short _02067D94 - _02067A2C - 2; case 81
- .short _02067D94 - _02067A2C - 2; case 82
- .short _02067D94 - _02067A2C - 2; case 83
- .short _02067D94 - _02067A2C - 2; case 84
- .short _02067D94 - _02067A2C - 2; case 85
- .short _02067D94 - _02067A2C - 2; case 86
- .short _02067D94 - _02067A2C - 2; case 87
- .short _02067D94 - _02067A2C - 2; case 88
- .short _02067D94 - _02067A2C - 2; case 89
- .short _02067D94 - _02067A2C - 2; case 90
- .short _02067D94 - _02067A2C - 2; case 91
- .short _02067D94 - _02067A2C - 2; case 92
- .short _02067D94 - _02067A2C - 2; case 93
- .short _02067D94 - _02067A2C - 2; case 94
- .short _02067D94 - _02067A2C - 2; case 95
- .short _02067D94 - _02067A2C - 2; case 96
- .short _02067D94 - _02067A2C - 2; case 97
- .short _02067D94 - _02067A2C - 2; case 98
- .short _02067D94 - _02067A2C - 2; case 99
- .short _02067D94 - _02067A2C - 2; case 100
- .short _02067D94 - _02067A2C - 2; case 101
- .short _02067D94 - _02067A2C - 2; case 102
- .short _02067D94 - _02067A2C - 2; case 103
- .short _02067D94 - _02067A2C - 2; case 104
- .short _02067D94 - _02067A2C - 2; case 105
- .short _02067D94 - _02067A2C - 2; case 106
- .short _02067D94 - _02067A2C - 2; case 107
- .short _02067D94 - _02067A2C - 2; case 108
- .short _02067D94 - _02067A2C - 2; case 109
- .short _02067DC2 - _02067A2C - 2; case 110
- .short _02067DD6 - _02067A2C - 2; case 111
- .short _02067DEA - _02067A2C - 2; case 112
- .short _02067DFE - _02067A2C - 2; case 113
- .short _02067E06 - _02067A2C - 2; case 114
- .short _02067FF6 - _02067A2C - 2; case 115
- .short _02067E2C - _02067A2C - 2; case 116
- .short _02067E0E - _02067A2C - 2; case 117
- .short _02067E6C - _02067A2C - 2; case 118
- .short _02067E40 - _02067A2C - 2; case 119
- .short _02067E7A - _02067A2C - 2; case 120
- .short _02067E82 - _02067A2C - 2; case 121
- .short _02067E8A - _02067A2C - 2; case 122
- .short _02067E8A - _02067A2C - 2; case 123
- .short _02067E8A - _02067A2C - 2; case 124
- .short _02067E8A - _02067A2C - 2; case 125
- .short _02067E8A - _02067A2C - 2; case 126
- .short _02067E8A - _02067A2C - 2; case 127
- .short _02067E8A - _02067A2C - 2; case 128
- .short _02067E8A - _02067A2C - 2; case 129
- .short _02067E8A - _02067A2C - 2; case 130
- .short _02067E8A - _02067A2C - 2; case 131
- .short _02067E8A - _02067A2C - 2; case 132
- .short _02067E8A - _02067A2C - 2; case 133
- .short _02067E8A - _02067A2C - 2; case 134
- .short _02067E8A - _02067A2C - 2; case 135
- .short _02067E8A - _02067A2C - 2; case 136
- .short _02067E8A - _02067A2C - 2; case 137
- .short _02067E8A - _02067A2C - 2; case 138
- .short _02067E8A - _02067A2C - 2; case 139
- .short _02067E8A - _02067A2C - 2; case 140
- .short _02067E8A - _02067A2C - 2; case 141
- .short _02067E8A - _02067A2C - 2; case 142
- .short _02067ECE - _02067A2C - 2; case 143
- .short _02067EE2 - _02067A2C - 2; case 144
- .short _02067EEE - _02067A2C - 2; case 145
- .short _02067EF6 - _02067A2C - 2; case 146
- .short _02067EFE - _02067A2C - 2; case 147
- .short _02067F06 - _02067A2C - 2; case 148
- .short _02067F0E - _02067A2C - 2; case 149
- .short _02067F16 - _02067A2C - 2; case 150
- .short _02067F1E - _02067A2C - 2; case 151
- .short _02067F26 - _02067A2C - 2; case 152
- .short _02067F2E - _02067A2C - 2; case 153
- .short _02067F36 - _02067A2C - 2; case 154
- .short _02067F3E - _02067A2C - 2; case 155
- .short _02067F52 - _02067A2C - 2; case 156
- .short _02067F66 - _02067A2C - 2; case 157
- .short _02067F6E - _02067A2C - 2; case 158
- .short _02067FF6 - _02067A2C - 2; case 159
- .short _02067FF6 - _02067A2C - 2; case 160
- .short _02067FF6 - _02067A2C - 2; case 161
- .short _02067FF6 - _02067A2C - 2; case 162
- .short _02067FF6 - _02067A2C - 2; case 163
- .short _02067FF6 - _02067A2C - 2; case 164
- .short _02067FF6 - _02067A2C - 2; case 165
- .short _02067FF6 - _02067A2C - 2; case 166
- .short _02067FF6 - _02067A2C - 2; case 167
- .short _02067FF6 - _02067A2C - 2; case 168
- .short _02067FF6 - _02067A2C - 2; case 169
- .short _02067FF6 - _02067A2C - 2; case 170
- .short _02067FF6 - _02067A2C - 2; case 171
- .short _02067FF6 - _02067A2C - 2; case 172
- .short _02067FF6 - _02067A2C - 2; case 173
- .short _02067F76 - _02067A2C - 2; case 174
- .short _02067FF6 - _02067A2C - 2; case 175
- .short _02067FF6 - _02067A2C - 2; case 176
- .short _02067FF6 - _02067A2C - 2; case 177
- .short _02067FDE - _02067A2C - 2; case 178
-_02067B92:
- ldr r0, [sp, #0x0]
- ldr r1, [r4, #0x0]
- add sp, #0x4c
- str r1, [r0, #0x0]
- pop {r4-r7, pc}
-_02067B9C:
- bl ErrorHandling
- ldr r0, [sp, #0x0]
- ldrb r1, [r4, #0x0]
- ldrh r2, [r0, #0x4]
- mov r0, #0x1
- bic r2, r0
- mov r0, #0x1
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BBA:
- bl ErrorHandling
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x4]
- mov r0, #0x2
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1e
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BD6:
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x4]
- mov r0, #0x4
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1d
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BEE:
- ldrh r1, [r4, #0x0]
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x6]
- pop {r4-r7, pc}
-_02067BF8:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r7, #0x0]
- pop {r4-r7, pc}
-_02067C00:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r7, #0x2]
- pop {r4-r7, pc}
-_02067C08:
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- str r0, [r7, #0x4]
- pop {r4-r7, pc}
-_02067C10:
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- str r0, [r7, #0x8]
- pop {r4-r7, pc}
-_02067C18:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xc]
- pop {r4-r7, pc}
-_02067C20:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xd]
- pop {r4-r7, pc}
-_02067C28:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xe]
- pop {r4-r7, pc}
-_02067C30:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xf]
- pop {r4-r7, pc}
-_02067C38:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x10]
- pop {r4-r7, pc}
-_02067C40:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x11]
- pop {r4-r7, pc}
-_02067C48:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x12]
- pop {r4-r7, pc}
-_02067C50:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x13]
- pop {r4-r7, pc}
-_02067C58:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x14]
- pop {r4-r7, pc}
-_02067C60:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x15]
- pop {r4-r7, pc}
-_02067C68:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x16]
- pop {r4-r7, pc}
-_02067C70:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x17]
- pop {r4-r7, pc}
-_02067C78:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x18]
- pop {r4-r7, pc}
-_02067C80:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x19]
- pop {r4-r7, pc}
-_02067C88:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x1a]
- pop {r4-r7, pc}
-_02067C90:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x1b]
- pop {r4-r7, pc}
-_02067C98:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x19
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067CB6
- ldr r1, [r7, #0x1c]
- add sp, #0x4c
- orr r0, r1
- str r0, [r7, #0x1c]
- pop {r4-r7, pc}
-_02067CB6:
- mov r1, #0x0
- sub r1, r1, #0x1
- ldr r2, [r7, #0x1c]
- eor r0, r1
- and r0, r2
- add sp, #0x4c
- str r0, [r7, #0x1c]
- pop {r4-r7, pc}
-_02067CC6:
- ldr r0, [sp, #0x4]
- ldrh r1, [r4, #0x0]
- sub r0, #0x36
- str r0, [sp, #0x4]
- lsl r0, r0, #0x1
- add sp, #0x4c
- strh r1, [r5, r0]
- pop {r4-r7, pc}
-_02067CD6:
- ldr r0, [sp, #0x4]
- ldrb r1, [r4, #0x0]
- sub r0, #0x3a
- str r0, [sp, #0x4]
- add r0, r5, r0
- strb r1, [r0, #0x8]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067CE6:
- ldr r0, [sp, #0x4]
- ldrb r1, [r4, #0x0]
- sub r0, #0x3e
- str r0, [sp, #0x4]
- add r0, r5, r0
- strb r1, [r0, #0xc]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067CF6:
- ldr r2, [r5, #0x10]
- mov r0, #0x1f
- bic r2, r0
- ldrb r1, [r4, #0x0]
- mov r0, #0x1f
- add sp, #0x4c
- and r0, r1
- orr r0, r2
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D0A:
- ldr r1, [r5, #0x10]
- ldr r0, _02067FFC ; =0xFFFFFC1F
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D1E:
- ldr r1, [r5, #0x10]
- ldr r0, _02068000 ; =0xFFFF83FF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D32:
- ldr r1, [r5, #0x10]
- ldr r0, _02068004 ; =0xFFF07FFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D46:
- ldr r1, [r5, #0x10]
- ldr r0, _02068008 ; =0xFE0FFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x7
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D5A:
- ldr r1, [r5, #0x10]
- ldr r0, _0206800C ; =0xC1FFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D6E:
- ldr r1, [r5, #0x10]
- ldr r0, _02068010 ; =0xBFFFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D82:
- ldr r1, [r5, #0x10]
- ldr r0, _02068014 ; =0x7FFFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D94:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x4e
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067DB2
- ldr r1, [r5, #0x14]
- add sp, #0x4c
- orr r0, r1
- str r0, [r5, #0x14]
- pop {r4-r7, pc}
-_02067DB2:
- mov r1, #0x0
- sub r1, r1, #0x1
- ldr r2, [r5, #0x14]
- eor r0, r1
- and r0, r2
- add sp, #0x4c
- str r0, [r5, #0x14]
- pop {r4-r7, pc}
-_02067DC2:
- ldrb r2, [r5, #0x18]
- ldrb r1, [r4, #0x0]
- mov r0, #0x1
- bic r2, r0
- mov r0, #0x1
- and r0, r1
- orr r0, r2
- add sp, #0x4c
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DD6:
- ldrb r1, [r5, #0x18]
- mov r0, #0x6
- add sp, #0x4c
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1d
- orr r0, r1
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DEA:
- ldrb r1, [r5, #0x18]
- mov r0, #0xf8
- add sp, #0x4c
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DFE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r5, #0x19]
- pop {r4-r7, pc}
-_02067E06:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r5, #0x1a]
- pop {r4-r7, pc}
-_02067E0E:
- ldrh r0, [r7, #0x0]
- mov r1, #0x0
- add r2, sp, #0x34
- bl GetSpeciesName
- add r0, sp, #0x34
- add r1, r4, #0x0
- bl StringNotEqual
- ldr r2, [r5, #0x10]
- ldr r1, _02068014 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r5, #0x10]
-_02067E2C:
- mov r1, #0x0
-_02067E2E:
- ldrh r0, [r4, #0x0]
- add r1, r1, #0x1
- add r4, r4, #0x2
- strh r0, [r6, #0x0]
- add r6, r6, #0x2
- cmp r1, #0xb
- blo _02067E2E
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067E40:
- ldrh r0, [r7, #0x0]
- add r2, sp, #0x1c
- mov r1, #0x0
- add r2, #0x2
- bl GetSpeciesName
- add r0, r4, #0x0
- add r1, sp, #0x8
- mov r2, #0xb
- bl FUN_02021EF0
- add r0, sp, #0x1c
- add r0, #0x2
- add r1, sp, #0x8
- bl StringNotEqual
- ldr r2, [r5, #0x10]
- ldr r1, _02068014 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r5, #0x10]
-_02067E6C:
- add r0, r4, #0x0
- add r1, r6, #0x0
- mov r2, #0xb
- bl FUN_02021EF0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067E7A:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r6, #0x16]
- pop {r4-r7, pc}
-_02067E82:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r6, #0x17]
- pop {r4-r7, pc}
-_02067E8A:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x7a
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067EB2
- add r4, r6, #0x0
- add r4, #0x18
- ldr r3, [r6, #0x18]
- ldr r2, [r4, #0x4]
- orr r0, r3
- orr r1, r2
- str r0, [r6, #0x18]
- add sp, #0x4c
- str r1, [r4, #0x4]
- pop {r4-r7, pc}
-_02067EB2:
- add r4, r6, #0x0
- mov r5, #0x0
- mvn r5, r5
- add r4, #0x18
- ldr r3, [r6, #0x18]
- eor r0, r5
- ldr r2, [r4, #0x4]
- eor r1, r5
- and r0, r3
- and r1, r2
- str r0, [r6, #0x18]
- add sp, #0x4c
- str r1, [r4, #0x4]
- pop {r4-r7, pc}
-_02067ECE:
- mov r2, #0x0
-_02067ED0:
- ldrh r0, [r4, #0x0]
- add r2, r2, #0x1
- add r4, r4, #0x2
- strh r0, [r1, #0x0]
- add r1, r1, #0x2
- cmp r2, #0x8
- blo _02067ED0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067EE2:
- add r0, r4, #0x0
- mov r2, #0x8
- bl FUN_02021EF0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067EEE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x10]
- pop {r4-r7, pc}
-_02067EF6:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x11]
- pop {r4-r7, pc}
-_02067EFE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x12]
- pop {r4-r7, pc}
-_02067F06:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x13]
- pop {r4-r7, pc}
-_02067F0E:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x14]
- pop {r4-r7, pc}
-_02067F16:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x15]
- pop {r4-r7, pc}
-_02067F1E:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x16]
- pop {r4-r7, pc}
-_02067F26:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x18]
- pop {r4-r7, pc}
-_02067F2E:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1a]
- pop {r4-r7, pc}
-_02067F36:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1b]
- pop {r4-r7, pc}
-_02067F3E:
- ldrb r3, [r1, #0x1c]
- ldrb r2, [r4, #0x0]
- mov r0, #0x7f
- bic r3, r0
- mov r0, #0x7f
- and r0, r2
- orr r0, r3
- strb r0, [r1, #0x1c]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067F52:
- ldrb r2, [r1, #0x1c]
- mov r0, #0x80
- add sp, #0x4c
- bic r2, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x18
- orr r0, r2
- strb r0, [r1, #0x1c]
- pop {r4-r7, pc}
-_02067F66:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1d]
- pop {r4-r7, pc}
-_02067F6E:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x1e]
- pop {r4-r7, pc}
-_02067F76:
- ldr r2, [r5, #0x10]
- mov r0, #0x1f
- bic r2, r0
- ldr r1, [r4, #0x0]
- mov r0, #0x1f
- and r1, r0
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _02067FFC ; =0xFFFFFC1F
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- lsr r0, r0, #0x5
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r1, r0
- ldr r0, _02068000 ; =0xFFFF83FF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0xa
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r1, r0
- ldr r0, _02068004 ; =0xFFF07FFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0xf
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r1, r0
- ldr r0, _02068008 ; =0xFE0FFFFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0x14
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x7
- orr r1, r0
- ldr r0, _0206800C ; =0xC1FFFFFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0x19
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067FDE:
- ldrh r0, [r7, #0x0]
- mov r1, #0x0
- bl FUN_0200AA50
- add r4, r0, #0x0
- add r1, r6, #0x0
- mov r2, #0xb
- bl FUN_02021EF0
- add r0, r4, #0x0
- bl FUN_02021A20
-_02067FF6:
- add sp, #0x4c
- pop {r4-r7, pc}
- nop
-_02067FFC: .word 0xFFFFFC1F
-_02068000: .word 0xFFFF83FF
-_02068004: .word 0xFFF07FFF
-_02068008: .word 0xFE0FFFFF
-_0206800C: .word 0xC1FFFFFF
-_02068010: .word 0xBFFFFFFF
-_02068014: .word 0x7FFFFFFF
-
- thumb_func_start AddMonPartyStatEncrypted
-AddMonPartyStatEncrypted: ; 0x02068018
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02068066
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _02068066
- cmp r0, r1
- beq _02068058
- bl ErrorHandling
-_02068058:
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_02068066:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl AddMonPartyStat
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _0206809C
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_0206809C:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start AddMonPartyStat
-AddMonPartyStat: ; 0x020680A0
- push {r3, lr}
- add r3, r1, #0x0
- sub r3, #0x9f
- cmp r3, #0xa
- bhi _020680F8
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_020680B6: ; jump table (using 16-bit offset)
- .short _020680F2 - _020680B6 - 2; case 0
- .short _020680F2 - _020680B6 - 2; case 1
- .short _020680F2 - _020680B6 - 2; case 2
- .short _020680CC - _020680B6 - 2; case 3
- .short _020680F2 - _020680B6 - 2; case 4
- .short _020680F2 - _020680B6 - 2; case 5
- .short _020680F2 - _020680B6 - 2; case 6
- .short _020680F2 - _020680B6 - 2; case 7
- .short _020680F2 - _020680B6 - 2; case 8
- .short _020680F2 - _020680B6 - 2; case 9
- .short _020680F2 - _020680B6 - 2; case 10
-_020680CC:
- add r1, r0, #0x0
- add r1, #0x90
- ldrh r3, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0x8e
- ldrh r1, [r1, #0x0]
- add r1, r1, r2
- cmp r1, r3
- ble _020680E4
- add r0, #0x8e
- strh r3, [r0, #0x0]
- pop {r3, pc}
-_020680E4:
- add r1, r0, #0x0
- add r1, #0x8e
- ldrh r1, [r1, #0x0]
- add r0, #0x8e
- add r1, r1, r2
- strh r1, [r0, #0x0]
- pop {r3, pc}
-_020680F2:
- bl ErrorHandling
- pop {r3, pc}
-_020680F8:
- bl FUN_02068100
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02068100
-FUN_02068100: ; 0x02068100
- push {r4-r7, lr}
- sub sp, #0xc
- add r7, r1, #0x0
- add r1, r0, #0x0
- add r6, r2, #0x0
- ldr r1, [r1, #0x0]
- str r0, [sp, #0x0]
- mov r2, #0x0
- bl GetSubstruct
- add r4, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x1
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r5, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- ldr r0, [sp, #0x0]
- mov r2, #0x3
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- cmp r7, #0xb2
- bls _02068142
- b _02068500
-_02068142:
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0206814E: ; jump table (using 16-bit offset)
- .short _02068500 - _0206814E - 2; case 0
- .short _02068500 - _0206814E - 2; case 1
- .short _02068500 - _0206814E - 2; case 2
- .short _02068500 - _0206814E - 2; case 3
- .short _02068500 - _0206814E - 2; case 4
- .short _02068500 - _0206814E - 2; case 5
- .short _02068500 - _0206814E - 2; case 6
- .short _02068500 - _0206814E - 2; case 7
- .short _020682B4 - _0206814E - 2; case 8
- .short _020682D8 - _0206814E - 2; case 9
- .short _02068500 - _0206814E - 2; case 10
- .short _02068500 - _0206814E - 2; case 11
- .short _02068500 - _0206814E - 2; case 12
- .short _020682EE - _0206814E - 2; case 13
- .short _020682F8 - _0206814E - 2; case 14
- .short _02068302 - _0206814E - 2; case 15
- .short _0206830C - _0206814E - 2; case 16
- .short _02068316 - _0206814E - 2; case 17
- .short _02068320 - _0206814E - 2; case 18
- .short _0206832A - _0206814E - 2; case 19
- .short _02068340 - _0206814E - 2; case 20
- .short _02068356 - _0206814E - 2; case 21
- .short _0206836C - _0206814E - 2; case 22
- .short _02068382 - _0206814E - 2; case 23
- .short _02068398 - _0206814E - 2; case 24
- .short _02068500 - _0206814E - 2; case 25
- .short _02068500 - _0206814E - 2; case 26
- .short _02068500 - _0206814E - 2; case 27
- .short _02068500 - _0206814E - 2; case 28
- .short _02068500 - _0206814E - 2; case 29
- .short _02068500 - _0206814E - 2; case 30
- .short _02068500 - _0206814E - 2; case 31
- .short _02068500 - _0206814E - 2; case 32
- .short _02068500 - _0206814E - 2; case 33
- .short _02068500 - _0206814E - 2; case 34
- .short _02068500 - _0206814E - 2; case 35
- .short _02068500 - _0206814E - 2; case 36
- .short _02068500 - _0206814E - 2; case 37
- .short _02068500 - _0206814E - 2; case 38
- .short _02068500 - _0206814E - 2; case 39
- .short _02068500 - _0206814E - 2; case 40
- .short _02068500 - _0206814E - 2; case 41
- .short _02068500 - _0206814E - 2; case 42
- .short _02068500 - _0206814E - 2; case 43
- .short _02068500 - _0206814E - 2; case 44
- .short _02068500 - _0206814E - 2; case 45
- .short _02068500 - _0206814E - 2; case 46
- .short _02068500 - _0206814E - 2; case 47
- .short _02068500 - _0206814E - 2; case 48
- .short _02068500 - _0206814E - 2; case 49
- .short _02068500 - _0206814E - 2; case 50
- .short _02068500 - _0206814E - 2; case 51
- .short _02068500 - _0206814E - 2; case 52
- .short _02068500 - _0206814E - 2; case 53
- .short _02068500 - _0206814E - 2; case 54
- .short _02068500 - _0206814E - 2; case 55
- .short _02068500 - _0206814E - 2; case 56
- .short _02068500 - _0206814E - 2; case 57
- .short _020683AE - _0206814E - 2; case 58
- .short _020683AE - _0206814E - 2; case 59
- .short _020683AE - _0206814E - 2; case 60
- .short _020683AE - _0206814E - 2; case 61
- .short _020683EA - _0206814E - 2; case 62
- .short _020683EA - _0206814E - 2; case 63
- .short _020683EA - _0206814E - 2; case 64
- .short _020683EA - _0206814E - 2; case 65
- .short _02068504 - _0206814E - 2; case 66
- .short _02068504 - _0206814E - 2; case 67
- .short _02068504 - _0206814E - 2; case 68
- .short _02068504 - _0206814E - 2; case 69
- .short _02068404 - _0206814E - 2; case 70
- .short _0206842E - _0206814E - 2; case 71
- .short _02068458 - _0206814E - 2; case 72
- .short _02068482 - _0206814E - 2; case 73
- .short _020684AC - _0206814E - 2; case 74
- .short _020684D6 - _0206814E - 2; case 75
- .short _02068500 - _0206814E - 2; case 76
- .short _02068500 - _0206814E - 2; case 77
- .short _02068500 - _0206814E - 2; case 78
- .short _02068500 - _0206814E - 2; case 79
- .short _02068500 - _0206814E - 2; case 80
- .short _02068500 - _0206814E - 2; case 81
- .short _02068500 - _0206814E - 2; case 82
- .short _02068500 - _0206814E - 2; case 83
- .short _02068500 - _0206814E - 2; case 84
- .short _02068500 - _0206814E - 2; case 85
- .short _02068500 - _0206814E - 2; case 86
- .short _02068500 - _0206814E - 2; case 87
- .short _02068500 - _0206814E - 2; case 88
- .short _02068500 - _0206814E - 2; case 89
- .short _02068500 - _0206814E - 2; case 90
- .short _02068500 - _0206814E - 2; case 91
- .short _02068500 - _0206814E - 2; case 92
- .short _02068500 - _0206814E - 2; case 93
- .short _02068500 - _0206814E - 2; case 94
- .short _02068500 - _0206814E - 2; case 95
- .short _02068500 - _0206814E - 2; case 96
- .short _02068500 - _0206814E - 2; case 97
- .short _02068500 - _0206814E - 2; case 98
- .short _02068500 - _0206814E - 2; case 99
- .short _02068500 - _0206814E - 2; case 100
- .short _02068500 - _0206814E - 2; case 101
- .short _02068500 - _0206814E - 2; case 102
- .short _02068500 - _0206814E - 2; case 103
- .short _02068500 - _0206814E - 2; case 104
- .short _02068500 - _0206814E - 2; case 105
- .short _02068500 - _0206814E - 2; case 106
- .short _02068500 - _0206814E - 2; case 107
- .short _02068500 - _0206814E - 2; case 108
- .short _02068500 - _0206814E - 2; case 109
- .short _02068500 - _0206814E - 2; case 110
- .short _02068500 - _0206814E - 2; case 111
- .short _02068500 - _0206814E - 2; case 112
- .short _02068500 - _0206814E - 2; case 113
- .short _02068500 - _0206814E - 2; case 114
- .short _02068500 - _0206814E - 2; case 115
- .short _02068500 - _0206814E - 2; case 116
- .short _02068500 - _0206814E - 2; case 117
- .short _02068500 - _0206814E - 2; case 118
- .short _02068500 - _0206814E - 2; case 119
- .short _02068500 - _0206814E - 2; case 120
- .short _02068500 - _0206814E - 2; case 121
- .short _02068500 - _0206814E - 2; case 122
- .short _02068500 - _0206814E - 2; case 123
- .short _02068500 - _0206814E - 2; case 124
- .short _02068500 - _0206814E - 2; case 125
- .short _02068500 - _0206814E - 2; case 126
- .short _02068500 - _0206814E - 2; case 127
- .short _02068500 - _0206814E - 2; case 128
- .short _02068500 - _0206814E - 2; case 129
- .short _02068500 - _0206814E - 2; case 130
- .short _02068500 - _0206814E - 2; case 131
- .short _02068500 - _0206814E - 2; case 132
- .short _02068500 - _0206814E - 2; case 133
- .short _02068500 - _0206814E - 2; case 134
- .short _02068500 - _0206814E - 2; case 135
- .short _02068500 - _0206814E - 2; case 136
- .short _02068500 - _0206814E - 2; case 137
- .short _02068500 - _0206814E - 2; case 138
- .short _02068500 - _0206814E - 2; case 139
- .short _02068500 - _0206814E - 2; case 140
- .short _02068500 - _0206814E - 2; case 141
- .short _02068500 - _0206814E - 2; case 142
- .short _02068500 - _0206814E - 2; case 143
- .short _02068500 - _0206814E - 2; case 144
- .short _02068500 - _0206814E - 2; case 145
- .short _02068500 - _0206814E - 2; case 146
- .short _02068500 - _0206814E - 2; case 147
- .short _02068500 - _0206814E - 2; case 148
- .short _02068500 - _0206814E - 2; case 149
- .short _02068500 - _0206814E - 2; case 150
- .short _02068500 - _0206814E - 2; case 151
- .short _02068500 - _0206814E - 2; case 152
- .short _02068500 - _0206814E - 2; case 153
- .short _02068500 - _0206814E - 2; case 154
- .short _02068500 - _0206814E - 2; case 155
- .short _02068500 - _0206814E - 2; case 156
- .short _02068500 - _0206814E - 2; case 157
- .short _02068500 - _0206814E - 2; case 158
- .short _02068500 - _0206814E - 2; case 159
- .short _02068500 - _0206814E - 2; case 160
- .short _02068500 - _0206814E - 2; case 161
- .short _02068500 - _0206814E - 2; case 162
- .short _02068500 - _0206814E - 2; case 163
- .short _02068500 - _0206814E - 2; case 164
- .short _02068500 - _0206814E - 2; case 165
- .short _02068500 - _0206814E - 2; case 166
- .short _02068500 - _0206814E - 2; case 167
- .short _02068500 - _0206814E - 2; case 168
- .short _02068500 - _0206814E - 2; case 169
- .short _02068500 - _0206814E - 2; case 170
- .short _02068500 - _0206814E - 2; case 171
- .short _02068500 - _0206814E - 2; case 172
- .short _02068500 - _0206814E - 2; case 173
- .short _02068500 - _0206814E - 2; case 174
- .short _02068500 - _0206814E - 2; case 175
- .short _02068500 - _0206814E - 2; case 176
- .short _02068500 - _0206814E - 2; case 177
- .short _02068500 - _0206814E - 2; case 178
-_020682B4:
- ldrh r0, [r4, #0x0]
- mov r1, #0x64
- bl GetMonExpByLevel
- ldr r1, [r4, #0x8]
- add r1, r1, r6
- cmp r1, r0
- bls _020682D2
- ldrh r0, [r4, #0x0]
- mov r1, #0x64
- bl GetMonExpByLevel
- add sp, #0xc
- str r0, [r4, #0x8]
- pop {r4-r7, pc}
-_020682D2:
- add sp, #0xc
- str r1, [r4, #0x8]
- pop {r4-r7, pc}
-_020682D8:
- ldrb r0, [r4, #0xc]
- add r0, r0, r6
- cmp r0, #0xff
- ble _020682E8
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0xc]
- pop {r4-r7, pc}
-_020682E8:
- add sp, #0xc
- strb r0, [r4, #0xc]
- pop {r4-r7, pc}
-_020682EE:
- ldrb r0, [r4, #0x10]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x10]
- pop {r4-r7, pc}
-_020682F8:
- ldrb r0, [r4, #0x11]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x11]
- pop {r4-r7, pc}
-_02068302:
- ldrb r0, [r4, #0x12]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x12]
- pop {r4-r7, pc}
-_0206830C:
- ldrb r0, [r4, #0x13]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x13]
- pop {r4-r7, pc}
-_02068316:
- ldrb r0, [r4, #0x14]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x14]
- pop {r4-r7, pc}
-_02068320:
- ldrb r0, [r4, #0x15]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x15]
- pop {r4-r7, pc}
-_0206832A:
- ldrb r0, [r4, #0x16]
- add r0, r0, r6
- cmp r0, #0xff
- ble _0206833A
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x16]
- pop {r4-r7, pc}
-_0206833A:
- add sp, #0xc
- strb r0, [r4, #0x16]
- pop {r4-r7, pc}
-_02068340:
- ldrb r0, [r4, #0x17]
- add r0, r0, r6
- cmp r0, #0xff
- ble _02068350
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x17]
- pop {r4-r7, pc}
-_02068350:
- add sp, #0xc
- strb r0, [r4, #0x17]
- pop {r4-r7, pc}
-_02068356:
- ldrb r0, [r4, #0x18]
- add r0, r0, r6
- cmp r0, #0xff
- ble _02068366
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x18]
- pop {r4-r7, pc}
-_02068366:
- add sp, #0xc
- strb r0, [r4, #0x18]
- pop {r4-r7, pc}
-_0206836C:
- ldrb r0, [r4, #0x19]
- add r0, r0, r6
- cmp r0, #0xff
- ble _0206837C
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x19]
- pop {r4-r7, pc}
-_0206837C:
- add sp, #0xc
- strb r0, [r4, #0x19]
- pop {r4-r7, pc}
-_02068382:
- ldrb r0, [r4, #0x1a]
- add r0, r0, r6
- cmp r0, #0xff
- ble _02068392
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x1a]
- pop {r4-r7, pc}
-_02068392:
- add sp, #0xc
- strb r0, [r4, #0x1a]
- pop {r4-r7, pc}
-_02068398:
- ldrb r0, [r4, #0x1b]
- add r0, r0, r6
- cmp r0, #0xff
- ble _020683A8
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x1b]
- pop {r4-r7, pc}
-_020683A8:
- add sp, #0xc
- strb r0, [r4, #0x1b]
- pop {r4-r7, pc}
-_020683AE:
- add r0, r5, #0x0
- str r0, [sp, #0x4]
- add r0, #0xc
- str r0, [sp, #0x4]
- sub r7, #0x3a
- ldr r1, [sp, #0x4]
- lsl r0, r7, #0x1
- str r0, [sp, #0x8]
- add r4, r5, #0x0
- ldrh r0, [r5, r0]
- ldrb r1, [r1, r7]
- add r4, #0x8
- bl FUN_0206AB30
- ldrb r1, [r4, r7]
- add r1, r6, r1
- cmp r1, r0
- ble _020683E4
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x4]
- ldrh r0, [r5, r0]
- ldrb r1, [r1, r7]
- bl FUN_0206AB30
- add sp, #0xc
- strb r0, [r4, r7]
- pop {r4-r7, pc}
-_020683E4:
- add sp, #0xc
- strb r1, [r4, r7]
- pop {r4-r7, pc}
-_020683EA:
- add r5, #0xc
- sub r7, #0x3e
- ldrb r0, [r5, r7]
- add r0, r6, r0
- cmp r0, #0x3
- ble _020683FE
- mov r0, #0x3
- add sp, #0xc
- strb r0, [r5, r7]
- pop {r4-r7, pc}
-_020683FE:
- add sp, #0xc
- strb r0, [r5, r7]
- pop {r4-r7, pc}
-_02068404:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- bls _0206841E
- mov r0, #0x1f
- bic r1, r0
- mov r0, #0x1f
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206841E:
- mov r0, #0x1f
- bic r1, r0
- mov r0, #0x1f
- and r0, r2
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206842E:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x16
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068508 ; =0xFFFFFC1F
- bls _0206844A
- and r1, r0
- mov r0, #0x3e
- lsl r0, r0, #0x4
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206844A:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x16
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068458:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x11
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _0206850C ; =0xFFFF83FF
- bls _02068474
- and r1, r0
- mov r0, #0x1f
- lsl r0, r0, #0xa
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068474:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x11
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068482:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0xc
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068510 ; =0xFFF07FFF
- bls _0206849E
- and r1, r0
- mov r0, #0x3e
- lsl r0, r0, #0xe
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206849E:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0xc
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684AC:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x7
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068514 ; =0xFE0FFFFF
- bls _020684C8
- and r1, r0
- mov r0, #0x1f
- lsl r0, r0, #0x14
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684C8:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x7
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684D6:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x2
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068518 ; =0xC1FFFFFF
- bls _020684F2
- and r1, r0
- mov r0, #0x3e
- lsl r0, r0, #0x18
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684F2:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068500:
- bl ErrorHandling
-_02068504:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02068508: .word 0xFFFFFC1F
-_0206850C: .word 0xFFFF83FF
-_02068510: .word 0xFFF07FFF
-_02068514: .word 0xFE0FFFFF
-_02068518: .word 0xC1FFFFFF
-
- thumb_func_start AllocAndLoadMonPersonal
-AllocAndLoadMonPersonal: ; 0x0206851C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x2c
- bl AllocFromHeap
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl LoadMonPersonal
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetPersonalAttr
-GetPersonalAttr: ; 0x02068538
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r6, r1, #0x0
- cmp r4, #0x0
- bne _02068546
- bl ErrorHandling
-_02068546:
- cmp r6, #0x20
- bhi _0206863A
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02068556: ; jump table (using 16-bit offset)
- .short _02068598 - _02068556 - 2; case 0
- .short _0206859C - _02068556 - 2; case 1
- .short _020685A0 - _02068556 - 2; case 2
- .short _020685A4 - _02068556 - 2; case 3
- .short _020685A8 - _02068556 - 2; case 4
- .short _020685AC - _02068556 - 2; case 5
- .short _020685B0 - _02068556 - 2; case 6
- .short _020685B4 - _02068556 - 2; case 7
- .short _020685B8 - _02068556 - 2; case 8
- .short _020685BC - _02068556 - 2; case 9
- .short _020685C0 - _02068556 - 2; case 10
- .short _020685C8 - _02068556 - 2; case 11
- .short _020685D0 - _02068556 - 2; case 12
- .short _020685D8 - _02068556 - 2; case 13
- .short _020685E0 - _02068556 - 2; case 14
- .short _020685E8 - _02068556 - 2; case 15
- .short _020685F0 - _02068556 - 2; case 16
- .short _020685F4 - _02068556 - 2; case 17
- .short _020685F8 - _02068556 - 2; case 18
- .short _020685FC - _02068556 - 2; case 19
- .short _02068600 - _02068556 - 2; case 20
- .short _02068604 - _02068556 - 2; case 21
- .short _02068608 - _02068556 - 2; case 22
- .short _0206860C - _02068556 - 2; case 23
- .short _02068610 - _02068556 - 2; case 24
- .short _02068614 - _02068556 - 2; case 25
- .short _02068618 - _02068556 - 2; case 26
- .short _0206861C - _02068556 - 2; case 27
- .short _02068624 - _02068556 - 2; case 28
- .short _0206862C - _02068556 - 2; case 29
- .short _02068630 - _02068556 - 2; case 30
- .short _02068634 - _02068556 - 2; case 31
- .short _02068638 - _02068556 - 2; case 32
-_02068598:
- ldrb r5, [r4, #0x0]
- b _0206863A
-_0206859C:
- ldrb r5, [r4, #0x1]
- b _0206863A
-_020685A0:
- ldrb r5, [r4, #0x2]
- b _0206863A
-_020685A4:
- ldrb r5, [r4, #0x3]
- b _0206863A
-_020685A8:
- ldrb r5, [r4, #0x4]
- b _0206863A
-_020685AC:
- ldrb r5, [r4, #0x5]
- b _0206863A
-_020685B0:
- ldrb r5, [r4, #0x6]
- b _0206863A
-_020685B4:
- ldrb r5, [r4, #0x7]
- b _0206863A
-_020685B8:
- ldrb r5, [r4, #0x8]
- b _0206863A
-_020685BC:
- ldrb r5, [r4, #0x9]
- b _0206863A
-_020685C0:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x1e
- lsr r5, r0, #0x1e
- b _0206863A
-_020685C8:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x1c
- lsr r5, r0, #0x1e
- b _0206863A
-_020685D0:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x1a
- lsr r5, r0, #0x1e
- b _0206863A
-_020685D8:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x18
- lsr r5, r0, #0x1e
- b _0206863A
-_020685E0:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x16
- lsr r5, r0, #0x1e
- b _0206863A
-_020685E8:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x14
- lsr r5, r0, #0x1e
- b _0206863A
-_020685F0:
- ldrh r5, [r4, #0xc]
- b _0206863A
-_020685F4:
- ldrh r5, [r4, #0xe]
- b _0206863A
-_020685F8:
- ldrb r5, [r4, #0x10]
- b _0206863A
-_020685FC:
- ldrb r5, [r4, #0x11]
- b _0206863A
-_02068600:
- ldrb r5, [r4, #0x12]
- b _0206863A
-_02068604:
- ldrb r5, [r4, #0x13]
- b _0206863A
-_02068608:
- ldrb r5, [r4, #0x14]
- b _0206863A
-_0206860C:
- ldrb r5, [r4, #0x15]
- b _0206863A
-_02068610:
- ldrb r5, [r4, #0x16]
- b _0206863A
-_02068614:
- ldrb r5, [r4, #0x17]
- b _0206863A
-_02068618:
- ldrb r5, [r4, #0x18]
- b _0206863A
-_0206861C:
- ldrb r0, [r4, #0x19]
- lsl r0, r0, #0x19
- lsr r5, r0, #0x19
- b _0206863A
-_02068624:
- ldrb r0, [r4, #0x19]
- lsl r0, r0, #0x18
- lsr r5, r0, #0x1f
- b _0206863A
-_0206862C:
- ldr r5, [r4, #0x1c]
- b _0206863A
-_02068630:
- ldr r5, [r4, #0x20]
- b _0206863A
-_02068634:
- ldr r5, [r4, #0x24]
- b _0206863A
-_02068638:
- ldr r5, [r4, #0x28]
-_0206863A:
- add r0, r5, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FreeMonPersonal
-FreeMonPersonal: ; 0x02068640
- push {r4, lr}
- add r4, r0, #0x0
- bne _0206864A
- bl ErrorHandling
-_0206864A:
- add r0, r4, #0x0
- bl FreeToHeap
- pop {r4, pc}
- .balign 4
-
- thumb_func_start GetMonBaseStat_HandleFormeConversion
-GetMonBaseStat_HandleFormeConversion: ; 0x02068654
- push {r3-r5, lr}
- add r4, r2, #0x0
- bl ResolveMonForme
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r5, r0, #0x0
- add r1, r4, #0x0
- bl GetPersonalAttr
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetMonBaseStat
-GetMonBaseStat: ; 0x02068678
- push {r3-r5, lr}
- add r4, r1, #0x0
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r5, r0, #0x0
- add r1, r4, #0x0
- bl GetPersonalAttr
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02068698
-FUN_02068698: ; 0x02068698
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl TryDecryptMon
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl GetMonExpByLevel
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r7, #0x1
- bl GetMonExpByLevel
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r7, r0, #0x0
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptMon
- sub r1, r7, r4
- mov r0, #0x64
- mul r0, r1
- sub r1, r6, r4
- bl _u32_div_f
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3-r7, pc}
-
- thumb_func_start CalcMonExpToNextLevelEncrypted
-CalcMonExpToNextLevelEncrypted: ; 0x020686F8
- ldr r3, _020686FC ; =CalcBoxMonExpToNextLevelEncrypted
- bx r3
- .balign 4
-_020686FC: .word CalcBoxMonExpToNextLevelEncrypted
-
- thumb_func_start CalcBoxMonExpToNextLevelEncrypted
-CalcBoxMonExpToNextLevelEncrypted: ; 0x02068700
- push {r4-r6, lr}
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r4, #0x0
- bl CalcBoxMonLevelEncrypted
- add r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl GetMonExpByLevel
- sub r0, r0, r4
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02068734
-FUN_02068734: ; 0x02068734
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl GetMonExpByLevel
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetMonExpByLevel
-GetMonExpByLevel: ; 0x02068758
- push {r4, lr}
- add r4, r1, #0x0
- mov r1, #0x15
- bl GetMonBaseStat
- add r1, r4, #0x0
- bl GetExpByGrowthRateAndLevel
- pop {r4, pc}
- .balign 4
-
- thumb_func_start LoadGrowthTable
-LoadGrowthTable: ; 0x0206876C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x8
- blt _0206877A
- bl ErrorHandling
-_0206877A:
- add r0, r4, #0x0
- mov r1, #0x3 ; NARC_POKETOOL_PERSONAL_GROWTBL
- add r2, r5, #0x0
- bl ReadWholeNarcMemberByIdPair
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetExpByGrowthRateAndLevel
-GetExpByGrowthRateAndLevel: ; 0x02068788
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r5, r1, #0x0
- cmp r6, #0x8
- blt _02068796
- bl ErrorHandling
-_02068796:
- cmp r5, #0x65
- ble _0206879E
- bl ErrorHandling
-_0206879E:
- mov r1, #0x65
- mov r0, #0x0
- lsl r1, r1, #0x2
- bl AllocFromHeap
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl LoadGrowthTable
- lsl r0, r5, #0x2
- ldr r5, [r4, r0]
- add r0, r4, #0x0
- bl FreeToHeap
- add r0, r5, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start CalcMonLevelEncrypted
-CalcMonLevelEncrypted: ; 0x020687C0
- ldr r3, _020687C4 ; =CalcBoxMonLevelEncrypted
- bx r3
- .balign 4
-_020687C4: .word CalcBoxMonLevelEncrypted
-
- thumb_func_start CalcBoxMonLevelEncrypted
-CalcBoxMonLevelEncrypted: ; 0x020687C8
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r7, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl TryEncryptBoxMon
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- add r1, r7, #0x0
- bl CalcLevelBySpeciesAndExp
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start CalcLevelBySpeciesAndExp
-CalcLevelBySpeciesAndExp: ; 0x02068800
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r6, r0, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl CalcLevelBySpeciesAndExp_PreloadedPersonal
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start CalcLevelBySpeciesAndExp_PreloadedPersonal
-CalcLevelBySpeciesAndExp_PreloadedPersonal: ; 0x02068824
- push {r4, lr}
- mov r1, #0x15
- add r4, r2, #0x0
- bl GetPersonalAttr
- ldr r1, _0206884C ; =UNK_021C5AC0
- bl LoadGrowthTable
- ldr r2, _02068850 ; =UNK_021C5AC0 + 4
- mov r1, #0x1
-_02068838:
- ldr r0, [r2, #0x0]
- cmp r0, r4
- bhi _02068846
- add r1, r1, #0x1
- add r2, r2, #0x4
- cmp r1, #0x65
- blt _02068838
-_02068846:
- sub r0, r1, #0x1
- pop {r4, pc}
- nop
-_0206884C: .word UNK_021C5AC0
-_02068850: .word UNK_021C5AC0 + 4
-
- thumb_func_start GetMonNatureEncrypted
-GetMonNatureEncrypted: ; 0x02068854
- ldr r3, _02068858 ; =GetBoxMonNatureEncrypted
- bx r3
- .balign 4
-_02068858: .word GetBoxMonNatureEncrypted
-
- thumb_func_start GetBoxMonNatureEncrypted
-GetBoxMonNatureEncrypted: ; 0x0206885C
- push {r4-r6, lr}
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- mov r1, #0x0
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl TryEncryptBoxMon
- add r0, r6, #0x0
- bl GetNatureFromPersonality
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: ; 0x02068884
- push {r3, lr}
- mov r1, #0x19
- bl _u32_div_f
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
- .balign 4
-
- thumb_func_start ApplyNatureModToStat
-ApplyNatureModToStat: ; 0x02068894
- push {r3, lr}
- cmp r2, #0x1
- blo _0206889E
- cmp r2, #0x5
- bls _020688A2
-_0206889E:
- add r0, r1, #0x0
- pop {r3, pc}
-_020688A2:
- lsl r3, r0, #0x2
- add r3, r0, r3
- ldr r0, _020688E4 ; =sNatureStatMods
- sub r2, r2, #0x1
- add r0, r0, r3
- ldrsb r2, [r2, r0]
- mov r0, #0x0
- mvn r0, r0
- cmp r2, r0
- beq _020688CE
- cmp r2, #0x1
- bne _020688E0
- mov r0, #110
- mul r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #100
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- b _020688E0
-_020688CE:
- mov r0, #90
- mul r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #100
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_020688E0:
- add r0, r1, #0x0
- pop {r3, pc}
- .balign 4
-_020688E4: .word sNatureStatMods
-
- thumb_func_start MonApplyFriendshipModEncrypted
-MonApplyFriendshipModEncrypted: ; 0x020688E8
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r1, #0x0
- add r5, r0, #0x0
- str r2, [sp, #0x0]
- cmp r6, #0x5
- bne _02068900
- bl rand_LC
- mov r1, #0x1
- tst r0, r1
- bne _020689D4
-_02068900:
- add r0, r5, #0x0
- mov r1, #0xad
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- beq _020689D4
- ldr r0, _020689D8 ; =SPECIES_EGG
- cmp r1, r0
- beq _020689D4
- add r0, r5, #0x0
- mov r1, #0x6
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_0206E7B8
- lsl r0, r0, #0x18
- mov r4, #0x0
- lsr r7, r0, #0x18
- add r0, r5, #0x0
- mov r1, #0x9
- add r2, r4, #0x0
- bl GetMonDataEncrypted
- add r1, sp, #0x4
- strh r0, [r1, #0x0]
- add r0, r4, #0x0
- ldrsh r1, [r1, r0]
- cmp r1, #0x64
- blt _0206894E
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_0206894E:
- cmp r1, #0xc8
- blt _02068958
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_02068958:
- lsl r0, r6, #0x1
- add r1, r6, r0
- ldr r0, _020689DC ; =sFriendshipModTable
- add r0, r0, r1
- ldrsb r4, [r4, r0]
- cmp r4, #0x0
- ble _0206897A
- add r0, r5, #0x0
- mov r1, #0x9a
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0xb
- bne _0206897A
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
-_0206897A:
- cmp r4, #0x0
- ble _02068994
- add r0, r5, #0x0
- mov r1, #0x97
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x0]
- cmp r1, r0
- bne _02068994
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
-_02068994:
- cmp r4, #0x0
- ble _020689AA
- cmp r7, #0x34
- bne _020689AA
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
-_020689AA:
- add r0, sp, #0x4
- mov r1, #0x0
- ldrsh r2, [r0, r1]
- add r2, r2, r4
- strh r2, [r0, #0x0]
- ldrsh r2, [r0, r1]
- cmp r2, #0x0
- bge _020689BC
- strh r1, [r0, #0x0]
-_020689BC:
- add r1, sp, #0x4
- mov r0, #0x0
- ldrsh r0, [r1, r0]
- cmp r0, #0xff
- ble _020689CA
- mov r0, #0xff
- strh r0, [r1, #0x0]
-_020689CA:
- add r0, r5, #0x0
- mov r1, #0x9
- add r2, sp, #0x4
- bl SetMonDataEncrypted
-_020689D4:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020689D8: .word SPECIES_EGG
-_020689DC: .word sFriendshipModTable
-
- thumb_func_start GetMonGenderEncrypted
-GetMonGenderEncrypted: ; 0x020689E0
- ldr r3, _020689E4 ; =GetBoxMonGenderEncrypted
- bx r3
- .balign 4
-_020689E4: .word GetBoxMonGenderEncrypted
-
- thumb_func_start GetBoxMonGenderEncrypted
-GetBoxMonGenderEncrypted: ; 0x020689E8
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- mov r1, #0x0
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r7, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl TryEncryptBoxMon
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl GetGenderBySpeciesAndPersonality
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start GetGenderBySpeciesAndPersonality
-GetGenderBySpeciesAndPersonality: ; 0x02068A20
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r6, r0, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl GetGenderBySpeciesAndPersonality_PreloadedPersonal
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start GetGenderBySpeciesAndPersonality_PreloadedPersonal
-GetGenderBySpeciesAndPersonality_PreloadedPersonal: ; 0x02068A44
- push {r4, lr}
- mov r1, #0x12
- add r4, r2, #0x0
- bl GetPersonalAttr
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- beq _02068A5E
- cmp r1, #0xfe
- beq _02068A62
- cmp r1, #0xff
- beq _02068A66
- b _02068A6A
-_02068A5E:
- mov r0, #0x0
- pop {r4, pc}
-_02068A62:
- mov r0, #0x1
- pop {r4, pc}
-_02068A66:
- mov r0, #0x2
- pop {r4, pc}
-_02068A6A:
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- cmp r1, r0
- bls _02068A76
- mov r0, #0x1
- b _02068A78
-_02068A76:
- mov r0, #0x0
-_02068A78:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02068A80
-FUN_02068A80: ; 0x02068A80
- ldr r3, _02068A84 ; =FUN_02068A88
- bx r3
- .balign 4
-_02068A84: .word FUN_02068A88
-
- thumb_func_start FUN_02068A88
-FUN_02068A88: ; 0x02068A88
- push {r3-r5, lr}
- mov r1, #0x7
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- mov r1, #0x0
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02068AAC
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02068AAC
-FUN_02068AAC: ; 0x02068AAC
- ldr r3, _02068AD4 ; =0xFFFF0000
- lsl r2, r1, #0x10
- and r1, r3
- and r3, r0
- lsl r0, r0, #0x10
- lsr r3, r3, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- eor r0, r3
- lsr r2, r2, #0x10
- eor r0, r1
- eor r0, r2
- cmp r0, #0x8
- bhs _02068ACC
- mov r0, #0x1
- b _02068ACE
-_02068ACC:
- mov r0, #0x0
-_02068ACE:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
- .balign 4
-_02068AD4: .word 0xFFFF0000
-
- thumb_func_start FUN_02068AD8
-FUN_02068AD8: ; 0x02068AD8
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _02068B64 ; =0xFFFF0000
- and r0, r7
- lsr r1, r0, #0x10
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- eor r0, r1
- lsr r7, r0, #0x3
- bl rand_LC
- mov r1, #0x7
- and r0, r1
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- bl rand_LC
- mov r1, #0x7
- and r0, r1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- mov r4, #0x0
-_02068B04:
- add r0, r4, #0x0
- bl MaskOfFlagNo
- tst r0, r7
- beq _02068B34
- bl rand_LC
- mov r1, #0x1
- tst r0, r1
- beq _02068B26
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r6
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- b _02068B56
-_02068B26:
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r5
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- b _02068B56
-_02068B34:
- bl rand_LC
- mov r1, #0x1
- tst r0, r1
- beq _02068B56
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r6
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r5
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
-_02068B56:
- add r4, r4, #0x1
- cmp r4, #0xd
- blt _02068B04
- lsl r0, r5, #0x10
- orr r0, r6
- pop {r3-r7, pc}
- nop
-_02068B64: .word 0xFFFF0000
-
- thumb_func_start FUN_02068B68
-FUN_02068B68: ; 0x02068B68
- ldr r3, _02068B6C ; =FUN_02068B70
- bx r3
- .balign 4
-_02068B6C: .word FUN_02068B70
-
- thumb_func_start FUN_02068B70
-FUN_02068B70: ; 0x02068B70
- push {r4-r7, lr}
- sub sp, #0x1c
- add r5, r1, #0x0
- str r0, [sp, #0xc]
- add r0, r5, #0x0
- str r2, [sp, #0x10]
- bl TryDecryptBoxMon
- str r0, [sp, #0x18]
- add r0, r5, #0x0
- mov r1, #0xad
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- bl GetBoxMonGenderEncrypted
- str r0, [sp, #0x14]
- add r0, r5, #0x0
- bl FUN_02068A88
- mov r1, #0x0
- add r7, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- ldr r0, _02068BF8 ; =SPECIES_EGG
- cmp r4, r0
- bne _02068BCA
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, _02068BFC ; =0x000001EA
- cmp r0, r1
- bne _02068BC6
- mov r0, #0x1
- b _02068BD8
-_02068BC6:
- mov r0, #0x0
- b _02068BD8
-_02068BCA:
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
-_02068BD8:
- str r7, [sp, #0x0]
- str r0, [sp, #0x4]
- str r6, [sp, #0x8]
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x14]
- ldr r3, [sp, #0x10]
- add r1, r4, #0x0
- bl FUN_02068C00
- ldr r1, [sp, #0x18]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x1c
- pop {r4-r7, pc}
- nop
-_02068BF8: .word SPECIES_EGG
-_02068BFC: .word 0x000001EA
-
- thumb_func_start FUN_02068C00
-FUN_02068C00: ; 0x02068C00
- push {r4-r7}
- add r7, r2, #0x0
- add r5, r3, #0x0
- add r4, r0, #0x0
- add r0, r1, #0x0
- ldr r3, [sp, #0x10]
- ldr r2, [sp, #0x14]
- mov r1, #0x0
- strh r1, [r4, #0x6]
- strb r1, [r4, #0x8]
- str r1, [r4, #0xc]
- ldr r1, _02068E0C ; =0x000001A5
- cmp r0, r1
- bgt _02068C68
- bge _02068D1E
- add r6, r1, #0x0
- sub r6, #0x46
- cmp r0, r6
- bgt _02068C36
- sub r1, #0x46
- cmp r0, r1
- blt _02068C2E
- b _02068D58
-_02068C2E:
- cmp r0, #0xc9
- bne _02068C34
- b _02068D90
-_02068C34:
- b _02068DD4
-_02068C36:
- add r6, r1, #0x0
- sub r6, #0x23
- cmp r0, r6
- bgt _02068C48
- sub r1, #0x23
- cmp r0, r1
- bne _02068C46
- b _02068D76
-_02068C46:
- b _02068DD4
-_02068C48:
- add r6, r1, #0x0
- sub r6, #0x8
- cmp r0, r6
- bgt _02068C66
- add r6, r1, #0x0
- sub r6, #0x9
- cmp r0, r6
- blt _02068C66
- add r6, r1, #0x0
- sub r6, #0x9
- cmp r0, r6
- beq _02068CAA
- sub r1, #0x8
- cmp r0, r1
- beq _02068CC8
-_02068C66:
- b _02068DD4
-_02068C68:
- add r6, r1, #0x0
- add r6, #0x48
- cmp r0, r6
- bgt _02068C8E
- add r6, r1, #0x0
- add r6, #0x48
- cmp r0, r6
- bge _02068D3A
- add r6, r1, #0x2
- cmp r0, r6
- bgt _02068C8C
- add r6, r1, #0x1
- cmp r0, r6
- blt _02068C8C
- beq _02068CE6
- add r1, r1, #0x2
- cmp r0, r1
- beq _02068D02
-_02068C8C:
- b _02068DD4
-_02068C8E:
- add r6, r1, #0x0
- add r6, #0x49
- cmp r0, r6
- bgt _02068CA0
- add r1, #0x49
- cmp r0, r1
- bne _02068C9E
- b _02068DAC
-_02068C9E:
- b _02068DD4
-_02068CA0:
- add r1, #0x4a
- cmp r0, r1
- bne _02068CA8
- b _02068DC4
-_02068CA8:
- b _02068DD4
-_02068CAA:
- cmp r2, #0x2
- bls _02068CB0
- mov r2, #0x0
-_02068CB0:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r0, r5, #0x1
- lsl r1, r2, #0x1
- add r0, #0x48
- add r0, r0, r1
- add r3, #0x92
- strh r0, [r4, #0x2]
- add r0, r3, r1
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068CC8:
- cmp r2, #0x2
- bls _02068CCE
- mov r2, #0x0
-_02068CCE:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r0, r5, #0x1
- lsl r1, r2, #0x1
- add r0, #0x4e
- add r0, r0, r1
- add r3, #0x98
- strh r0, [r4, #0x2]
- add r0, r3, r1
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068CE6:
- cmp r2, #0x1
- bls _02068CEC
- mov r2, #0x0
-_02068CEC:
- mov r0, #0x75
- add r5, #0x54
- strh r0, [r4, #0x0]
- add r0, r5, r2
- strh r0, [r4, #0x2]
- add r3, #0x9e
- lsl r0, r2, #0x1
- add r0, r3, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D02:
- cmp r2, #0x1
- bls _02068D08
- mov r2, #0x0
-_02068D08:
- mov r0, #0x75
- add r5, #0x58
- strh r0, [r4, #0x0]
- add r0, r5, r2
- strh r0, [r4, #0x2]
- add r3, #0xa2
- lsl r0, r2, #0x1
- add r0, r3, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D1E:
- cmp r2, #0x1
- bls _02068D24
- mov r2, #0x0
-_02068D24:
- mov r0, #0x75
- add r5, #0x5c
- strh r0, [r4, #0x0]
- add r0, r5, r2
- strh r0, [r4, #0x2]
- lsl r0, r3, #0x1
- add r0, #0xa6
- add r0, r2, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D3A:
- cmp r2, #0x11
- bls _02068D40
- mov r2, #0x0
-_02068D40:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r0, r5, #0x1
- lsl r1, r2, #0x1
- add r0, #0x60
- add r0, r0, r1
- add r3, #0xaa
- strh r0, [r4, #0x2]
- add r0, r3, r1
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D58:
- cmp r2, #0x3
- bls _02068D5E
- mov r2, #0x0
-_02068D5E:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsl r0, r5, #0x1
- add r0, #0x40
- add r0, r2, r0
- strh r0, [r4, #0x2]
- lsl r0, r3, #0x2
- add r0, #0x8a
- add r0, r2, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D76:
- cmp r2, #0x3
- bls _02068D7C
- mov r2, #0x0
-_02068D7C:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r1, r5, #0x1
- lsl r0, r2, #0x1
- add r0, r1, r0
- strh r0, [r4, #0x2]
- add r3, #0x86
- strh r3, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D90:
- cmp r2, #0x1c
- blo _02068D96
- mov r2, #0x0
-_02068D96:
- mov r0, #0x75
- lsr r1, r5, #0x1
- strh r0, [r4, #0x0]
- add r1, #0x8
- lsl r0, r2, #0x1
- add r0, r1, r0
- strh r0, [r4, #0x2]
- add r3, #0x88
- strh r3, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068DAC:
- cmp r2, #0x1
- bls _02068DB2
- mov r2, #0x0
-_02068DB2:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- add r0, r2, #0x0
- add r0, #0x84
- strh r0, [r4, #0x2]
- add r2, #0xce
- strh r2, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068DC4:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- mov r0, #0x84
- strh r0, [r4, #0x2]
- mov r0, #0xce
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068DD4:
- mov r1, #0x4
- strh r1, [r4, #0x0]
- cmp r7, #0x1
- beq _02068DE0
- mov r2, #0x1
- b _02068DE2
-_02068DE0:
- mov r2, #0x0
-_02068DE2:
- mov r1, #0x6
- mul r1, r0
- add r6, r5, r1
- add r2, r6, r2
- add r1, r1, #0x4
- strh r2, [r4, #0x2]
- add r1, r3, r1
- strh r1, [r4, #0x4]
- ldr r1, _02068E10 ; =0x00000147
- cmp r0, r1
- bne _02068E06
- cmp r5, #0x2
- bne _02068E06
- strh r1, [r4, #0x6]
- mov r0, #0x0
- strb r0, [r4, #0x8]
- ldr r0, [sp, #0x18]
- str r0, [r4, #0xc]
-_02068E06:
- pop {r4-r7}
- bx lr
- nop
-_02068E0C: .word 0x000001A5
-_02068E10: .word 0x00000147
-
- thumb_func_start FUN_02068E14
-FUN_02068E14: ; 0x02068E14
- ldr r3, _02068E18 ; =FUN_02068E1C
- bx r3
- .balign 4
-_02068E18: .word FUN_02068E1C
-
- thumb_func_start FUN_02068E1C
-FUN_02068E1C: ; 0x02068E1C
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r1, #0x0
- mov r1, #0xad
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- bl GetBoxMonGenderEncrypted
- mov r1, #0x0
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- ldr r0, _02068E80 ; =SPECIES_EGG
- cmp r4, r0
- bne _02068E62
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, _02068E84 ; =0x000001EA
- cmp r0, r1
- bne _02068E5E
- mov r3, #0x1
- b _02068E70
-_02068E5E:
- mov r3, #0x0
- b _02068E70
-_02068E62:
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
-_02068E70:
- str r6, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r4, #0x0
- add r2, r7, #0x0
- bl FUN_02068E88
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02068E80: .word SPECIES_EGG
-_02068E84: .word 0x000001EA
-
- thumb_func_start FUN_02068E88
-FUN_02068E88: ; 0x02068E88
- push {r3-r5, lr}
- ldr r4, _02068FDC ; =0x000001A5
- cmp r0, r4
- bgt _02068ED6
- bge _02068F54
- add r5, r4, #0x0
- sub r5, #0x46
- cmp r0, r5
- bgt _02068EA6
- sub r4, #0x46
- cmp r0, r4
- bge _02068F74
- cmp r0, #0xc9
- beq _02068F94
- b _02068FB8
-_02068EA6:
- add r5, r4, #0x0
- sub r5, #0x23
- cmp r0, r5
- bgt _02068EB6
- sub r4, #0x23
- cmp r0, r4
- beq _02068F84
- b _02068FB8
-_02068EB6:
- add r5, r4, #0x0
- sub r5, #0x8
- cmp r0, r5
- bgt _02068FB8
- add r5, r4, #0x0
- sub r5, #0x9
- cmp r0, r5
- blt _02068FB8
- add r5, r4, #0x0
- sub r5, #0x9
- cmp r0, r5
- beq _02068F14
- sub r4, #0x8
- cmp r0, r4
- beq _02068F26
- b _02068FB8
-_02068ED6:
- add r5, r4, #0x0
- add r5, #0x48
- cmp r0, r5
- bgt _02068EFC
- add r5, r4, #0x0
- add r5, #0x48
- cmp r0, r5
- bge _02068F62
- add r5, r4, #0x2
- cmp r0, r5
- bgt _02068FB8
- add r5, r4, #0x1
- cmp r0, r5
- blt _02068FB8
- beq _02068F38
- add r4, r4, #0x2
- cmp r0, r4
- beq _02068F46
- b _02068FB8
-_02068EFC:
- add r5, r4, #0x0
- add r5, #0x49
- cmp r0, r5
- bgt _02068F0C
- add r4, #0x49
- cmp r0, r4
- beq _02068FA6
- b _02068FB8
-_02068F0C:
- add r4, #0x4a
- cmp r0, r4
- beq _02068FB2
- b _02068FB8
-_02068F14:
- cmp r3, #0x2
- bls _02068F1A
- mov r3, #0x0
-_02068F1A:
- lsr r1, r2, #0x1
- add r1, #0x48
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F26:
- cmp r3, #0x2
- bls _02068F2C
- mov r3, #0x0
-_02068F2C:
- lsr r1, r2, #0x1
- add r1, #0x4e
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F38:
- cmp r3, #0x1
- bls _02068F3E
- mov r3, #0x0
-_02068F3E:
- add r2, #0x54
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r2, r3
- b _02068FCA
-_02068F46:
- cmp r3, #0x1
- bls _02068F4C
- mov r3, #0x0
-_02068F4C:
- add r2, #0x58
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r2, r3
- b _02068FCA
-_02068F54:
- cmp r3, #0x1
- bls _02068F5A
- mov r3, #0x0
-_02068F5A:
- add r2, #0x5c
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r2, r3
- b _02068FCA
-_02068F62:
- cmp r3, #0x11
- bls _02068F68
- mov r3, #0x0
-_02068F68:
- lsr r1, r2, #0x1
- add r1, #0x60
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F74:
- cmp r3, #0x3
- bls _02068F7A
- mov r3, #0x0
-_02068F7A:
- lsl r0, r2, #0x1
- add r0, #0x40
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r3, r0
- b _02068FCA
-_02068F84:
- cmp r3, #0x3
- bls _02068F8A
- mov r3, #0x0
-_02068F8A:
- lsr r1, r2, #0x1
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F94:
- cmp r3, #0x1c
- blo _02068F9A
- mov r3, #0x0
-_02068F9A:
- lsr r1, r2, #0x1
- add r1, #0x8
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068FA6:
- cmp r3, #0x1
- bls _02068FAC
- mov r3, #0x0
-_02068FAC:
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, #0x84
- b _02068FCA
-_02068FB2:
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- mov r3, #0x84
- b _02068FCA
-_02068FB8:
- mov r4, #0x5 ; NARC_POKETOOL_POKEGRA_HEIGHT
- cmp r1, #0x1
- beq _02068FC2
- mov r1, #0x1
- b _02068FC4
-_02068FC2:
- mov r1, #0x0
-_02068FC4:
- lsl r0, r0, #0x2
- add r0, r2, r0
- add r3, r0, r1
-_02068FCA:
- add r0, sp, #0x0
- add r1, r4, #0x0
- add r2, r3, #0x0
- bl ReadWholeNarcMemberByIdPair
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- pop {r3-r5, pc}
- nop
-_02068FDC: .word 0x000001A5
-
- thumb_func_start FUN_02068FE0
-FUN_02068FE0: ; 0x02068FE0
- push {r4, lr}
- add r4, r0, #0x0
- cmp r2, #0x2
- bne _02068FEE
- mov r0, #0x3c
- strh r0, [r4, #0x0]
- b _02068FFC
-_02068FEE:
- mov r0, #0x6
- strh r0, [r4, #0x0]
- add r0, r1, #0x0
- bl FUN_0206AA30
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_02068FFC:
- lsl r0, r1, #0x1
- strh r0, [r4, #0x2]
- add r0, r0, #0x1
- strh r0, [r4, #0x4]
- mov r0, #0x0
- strh r0, [r4, #0x6]
- strb r0, [r4, #0x8]
- str r0, [r4, #0xc]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02069010
-FUN_02069010: ; 0x02069010
- push {r3-r5, lr}
- sub sp, #0x20
- add r5, r1, #0x0
- mov r3, #0x1c
- add r4, r0, #0x0
- str r3, [sp, #0x0]
- add r0, sp, #0x4
- mov r1, #0x72 ; NARC_POKETOOL_POKEANM_POKEANM
- mov r2, #0x0
- mul r3, r5
- bl ReadFromNarcMemberByIdPair
- add r0, sp, #0xc
- add r1, r4, #0x0
- mov r2, #0x14
- bl MI_CpuCopy8
- add sp, #0x20
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02069038
-FUN_02069038: ; 0x02069038
- push {r3-r7, lr}
- sub sp, #0x28
- add r4, r0, #0x0
- add r6, r2, #0x0
- add r5, r3, #0x0
- mov r3, #0x1c
- add r0, sp, #0x8
- add r7, r1, #0x0
- str r3, [sp, #0x0]
- add r0, #0x2
- mov r1, #0x72 ; NARC_POKETOOL_POKEANM_POKEANM
- mov r2, #0x0
- mul r3, r6
- bl ReadFromNarcMemberByIdPair
- cmp r5, #0x2
- bne _0206906C
- add r1, sp, #0x4
- mov r0, #0x6
- ldrsb r0, [r1, r0]
- strh r0, [r1, #0x0]
- ldrb r0, [r1, #0x7]
- strh r0, [r1, #0x2]
- ldr r0, [sp, #0x44]
- strb r0, [r1, #0x4]
- b _02069096
-_0206906C:
- ldr r0, [sp, #0x40]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02014C3C
- add r5, r0, #0x0
- cmp r5, #0x3
- blt _02069080
- bl ErrorHandling
-_02069080:
- lsl r2, r5, #0x1
- add r0, sp, #0xc
- ldrsb r1, [r0, r2]
- add r0, sp, #0x4
- strh r1, [r0, #0x0]
- add r1, sp, #0xc
- add r1, #0x1
- ldrb r1, [r1, r2]
- strh r1, [r0, #0x2]
- ldr r1, [sp, #0x44]
- strb r1, [r0, #0x4]
-_02069096:
- ldr r3, [sp, #0x48]
- add r0, r4, #0x0
- lsl r3, r3, #0x18
- add r1, r7, #0x0
- add r2, sp, #0x4
- lsr r3, r3, #0x18
- bl FUN_02014C54
- add sp, #0x28
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020690AC
-FUN_020690AC: ; 0x020690AC
- mov r2, #0x3c
- strh r2, [r0, #0x0]
- lsl r1, r1, #0x1
- strh r1, [r0, #0x2]
- add r1, r1, #0x1
- strh r1, [r0, #0x4]
- mov r1, #0x0
- strh r1, [r0, #0x6]
- strb r1, [r0, #0x8]
- str r1, [r0, #0xc]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020690C4
-FUN_020690C4: ; 0x020690C4
- mov r0, #0xec
- bx lr
-
- thumb_func_start FUN_020690C8
-FUN_020690C8: ; 0x020690C8
- mov r0, #0x88
- bx lr
-
- thumb_func_start FUN_020690CC
-FUN_020690CC: ; 0x020690CC
- ldr r3, _020690D0 ; =FUN_020690D4
- bx r3
- .balign 4
-_020690D0: .word FUN_020690D4
-
- thumb_func_start FUN_020690D4
-FUN_020690D4: ; 0x020690D4
- push {r3, lr}
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
-
- thumb_func_start FUN_020690E4
-FUN_020690E4: ; 0x020690E4
- bx lr
- .balign 4
-
- thumb_func_start FUN_020690E8
-FUN_020690E8: ; 0x020690E8
- push {r3-r5, lr}
- sub sp, #0x8
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r0, #0x1
- add r0, sp, #0x0
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x15
- bl GetMonBaseStat
- mov r1, #0x64
- add r5, r0, #0x0
- bl GetExpByGrowthRateAndLevel
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bls _02069138
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- mov r1, #0x8
- add r2, sp, #0x4
- bl SetMonDataEncrypted
-_02069138:
- add r0, sp, #0x0
- ldrb r1, [r0, #0x0]
- cmp r1, #0x64
- bls _02069146
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r5, pc}
-_02069146:
- add r0, r5, #0x0
- bl GetExpByGrowthRateAndLevel
- ldr r1, [sp, #0x4]
- cmp r1, r0
- blo _02069162
- add r0, r4, #0x0
- mov r1, #0xa0
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add sp, #0x8
- mov r0, #0x1
- pop {r3-r5, pc}
-_02069162:
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02069168
-FUN_02069168: ; 0x02069168
- push {r4-r7, lr}
- sub sp, #0x44
- add r7, r1, #0x0
- str r0, [sp, #0x0]
- mov r6, #0x0
- add r4, r2, #0x0
- add r0, r7, #0x0
- mov r1, #0x5
- add r2, r6, #0x0
- str r3, [sp, #0x4]
- ldr r5, [sp, #0x58]
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x2c]
- add r0, r7, #0x0
- mov r1, #0x6
- add r2, r6, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- add r1, r6, #0x0
- str r0, [sp, #0x28]
- add r0, r7, #0x0
- add r2, r1, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x30]
- add r0, r7, #0x0
- mov r1, #0x14
- add r2, r6, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- ldr r1, _020694A0 ; =0xFFFF0000
- ldr r0, [sp, #0x30]
- add r2, r6, #0x0
- and r0, r1
- lsr r0, r0, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x28]
- mov r1, #0x1
- bl FUN_0206E7B8
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- ldr r0, [sp, #0x2c]
- cmp r0, #0x40
- beq _020691E4
- cmp r1, #0x3f
- bne _020691E4
- cmp r4, #0x3
- beq _020691E4
- add sp, #0x44
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_020691E4:
- cmp r5, #0x0
- bne _020691EA
- add r5, sp, #0x40
-_020691EA:
- mov r0, #0x0
- mov r1, #0x2a
- bl AllocFromHeap
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #0x18]
- bl LoadMonEvolutionTable
- cmp r4, #0x3
- bls _02069202
- b _0206954A
-_02069202:
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0206920E: ; jump table (using 16-bit offset)
- .short _02069216 - _0206920E - 2; case 0
- .short _02069486 - _0206920E - 2; case 1
- .short _020694BE - _0206920E - 2; case 2
- .short _020694BE - _0206920E - 2; case 3
-_02069216:
- add r0, r7, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x14]
- add r0, r7, #0x0
- mov r1, #0x9
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x20]
- mov r0, #0x0
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x1c]
- mov r1, #0xa
- ldr r4, [sp, #0x18]
- bl _s32_div_f
- str r1, [sp, #0x8]
-_02069246:
- ldrh r0, [r4, #0x0]
- cmp r0, #0x1a
- bls _0206924E
- b _02069472
-_0206924E:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0206925A: ; jump table (using 16-bit offset)
- .short _02069472 - _0206925A - 2; case 0
- .short _02069290 - _0206925A - 2; case 1
- .short _0206929E - _0206925A - 2; case 2
- .short _020692B4 - _0206925A - 2; case 3
- .short _020692CA - _0206925A - 2; case 4
- .short _02069472 - _0206925A - 2; case 5
- .short _02069472 - _0206925A - 2; case 6
- .short _02069472 - _0206925A - 2; case 7
- .short _020692DA - _0206925A - 2; case 8
- .short _02069306 - _0206925A - 2; case 9
- .short _02069332 - _0206925A - 2; case 10
- .short _0206935E - _0206925A - 2; case 11
- .short _02069376 - _0206925A - 2; case 12
- .short _0206938C - _0206925A - 2; case 13
- .short _0206939C - _0206925A - 2; case 14
- .short _020693A2 - _0206925A - 2; case 15
- .short _02069472 - _0206925A - 2; case 16
- .short _02069472 - _0206925A - 2; case 17
- .short _020693B2 - _0206925A - 2; case 18
- .short _020693CA - _0206925A - 2; case 19
- .short _020693E2 - _0206925A - 2; case 20
- .short _020693F6 - _0206925A - 2; case 21
- .short _0206940E - _0206925A - 2; case 22
- .short _0206942C - _0206925A - 2; case 23
- .short _0206944A - _0206925A - 2; case 24
- .short _02069458 - _0206925A - 2; case 25
- .short _02069466 - _0206925A - 2; case 26
-_02069290:
- ldr r0, [sp, #0x20]
- cmp r0, #0xdc
- blo _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x1
- str r0, [r5, #0x0]
- b _02069472
-_0206929E:
- bl FUN_0201277C
- cmp r0, #0x0
- bne _0206936C
- ldr r0, [sp, #0x20]
- cmp r0, #0xdc
- blo _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x2
- str r0, [r5, #0x0]
- b _02069472
-_020692B4:
- bl FUN_0201277C
- cmp r0, #0x1
- bne _0206936C
- ldr r0, [sp, #0x20]
- cmp r0, #0xdc
- blo _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x3
- str r0, [r5, #0x0]
- b _02069472
-_020692CA:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x4
- str r0, [r5, #0x0]
- b _02069472
-_020692DA:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- add r0, r7, #0x0
- mov r1, #0xa4
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x34]
- add r0, r7, #0x0
- mov r1, #0xa5
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x34]
- cmp r1, r0
- bls _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x8
- str r0, [r5, #0x0]
- b _02069472
-_02069306:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- add r0, r7, #0x0
- mov r1, #0xa4
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x38]
- add r0, r7, #0x0
- mov r1, #0xa5
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x38]
- cmp r1, r0
- bne _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x9
- str r0, [r5, #0x0]
- b _02069472
-_02069332:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- add r0, r7, #0x0
- mov r1, #0xa4
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x3c]
- add r0, r7, #0x0
- mov r1, #0xa5
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x3c]
- cmp r1, r0
- bhs _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0xa
- str r0, [r5, #0x0]
- b _02069472
-_0206935E:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- ldr r0, [sp, #0x8]
- cmp r0, #0x5
- blt _0206936E
-_0206936C:
- b _02069472
-_0206936E:
- ldrh r6, [r4, #0x4]
- mov r0, #0xb
- str r0, [r5, #0x0]
- b _02069472
-_02069376:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldr r0, [sp, #0x8]
- cmp r0, #0x5
- blt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0xc
- str r0, [r5, #0x0]
- b _02069472
-_0206938C:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0xd
- str r0, [r5, #0x0]
- b _02069472
-_0206939C:
- mov r0, #0xe
- str r0, [r5, #0x0]
- b _02069472
-_020693A2:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x10]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0xf
- str r0, [r5, #0x0]
- b _02069472
-_020693B2:
- bl FUN_0201277C
- cmp r0, #0x0
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x12
- str r0, [r5, #0x0]
- b _02069472
-_020693CA:
- bl FUN_0201277C
- cmp r0, #0x1
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x13
- str r0, [r5, #0x0]
- b _02069472
-_020693E2:
- ldrh r1, [r4, #0x2]
- add r0, r7, #0x0
- bl FUN_02069A38
- cmp r0, #0x1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x14
- str r0, [r5, #0x0]
- b _02069472
-_020693F6:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- beq _02069472
- ldrh r1, [r4, #0x2]
- bl FUN_0206BAE4
- cmp r0, #0x1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x15
- str r0, [r5, #0x0]
- b _02069472
-_0206940E:
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x16
- str r0, [r5, #0x0]
- b _02069472
-_0206942C:
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x1
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x17
- str r0, [r5, #0x0]
- b _02069472
-_0206944A:
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x18
- str r0, [r5, #0x0]
- b _02069472
-_02069458:
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x19
- str r0, [r5, #0x0]
- b _02069472
-_02069466:
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x1a
- str r0, [r5, #0x0]
-_02069472:
- cmp r6, #0x0
- bne _0206954A
- ldr r0, [sp, #0x24]
- add r4, r4, #0x6
- add r0, r0, #0x1
- str r0, [sp, #0x24]
- cmp r0, #0x7
- bge _02069484
- b _02069246
-_02069484:
- b _0206954A
-_02069486:
- ldr r3, [sp, #0x18]
- mov r4, #0x0
- mov r7, #0x6
- mov r2, #0x5
-_0206948E:
- ldrh r0, [r3, #0x0]
- cmp r0, #0x5
- beq _0206949A
- cmp r0, #0x6
- beq _020694A4
- b _020694B0
-_0206949A:
- ldrh r6, [r3, #0x4]
- str r2, [r5, #0x0]
- b _020694B0
- .balign 4
-_020694A0: .word 0xFFFF0000
-_020694A4:
- ldrh r1, [r3, #0x2]
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _020694B0
- ldrh r6, [r3, #0x4]
- str r7, [r5, #0x0]
-_020694B0:
- cmp r6, #0x0
- bne _0206954A
- add r4, r4, #0x1
- add r3, r3, #0x6
- cmp r4, #0x7
- blt _0206948E
- b _0206954A
-_020694BE:
- mov r0, #0x0
- ldr r4, [sp, #0x18]
- str r0, [sp, #0xc]
-_020694C4:
- ldrh r2, [r4, #0x0]
- cmp r2, #0x7
- bne _020694E4
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- cmp r0, r1
- bne _020694E4
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- mul r1, r0
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- ldrh r6, [r0, #0x4]
- mov r0, #0x0
- str r0, [r5, #0x0]
- b _0206954A
-_020694E4:
- cmp r2, #0x10
- bne _02069510
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069510
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- cmp r0, r1
- bne _02069510
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- mul r1, r0
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- ldrh r6, [r0, #0x4]
- mov r0, #0x0
- str r0, [r5, #0x0]
- b _0206954A
-_02069510:
- ldrh r0, [r4, #0x0]
- cmp r0, #0x11
- bne _0206953E
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x1
- bne _0206953E
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- cmp r0, r1
- bne _0206953E
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- mul r1, r0
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- ldrh r6, [r0, #0x4]
- mov r0, #0x0
- str r0, [r5, #0x0]
- b _0206954A
-_0206953E:
- ldr r0, [sp, #0xc]
- add r4, r4, #0x6
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- cmp r0, #0x7
- blt _020694C4
-_0206954A:
- ldr r0, [sp, #0x18]
- bl FreeToHeap
- add r0, r6, #0x0
- add sp, #0x44
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start ReadFromPersonalPmsNarc
-ReadFromPersonalPmsNarc: ; 0x02069558
- push {r3-r4, lr}
- sub sp, #0x4c
- add r4, r0, #0x0
- mov r1, #0x0
- add r0, sp, #0x0
- strh r1, [r0, #0x0]
- ldr r0, _020695A0 ; =SPECIES_EGG
- cmp r4, r0
- blo _0206956E
- bl ErrorHandling
-_0206956E:
- add r0, sp, #0x4
- bl FS_InitFile
- ldr r1, _020695A4 ; =__local_str_poketool_personal_pms_narc
- add r0, sp, #0x4
- bl FS_OpenFile
- add r0, sp, #0x4
- lsl r1, r4, #0x1
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x4
- add r1, sp, #0x0
- mov r2, #0x2
- bl FS_ReadFile
- add r0, sp, #0x4
- bl FS_CloseFile
- add r0, sp, #0x0
- ldrh r0, [r0, #0x0]
- add sp, #0x4c
- pop {r3-r4, pc}
- nop
-_020695A0: .word SPECIES_EGG
-_020695A4: .word __local_str_poketool_personal_pms_narc
-
- thumb_func_start GetEggSpecies
-GetEggSpecies: ; 0x020695A8
- push {r3, lr}
- cmp r0, #SPECIES_SUDOWOODO
- bgt _020695CC
- cmp r0, #SPECIES_MARILL
- blt _020695BA
- beq _020695EC
- cmp r0, #SPECIES_SUDOWOODO
- beq _020695EC
- b _020695E8
-_020695BA:
- cmp r0, #SPECIES_MR_MIME
- bgt _020695C6
- bge _020695EC
- cmp r0, #SPECIES_CHANSEY
- beq _020695EC
- b _020695E8
-_020695C6:
- cmp r0, #SPECIES_SNORLAX
- beq _020695EC
- b _020695E8
-_020695CC:
- cmp r0, #SPECIES_MANTINE
- bgt _020695D8
- bge _020695EC
- cmp r0, #SPECIES_WOBBUFFET
- beq _020695EC
- b _020695E8
-_020695D8:
- ldr r1, _020695F0 ; =SPECIES_ROSELIA
- cmp r0, r1
- bgt _020695E2
- beq _020695EC
- b _020695E8
-_020695E2:
- add r1, #SPECIES_CHIMECHO-SPECIES_ROSELIA
- cmp r0, r1
- beq _020695EC
-_020695E8:
- bl ReadFromPersonalPmsNarc
-_020695EC:
- pop {r3, pc}
- nop
-_020695F0: .word SPECIES_ROSELIA
-
- thumb_func_start InitBoxMonMoveset
-InitBoxMonMoveset: ; 0x020695F4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- bl AllocFromHeap
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- bl TryDecryptBoxMon
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl CalcBoxMonLevelEncrypted
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r2, [sp, #0x0]
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl LoadWotbl_HandleAlternateForme
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x0]
- ldr r0, _02069690 ; =0x0000FFFF
- cmp r1, r0
- beq _0206967C
- ldr r4, [sp, #0x0]
- lsl r7, r6, #0x9
-_02069648:
- ldrh r1, [r4, #0x0]
- mov r0, #0xfe
- lsl r0, r0, #0x8
- and r0, r1
- cmp r0, r7
- bgt _0206967C
- ldr r0, _02069694 ; =0x000001FF
- and r0, r1
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_020696A8
- ldr r1, _02069690 ; =0x0000FFFF
- cmp r0, r1
- bne _02069672
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02069718
-_02069672:
- add r4, r4, #0x2
- ldrh r1, [r4, #0x0]
- ldr r0, _02069690 ; =0x0000FFFF
- cmp r1, r0
- bne _02069648
-_0206967C:
- ldr r0, [sp, #0x0]
- bl FreeToHeap
- ldr r1, [sp, #0x4]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02069690: .word 0x0000FFFF
-_02069694: .word 0x000001FF
-
- thumb_func_start FUN_02069698
-FUN_02069698: ; 0x02069698
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_020690E4
- add r1, r4, #0x0
- bl FUN_020696A8
- pop {r4, pc}
-
- thumb_func_start FUN_020696A8
-FUN_020696A8: ; 0x020696A8
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r1, #0x0
- ldr r1, _02069700 ; =0x0000FFFF
- add r6, r0, #0x0
- str r1, [sp, #0x4]
- bl TryDecryptBoxMon
- mov r4, #0x0
- str r0, [sp, #0x0]
- add r7, r4, #0x0
-_020696BE:
- add r1, r4, #0x0
- add r0, r6, #0x0
- add r1, #0x36
- add r2, r7, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bne _020696E0
- lsl r2, r4, #0x18
- add r0, r6, #0x0
- add r1, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_020697D4
- str r5, [sp, #0x4]
- b _020696F0
-_020696E0:
- cmp r0, r5
- bne _020696EA
- ldr r0, _02069704 ; =0x0000FFFE
- str r0, [sp, #0x4]
- b _020696F0
-_020696EA:
- add r4, r4, #0x1
- cmp r4, #0x4
- blt _020696BE
-_020696F0:
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- bl TryEncryptBoxMon
- ldr r0, [sp, #0x4]
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02069700: .word 0x0000FFFF
-_02069704: .word 0x0000FFFE
-
- thumb_func_start FUN_02069708
-FUN_02069708: ; 0x02069708
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_020690E4
- add r1, r4, #0x0
- bl FUN_02069718
- pop {r4, pc}
-
- thumb_func_start FUN_02069718
-FUN_02069718: ; 0x02069718
- push {r3-r7, lr}
- sub sp, #0x20
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- bl TryDecryptBoxMon
- str r0, [sp, #0xc]
- add r0, sp, #0x18
- mov r4, #0x0
- str r0, [sp, #0x4]
- add r7, sp, #0x14
- add r6, sp, #0x10
-_02069730:
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x37
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, [sp, #0x4]
- mov r2, #0x0
- strh r0, [r1, #0x0]
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3b
- bl GetBoxMonDataEncrypted
- add r1, r4, #0x0
- strb r0, [r7, #0x0]
- add r0, r5, #0x0
- add r1, #0x3f
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- strb r0, [r6, #0x0]
- ldr r0, [sp, #0x4]
- add r4, r4, #0x1
- add r0, r0, #0x2
- str r0, [sp, #0x4]
- add r7, r7, #0x1
- add r6, r6, #0x1
- cmp r4, #0x3
- blt _02069730
- ldr r0, [sp, #0x0]
- add r1, sp, #0x10
- strh r0, [r1, #0xe]
- ldr r0, [sp, #0x0]
- mov r1, #0x5
- bl FUN_0206AB18
- add r1, sp, #0x10
- strb r0, [r1, #0x7]
- mov r4, #0x0
- add r0, sp, #0x18
- strb r4, [r1, #0x3]
- str r0, [sp, #0x8]
- add r7, sp, #0x14
- add r6, sp, #0x10
-_0206978A:
- add r1, r4, #0x0
- ldr r2, [sp, #0x8]
- add r0, r5, #0x0
- add r1, #0x36
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, r7, #0x0
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- add r2, r6, #0x0
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r0, r0, #0x2
- str r0, [sp, #0x8]
- add r7, r7, #0x1
- add r6, r6, #0x1
- cmp r4, #0x4
- blt _0206978A
- ldr r1, [sp, #0xc]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x20
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020697CC
-FUN_020697CC: ; 0x020697CC
- ldr r3, _020697D0 ; =FUN_020697D4
- bx r3
- .balign 4
-_020697D0: .word FUN_020697D4
-
- thumb_func_start FUN_020697D4
-FUN_020697D4: ; 0x020697D4
- push {r0-r3}
- push {r3-r5, lr}
- add r4, r2, #0x0
- add r1, r4, #0x0
- add r1, #0x36
- add r2, sp, #0x14
- add r5, r0, #0x0
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- add r0, sp, #0x10
- ldrh r0, [r0, #0x4]
- bl FUN_0206AB30
- add r1, sp, #0x0
- strb r0, [r1, #0x0]
- add r4, #0x3a
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
- pop {r3-r5}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-
- thumb_func_start FUN_02069818
-FUN_02069818: ; 0x02069818
- push {r3-r7, lr}
- sub sp, #0x10
- add r7, r0, #0x0
- add r5, r1, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- str r2, [sp, #0x0]
- str r0, [sp, #0x8]
- bl AllocFromHeap
- add r4, r0, #0x0
- add r0, r7, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- add r0, r7, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0xc]
- add r0, r7, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0xc]
- add r2, r4, #0x0
- bl LoadWotbl_HandleAlternateForme
- ldr r0, [r5, #0x0]
- lsl r0, r0, #0x1
- ldrh r2, [r4, r0]
- ldr r0, _020698D8 ; =0x0000FFFF
- cmp r2, r0
- bne _0206987A
- add r0, r4, #0x0
- bl FreeToHeap
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0206987A:
- mov r0, #0xfe
- lsl r0, r0, #0x8
- add r3, r2, #0x0
- and r3, r0
- lsl r6, r6, #0x9
- cmp r6, r3
- beq _020698AC
- ldr r1, _020698D8 ; =0x0000FFFF
-_0206988A:
- ldr r2, [r5, #0x0]
- add r2, r2, #0x1
- str r2, [r5, #0x0]
- lsl r2, r2, #0x1
- ldrh r2, [r4, r2]
- cmp r2, r1
- bne _020698A4
- add r0, r4, #0x0
- bl FreeToHeap
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_020698A4:
- add r3, r2, #0x0
- and r3, r0
- cmp r6, r3
- bne _0206988A
-_020698AC:
- cmp r6, r3
- bne _020698CC
- ldr r0, _020698DC ; =0x000001FF
- add r1, r2, #0x0
- and r1, r0
- ldr r0, [sp, #0x0]
- strh r1, [r0, #0x0]
- ldr r0, [r5, #0x0]
- ldr r1, [sp, #0x0]
- add r0, r0, #0x1
- str r0, [r5, #0x0]
- ldrh r1, [r1, #0x0]
- add r0, r7, #0x0
- bl FUN_02069698
- str r0, [sp, #0x8]
-_020698CC:
- add r0, r4, #0x0
- bl FreeToHeap
- ldr r0, [sp, #0x8]
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-_020698D8: .word 0x0000FFFF
-_020698DC: .word 0x000001FF
-
- thumb_func_start FUN_020698E0
-FUN_020698E0: ; 0x020698E0
- ldr r3, _020698E4 ; =FUN_020698E8
- bx r3
- .balign 4
-_020698E4: .word FUN_020698E8
-
- thumb_func_start FUN_020698E8
-FUN_020698E8: ; 0x020698E8
- push {r4-r6, lr}
- sub sp, #0x8
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r1, #0x36
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strh r0, [r1, #0x4]
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x2]
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x0]
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x36
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strh r0, [r1, #0x6]
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x3]
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x1]
- add r1, r4, #0x0
- add r2, sp, #0x4
- add r0, r5, #0x0
- add r1, #0x36
- add r2, #0x2
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, #0x3
- bl SetBoxMonDataEncrypted
- add r4, #0x3e
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, #0x1
- bl SetBoxMonDataEncrypted
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x36
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- add r1, r6, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, #0x2
- bl SetBoxMonDataEncrypted
- add r6, #0x3e
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020699A4
-FUN_020699A4: ; 0x020699A4
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3
- bhs _02069A0A
- mov r7, #0x0
- add r6, sp, #0x0
-_020699B2:
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x37
- add r2, r7, #0x0
- bl GetMonDataEncrypted
- add r1, r4, #0x0
- strh r0, [r6, #0x2]
- add r0, r5, #0x0
- add r1, #0x3b
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r4, #0x0
- strb r0, [r6, #0x1]
- add r0, r5, #0x0
- add r1, #0x3f
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r4, #0x0
- add r2, sp, #0x0
- strb r0, [r6, #0x0]
- add r0, r5, #0x0
- add r1, #0x36
- add r2, #0x2
- bl SetMonDataEncrypted
- add r1, r4, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, #0x1
- bl SetMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r4, r4, #0x1
- cmp r4, #0x3
- blo _020699B2
-_02069A0A:
- mov r1, #0x0
- add r0, sp, #0x0
- strh r1, [r0, #0x2]
- strb r1, [r0, #0x1]
- strb r1, [r0, #0x0]
- add r2, sp, #0x0
- add r0, r5, #0x0
- mov r1, #0x39
- add r2, #0x2
- bl SetMonDataEncrypted
- add r2, sp, #0x0
- add r0, r5, #0x0
- mov r1, #0x3d
- add r2, #0x1
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x41
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069A38
-FUN_02069A38: ; 0x02069A38
- push {r3-r7, lr}
- mov r4, #0x0
- add r6, r0, #0x0
- add r5, r1, #0x0
- add r7, r4, #0x0
-_02069A42:
- add r1, r4, #0x0
- add r0, r6, #0x0
- add r1, #0x36
- add r2, r7, #0x0
- bl GetMonDataEncrypted
- cmp r5, r0
- beq _02069A58
- add r4, r4, #0x1
- cmp r4, #0x4
- blt _02069A42
-_02069A58:
- cmp r4, #0x4
- beq _02069A60
- mov r0, #0x1
- pop {r3-r7, pc}
-_02069A60:
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069A64
-FUN_02069A64: ; 0x02069A64
- push {r4-r5, lr}
- sub sp, #0x1c
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- add r3, r4, #0x0
- mov r2, #0x11
-_02069A74:
- ldmia r5!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069A74
- ldrh r1, [r4, #0x4]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1f
- beq _02069A8E
- mov r0, #0x1
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strh r0, [r4, #0x4]
-_02069A8E:
- add r0, r4, #0x0
- mov r1, #0x9f
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0xa2
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0xa3
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- mov r0, #0x0
- bl FUN_020256BC
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0xa9
- add r2, r5, #0x0
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- bl FreeToHeap
- add r0, r4, #0x0
- mov r1, #0xa1
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- mov r0, #0x0
- add r1, sp, #0x4
- mov r2, #0x18
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- mov r1, #0xaa
- add r2, sp, #0x4
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
- add sp, #0x1c
- pop {r4-r5, pc}
-
- thumb_func_start FUN_02069AEC
-FUN_02069AEC: ; 0x02069AEC
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- bl FUN_0206B9AC
- add r7, r0, #0x0
- mov r6, #0x1
- mov r5, #0x0
- cmp r7, #0x0
- ble _02069B3C
-_02069AFE:
- ldr r0, [sp, #0x0]
- add r1, r5, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069B36
- add r0, r4, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069B36
- add r0, r4, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, r6
- bls _02069B36
- add r6, r0, #0x0
-_02069B36:
- add r5, r5, #0x1
- cmp r5, r7
- blt _02069AFE
-_02069B3C:
- add r0, r6, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069B40
-FUN_02069B40: ; 0x02069B40
- push {r3, lr}
- sub sp, #0x8
- add r3, r0, #0x0
- mov r0, #0x2
- str r0, [sp, #0x0]
- add r0, sp, #0x4
- mov r1, #0x6d ; NARC_POKETOOL_POKEZUKAN
- mov r2, #0x0
- lsl r3, r3, #0x1
- bl ReadFromNarcMemberByIdPair
- add r0, sp, #0x4
- ldrh r0, [r0, #0x0]
- add sp, #0x8
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02069B60
-FUN_02069B60: ; 0x02069B60
- push {r3, lr}
- sub sp, #0x8
- add r3, r0, #0x0
- mov r2, #0x0
- add r0, sp, #0x4
- strh r2, [r0, #0x0]
- cmp r3, #0x97
- bhi _02069B7E
- mov r0, #0x2
- str r0, [sp, #0x0]
- add r0, sp, #0x4
- mov r1, #0x91 ; NARC_POKETOOL_SHINZUKAN
- lsl r3, r3, #0x1
- bl ReadFromNarcMemberByIdPair
-_02069B7E:
- add r0, sp, #0x4
- ldrh r0, [r0, #0x0]
- add sp, #0x8
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02069B88
-FUN_02069B88: ; 0x02069B88
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0x1d
-_02069B90:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069B90
- ldr r0, [r4, #0x0]
- str r0, [r3, #0x0]
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02069BA0
-FUN_02069BA0: ; 0x02069BA0
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0x11
-_02069BA8:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069BA8
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02069BB4
-FUN_02069BB4: ; 0x02069BB4
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0x11
-_02069BBC:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069BBC
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02069BC8
-FUN_02069BC8: ; 0x02069BC8
- ldr r3, _02069BCC ; =FUN_02069BD0
- bx r3
- .balign 4
-_02069BCC: .word FUN_02069BD0
-
- thumb_func_start FUN_02069BD0
-FUN_02069BD0: ; 0x02069BD0
- push {r4, lr}
- add r4, r1, #0x0
- mov r1, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r4, #0x0
- bl FUN_02069BE4
- pop {r4, pc}
-
- thumb_func_start FUN_02069BE4
-FUN_02069BE4: ; 0x02069BE4
- push {r4, lr}
- add r4, r1, #0x0
- bl GetNatureFromPersonality
- lsl r1, r0, #0x2
- add r1, r0, r1
- ldr r0, _02069BF8 ; =UNK_020F7F16
- add r0, r0, r1
- ldrsb r0, [r4, r0]
- pop {r4, pc}
- .balign 4
-_02069BF8: .word UNK_020F7F16
-
- thumb_func_start FUN_02069BFC
-FUN_02069BFC: ; 0x02069BFC
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r7, r1, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- add r5, r2, #0x0
- bl AllocFromHeap
- add r6, r0, #0x0
- add r0, r4, #0x0
- add r1, r7, #0x0
- add r2, r6, #0x0
- bl LoadWotbl_HandleAlternateForme
- ldrh r1, [r6, #0x0]
- ldr r0, _02069C44 ; =0x0000FFFF
- mov r4, #0x0
- cmp r1, r0
- beq _02069C3A
- ldr r1, _02069C48 ; =0x000001FF
- ldr r2, _02069C44 ; =0x0000FFFF
- add r0, r6, #0x0
-_02069C28:
- ldrh r3, [r0, #0x0]
- add r0, r0, #0x2
- add r4, r4, #0x1
- and r3, r1
- strh r3, [r5, #0x0]
- ldrh r3, [r0, #0x0]
- add r5, r5, #0x2
- cmp r3, r2
- bne _02069C28
-_02069C3A:
- add r0, r6, #0x0
- bl FreeToHeap
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02069C44: .word 0x0000FFFF
-_02069C48: .word 0x000001FF
-
- thumb_func_start FUN_02069C4C
-FUN_02069C4C: ; 0x02069C4C
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl FUN_0206B9AC
- add r6, r0, #0x0
- bl rand_LC
- mov r1, #0x1
- lsl r1, r1, #0xe
- cmp r0, r1
- beq _02069C70
- lsl r1, r1, #0x1
- cmp r0, r1
- beq _02069C70
- mov r1, #0x3
- lsl r1, r1, #0xe
- cmp r0, r1
- bne _02069CF2
-_02069C70:
- bl rand_LC
- add r1, r6, #0x0
- bl _s32_div_f
- add r0, r5, #0x0
- add r7, r1, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069C70
- add r0, r4, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069C70
- add r0, r7, #0x0
- bl MaskOfFlagNo
- add r1, r0, #0x0
- lsl r1, r1, #0x18
- add r0, r5, #0x0
- lsr r1, r1, #0x18
- bl FUN_02069CF4
- cmp r0, #0x0
- bne _02069CF2
- add r5, sp, #0x0
- mov r6, #0x7
-_02069CB8:
- bl rand_LC
- strb r0, [r5, #0x0]
- ldrb r2, [r5, #0x0]
- add r1, r2, #0x0
- and r1, r6
- beq _02069CB8
- mov r0, #0xf0
- tst r0, r2
- beq _02069CD0
- add r0, sp, #0x0
- strb r1, [r0, #0x0]
-_02069CD0:
- add r1, sp, #0x0
- ldrb r2, [r1, #0x0]
- lsl r0, r2, #0x4
- orr r0, r2
- strb r0, [r1, #0x0]
- ldrb r2, [r1, #0x0]
- mov r0, #0xf3
- and r0, r2
- strb r0, [r1, #0x0]
- ldrb r0, [r1, #0x0]
- add r2, sp, #0x0
- add r0, r0, #0x1
- strb r0, [r1, #0x0]
- add r0, r4, #0x0
- mov r1, #0x99
- bl SetMonDataEncrypted
-_02069CF2:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069CF4
-FUN_02069CF4: ; 0x02069CF4
- push {r3-r7, lr}
- mov r6, #0x0
- add r5, r1, #0x0
- str r0, [sp, #0x0]
- mov r4, #0x1
- add r7, r6, #0x0
- cmp r5, #0x0
- beq _02069D32
-_02069D04:
- mov r0, #0x1
- tst r0, r5
- beq _02069D26
- ldr r0, [sp, #0x0]
- add r1, r6, #0x0
- bl FUN_0206B9B0
- mov r1, #0x99
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069D26
- add r0, r7, #0x0
- orr r0, r4
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
-_02069D26:
- lsl r0, r5, #0x17
- add r6, r6, #0x1
- lsl r4, r4, #0x1
- lsr r5, r0, #0x18
- bne _02069D04
- b _02069D4A
-_02069D32:
- add r1, r6, #0x0
- bl FUN_0206B9B0
- mov r1, #0x99
- add r2, r6, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069D4A
- add r0, r7, #0x1
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
-_02069D4A:
- add r0, r7, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02069D50
-FUN_02069D50: ; 0x02069D50
- push {r4-r7, lr}
- sub sp, #0xc
- str r0, [sp, #0x0]
- add r5, r1, #0x0
- bl FUN_0206B9AC
- mov r6, #0x0
- str r0, [sp, #0x4]
- cmp r0, #0x0
- ble _02069DC2
- add r4, sp, #0x8
-_02069D66:
- ldr r0, [sp, #0x0]
- add r1, r6, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r7, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069DBA
- add r0, r7, #0x0
- mov r1, #0x99
- mov r2, #0x0
- bl GetMonDataEncrypted
- strb r0, [r4, #0x0]
- ldrb r1, [r4, #0x0]
- mov r0, #0xf
- and r0, r1
- beq _02069DBA
- cmp r0, r5
- blt _02069D98
- cmp r5, #0x4
- ble _02069DA2
-_02069D98:
- ldrb r1, [r4, #0x0]
- mov r0, #0xf0
- and r0, r1
- strb r0, [r4, #0x0]
- b _02069DA6
-_02069DA2:
- sub r0, r1, r5
- strb r0, [r4, #0x0]
-_02069DA6:
- ldrb r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02069DB0
- mov r0, #0x10
- strb r0, [r4, #0x0]
-_02069DB0:
- add r0, r7, #0x0
- mov r1, #0x99
- add r2, sp, #0x8
- bl SetMonDataEncrypted
-_02069DBA:
- ldr r0, [sp, #0x4]
- add r6, r6, #0x1
- cmp r6, r0
- blt _02069D66
-_02069DC2:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02069DC8
-FUN_02069DC8: ; 0x02069DC8
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl FUN_0206B9AC
- add r7, r0, #0x0
- bl rand_LC
- mov r1, #0x3
- bl _s32_div_f
- cmp r1, #0x0
- bne _02069E70
- mov r4, #0x0
- cmp r7, #0x0
- ble _02069E70
- sub r0, r7, #0x1
- str r0, [sp, #0x0]
-_02069DEC:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r6, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069E6A
- add r0, r6, #0x0
- mov r1, #0x99
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, sp, #0x4
- strb r0, [r1, #0x0]
- add r0, r1, #0x0
- ldrb r1, [r0, #0x0]
- mov r0, #0xf
- tst r0, r1
- beq _02069E6A
- cmp r4, #0x0
- beq _02069E40
- add r0, r5, #0x0
- sub r1, r4, #0x1
- bl FUN_0206B9B0
- mov r1, #0x99
- mov r2, #0x0
- add r6, r0, #0x0
- bl GetMonDataEncrypted
- mov r1, #0xf0
- tst r0, r1
- bne _02069E40
- add r0, r6, #0x0
- mov r1, #0x99
- add r2, sp, #0x4
- bl SetMonDataEncrypted
-_02069E40:
- ldr r0, [sp, #0x0]
- cmp r4, r0
- bge _02069E6A
- add r0, r5, #0x0
- add r1, r4, #0x1
- bl FUN_0206B9B0
- mov r1, #0x99
- mov r2, #0x0
- add r6, r0, #0x0
- bl GetMonDataEncrypted
- mov r1, #0xf0
- tst r0, r1
- bne _02069E6A
- add r0, r6, #0x0
- mov r1, #0x99
- add r2, sp, #0x4
- bl SetMonDataEncrypted
- add r4, r4, #0x1
-_02069E6A:
- add r4, r4, #0x1
- cmp r4, r7
- blt _02069DEC
-_02069E70:
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069E74
-FUN_02069E74: ; 0x02069E74
- ldr r3, _02069E78 ; =FUN_02069E7C
- bx r3
- .balign 4
-_02069E78: .word FUN_02069E7C
-
- thumb_func_start FUN_02069E7C
-FUN_02069E7C: ; 0x02069E7C
- push {r3, lr}
- mov r1, #0x99
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- mov r1, #0xf
- tst r0, r1
- beq _02069E90
- mov r0, #0x1
- pop {r3, pc}
-_02069E90:
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_02069E94
-FUN_02069E94: ; 0x02069E94
- ldr r3, _02069E98 ; =FUN_02069E9C
- bx r3
- .balign 4
-_02069E98: .word FUN_02069E9C
-
- thumb_func_start FUN_02069E9C
-FUN_02069E9C: ; 0x02069E9C
- push {r3, lr}
- mov r1, #0x99
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r0, #0xf
- tst r0, r1
- beq _02069EB4
- mov r0, #0x0
- pop {r3, pc}
-_02069EB4:
- mov r0, #0xf0
- tst r0, r1
- beq _02069EBE
- mov r0, #0x1
- pop {r3, pc}
-_02069EBE:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02069EC4
-FUN_02069EC4: ; 0x02069EC4
- ldr r3, _02069EC8 ; =FUN_02069ECC
- bx r3
- .balign 4
-_02069EC8: .word FUN_02069ECC
-
- thumb_func_start FUN_02069ECC
-FUN_02069ECC: ; 0x02069ECC
- push {r3-r6, lr}
- sub sp, #0x4
- add r5, r0, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x6
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, _02069F20 ; =SPECIES_ARCEUS
- cmp r4, r1
- bne _02069F1C
- cmp r6, #0x79
- bne _02069F1C
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_0206E7B8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl GetArceusTypeByPlate
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0x70
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
-_02069F1C:
- add sp, #0x4
- pop {r3-r6, pc}
- .balign 4
-_02069F20: .word SPECIES_ARCEUS
-
- thumb_func_start GetArceusTypeByPlate
-GetArceusTypeByPlate: ; 0x02069F24
- sub r0, #0x7d
- cmp r0, #0xf
- bhi _02069F96
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02069F36: ; jump table (using 16-bit offset)
- .short _02069F56 - _02069F36 - 2; case 0
- .short _02069F5A - _02069F36 - 2; case 1
- .short _02069F5E - _02069F36 - 2; case 2
- .short _02069F62 - _02069F36 - 2; case 3
- .short _02069F66 - _02069F36 - 2; case 4
- .short _02069F6A - _02069F36 - 2; case 5
- .short _02069F6E - _02069F36 - 2; case 6
- .short _02069F72 - _02069F36 - 2; case 7
- .short _02069F76 - _02069F36 - 2; case 8
- .short _02069F7A - _02069F36 - 2; case 9
- .short _02069F7E - _02069F36 - 2; case 10
- .short _02069F82 - _02069F36 - 2; case 11
- .short _02069F86 - _02069F36 - 2; case 12
- .short _02069F8A - _02069F36 - 2; case 13
- .short _02069F8E - _02069F36 - 2; case 14
- .short _02069F92 - _02069F36 - 2; case 15
-_02069F56:
- mov r0, #0xa
- bx lr
-_02069F5A:
- mov r0, #0xb
- bx lr
-_02069F5E:
- mov r0, #0xd
- bx lr
-_02069F62:
- mov r0, #0xc
- bx lr
-_02069F66:
- mov r0, #0xf
- bx lr
-_02069F6A:
- mov r0, #0x1
- bx lr
-_02069F6E:
- mov r0, #0x3
- bx lr
-_02069F72:
- mov r0, #0x4
- bx lr
-_02069F76:
- mov r0, #0x2
- bx lr
-_02069F7A:
- mov r0, #0xe
- bx lr
-_02069F7E:
- mov r0, #0x6
- bx lr
-_02069F82:
- mov r0, #0x5
- bx lr
-_02069F86:
- mov r0, #0x7
- bx lr
-_02069F8A:
- mov r0, #0x10
- bx lr
-_02069F8E:
- mov r0, #0x11
- bx lr
-_02069F92:
- mov r0, #0x8
- bx lr
-_02069F96:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start LoadWotbl_HandleAlternateForme
-LoadWotbl_HandleAlternateForme: ; 0x02069F9C
- push {r4, lr}
- add r4, r2, #0x0
- bl ResolveMonForme
- add r2, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x21 ; NARC_POKETOOL_PERSONAL_WOTBL
- bl ReadWholeNarcMemberByIdPair
- pop {r4, pc}
-
- thumb_func_start FUN_02069FB0
-FUN_02069FB0: ; 0x02069FB0
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _0206A010 ; =0x000001B9
- add r4, r2, #0x0
- add r5, r1, #0x0
- add r6, r3, #0x0
- cmp r4, r0
- bne _02069FFC
- add r0, r5, #0x0
- bl FUN_02005F14
- cmp r0, #0x0
- bne _02069FE2
- mov r0, #0x1
- bl FUN_02005E80
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x18]
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020056AC
- pop {r3-r7, pc}
-_02069FE2:
- ldr r0, [sp, #0x1c]
- cmp r0, #0x0
- beq _02069FEE
- mov r0, #0x1
- bl FUN_02005E80
-_02069FEE:
- ldr r2, [sp, #0x18]
- add r0, r7, #0x0
- mov r1, #0x0
- add r3, r6, #0x0
- bl FUN_02005E90
- pop {r3-r7, pc}
-_02069FFC:
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x18]
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020056AC
- pop {r3-r7, pc}
- nop
-_0206A010: .word 0x000001B9
-
- thumb_func_start FUN_0206A014
-FUN_0206A014: ; 0x0206A014
- push {r3-r6, lr}
- sub sp, #0xc
- ldr r6, [sp, #0x20]
- add r5, r0, #0x0
- str r6, [sp, #0x0]
- ldr r6, [sp, #0x24]
- add r4, r2, #0x0
- str r6, [sp, #0x4]
- bl FUN_0206A054
- cmp r4, #0xe
- bne _0206A050
- add r0, r5, #0x0
- mov r1, #0xa3
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0xa2
- add r2, sp, #0x8
- bl SetMonDataEncrypted
- mov r0, #0x0
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9f
- add r2, sp, #0x8
- bl SetMonDataEncrypted
-_0206A050:
- add sp, #0xc
- pop {r3-r6, pc}
-
- thumb_func_start FUN_0206A054
-FUN_0206A054: ; 0x0206A054
- push {r0-r3}
- push {r3-r4, lr}
- sub sp, #0x4
- ldr r2, [sp, #0x24]
- add r4, r0, #0x0
- str r2, [sp, #0x0]
- mov r2, #0x0
- bl FUN_020808AC
- ldr r2, _0206A090 ; =gGameVersion
- add r0, r4, #0x0
- mov r1, #0x79
- bl SetBoxMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0x9a
- add r2, sp, #0x18
- bl SetBoxMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0x9d
- add r2, sp, #0x20
- bl SetBoxMonDataEncrypted
- add sp, #0x4
- pop {r3-r4}
- pop {r3}
- add sp, #0x10
- bx r3
- nop
-_0206A090: .word gGameVersion
-
- thumb_func_start FUN_0206A094
-FUN_0206A094: ; 0x0206A094
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- mov r0, #0x81
- add r7, r2, #0x0
- tst r0, r1
- bne _0206A12E
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- add r4, r1, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x0]
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- mov r2, #0x10
- bl GetMonBaseStat_HandleFormeConversion
- add r1, sp, #0x4
- strh r0, [r1, #0x2]
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- mov r2, #0x11
- bl GetMonBaseStat_HandleFormeConversion
- add r1, sp, #0x4
- strh r0, [r1, #0x0]
- ldrh r2, [r1, #0x2]
- ldrh r0, [r1, #0x0]
- cmp r2, r0
- bne _0206A104
- cmp r2, #0x0
- beq _0206A104
- add r2, sp, #0x4
- add r0, r5, #0x0
- mov r1, #0x6
- add r2, #0x2
- bl SetMonDataEncrypted
- add sp, #0x8
- pop {r3-r7, pc}
-_0206A104:
- ldr r0, _0206A134 ; =sItemOdds
- lsl r1, r7, #0x2
- ldrh r0, [r0, r1]
- cmp r4, r0
- blo _0206A12E
- ldr r0, _0206A138 ; =sItemOdds + 2
- ldrh r0, [r0, r1]
- cmp r4, r0
- add r2, sp, #0x4
- bhs _0206A126
- add r0, r5, #0x0
- mov r1, #0x6
- add r2, #0x2
- bl SetMonDataEncrypted
- add sp, #0x8
- pop {r3-r7, pc}
-_0206A126:
- add r0, r5, #0x0
- mov r1, #0x6
- bl SetMonDataEncrypted
-_0206A12E:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0206A134: .word sItemOdds
-_0206A138: .word sItemOdds + 2
-
- thumb_func_start FUN_0206A13C
-FUN_0206A13C: ; 0x0206A13C
- ldr r3, _0206A140 ; =FUN_0206A144
- bx r3
- .balign 4
-_0206A140: .word FUN_0206A144
-
- thumb_func_start FUN_0206A144
-FUN_0206A144: ; 0x0206A144
- push {r4-r6, lr}
- add r6, r1, #0x0
- mov r1, #0xad
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r2, r6, #0x0
- bl FUN_0206A16C
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0206A16C
-FUN_0206A16C: ; 0x0206A16C
- push {r4, lr}
- ldr r3, _0206A1C0 ; =SPECIES_EGG
- cmp r0, r3
- bne _0206A178
- mov r0, #0x0
- pop {r4, pc}
-_0206A178:
- cmp r2, #0x20
- bhs _0206A186
- mov r3, #0x1
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x1d
- b _0206A1B0
-_0206A186:
- cmp r2, #0x40
- bhs _0206A196
- mov r3, #0x1
- sub r2, #0x20
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x1e
- b _0206A1B0
-_0206A196:
- cmp r2, #0x60
- bhs _0206A1A6
- mov r3, #0x1
- sub r2, #0x40
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x1f
- b _0206A1B0
-_0206A1A6:
- mov r3, #0x1
- sub r2, #0x60
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x20
-_0206A1B0:
- bl GetMonBaseStat_HandleFormeConversion
- tst r0, r4
- beq _0206A1BC
- mov r0, #0x1
- pop {r4, pc}
-_0206A1BC:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_0206A1C0: .word SPECIES_EGG
-
- thumb_func_start FUN_0206A1C4
-FUN_0206A1C4: ; 0x0206A1C4
- ldr r3, _0206A1C8 ; =FUN_0206A1CC
- bx r3
- .balign 4
-_0206A1C8: .word FUN_0206A1CC
-
- thumb_func_start FUN_0206A1CC
-FUN_0206A1CC: ; 0x0206A1CC
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- add r7, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- mov r1, #0x0
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x18
- bl GetMonBaseStat
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- mov r1, #0x19
- bl GetMonBaseStat
- str r0, [sp, #0x0]
- cmp r0, #0x0
- beq _0206A226
- mov r0, #0x1
- tst r0, r6
- beq _0206A21A
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
- b _0206A230
-_0206A21A:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- b _0206A230
-_0206A226:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
-_0206A230:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl TryEncryptBoxMon
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0206A23C
-FUN_0206A23C: ; 0x0206A23C
- push {r4-r7, lr}
- sub sp, #0x1c
- add r5, r0, #0x0
- mov r0, #0x0
- str r1, [sp, #0x0]
- bl AllocMonZeroed
- str r0, [sp, #0x4]
- ldr r1, [sp, #0x4]
- add r0, r5, #0x0
- bl FUN_02069B88
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x0
- bl GetSubstruct
- add r4, r0, #0x0
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x1
- bl GetSubstruct
- add r6, r0, #0x0
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x2
- bl GetSubstruct
- add r7, r0, #0x0
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x3
- bl GetSubstruct
- str r0, [sp, #0x8]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x0
- bl GetSubstruct
- str r0, [sp, #0xc]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x1
- bl GetSubstruct
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x2
- bl GetSubstruct
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x3
- bl GetSubstruct
- ldr r2, [sp, #0x4]
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x4]
- ldrh r2, [r2, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- ldr r0, [sp, #0x0]
- str r0, [r5, #0x0]
- ldr r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldr r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldr r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- mov r0, #0x10
-_0206A32E:
- ldr r1, [sp, #0x8]
- ldrh r2, [r1, #0x0]
- add r1, r1, #0x2
- str r1, [sp, #0x8]
- ldr r1, [sp, #0x18]
- strh r2, [r1, #0x0]
- add r1, r1, #0x2
- str r1, [sp, #0x18]
- sub r0, r0, #0x1
- bne _0206A32E
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- ldr r0, [sp, #0x4]
- bl FreeToHeap
- add sp, #0x1c
- pop {r4-r7, pc}
-
- thumb_func_start LoadMonPersonal
-LoadMonPersonal: ; 0x0206A370
- ldr r3, _0206A37C ; =ReadWholeNarcMemberByIdPair
- add r2, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x2 ; NARC_POKETOOL_PERSONAL_PERSONAL
- bx r3
- nop
-_0206A37C: .word ReadWholeNarcMemberByIdPair
-
- thumb_func_start LoadMonBaseStats_HandleAlternateForme
-LoadMonBaseStats_HandleAlternateForme: ; 0x0206A380
- push {r4, lr}
- add r4, r2, #0x0
- bl ResolveMonForme
- add r2, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x2 ; NARC_POKETOOL_PERSONAL_PERSONAL
- bl ReadWholeNarcMemberByIdPair
- pop {r4, pc}
-
- thumb_func_start LoadMonEvolutionTable
-LoadMonEvolutionTable: ; 0x0206A394
- ldr r3, _0206A3A0 ; =ReadWholeNarcMemberByIdPair
- add r2, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x22 ; NARC_POKETOOL_PERSONAL_EVO
- bx r3
- nop
-_0206A3A0: .word ReadWholeNarcMemberByIdPair
-
- thumb_func_start MonEncryptSegment
-MonEncryptSegment: ; 0x0206A3A4
- push {r0-r3}
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r4, #0x0
- lsr r6, r1, #0x1
- beq _0206A3C6
- add r7, sp, #0x20
-_0206A3B2:
- add r0, r7, #0x0
- bl MonEncryptionLCRNG
- ldrh r1, [r5, #0x0]
- add r4, r4, #0x1
- eor r0, r1
- strh r0, [r5, #0x0]
- add r5, r5, #0x2
- cmp r4, r6
- blo _0206A3B2
-_0206A3C6:
- pop {r3-r7}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-
- thumb_func_start MonDecryptSegment
-MonDecryptSegment: ; 0x0206A3D0
- ldr r3, _0206A3D4 ; =MonEncryptSegment
- bx r3
- .balign 4
-_0206A3D4: .word MonEncryptSegment
-
- thumb_func_start MonEncryptionLCRNG
-MonEncryptionLCRNG: ; 0x0206A3D8
- ldr r2, [r0, #0x0]
- ldr r1, _0206A3F0 ; =0x41C64E6D
- add r3, r2, #0x0
- mul r3, r1
- ldr r1, _0206A3F4 ; =0x00006073
- add r1, r3, r1
- str r1, [r0, #0x0]
- lsr r0, r1, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
- nop
-_0206A3F0: .word 0x41C64E6D
-_0206A3F4: .word 0x00006073
-
- thumb_func_start CalcMonChecksum
-CalcMonChecksum: ; 0x0206A3F8
- push {r3-r4}
- mov r3, #0x0
- add r2, r3, #0x0
- lsr r4, r1, #0x1
- beq _0206A412
-_0206A402:
- ldrh r1, [r0, #0x0]
- add r2, r2, #0x1
- add r0, r0, #0x2
- add r1, r3, r1
- lsl r1, r1, #0x10
- lsr r3, r1, #0x10
- cmp r2, r4
- blo _0206A402
-_0206A412:
- add r0, r3, #0x0
- pop {r3-r4}
- bx lr
-
- thumb_func_start GetSubstruct
-GetSubstruct: ; 0x0206A418
- push {r3, lr}
- mov r3, #0x3e
- lsl r3, r3, #0xc
- and r3, r1
- lsr r3, r3, #0xd
- cmp r3, #0x1f
- bhi _0206A478
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_0206A432: ; jump table (using 16-bit offset)
- .short _0206A472 - _0206A432 - 2; case 0
- .short _0206A4A4 - _0206A432 - 2; case 1
- .short _0206A4D4 - _0206A432 - 2; case 2
- .short _0206A504 - _0206A432 - 2; case 3
- .short _0206A534 - _0206A432 - 2; case 4
- .short _0206A564 - _0206A432 - 2; case 5
- .short _0206A594 - _0206A432 - 2; case 6
- .short _0206A5C6 - _0206A432 - 2; case 7
- .short _0206A5F6 - _0206A432 - 2; case 8
- .short _0206A626 - _0206A432 - 2; case 9
- .short _0206A656 - _0206A432 - 2; case 10
- .short _0206A686 - _0206A432 - 2; case 11
- .short _0206A6B6 - _0206A432 - 2; case 12
- .short _0206A6E8 - _0206A432 - 2; case 13
- .short _0206A718 - _0206A432 - 2; case 14
- .short _0206A748 - _0206A432 - 2; case 15
- .short _0206A778 - _0206A432 - 2; case 16
- .short _0206A7A8 - _0206A432 - 2; case 17
- .short _0206A7D8 - _0206A432 - 2; case 18
- .short _0206A80A - _0206A432 - 2; case 19
- .short _0206A83A - _0206A432 - 2; case 20
- .short _0206A86A - _0206A432 - 2; case 21
- .short _0206A89A - _0206A432 - 2; case 22
- .short _0206A8CA - _0206A432 - 2; case 23
- .short _0206A472 - _0206A432 - 2; case 24
- .short _0206A4A4 - _0206A432 - 2; case 25
- .short _0206A4D4 - _0206A432 - 2; case 26
- .short _0206A504 - _0206A432 - 2; case 27
- .short _0206A534 - _0206A432 - 2; case 28
- .short _0206A564 - _0206A432 - 2; case 29
- .short _0206A594 - _0206A432 - 2; case 30
- .short _0206A5C6 - _0206A432 - 2; case 31
-_0206A472:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A47A
-_0206A478:
- b _0206A8F8
-_0206A47A:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A486: ; jump table (using 16-bit offset)
- .short _0206A48E - _0206A486 - 2; case 0
- .short _0206A492 - _0206A486 - 2; case 1
- .short _0206A498 - _0206A486 - 2; case 2
- .short _0206A49E - _0206A486 - 2; case 3
-_0206A48E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A492:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A498:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A49E:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A4A4:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A4B6: ; jump table (using 16-bit offset)
- .short _0206A4BE - _0206A4B6 - 2; case 0
- .short _0206A4C2 - _0206A4B6 - 2; case 1
- .short _0206A4C8 - _0206A4B6 - 2; case 2
- .short _0206A4CE - _0206A4B6 - 2; case 3
-_0206A4BE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A4C2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A4C8:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A4CE:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A4D4:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A4E6: ; jump table (using 16-bit offset)
- .short _0206A4EE - _0206A4E6 - 2; case 0
- .short _0206A4F2 - _0206A4E6 - 2; case 1
- .short _0206A4F8 - _0206A4E6 - 2; case 2
- .short _0206A4FE - _0206A4E6 - 2; case 3
-_0206A4EE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A4F2:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A4F8:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A4FE:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A504:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A516: ; jump table (using 16-bit offset)
- .short _0206A51E - _0206A516 - 2; case 0
- .short _0206A522 - _0206A516 - 2; case 1
- .short _0206A528 - _0206A516 - 2; case 2
- .short _0206A52E - _0206A516 - 2; case 3
-_0206A51E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A522:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A528:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A52E:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A534:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A546: ; jump table (using 16-bit offset)
- .short _0206A54E - _0206A546 - 2; case 0
- .short _0206A552 - _0206A546 - 2; case 1
- .short _0206A558 - _0206A546 - 2; case 2
- .short _0206A55E - _0206A546 - 2; case 3
-_0206A54E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A552:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A558:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A55E:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A564:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A576: ; jump table (using 16-bit offset)
- .short _0206A57E - _0206A576 - 2; case 0
- .short _0206A582 - _0206A576 - 2; case 1
- .short _0206A588 - _0206A576 - 2; case 2
- .short _0206A58E - _0206A576 - 2; case 3
-_0206A57E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A582:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A588:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A58E:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A594:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A59C
-_0206A59A:
- b _0206A8F8
-_0206A59C:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A5A8: ; jump table (using 16-bit offset)
- .short _0206A5B0 - _0206A5A8 - 2; case 0
- .short _0206A5B6 - _0206A5A8 - 2; case 1
- .short _0206A5BA - _0206A5A8 - 2; case 2
- .short _0206A5C0 - _0206A5A8 - 2; case 3
-_0206A5B0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A5B6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A5BA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A5C0:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A5C6:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A5D8: ; jump table (using 16-bit offset)
- .short _0206A5E0 - _0206A5D8 - 2; case 0
- .short _0206A5E6 - _0206A5D8 - 2; case 1
- .short _0206A5EA - _0206A5D8 - 2; case 2
- .short _0206A5F0 - _0206A5D8 - 2; case 3
-_0206A5E0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A5E6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A5EA:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A5F0:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A5F6:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A608: ; jump table (using 16-bit offset)
- .short _0206A610 - _0206A608 - 2; case 0
- .short _0206A616 - _0206A608 - 2; case 1
- .short _0206A61A - _0206A608 - 2; case 2
- .short _0206A620 - _0206A608 - 2; case 3
-_0206A610:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A616:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A61A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A620:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A626:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A638: ; jump table (using 16-bit offset)
- .short _0206A640 - _0206A638 - 2; case 0
- .short _0206A646 - _0206A638 - 2; case 1
- .short _0206A64A - _0206A638 - 2; case 2
- .short _0206A650 - _0206A638 - 2; case 3
-_0206A640:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A646:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A64A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A650:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A656:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A668: ; jump table (using 16-bit offset)
- .short _0206A670 - _0206A668 - 2; case 0
- .short _0206A676 - _0206A668 - 2; case 1
- .short _0206A67A - _0206A668 - 2; case 2
- .short _0206A680 - _0206A668 - 2; case 3
-_0206A670:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A676:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A67A:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A680:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A686:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A698: ; jump table (using 16-bit offset)
- .short _0206A6A0 - _0206A698 - 2; case 0
- .short _0206A6A6 - _0206A698 - 2; case 1
- .short _0206A6AA - _0206A698 - 2; case 2
- .short _0206A6B0 - _0206A698 - 2; case 3
-_0206A6A0:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A6A6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A6AA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A6B0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A6B6:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A6BE
-_0206A6BC:
- b _0206A8F8
-_0206A6BE:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A6CA: ; jump table (using 16-bit offset)
- .short _0206A6D2 - _0206A6CA - 2; case 0
- .short _0206A6D8 - _0206A6CA - 2; case 1
- .short _0206A6DE - _0206A6CA - 2; case 2
- .short _0206A6E2 - _0206A6CA - 2; case 3
-_0206A6D2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A6D8:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A6DE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A6E2:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A6E8:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A6FA: ; jump table (using 16-bit offset)
- .short _0206A702 - _0206A6FA - 2; case 0
- .short _0206A708 - _0206A6FA - 2; case 1
- .short _0206A70E - _0206A6FA - 2; case 2
- .short _0206A712 - _0206A6FA - 2; case 3
-_0206A702:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A708:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A70E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A712:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A718:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A72A: ; jump table (using 16-bit offset)
- .short _0206A732 - _0206A72A - 2; case 0
- .short _0206A738 - _0206A72A - 2; case 1
- .short _0206A73E - _0206A72A - 2; case 2
- .short _0206A742 - _0206A72A - 2; case 3
-_0206A732:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A738:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A73E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A742:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A748:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A75A: ; jump table (using 16-bit offset)
- .short _0206A762 - _0206A75A - 2; case 0
- .short _0206A768 - _0206A75A - 2; case 1
- .short _0206A76E - _0206A75A - 2; case 2
- .short _0206A772 - _0206A75A - 2; case 3
-_0206A762:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A768:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A76E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A772:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A778:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A78A: ; jump table (using 16-bit offset)
- .short _0206A792 - _0206A78A - 2; case 0
- .short _0206A798 - _0206A78A - 2; case 1
- .short _0206A79E - _0206A78A - 2; case 2
- .short _0206A7A2 - _0206A78A - 2; case 3
-_0206A792:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A798:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A79E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A7A2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A7A8:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A7BA: ; jump table (using 16-bit offset)
- .short _0206A7C2 - _0206A7BA - 2; case 0
- .short _0206A7C8 - _0206A7BA - 2; case 1
- .short _0206A7CE - _0206A7BA - 2; case 2
- .short _0206A7D2 - _0206A7BA - 2; case 3
-_0206A7C2:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A7C8:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A7CE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A7D2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A7D8:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A7E0
-_0206A7DE:
- b _0206A8F8
-_0206A7E0:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A7EC: ; jump table (using 16-bit offset)
- .short _0206A7F4 - _0206A7EC - 2; case 0
- .short _0206A7FA - _0206A7EC - 2; case 1
- .short _0206A800 - _0206A7EC - 2; case 2
- .short _0206A806 - _0206A7EC - 2; case 3
-_0206A7F4:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A7FA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A800:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A806:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A80A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A81C: ; jump table (using 16-bit offset)
- .short _0206A824 - _0206A81C - 2; case 0
- .short _0206A82A - _0206A81C - 2; case 1
- .short _0206A830 - _0206A81C - 2; case 2
- .short _0206A836 - _0206A81C - 2; case 3
-_0206A824:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A82A:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A830:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A836:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A83A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A84C: ; jump table (using 16-bit offset)
- .short _0206A854 - _0206A84C - 2; case 0
- .short _0206A85A - _0206A84C - 2; case 1
- .short _0206A860 - _0206A84C - 2; case 2
- .short _0206A866 - _0206A84C - 2; case 3
-_0206A854:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A85A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A860:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A866:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A86A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A87C: ; jump table (using 16-bit offset)
- .short _0206A884 - _0206A87C - 2; case 0
- .short _0206A88A - _0206A87C - 2; case 1
- .short _0206A890 - _0206A87C - 2; case 2
- .short _0206A896 - _0206A87C - 2; case 3
-_0206A884:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A88A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A890:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A896:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A89A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A8AC: ; jump table (using 16-bit offset)
- .short _0206A8B4 - _0206A8AC - 2; case 0
- .short _0206A8BA - _0206A8AC - 2; case 1
- .short _0206A8C0 - _0206A8AC - 2; case 2
- .short _0206A8C6 - _0206A8AC - 2; case 3
-_0206A8B4:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A8BA:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A8C0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A8C6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A8CA:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A8DC: ; jump table (using 16-bit offset)
- .short _0206A8E4 - _0206A8DC - 2; case 0
- .short _0206A8EA - _0206A8DC - 2; case 1
- .short _0206A8F0 - _0206A8DC - 2; case 2
- .short _0206A8F6 - _0206A8DC - 2; case 3
-_0206A8E4:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A8EA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A8F0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A8F6:
- add r1, r0, #0x0
-_0206A8F8:
- add r0, r1, #0x0
- pop {r3, pc}
-
- thumb_func_start ResolveMonForme
-ResolveMonForme: ; 0x0206A8FC
- ldr r3, _0206A928 ; =SPECIES_DEOXYS
- cmp r0, r3
- beq _0206A90C
- add r2, r3, #0x0
- add r2, #SPECIES_WORMADAM-SPECIES_DEOXYS
- cmp r0, r2
- beq _0206A91A
- bx lr
-_0206A90C:
- cmp r1, #0x0
- beq _0206A926
- cmp r1, #0x3
- bgt _0206A926
- add r3, #SPECIES_DEOXYS_ATK-SPECIES_DEOXYS-1
- add r0, r1, r3
- bx lr
-_0206A91A:
- cmp r1, #0x0
- beq _0206A926
- cmp r1, #0x2
- bgt _0206A926
- add r3, #SPECIES_WORMADAM_SANDY-SPECIES_DEOXYS-1
- add r0, r1, r3
-_0206A926:
- bx lr
- .balign 4
-_0206A928: .word SPECIES_DEOXYS
-
- thumb_func_start MaskOfFlagNo
-MaskOfFlagNo: ; 0x0206A92C
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0x1
- cmp r5, #0x20
- blt _0206A93A
- bl ErrorHandling
-_0206A93A:
- mov r0, #0x0
- cmp r5, #0x0
- ble _0206A948
-_0206A940:
- add r0, r0, #0x1
- lsl r4, r4, #0x1
- cmp r0, r5
- blt _0206A940
-_0206A948:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start LowestFlagNo
-LowestFlagNo: ; 0x0206A94C
- mov r3, #0x1
- mov r2, #0x0
-_0206A950:
- add r1, r0, #0x0
- tst r1, r3
- bne _0206A95E
- add r2, r2, #0x1
- lsl r3, r3, #0x1
- cmp r2, #0x20
- blt _0206A950
-_0206A95E:
- add r0, r2, #0x0
- bx lr
- .balign 4
-
- thumb_func_start IsPokemonLegendaryOrMythical
-IsPokemonLegendaryOrMythical: ; 0x0206A964
- ldr r3, _0206A980 ; =sLegendaryMonsList
- mov r2, #0x0
-_0206A968:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _0206A972
- mov r0, #0x1
- bx lr
-_0206A972:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0x12
- blo _0206A968
- mov r0, #0x0
- bx lr
- nop
-_0206A980: .word sLegendaryMonsList
-
- thumb_func_start GetLegendaryMon
-GetLegendaryMon: ; 0x0206A984
- cmp r0, #0x12
- blo _0206A98A
- mov r0, #0x0
-_0206A98A:
- lsl r1, r0, #0x1
- ldr r0, _0206A994 ; =sLegendaryMonsList
- ldrh r0, [r0, r1]
- bx lr
- nop
-_0206A994: .word sLegendaryMonsList
-
- thumb_func_start FUN_0206A998
-FUN_0206A998: ; 0x0206A998
- push {r3, lr}
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl IsPokemonLegendaryOrMythical
- pop {r3, pc}
-
- thumb_func_start FUN_0206A9AC
-FUN_0206A9AC: ; 0x0206A9AC
- push {r3-r7, lr}
- sub sp, #0x10
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r6, r2, #0x0
- bl FUN_020239BC
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0x7
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- bl FUN_020239CC
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9c
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- str r0, [sp, #0xc]
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_020239A0
- add r7, r0, #0x0
- mov r0, #0x8
- add r1, r6, #0x0
- bl FUN_020219F4
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x90
- add r2, r6, #0x0
- mov r4, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, [sp, #0x0]
- ldr r0, [sp, #0x4]
- cmp r1, r0
- bne _0206AA1C
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0xc]
- cmp r1, r0
- bne _0206AA1C
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_02021CE0
- cmp r0, #0x0
- bne _0206AA1C
- mov r4, #0x1
-_0206AA1C:
- add r0, r6, #0x0
- bl FUN_02021A20
- add r0, r7, #0x0
- bl FUN_02021A20
- add r0, r4, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0206AA30
-FUN_0206AA30: ; 0x0206AA30
- push {r3, lr}
- cmp r0, #0x3f
- bgt _0206AA48
- bge _0206AA6C
- cmp r0, #0x1
- bgt _0206AA74
- cmp r0, #0x0
- blt _0206AA74
- beq _0206AA82
- cmp r0, #0x1
- beq _0206AA82
- b _0206AA74
-_0206AA48:
- cmp r0, #0x5a
- bgt _0206AA50
- beq _0206AA70
- b _0206AA74
-_0206AA50:
- add r1, r0, #0x0
- sub r1, #0x5b
- cmp r1, #0x3
- bhi _0206AA74
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0206AA64: ; jump table (using 16-bit offset)
- .short _0206AA70 - _0206AA64 - 2; case 0
- .short _0206AA70 - _0206AA64 - 2; case 1
- .short _0206AA70 - _0206AA64 - 2; case 2
- .short _0206AA70 - _0206AA64 - 2; case 3
-_0206AA6C:
- mov r0, #0x2
- pop {r3, pc}
-_0206AA70:
- sub r0, #0x57
- pop {r3, pc}
-_0206AA74:
- bl FUN_0206AE00
- cmp r0, #0x1
- bne _0206AA80
- mov r0, #0x1
- pop {r3, pc}
-_0206AA80:
- mov r0, #0x0
-_0206AA82:
- pop {r3, pc}
-
- thumb_func_start FUN_0206AA84
-FUN_0206AA84: ; 0x0206AA84
- push {r3-r4, lr}
- sub sp, #0x1c
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, sp, #0x0
- strb r0, [r1, #0x0]
- add r1, sp, #0x0
- add r1, #0x1
- mov r2, #0x18
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- mov r1, #0xa1
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r2, sp, #0x0
- add r0, r4, #0x0
- mov r1, #0xaa
- add r2, #0x1
- bl SetMonDataEncrypted
- add sp, #0x1c
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0206AAB4
-FUN_0206AAB4: ; 0x0206AAB4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- mov r4, #0x0
- str r0, [sp, #0x0]
- add r7, r4, #0x0
- add r6, sp, #0x4
-_0206AAC6:
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x36
- add r2, r7, #0x0
- bl GetBoxMonDataEncrypted
- cmp r0, #0x0
- beq _0206AAF0
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x42
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r4, #0x0
- strb r0, [r6, #0x0]
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
-_0206AAF0:
- add r4, r4, #0x1
- cmp r4, #0x4
- blt _0206AAC6
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index 275875f4..4a3c3f82 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -3953,7 +3953,7 @@ FUN_0203B8A0: ; 0x0203B8A0
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690CC
strh r0, [r4, #0x0]
mov r0, #0x0
@@ -4602,7 +4602,7 @@ FUN_0203BDB8: ; 0x0203BDB8
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -4635,7 +4635,7 @@ FUN_0203BDB8: ; 0x0203BDB8
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
add r5, #0x80
lsl r1, r1, #0x10
@@ -5526,11 +5526,11 @@ FUN_0203C520: ; 0x0203C520
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x74
add r2, sp, #0xc
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0x0
bl ScriptReadHalfword
add r1, r0, #0x0
@@ -5542,7 +5542,7 @@ FUN_0203C520: ; 0x0203C520
add r0, r7, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
str r6, [sp, #0x0]
add r0, sp, #0xc
@@ -6063,7 +6063,7 @@ FUN_0203C990: ; 0x0203C990
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
add r0, r5, #0x0
add r0, #0x80
@@ -10081,36 +10081,36 @@ FUN_0203E9CC: ; 0x0203E9CC
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
add r0, r5, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x4]
add r0, r5, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, r6
add r2, r7, r1
ldr r1, [sp, #0x4]
@@ -10193,10 +10193,10 @@ FUN_0203EAB0: ; 0x0203EAB0
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r5, #0x0
@@ -10679,7 +10679,7 @@ FUN_0203EE98: ; 0x0203EE98
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206BAE4
+ bl PartyHasMon
strh r0, [r4, #0x0]
mov r0, #0x1
pop {r4-r6, pc}
@@ -10703,7 +10703,7 @@ FUN_0203EED8: ; 0x0203EED8
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
str r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, #0x80
add r6, r0, #0x0
ldr r0, [r4, #0x0]
@@ -10716,20 +10716,20 @@ FUN_0203EED8: ; 0x0203EED8
_0203EF18:
ldr r0, [sp, #0x0]
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0203EF54 ; =0x00000182
cmp r0, r1
bne _0203EF48
add r0, r4, #0x0
mov r1, #0x70
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add r0, r7, #0x0
add r1, r4, #0x0
bl FUN_02024AF0
@@ -10761,7 +10761,7 @@ FUN_0203EF58: ; 0x0203EF58
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
str r0, [sp, #0xc]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r2, sp, #0x18
mov r4, #0x0
ldr r3, _0203F008 ; =UNK_020F34FC
@@ -10782,16 +10782,16 @@ FUN_0203EF58: ; 0x0203EF58
_0203EFA2:
ldr r0, [sp, #0xc]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r6, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0x0
mov r0, #0x67
ldr r1, [sp, #0x10]
diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s
index 43e29bb0..e97249d2 100644
--- a/arm9/asm/scrcmd_12.s
+++ b/arm9/asm/scrcmd_12.s
@@ -284,7 +284,7 @@ FUN_02042F10: ; 0x02042F10
push {r3, lr}
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x6
bge _02042F24
mov r0, #0x1
@@ -349,17 +349,17 @@ FUN_02042F6C: ; 0x02042F6C
mov r1, #0x97
add r2, r7, #0x0
add r5, #0xf0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, #0x0
str r0, [sp, #0x8]
add r0, r4, #0x0
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
add r0, r4, #0x0
mov r1, #0x7
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
bl OS_GetTick
bl rand_ALT
@@ -371,7 +371,7 @@ FUN_02042F6C: ; 0x02042F6C
cmp r0, #0x1
bne _02042FE6
add r0, r6, #0x0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0x0
beq _02042FE8
_02042FD0:
@@ -380,7 +380,7 @@ _02042FD0:
add r1, r0, #0x0
add r0, r6, #0x0
str r1, [sp, #0x34]
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0x0
bne _02042FD0
b _02042FE8
@@ -391,41 +391,41 @@ _02042FE8:
add r0, r4, #0x0
bl FUN_0206A23C
add r0, r4, #0x0
- bl GetMonGenderEncrypted
+ bl GetMonGender
str r0, [sp, #0x30]
add r0, r4, #0x0
mov r1, #0x6f
add r2, sp, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
mov r1, #0x4b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x18]
add r0, r4, #0x0
mov r1, #0x4a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x1c]
add r0, r4, #0x0
mov r1, #0x49
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
add r0, r4, #0x0
mov r1, #0x48
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x24]
add r0, r4, #0x0
mov r1, #0x46
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
add r0, r4, #0x0
mov r1, #0x47
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r6, r0
ldr r0, [sp, #0x24]
add r1, r0, r1
@@ -445,7 +445,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x46
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x3e
lsl r0, r0, #0x4
and r0, r6
@@ -454,7 +454,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x47
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1f
lsl r0, r0, #0xa
and r0, r6
@@ -463,7 +463,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x48
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
bl rand_LC
add r6, r0, #0x0
mov r0, #0x1f
@@ -472,7 +472,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x49
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x3e
lsl r0, r0, #0x4
and r0, r6
@@ -481,7 +481,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x4a
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1f
lsl r0, r0, #0xa
and r0, r6
@@ -490,7 +490,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x4b
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
_020430DA:
ldr r0, [sp, #0x4]
ldr r0, [r0, #0xc]
@@ -499,7 +499,7 @@ _020430DA:
add r0, r4, #0x0
mov r1, #0x2e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020430FC
mov r0, #0x49
@@ -510,7 +510,7 @@ _020430FC:
add r0, r4, #0x0
mov r1, #0x2f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02043114
mov r0, #0x4a
@@ -521,7 +521,7 @@ _02043114:
add r0, r4, #0x0
mov r1, #0x30
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0204312C
mov r0, #0x4b
@@ -532,7 +532,7 @@ _0204312C:
add r0, r4, #0x0
mov r1, #0x31
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02043144
mov r0, #0x4c
@@ -543,7 +543,7 @@ _02043144:
add r0, r4, #0x0
mov r1, #0x32
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0204315C
mov r0, #0x4d
@@ -554,7 +554,7 @@ _0204315C:
add r0, r4, #0x0
mov r1, #0x33
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02043174
mov r0, #0x4e
@@ -565,7 +565,7 @@ _02043174:
add r0, r4, #0x0
mov r1, #0x34
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0204318C
mov r0, #0x4f
@@ -576,7 +576,7 @@ _0204318C:
add r0, r4, #0x0
mov r1, #0x67
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020431A4
mov r0, #0x19
@@ -587,7 +587,7 @@ _020431A4:
add r0, r4, #0x0
mov r1, #0x68
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020431BC
mov r0, #0x1a
@@ -598,7 +598,7 @@ _020431BC:
add r0, r4, #0x0
mov r1, #0x69
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020431D4
mov r0, #0x1b
@@ -629,15 +629,15 @@ _020431D4:
add r0, r7, #0x0
mov r1, #0x90
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0x0
mov r1, #0x7
add r2, sp, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0x0
mov r1, #0x9c
add r2, sp, #0x28
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
add r4, r7, #0x0
bl FUN_02021A20
@@ -653,7 +653,7 @@ _0204322C:
mov r2, #0x4
bl FUN_0208089C
add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [sp, #0x4]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s
index f52aaf69..bcd4dc70 100644
--- a/arm9/asm/scrcmd_18.s
+++ b/arm9/asm/scrcmd_18.s
@@ -91,17 +91,17 @@ FUN_0204434C: ; 0x0204434C
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
ldrh r1, [r6, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _020443A0
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
b _020443A2
_020443A0:
mov r0, #0x0
@@ -138,10 +138,10 @@ FUN_020443A8: ; 0x020443A8
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
ldrh r1, [r6, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r7, #0x0
@@ -187,7 +187,7 @@ FUN_02044414: ; 0x02044414
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r6, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x6
@@ -289,12 +289,12 @@ FUN_020444F4: ; 0x020444F4
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x0
mov r1, #0x4c
add r4, r0, #0x0
strh r2, [r6, #0x0]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044556
mov r0, #0x0
@@ -303,25 +303,25 @@ _02044556:
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204458E
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204458E
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204458E
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _02044592
_0204458E:
@@ -358,7 +358,7 @@ FUN_02044598: ; 0x02044598
ldr r0, [sp, #0x4]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r1, _02044650 ; =0x00000006
@@ -371,35 +371,35 @@ _020445E4:
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204463E
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02044638
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02044638
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02044638
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _0204463E
_02044638:
@@ -444,7 +444,7 @@ FUN_02044658: ; 0x02044658
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_0204A32C
strh r0, [r4, #0x0]
mov r0, #0x0
@@ -474,7 +474,7 @@ FUN_0204469C: ; 0x0204469C
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x8]
@@ -489,17 +489,17 @@ _020446EA:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204471A
add r0, r6, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x0]
cmp r0, r1
bhi _0204471A
@@ -544,18 +544,18 @@ FUN_02044730: ; 0x02044730
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x0
mov r1, #0x4c
add r5, r0, #0x0
strh r2, [r4, #0x0]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044786
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
_02044786:
mov r0, #0x0
@@ -585,7 +585,7 @@ FUN_0204478C: ; 0x0204478C
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r6, r0
@@ -597,11 +597,11 @@ _020447D2:
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020447F2
mov r0, #0x0
@@ -609,7 +609,7 @@ _020447D2:
pop {r4-r6, pc}
_020447F2:
add r0, r5, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -639,7 +639,7 @@ FUN_02044800: ; 0x02044800
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldr r1, _02044884 ; =0x000000FF
@@ -651,15 +651,15 @@ _02044848:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044874
add r0, r4, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
ldr r1, [sp, #0x0]
cmp r1, r0
bne _02044874
@@ -704,10 +704,10 @@ FUN_0204488C: ; 0x0204488C
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -744,11 +744,11 @@ FUN_020448D4: ; 0x020448D4
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
ldr r1, [sp, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x9
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x4
strh r0, [r1, #0x0]
cmp r4, #0x0
@@ -756,7 +756,7 @@ FUN_020448D4: ; 0x020448D4
add r0, r5, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x1
@@ -774,7 +774,7 @@ _0204495A:
add r0, r5, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xb
bne _0204496E
add r0, r4, #0x1
@@ -784,7 +784,7 @@ _0204496E:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
bne _02044982
add r0, r4, #0x1
@@ -804,7 +804,7 @@ _02044994:
add r0, r5, #0x0
mov r1, #0x9
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -834,11 +834,11 @@ FUN_020449A4: ; 0x020449A4
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x9
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x0
strh r0, [r1, #0x0]
ldrh r0, [r1, #0x0]
@@ -853,7 +853,7 @@ _020449FA:
add r0, r5, #0x0
mov r1, #0x9
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add sp, #0x4
pop {r3-r6, pc}
@@ -890,11 +890,11 @@ FUN_02044A0C: ; 0x02044A0C
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x13
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -952,16 +952,16 @@ FUN_02044A94: ; 0x02044A94
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
mov r1, #0xb0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
add r0, r4, #0x0
mov r1, #0xb1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r7, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -982,7 +982,7 @@ FUN_02044B00: ; 0x02044B00
add r5, r0, #0x0
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -1003,7 +1003,7 @@ FUN_02044B2C: ; 0x02044B2C
str r0, [sp, #0x0]
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r7, r0, #0x0
add r4, r5, #0x0
@@ -1013,10 +1013,10 @@ _02044B5A:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044B74
add r4, r4, #0x1
@@ -1055,7 +1055,7 @@ FUN_02044B84: ; 0x02044B84
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r4, r5, #0x0
str r0, [sp, #0x8]
@@ -1068,17 +1068,17 @@ _02044BC8:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044BF8
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044BF8
add r4, r4, #0x1
@@ -1114,7 +1114,7 @@ FUN_02044C0C: ; 0x02044C0C
str r0, [sp, #0x4]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r4, r5, #0x0
str r0, [sp, #0x8]
@@ -1124,17 +1124,17 @@ _02044C44:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044C6E
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044C6E
add r4, r4, #0x1
@@ -1168,7 +1168,7 @@ FUN_02044C88: ; 0x02044C88
str r0, [sp, #0x0]
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r7, r0, #0x0
add r4, r5, #0x0
@@ -1178,10 +1178,10 @@ _02044CB6:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044CD0
add r4, r4, #0x1
@@ -1211,7 +1211,7 @@ FUN_02044CE0: ; 0x02044CE0
str r0, [sp, #0x0]
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r4, _02044D40 ; =0x00000000
@@ -1223,10 +1223,10 @@ _02044D12:
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044D32
ldr r0, [sp, #0x0]
@@ -1269,10 +1269,10 @@ FUN_02044D44: ; 0x02044D44
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -1301,11 +1301,11 @@ FUN_02044D8C: ; 0x02044D8C
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044DDA
mov r0, #0x0
@@ -1316,7 +1316,7 @@ _02044DDA:
add r0, r6, #0x0
mov r1, #0x36
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044DF0
add r0, r4, #0x1
@@ -1326,7 +1326,7 @@ _02044DF0:
add r0, r6, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044E04
add r0, r4, #0x1
@@ -1336,7 +1336,7 @@ _02044E04:
add r0, r6, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044E18
add r0, r4, #0x1
@@ -1346,7 +1346,7 @@ _02044E18:
add r0, r6, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044E2C
add r0, r4, #0x1
@@ -1382,7 +1382,7 @@ FUN_02044E34: ; 0x02044E34
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0x0
bl FUN_020699A4
mov r0, #0x0
@@ -1420,11 +1420,11 @@ FUN_02044E78: ; 0x02044E78
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x36
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -1454,10 +1454,10 @@ FUN_02044ED8: ; 0x02044ED8
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -1478,13 +1478,13 @@ FUN_02044F20: ; 0x02044F20
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x0
add r1, sp, #0x0
strh r2, [r1, #0x0]
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
pop {r3-r5, pc}
@@ -1512,7 +1512,7 @@ FUN_02044F58: ; 0x02044F58
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldr r5, _02044FE4 ; =0x00000000
@@ -1523,17 +1523,17 @@ _02044F9E:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044FD4
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
ldr r0, [sp, #0x0]
@@ -1580,7 +1580,7 @@ FUN_02044FE8: ; 0x02044FE8
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r4, #0x0
add r6, r0, #0x0
add r5, r4, #0x0
@@ -1593,7 +1593,7 @@ _0204502A:
add r1, r0, #0x0
add r0, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02045048
add r0, r5, #0x1
@@ -1628,7 +1628,7 @@ FUN_0204505C: ; 0x0204505C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
add r4, #0x80
lsr r6, r0, #0x10
@@ -1649,11 +1649,11 @@ _0204509A:
_020450A6:
ldr r0, [sp, #0xc]
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _020450E8
add r0, r7, #0x0
@@ -1662,7 +1662,7 @@ _020450A6:
add r1, r0, #0x0
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020450DE
ldr r0, [sp, #0x4]
@@ -1725,7 +1725,7 @@ FUN_02045104: ; 0x02045104
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
lsl r0, r6, #0x18
lsr r0, r0, #0x18
@@ -1734,7 +1734,7 @@ FUN_02045104: ; 0x02045104
add r1, r0, #0x0
add r0, r5, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -1768,7 +1768,7 @@ FUN_02045170: ; 0x02045170
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
@@ -1777,7 +1777,7 @@ FUN_02045170: ; 0x02045170
add r1, r0, #0x0
add r0, r5, #0x0
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add sp, #0x4
pop {r3-r6, pc}
@@ -1800,7 +1800,7 @@ FUN_020451D0: ; 0x020451D0
ldr r0, [r0, #0x0]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
add r4, #0x80
lsr r6, r0, #0x10
@@ -1817,17 +1817,17 @@ _0204520C:
_02045212:
add r0, r7, #0x0
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02045242
add r0, r4, #0x0
mov r1, #0x3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02045242
ldr r0, [sp, #0x0]
diff --git a/arm9/asm/scrcmd_24.s b/arm9/asm/scrcmd_24.s
index ed57d780..85f03ebe 100644
--- a/arm9/asm/scrcmd_24.s
+++ b/arm9/asm/scrcmd_24.s
@@ -102,7 +102,7 @@ FUN_02045E20: ; 0x02045E20
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x20
bl FUN_02088DF8
add r5, r0, #0x0
@@ -185,7 +185,7 @@ FUN_02045EE4: ; 0x02045EE4
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
mov r1, #0x20
bl FUN_02088DF8
@@ -222,7 +222,7 @@ FUN_02045F24: ; 0x02045F24
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
mov r0, #0x20
mov r1, #0x4
diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s
index 54c1e00c..959b85d1 100644
--- a/arm9/asm/scrcmd_3.s
+++ b/arm9/asm/scrcmd_3.s
@@ -119,7 +119,7 @@ FUN_0203FF10: ; 0x0203FF10
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x10]
add r0, r4, #0x0
mov r1, #0x4
diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s
index 7310f545..078e899f 100644
--- a/arm9/asm/scrcmd_4.s
+++ b/arm9/asm/scrcmd_4.s
@@ -92,7 +92,7 @@ FUN_02040748: ; 0x02040748
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
ldr r0, [r7, #0x0]
add r1, r4, #0x0
@@ -315,7 +315,7 @@ FUN_0204091C: ; 0x0204091C
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
ldr r0, [r7, #0x0]
add r1, r4, #0x0
@@ -943,11 +943,11 @@ FUN_02040E4C: ; 0x02040E4C
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
ldr r1, [sp, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x36
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, [r7, #0x0]
diff --git a/arm9/asm/scrcmd_5.s b/arm9/asm/scrcmd_5.s
index bb367973..bb5b7be6 100644
--- a/arm9/asm/scrcmd_5.s
+++ b/arm9/asm/scrcmd_5.s
@@ -75,7 +75,7 @@ FUN_020411C4: ; 0x020411C4
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r0, _0204133C ; =0x00000000
@@ -87,17 +87,17 @@ _0204123C:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204127C
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
lsl r1, r1, #0x10
@@ -132,19 +132,19 @@ _02041290:
mov r1, #0x5
mov r2, #0x0
add r4, r0, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _020412E0
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _020412E0
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
lsl r1, r1, #0x10
diff --git a/arm9/asm/scrcmd_9.s b/arm9/asm/scrcmd_9.s
index f75ac5ce..8ea6313d 100644
--- a/arm9/asm/scrcmd_9.s
+++ b/arm9/asm/scrcmd_9.s
@@ -253,7 +253,7 @@ FUN_02042000: ; 0x02042000
bl FUN_020394F0
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, #0x80
add r1, r0, #0x0
ldr r0, [r5, #0x0]
@@ -417,7 +417,7 @@ _02042170:
bl FUN_020394F0
add r1, r0, #0x0
add r0, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
add r0, r4, #0x0
mov r2, #0x4
diff --git a/arm9/asm/unk_0200AA80.s b/arm9/asm/unk_0200AA80.s
index 2da52f7f..42a4d3a4 100644
--- a/arm9/asm/unk_0200AA80.s
+++ b/arm9/asm/unk_0200AA80.s
@@ -285,7 +285,7 @@ FUN_0200AC60: ; 0x0200AC60
add r0, r7, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #0x0
ldr r2, [r5, #0xc]
add r0, r4, #0x0
@@ -309,7 +309,7 @@ FUN_0200ACA4: ; 0x0200ACA4
add r0, r2, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -350,7 +350,7 @@ FUN_0200ACF8: ; 0x0200ACF8
add r4, r1, #0x0
ldr r2, [r5, #0xc]
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -367,7 +367,7 @@ FUN_0200AD18: ; 0x0200AD18
add r4, r1, #0x0
ldr r2, [r5, #0xc]
mov r1, #0x90
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s
index 4c1cb051..c8fec74e 100644
--- a/arm9/asm/unk_02011744.s
+++ b/arm9/asm/unk_02011744.s
@@ -2285,8 +2285,8 @@ _02012752:
.balign 4
_02012778: .word UNK_020ED4B2
- thumb_func_start FUN_0201277C
-FUN_0201277C: ; 0x0201277C
+ thumb_func_start IsNighttime
+IsNighttime: ; 0x0201277C
push {r3, lr}
bl FUN_02012794
cmp r0, #0x3
diff --git a/arm9/asm/unk_02023C40.s b/arm9/asm/unk_02023C40.s
index 30aa59a0..46a01c79 100644
--- a/arm9/asm/unk_02023C40.s
+++ b/arm9/asm/unk_02023C40.s
@@ -26,10 +26,10 @@ FUN_02023C48: ; 0x02023C48
lsl r2, r2, #0x4
bl memset
add r0, r4, #0x0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r4, #0x0
add r0, #0xec
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
mov r0, #0x76
mov r1, #0x0
lsl r0, r0, #0x2
@@ -120,13 +120,13 @@ FUN_02023CC8: ; 0x02023CC8
add r5, r0, #0x0
mov r1, #0xc
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r5, #0xec
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xc
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r4, r0
beq _02023CEA
mov r0, #0x1
@@ -187,7 +187,7 @@ _02023D38: .word 0x0000FFFF
FUN_02023D3C: ; 0x02023D3C
push {r4, lr}
add r4, r0, #0x0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r4, #0x0
mov r1, #0x0
add r0, #0xe8
@@ -785,7 +785,7 @@ FUN_0202415C: ; 0x0202415C
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, _02024198 ; =0x00000182
@@ -884,7 +884,7 @@ _02024210:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -897,7 +897,7 @@ _0202422E:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -911,7 +911,7 @@ _0202424A:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -925,7 +925,7 @@ _02024268:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1916,17 +1916,17 @@ FUN_0202498C: ; 0x0202498C
add r0, r1, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x4]
mov r1, #0x0
ldr r0, [sp, #0x0]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
ldr r0, [sp, #0x0]
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r6, r0, #0x0
ldr r1, [r5, #0x0]
ldr r0, _02024AE4 ; =0xBEEFCAFE
@@ -2099,21 +2099,21 @@ FUN_02024AF0: ; 0x02024AF0
add r0, r1, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r0, [sp, #0x0]
mov r1, #0xc
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
mov r1, #0x0
ldr r0, [sp, #0x0]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x4]
ldr r0, [sp, #0x0]
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r7, r0, #0x0
ldr r1, [r4, #0x0]
ldr r0, _02024C78 ; =0xBEEFCAFE
diff --git a/arm9/asm/unk_02025658.s b/arm9/asm/unk_02025658.s
index f5837edd..9cf2dfa2 100644
--- a/arm9/asm/unk_02025658.s
+++ b/arm9/asm/unk_02025658.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start FUN_02025658
-FUN_02025658: ; 0x02025658
+ thumb_func_start InitSealsObject
+InitSealsObject: ; 0x02025658
push {r3-r5, lr}
add r4, r0, #0x0
mov r0, #0x0
@@ -61,19 +61,19 @@ _020256B6:
bx lr
.balign 4
- thumb_func_start FUN_020256BC
-FUN_020256BC: ; 0x020256BC
+ thumb_func_start CreateNewSealsObject
+CreateNewSealsObject: ; 0x020256BC
push {r4, lr}
mov r1, #0x38
bl AllocFromHeapAtEnd
add r4, r0, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r4, #0x0
pop {r4, pc}
.balign 4
- thumb_func_start FUN_020256D0
-FUN_020256D0: ; 0x020256D0
+ thumb_func_start CopySealsObject
+CopySealsObject: ; 0x020256D0
ldr r3, _020256D8 ; =MI_CpuCopy8
mov r2, #0x38
bx r3
@@ -88,7 +88,7 @@ FUN_020256DC: ; 0x020256DC
add r5, r0, #0x0
add r6, r1, #0x0
add r4, r2, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r7, #0x0
strb r6, [r5, #0x7]
bl FUN_0206BB1C
@@ -109,30 +109,30 @@ FUN_020256DC: ; 0x020256DC
str r0, [r5, #0x0]
ldr r0, [sp, #0x0]
mov r6, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
bge _020257AE
add r5, #0x18
_0202572A:
ldr r0, [sp, #0x0]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x4]
add r0, r7, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r7, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
add r0, r7, #0x0
bl FUN_0206B6C8
@@ -170,7 +170,7 @@ _0202572A:
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0202572A
_020257AE:
@@ -299,7 +299,7 @@ FUN_0202584C: ; 0x0202584C
mov r4, #0x0
_02025852:
add r0, r5, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r4, r4, #0x1
add r5, #0x38
cmp r4, #0x14
@@ -326,7 +326,7 @@ FUN_02025878: ; 0x02025878
bl FUN_02025940
cmp r0, #0x0
beq _02025886
- bl FUN_02025658
+ bl InitSealsObject
_02025886:
pop {r3, pc}
@@ -338,7 +338,7 @@ FUN_02025888: ; 0x02025888
add r1, r0, #0x0
beq _0202589A
add r0, r4, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
_0202589A:
pop {r4, pc}
@@ -362,13 +362,13 @@ FUN_020258B0: ; 0x020258B0
bl FUN_02025940
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r5, r0, #0x0
cmp r4, #0x0
beq _020258CE
add r0, r4, #0x0
add r1, r5, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
_020258CE:
add r0, r5, #0x0
pop {r3-r5, pc}
@@ -382,11 +382,11 @@ FUN_020258D4: ; 0x020258D4
cmp r0, #0x0
bne _020258E8
add r0, r4, #0x0
- bl FUN_02025658
+ bl InitSealsObject
pop {r4, pc}
_020258E8:
add r1, r4, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
pop {r4, pc}
thumb_func_start FUN_020258F0
diff --git a/arm9/asm/unk_02026CD0.s b/arm9/asm/unk_02026CD0.s
index 98d65c78..ec6fd057 100644
--- a/arm9/asm/unk_02026CD0.s
+++ b/arm9/asm/unk_02026CD0.s
@@ -15,27 +15,27 @@ FUN_02026CD0: ; 0x02026CD0
mov r1, #0x5
mov r2, #0x0
add r7, r3, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r5, #0x0
strh r0, [r5, #0x8]
add r0, r4, #0x0
mov r1, #0x74
add r2, #0xa
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x0
add r0, r4, #0x0
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x4]
add r0, r4, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x33
strb r0, [r1, #0x0]
@@ -2125,12 +2125,12 @@ _02027B9C:
add r0, r4, #0x0
mov r1, #0x74
add r2, #0x12
- bl SetMonDataEncrypted
+ bl SetMonData
add r5, #0x3b
add r0, r4, #0x0
mov r1, #0x70
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x10
pop {r3-r5, pc}
nop
@@ -2300,12 +2300,12 @@ FUN_02027CB8: ; 0x02027CB8
add r0, r4, #0x0
mov r1, #0x74
add r2, #0xa
- bl SetMonDataEncrypted
+ bl SetMonData
add r5, #0x33
add r0, r4, #0x0
mov r1, #0x70
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x10
pop {r3-r5, pc}
.balign 4
diff --git a/arm9/asm/unk_0202B034.s b/arm9/asm/unk_0202B034.s
index a72a3829..2708bee6 100644
--- a/arm9/asm/unk_0202B034.s
+++ b/arm9/asm/unk_0202B034.s
@@ -58,7 +58,7 @@ _0202B07E:
add r0, r0, r2
str r0, [sp, #0x14]
ldr r0, [sp, #0x4]
- bl FUN_0206B9AC
+ bl GetPartyCount
str r0, [sp, #0x10]
mov r0, #0xb
mov r1, #0x0
@@ -77,67 +77,67 @@ _0202B07E:
_0202B0BA:
ldr r0, [sp, #0x4]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
- bl TryDecryptMon
+ bl AcquireMonLock
str r0, [sp, #0xc]
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0202B17E
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x2]
add r0, r4, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x0
strb r0, [r5, #0x3]
add r0, r4, #0x0
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x4]
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x8]
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x32]
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x34]
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x36]
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x38]
cmp r6, #0x0
beq _0202B176
add r0, r4, #0x0
mov r1, #0x76
add r2, r6, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r0, r6, #0x0
add r1, #0xc
@@ -146,7 +146,7 @@ _0202B0BA:
add r0, r4, #0x0
mov r1, #0x90
add r2, r6, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r0, r6, #0x0
add r1, #0x22
@@ -162,7 +162,7 @@ _0202B17C:
_0202B17E:
ldr r1, [sp, #0xc]
add r0, r4, #0x0
- bl TryEncryptMon
+ bl ReleaseMonLock
ldr r0, [sp, #0x10]
add r7, r7, #0x1
cmp r7, r0
diff --git a/arm9/asm/unk_0202BE98.s b/arm9/asm/unk_0202BE98.s
index edec1ae4..8e7a28c2 100644
--- a/arm9/asm/unk_0202BE98.s
+++ b/arm9/asm/unk_0202BE98.s
@@ -27,7 +27,7 @@ _0202BEB4:
add r0, r5, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0202BECC
bl ErrorHandling
@@ -57,7 +57,7 @@ _0202BEF0:
add r0, r5, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0202BF08
bl ErrorHandling
@@ -205,7 +205,7 @@ _0202C00A:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0202C01A
add r4, r4, #0x1
diff --git a/arm9/asm/unk_0202C144.s b/arm9/asm/unk_0202C144.s
index 50c7240b..fdda34d3 100644
--- a/arm9/asm/unk_0202C144.s
+++ b/arm9/asm/unk_0202C144.s
@@ -11,7 +11,7 @@ FUN_0202C144: ; 0x0202C144
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0202C194
add r0, r5, #0x0
@@ -23,7 +23,7 @@ FUN_0202C144: ; 0x0202C144
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
lsl r2, r2, #0x10
add r0, r7, #0x0
diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s
index 74c41707..6cb0e026 100644
--- a/arm9/asm/unk_02035068.s
+++ b/arm9/asm/unk_02035068.s
@@ -1855,7 +1855,7 @@ _02035ECC:
ldrb r0, [r0, #0x0]
strb r0, [r7, #0x14]
ldr r0, [r7, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r7, #0x13]
mov r0, #0x0
strh r0, [r7, #0x18]
@@ -2050,7 +2050,7 @@ _020360AC:
add r1, r6, #0x0
add r1, #0x22
ldrb r1, [r1, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
add r0, r5, #0x0
mov r2, #0xb
@@ -2444,7 +2444,7 @@ _020363F6:
add r5, r0, #0x0
ldr r0, [sp, #0x4]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0xc]
mov r0, #0x7f
lsl r0, r0, #0x2
@@ -2457,7 +2457,7 @@ _020363F6:
ldr r0, [sp, #0xc]
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02036474
add r0, r5, #0x0
@@ -3277,7 +3277,7 @@ _02036B0E:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
ldr r0, [r5, #0x14]
add r1, r6, #0x0
@@ -3547,7 +3547,7 @@ FUN_02036CEC: ; 0x02036CEC
str r5, [r4, #0x1c]
ldrb r1, [r7, #0x2]
ldr r0, [r4, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
mov r0, #0x7e
lsl r0, r0, #0x2
@@ -3648,7 +3648,7 @@ FUN_02036E08: ; 0x02036E08
bl FUN_0206BB1C
ldrb r1, [r5, #0x0]
str r0, [sp, #0x20]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x24]
ldrb r0, [r5, #0x1]
cmp r0, #0x0
diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s
index 1b513296..2e9774eb 100644
--- a/arm9/asm/unk_020377F0.s
+++ b/arm9/asm/unk_020377F0.s
@@ -732,7 +732,7 @@ FUN_02037C00: ; 0x02037C00
strb r0, [r4, #0x11]
strb r6, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
@@ -789,7 +789,7 @@ FUN_02037C7C: ; 0x02037C7C
mov r0, #0x0
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
@@ -1231,7 +1231,7 @@ FUN_0203800C: ; 0x0203800C
add r0, r5, #0x0
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x0]
add r0, r5, #0x0
bl FUN_02027E24
@@ -1585,7 +1585,7 @@ _020382F6:
ldr r0, [r4, #0x44]
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0x0
add r0, sp, #0x30
str r0, [sp, #0x0]
@@ -1594,7 +1594,7 @@ _020382F6:
mov r0, #0x0
mov r2, #0x1
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #0x20]
cmp r0, #0x0
beq _02038380
@@ -1652,7 +1652,7 @@ _02038386:
beq _020383C8
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x30]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, [r4, #0x44]
bl FUN_02069B88
@@ -1906,11 +1906,11 @@ _02038590:
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
ldr r1, [r4, #0x4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r4, #0xc]
mov r1, #0x75
add r2, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
pop {r3-r5, pc}
_020385A8:
ldr r0, [r5, #0xc]
@@ -1973,17 +1973,17 @@ _02038620:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
ldr r1, [r4, #0x4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x6f
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0xc]
mov r2, #0x0
str r0, [r1, #0x10]
add r0, r6, #0x0
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0xc]
cmp r5, #0x0
str r0, [r1, #0x8]
diff --git a/arm9/asm/unk_0204653C.s b/arm9/asm/unk_0204653C.s
index bbe445d7..8a0cf5cd 100644
--- a/arm9/asm/unk_0204653C.s
+++ b/arm9/asm/unk_0204653C.s
@@ -945,7 +945,7 @@ _02046CAA:
ldr r0, [r5, #0x10]
mov r1, #0x0
ldr r0, [r0, #0x8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, [sp, #0x4]
bl FUN_02060FE0
@@ -1025,7 +1025,7 @@ _02046D5C:
cmp r0, #0x12
bne _02046D8C
add r0, r5, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x6
bne _02046D8C
mov r2, #0x0
@@ -1711,10 +1711,10 @@ _0204732A:
bne _020473C8
ldr r0, [r1, #0x8]
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
mov r0, #0x0
bl FUN_0206BB48
@@ -1758,10 +1758,10 @@ _02047390:
bne _020473C8
ldr r0, [r1, #0x8]
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
mov r0, #0x0
bl FUN_0206BB48
@@ -1827,7 +1827,7 @@ _02047400:
blo _020474FC
ldr r0, [r4, #0x8]
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02023918
@@ -1835,12 +1835,12 @@ _02047400:
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r3, #0xb
str r3, [sp, #0x0]
@@ -1871,7 +1871,7 @@ _02047470:
lsl r0, r0, #0x2
add r0, r4, r0
ldr r0, [r0, #0x4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02023918
@@ -1879,12 +1879,12 @@ _02047470:
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r3, #0xb
str r3, [sp, #0x0]
diff --git a/arm9/asm/unk_02047500.s b/arm9/asm/unk_02047500.s
index 8668643a..04d99ac3 100644
--- a/arm9/asm/unk_02047500.s
+++ b/arm9/asm/unk_02047500.s
@@ -242,7 +242,7 @@ FUN_02047668: ; 0x02047668
bl FUN_0204A1D8
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020476C8 ; =0x000001DF
sub r0, r0, r1
cmp r0, #0xe
diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s
index 8944e0b3..e167517a 100644
--- a/arm9/asm/unk_020476CC.s
+++ b/arm9/asm/unk_020476CC.s
@@ -649,25 +649,25 @@ FUN_02047BC0: ; 0x02047BC0
bl AllocMonZeroed
add r5, r0, #0x0
ldr r0, [sp, #0x14]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r0, #0x0
ldr r0, [r6, #0x4]
bl FUN_0206B8CC
ldr r0, [sp, #0x14]
mov r4, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x0
ble _02047C98
_02047C40:
ldr r0, [sp, #0x14]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r5, #0x0
bl FUN_02069B88
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _02047C82
cmp r7, #0x0
@@ -675,16 +675,16 @@ _02047C40:
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, #0x0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [sp, #0x18]
add r0, r5, #0x0
mov r1, #0x8
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
_02047C82:
add r0, r6, #0x0
add r1, r5, #0x0
@@ -692,7 +692,7 @@ _02047C82:
bl FUN_020479FC
ldr r0, [sp, #0x14]
add r4, r4, #0x1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02047C40
_02047C98:
@@ -856,7 +856,7 @@ _02047DEE:
ldrb r1, [r7, r6]
ldr r0, [sp, #0x4]
sub r1, r1, #0x1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x8]
bl FUN_02069B88
ldr r1, [sp, #0x8]
diff --git a/arm9/asm/unk_0204A01C.s b/arm9/asm/unk_0204A01C.s
index 83324f37..10664314 100644
--- a/arm9/asm/unk_0204A01C.s
+++ b/arm9/asm/unk_0204A01C.s
@@ -9,7 +9,7 @@ FUN_0204A01C: ; 0x0204A01C
mov r1, #0xa2
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A030
mov r0, #0x0
@@ -18,7 +18,7 @@ _0204A030:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A042
mov r0, #0x1
@@ -70,7 +70,7 @@ FUN_0204A048: ; 0x0204A048
add r2, sp, #0x1c
str r0, [sp, #0x1c]
add r0, r4, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x18]
add r1, r4, #0x0
bl FUN_0206B900
@@ -130,7 +130,7 @@ FUN_0204A120: ; 0x0204A120
push {r3-r5, lr}
add r5, r2, #0x0
add r4, r3, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
lsl r2, r5, #0x18
add r1, r4, #0x0
lsr r2, r2, #0x18
@@ -143,7 +143,7 @@ FUN_0204A138: ; 0x0204A138
push {r3-r7, lr}
str r0, [sp, #0x0]
add r5, r1, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r7, r0, #0x0
mov r6, #0x0
cmp r7, #0x0
@@ -151,35 +151,35 @@ FUN_0204A138: ; 0x0204A138
_0204A14A:
ldr r0, [sp, #0x0]
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A19C
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204A198
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204A198
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204A198
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _0204A19C
_0204A198:
@@ -198,7 +198,7 @@ _0204A1A2:
FUN_0204A1A8: ; 0x0204A1A8
push {r3-r7, lr}
add r7, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r6, r0, #0x0
add r4, r5, #0x0
@@ -207,7 +207,7 @@ FUN_0204A1A8: ; 0x0204A1A8
_0204A1BA:
add r0, r7, #0x0
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_0204A01C
cmp r0, #0x0
beq _0204A1CC
@@ -225,7 +225,7 @@ _0204A1D2:
FUN_0204A1D8: ; 0x0204A1D8
push {r3-r7, lr}
add r6, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r5, r0, #0x0
mov r4, #0x0
cmp r5, #0x0
@@ -233,7 +233,7 @@ FUN_0204A1D8: ; 0x0204A1D8
_0204A1E8:
add r0, r6, #0x0
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
bl FUN_0204A01C
cmp r0, #0x0
@@ -253,7 +253,7 @@ _0204A204:
FUN_0204A20C: ; 0x0204A20C
push {r3-r7, lr}
add r6, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r4, _0204A244 ; =0x00000000
@@ -261,11 +261,11 @@ FUN_0204A20C: ; 0x0204A20C
_0204A21C:
add r0, r6, #0x0
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A236
add r0, r7, #0x0
@@ -302,7 +302,7 @@ FUN_0204A25C: ; 0x0204A25C
add r1, sp, #0x0
add r7, r0, #0x0
strb r2, [r1, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0x0
mov r5, #0x0
cmp r6, #0x0
@@ -310,17 +310,17 @@ FUN_0204A25C: ; 0x0204A25C
_0204A272:
add r0, r7, #0x0
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A292
add r0, r4, #0x0
mov r1, #0x19
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
_0204A292:
add r5, r5, #0x1
cmp r5, r6
@@ -337,7 +337,7 @@ FUN_0204A29C: ; 0x0204A29C
str r0, [sp, #0x0]
str r1, [sp, #0x4]
add r6, r7, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, r7, #0x0
str r0, [sp, #0x8]
cmp r0, #0x0
@@ -345,7 +345,7 @@ FUN_0204A29C: ; 0x0204A29C
_0204A2B4:
ldr r0, [sp, #0x0]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
bl FUN_0204A01C
cmp r0, #0x0
@@ -353,14 +353,14 @@ _0204A2B4:
add r0, r5, #0x0
mov r1, #0x9f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x88
tst r0, r1
beq _0204A308
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
cmp r0, #0x1
bls _0204A2EA
@@ -370,7 +370,7 @@ _0204A2EA:
add r0, r5, #0x0
mov r1, #0xa2
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0xc]
cmp r0, #0x1
bne _0204A306
@@ -378,7 +378,7 @@ _0204A2EA:
add r0, r5, #0x0
mov r1, #0x7
add r6, r6, #0x1
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_0204A306:
add r7, r7, #0x1
_0204A308:
@@ -411,14 +411,14 @@ FUN_0204A32C: ; 0x0204A32C
mov r1, #0x9f
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x88
tst r0, r1
beq _0204A362
add r0, r4, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _0204A362
mov r0, #0x0
@@ -426,7 +426,7 @@ FUN_0204A32C: ; 0x0204A32C
add r0, r4, #0x0
mov r1, #0x9f
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x4
mov r0, #0x1
pop {r3-r4, pc}
diff --git a/arm9/asm/unk_0204AB0C.s b/arm9/asm/unk_0204AB0C.s
index 0de63e29..f078e422 100644
--- a/arm9/asm/unk_0204AB0C.s
+++ b/arm9/asm/unk_0204AB0C.s
@@ -117,7 +117,7 @@ FUN_0204ABA8: ; 0x0204ABA8
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0204ABBE
add r0, r4, #0x0
@@ -334,7 +334,7 @@ _0204AD40: .word UNK_020F471A
FUN_0204AD44: ; 0x0204AD44
push {r4, lr}
add r4, r0, #0x0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0204AD58
add r0, r4, #0x0
diff --git a/arm9/asm/unk_0204B9EC.s b/arm9/asm/unk_0204B9EC.s
index 2d779ce3..56db4ed5 100644
--- a/arm9/asm/unk_0204B9EC.s
+++ b/arm9/asm/unk_0204B9EC.s
@@ -198,7 +198,7 @@ _0204BB3C:
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
strh r0, [r5, #0x0]
@@ -220,12 +220,12 @@ _0204BB72:
ldrb r0, [r7, #0x2]
strh r0, [r5, #0x4]
add r0, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x6]
add r0, r4, #0x0
mov r1, #0xb1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x7]
add r6, r6, #0x1
add r5, #0x8
diff --git a/arm9/asm/unk_0204BE14.s b/arm9/asm/unk_0204BE14.s
index afb3bc59..0e8be8cc 100644
--- a/arm9/asm/unk_0204BE14.s
+++ b/arm9/asm/unk_0204BE14.s
@@ -497,7 +497,7 @@ _0204C138:
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r5, r4
add r1, #0xb6
strh r0, [r1, #0x0]
diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s
index cfaf8e37..d2267271 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -50,7 +50,7 @@ FUN_02050E48: ; 0x02050E48
ldr r0, [sp, #0x4]
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
@@ -957,7 +957,7 @@ _020515BA:
add r1, #0x84
ldrb r1, [r1, #0x0]
ldr r0, [r4, #0x50]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0x28]
@@ -1482,7 +1482,7 @@ _02051A16:
ldrb r1, [r1, #0x0]
ldr r0, [sp, #0x0]
sub r1, r1, #0x1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0x0
add r2, r6, #0x0
bl MI_CpuCopy8
@@ -1720,7 +1720,7 @@ _02051BD6:
mov r1, #0x5
add r0, r0, r6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
ldr r0, [sp, #0x18]
ldr r2, [r5, #0xc]
diff --git a/arm9/asm/unk_02054C14.s b/arm9/asm/unk_02054C14.s
index 46c1432a..1c47a7c6 100644
--- a/arm9/asm/unk_02054C14.s
+++ b/arm9/asm/unk_02054C14.s
@@ -289,7 +289,7 @@ FUN_02054DEC: ; 0x02054DEC
push {r3-r7, lr}
add r6, r0, #0x0
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r4, _02054E2C ; =0x00000000
@@ -299,10 +299,10 @@ _02054E02:
add r0, r6, #0x0
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02054E1E
add r0, r4, #0x0
@@ -326,7 +326,7 @@ FUN_02054E30: ; 0x02054E30
mov r7, #0x0
bl FUN_0206BB1C
str r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, r0, #0x0
add r6, r7, #0x0
cmp r4, #0x0
@@ -335,10 +335,10 @@ FUN_02054E30: ; 0x02054E30
_02054E4A:
ldr r0, [sp, #0x0]
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x0]
add r6, r6, #0x1
add r5, r5, #0x2
diff --git a/arm9/asm/unk_0205EC84.s b/arm9/asm/unk_0205EC84.s
index 25427134..93afcc59 100644
--- a/arm9/asm/unk_0205EC84.s
+++ b/arm9/asm/unk_0205EC84.s
@@ -541,7 +541,7 @@ _0205F036:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F054
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F050
mov r5, #0xfe
@@ -566,7 +566,7 @@ _0205F06A:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F080
ldr r5, _0205F128 ; =0x000003F5
@@ -579,7 +579,7 @@ _0205F084:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F09A
ldr r5, _0205F134 ; =0x000003FF
@@ -592,7 +592,7 @@ _0205F09E:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F0B4
ldr r5, _0205F140 ; =0x000003EE
@@ -605,7 +605,7 @@ _0205F0B8:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F0CE
ldr r5, _0205F140 ; =0x000003EE
diff --git a/arm9/asm/unk_0205FA2C.s b/arm9/asm/unk_0205FA2C.s
index 21beb029..c06deaff 100644
--- a/arm9/asm/unk_0205FA2C.s
+++ b/arm9/asm/unk_0205FA2C.s
@@ -175,7 +175,7 @@ FUN_0205FB34: ; 0x0205FB34
ldrb r0, [r6, #0xd]
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
diff --git a/arm9/asm/unk_020603B0.s b/arm9/asm/unk_020603B0.s
index 53b84d9a..a49266bd 100644
--- a/arm9/asm/unk_020603B0.s
+++ b/arm9/asm/unk_020603B0.s
@@ -242,7 +242,7 @@ _020604D0:
ldr r0, [sp, #0x1c]
mov r1, #0xae
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x2
@@ -250,7 +250,7 @@ _020604D0:
mov r1, #0x0
ldr r0, [sp, #0x1c]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x3
@@ -258,7 +258,7 @@ _020604D0:
ldr r0, [sp, #0x1c]
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x5
diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s
index 2910f716..1a57968f 100644
--- a/arm9/asm/unk_02060CCC.s
+++ b/arm9/asm/unk_02060CCC.s
@@ -323,7 +323,7 @@ FUN_02060E04: ; 0x02060E04
add r0, r6, #0x0
mov r1, #0x76
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0x0
add r1, r5, #0x0
mov r2, #0xb
@@ -342,22 +342,22 @@ FUN_02060E34: ; 0x02060E34
mov r1, #0x5
mov r2, #0x0
add r7, r3, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
add r0, r5, #0x0
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r6, #0x0]
add r0, r5, #0x0
mov r1, #0xc
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r7, #0x0]
add r0, r5, #0x0
mov r1, #0x79
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x18]
strb r0, [r1, #0x0]
pop {r3-r7, pc}
@@ -420,7 +420,7 @@ FUN_02060ECC: ; 0x02060ECC
mov r1, #0x4d
mov r2, #0x0
add r7, r3, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #0x0]
ldrb r0, [r4, #0x0]
cmp r0, #0x0
@@ -432,7 +432,7 @@ FUN_02060ECC: ; 0x02060ECC
add r0, r5, #0x0
mov r1, #0x76
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0x0
add r1, r7, #0x0
mov r2, #0xb
@@ -479,7 +479,7 @@ FUN_02060F3C: ; 0x02060F3C
mov r0, #0x0
strb r0, [r4, #0x1f]
add r0, r5, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
strb r0, [r4, #0x1e]
add r0, r4, #0x6
str r0, [sp, #0x0]
@@ -491,7 +491,7 @@ FUN_02060F3C: ; 0x02060F3C
add r0, r5, #0x0
mov r1, #0x4d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #0x7]
add r2, r4, #0x7
add r4, #0x8
@@ -624,7 +624,7 @@ FUN_02061028: ; 0x02061028
add r0, r4, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x22]
ldrh r0, [r5, #0x22]
cmp r0, #0x0
diff --git a/arm9/asm/unk_0206439C.s b/arm9/asm/unk_0206439C.s
index e9d72f9f..76ea9f7f 100644
--- a/arm9/asm/unk_0206439C.s
+++ b/arm9/asm/unk_0206439C.s
@@ -14,7 +14,7 @@ FUN_0206439C: ; 0x0206439C
add r0, r6, #0x0
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x0]
mov r0, #0x0
str r0, [r4, #0x4]
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index 2aea9e30..ec33a0a1 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -1617,7 +1617,7 @@ FUN_02066070: ; 0x02066070
lsl r1, r1, #0x4
str r0, [r6, r1]
add r0, r5, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r7, r0, #0x0
add r0, r6, #0x0
str r0, [sp, #0x10]
@@ -1810,7 +1810,7 @@ FUN_020661F8: ; 0x020661F8
bl FUN_020377AC
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
mov r0, #0x6b
lsl r0, r0, #0x2
diff --git a/arm9/asm/unk_0206ABC4.s b/arm9/asm/unk_0206ABC4.s
index 776bd5c3..caab2e45 100644
--- a/arm9/asm/unk_0206ABC4.s
+++ b/arm9/asm/unk_0206ABC4.s
@@ -622,7 +622,7 @@ _0206B030:
ldr r0, [sp, #0x40]
mov r1, #0x6
add r2, r7, #0x6
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x34]
ldr r1, [sp, #0x40]
ldr r0, [r0, #0x4]
@@ -709,7 +709,7 @@ _0206B0DA:
ldr r0, [sp, #0x40]
mov r1, #0x6
add r2, r2, #0x6
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r7, [sp, #0x3c]
mov r6, #0x0
_0206B120:
diff --git a/arm9/asm/unk_0206B16C.s b/arm9/asm/unk_0206B16C.s
index b6ec1416..f454c441 100644
--- a/arm9/asm/unk_0206B16C.s
+++ b/arm9/asm/unk_0206B16C.s
@@ -28,7 +28,7 @@ _0206B188:
add r5, r6, #0x0
_0206B18C:
add r0, r5, #0x0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r4, r4, #0x1
add r5, #0x88
cmp r4, #0x1e
@@ -149,7 +149,7 @@ _0206B270:
add r0, r5, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B2A0
mov r0, #0x88
@@ -241,7 +241,7 @@ _0206B308:
mov r0, #0x88
mul r0, r2
add r0, r1, r0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
bl FUN_02022830
pop {r3, pc}
_0206B32A:
@@ -274,7 +274,7 @@ _0206B350:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B364
add sp, #0x8
@@ -327,7 +327,7 @@ _0206B3A2:
add r0, r1, r0
mov r1, #0xab
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B3C6
ldr r0, [sp, #0x0]
@@ -371,7 +371,7 @@ _0206B3F6:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0206B406
add r6, r6, #0x1
@@ -521,7 +521,7 @@ _0206B504:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0206B514
add r4, r4, #0x1
@@ -560,13 +560,13 @@ _0206B548:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0206B566
add r0, r5, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B566
add r4, r4, #0x1
@@ -635,7 +635,7 @@ _0206B5C4:
add r0, r1, r0
ldr r2, [sp, #0x18]
add r1, r7, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
bl FUN_02022830
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/unk_0206B688.s b/arm9/asm/unk_0206B688.s
index 2e4a392b..9b6e863e 100644
--- a/arm9/asm/unk_0206B688.s
+++ b/arm9/asm/unk_0206B688.s
@@ -46,17 +46,17 @@ UNK_020F8074: ; 0x020F8074
FUN_0206B688: ; 0x0206B688
push {r3-r7, lr}
add r5, r0, #0x0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r6, r0, #0x0
add r0, r5, #0x0
bl FUN_0206B754
@@ -67,7 +67,7 @@ FUN_0206B688: ; 0x0206B688
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r7, #0x0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add r0, r4, #0x0
pop {r3-r7, pc}
@@ -158,7 +158,7 @@ FUN_0206B754: ; 0x0206B754
mov r1, #0xad
mov r2, #0x0
add r4, r0, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r2, _0206B7B8 ; =0x0000019D
cmp r0, r2
bhi _0206B784
@@ -201,7 +201,7 @@ _0206B7A4:
add r0, r4, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r4, pc}
@@ -289,7 +289,7 @@ _0206B838: .word UNK_020F8074
FUN_0206B83C: ; 0x0206B83C
push {r3-r7, lr}
add r5, r0, #0x0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
add r4, r0, #0x0
add r0, r5, #0x0
bl FUN_0206B754
@@ -297,16 +297,16 @@ FUN_0206B83C: ; 0x0206B83C
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r5, #0x0
add r1, r4, #0x0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r2, [sp, #0x0]
add r0, r7, #0x0
add r1, r6, #0x0
diff --git a/arm9/asm/unk_0206BB5C.s b/arm9/asm/unk_0206BB5C.s
index 70465dd6..afcace47 100644
--- a/arm9/asm/unk_0206BB5C.s
+++ b/arm9/asm/unk_0206BB5C.s
@@ -34,7 +34,7 @@ FUN_0206BB84: ; 0x0206BB84
add r0, r7, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r4, #0x0
@@ -49,7 +49,7 @@ _0206BBA2:
add r0, r7, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, r5
bls _0206BBBE
mov r0, #0x0
@@ -58,7 +58,7 @@ _0206BBBE:
add r0, r7, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0206BBD0
mov r0, #0x0
@@ -193,7 +193,7 @@ _0206BCBC:
beq _0206BD0A
ldr r0, [sp, #0x4]
sub r1, r1, #0x1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
ldr r0, [sp, #0x0]
ldr r2, [sp, #0x8]
@@ -208,17 +208,17 @@ _0206BCE2:
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r7, #0x0]
add r0, r4, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
add r0, r4, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
add r0, r1, r0
str r0, [sp, #0x10]
@@ -407,7 +407,7 @@ FUN_0206BE48: ; 0x0206BE48
add r0, r1, #0x0
str r1, [sp, #0x10]
str r2, [sp, #0x14]
- bl FUN_0206B9AC
+ bl GetPartyCount
str r0, [sp, #0x20]
add r6, r0, #0x0
add r0, sp, #0x30
@@ -423,16 +423,16 @@ FUN_0206BE48: ; 0x0206BE48
_0206BE72:
ldr r0, [sp, #0x10]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x24]
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
ldr r0, [sp, #0x24]
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x0]
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x24]
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index 9265cbd9..81a90ae3 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -76,7 +76,7 @@ FUN_0206C700: ; 0x0206C700
mov r1, #0x5
mov r2, #0x0
str r0, [r4, #0x28]
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0x0
add r1, #0x60
strh r0, [r1, #0x0]
@@ -1040,11 +1040,11 @@ _0206CF7E:
ldr r0, [r4, #0x28]
mov r1, #0x5
add r2, #0x62
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r4, #0x28]
bl FUN_0206A1C4
ldr r0, [r4, #0x28]
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [r4, #0x28]
bl FUN_020690E4
add r2, r0, #0x0
@@ -1111,13 +1111,13 @@ _0206CFFA:
ldr r0, [r4, #0x28]
mov r1, #0x4d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0206D05E
ldr r0, [r4, #0x28]
mov r1, #0xb2
mov r2, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
_0206D05E:
add r0, r4, #0x0
add r0, #0x64
@@ -1652,7 +1652,7 @@ _0206D4A6:
ldr r0, [r4, #0x28]
mov r2, #0x0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x1
@@ -1736,7 +1736,7 @@ _0206D560:
ldr r0, [r4, #0x28]
add r2, #0x66
add r1, #0x3e
- bl SetMonDataEncrypted
+ bl SetMonData
add r1, r4, #0x0
add r2, r4, #0x0
add r1, #0x6c
@@ -2085,7 +2085,7 @@ _0206D854:
cmp r0, #0x0
beq _0206D86C
ldr r0, [r4, #0x24]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x6
blt _0206D86E
_0206D86C:
@@ -2103,30 +2103,30 @@ _0206D86E:
add r0, r5, #0x0
mov r1, #0x5
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x4
str r0, [sp, #0x0]
add r0, r5, #0x0
mov r1, #0x9a
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
str r0, [sp, #0x0]
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0xb
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r1, #0x19
str r1, [sp, #0x4]
add r6, sp, #0x0
_0206D8BA:
add r0, r5, #0x0
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
@@ -2138,7 +2138,7 @@ _0206D8BA:
_0206D8D2:
add r0, r5, #0x0
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
@@ -2150,7 +2150,7 @@ _0206D8D2:
_0206D8EA:
add r0, r5, #0x0
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
@@ -2159,28 +2159,28 @@ _0206D8EA:
add r0, r5, #0x0
mov r1, #0xb2
mov r2, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0x4d
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0x9f
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r4, #0x5c]
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r6, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
bl FreeToHeap
add r0, r5, #0x0
mov r1, #0xa1
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add r1, sp, #0x8
mov r2, #0x18
@@ -2188,11 +2188,11 @@ _0206D8EA:
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_0206A1C4
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [r4, #0x24]
add r1, r5, #0x0
bl FUN_0206B900
@@ -2225,7 +2225,7 @@ _0206D9A0:
ldr r0, [r4, #0x28]
mov r1, #0x6
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
_0206D9AE:
add sp, #0x20
pop {r4-r6, pc}
@@ -2581,9 +2581,9 @@ FUN_0206DC80: ; 0x0206DC80
add r0, r5, #0x0
mov r1, #0x5
add r2, #0x62
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add r0, sp, #0x10
add r1, r5, #0x0
mov r2, #0x2
diff --git a/arm9/asm/unk_0206E5B4.s b/arm9/asm/unk_0206E5B4.s
index e527bfb2..316ba0db 100644
--- a/arm9/asm/unk_0206E5B4.s
+++ b/arm9/asm/unk_0206E5B4.s
@@ -37,251 +37,471 @@ UNK_020F84EC: ; 0x020F84EC
.global UNK_020F85B4
UNK_020F85B4: ; 0x020F85B4
- .byte 0x00, 0x00
-
- .global UNK_020F85B6
-UNK_020F85B6: ; 0x020F85B6
- .byte 0xBB, 0x02
-
- .global UNK_020F85B8
-UNK_020F85B8: ; 0x020F85B8
- .byte 0xBC, 0x02
-
- .global UNK_020F85BA
-UNK_020F85BA: ; 0x020F85BA
- .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x05, 0x00
- .byte 0x02, 0x00, 0x03, 0x00, 0x06, 0x00, 0x07, 0x00, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x09, 0x00
- .byte 0x04, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x0D, 0x00
- .byte 0x06, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x08, 0x00, 0x10, 0x00, 0x11, 0x00
- .byte 0x08, 0x00, 0x09, 0x00, 0x12, 0x00, 0x13, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x13, 0x00
- .byte 0x0A, 0x00, 0x0B, 0x00, 0x15, 0x00, 0x16, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x17, 0x00, 0x16, 0x00
- .byte 0x0C, 0x00, 0x0D, 0x00, 0x97, 0x02, 0x98, 0x02, 0x00, 0x00, 0x0E, 0x00, 0x99, 0x02, 0x9A, 0x02
- .byte 0x00, 0x00, 0x0F, 0x00, 0x9B, 0x02, 0x9C, 0x02, 0x00, 0x00, 0x10, 0x00, 0x9D, 0x02, 0x9E, 0x02
- .byte 0x00, 0x00, 0x11, 0x00, 0x18, 0x00, 0x19, 0x00, 0x0D, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x1B, 0x00
- .byte 0x0E, 0x00, 0x13, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x1E, 0x00, 0x1D, 0x00
- .byte 0x10, 0x00, 0x15, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x11, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x20, 0x00
- .byte 0x12, 0x00, 0x17, 0x00, 0x21, 0x00, 0x22, 0x00, 0x13, 0x00, 0x18, 0x00, 0x21, 0x00, 0x23, 0x00
- .byte 0x14, 0x00, 0x19, 0x00, 0x18, 0x00, 0x24, 0x00, 0x15, 0x00, 0x1A, 0x00, 0x18, 0x00, 0x25, 0x00
- .byte 0x16, 0x00, 0x1B, 0x00, 0x26, 0x00, 0x27, 0x00, 0x17, 0x00, 0x1C, 0x00, 0x28, 0x00, 0x2A, 0x00
- .byte 0x18, 0x00, 0x1D, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x19, 0x00, 0x1E, 0x00, 0x2B, 0x00, 0x2C, 0x00
- .byte 0x1A, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x1B, 0x00, 0x20, 0x00, 0x2F, 0x00, 0x30, 0x00
- .byte 0x1C, 0x00, 0x21, 0x00, 0x31, 0x00, 0x32, 0x00, 0x1D, 0x00, 0x22, 0x00, 0x33, 0x00, 0x34, 0x00
- .byte 0x1E, 0x00, 0x23, 0x00, 0x35, 0x00, 0x36, 0x00, 0x1F, 0x00, 0x24, 0x00, 0x33, 0x00, 0x37, 0x00
- .byte 0x20, 0x00, 0x25, 0x00, 0x38, 0x00, 0x39, 0x00, 0x21, 0x00, 0x26, 0x00, 0x3A, 0x00, 0x3B, 0x00
- .byte 0x22, 0x00, 0x27, 0x00, 0x3A, 0x00, 0x3C, 0x00, 0x23, 0x00, 0x28, 0x00, 0x3A, 0x00, 0x3D, 0x00
- .byte 0x24, 0x00, 0x29, 0x00, 0x3A, 0x00, 0x3E, 0x00, 0x25, 0x00, 0x2A, 0x00, 0x3F, 0x00, 0x40, 0x00
- .byte 0x26, 0x00, 0x2B, 0x00, 0x47, 0x00, 0x48, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x49, 0x00, 0x4A, 0x00
- .byte 0x2D, 0x00, 0x2D, 0x00, 0x53, 0x00, 0x54, 0x00, 0x3F, 0x00, 0x2E, 0x00, 0x55, 0x00, 0x56, 0x00
- .byte 0x40, 0x00, 0x2F, 0x00, 0x55, 0x00, 0x57, 0x00, 0x41, 0x00, 0x30, 0x00, 0x55, 0x00, 0x58, 0x00
- .byte 0x42, 0x00, 0x31, 0x00, 0x55, 0x00, 0x59, 0x00, 0x43, 0x00, 0x32, 0x00, 0x5A, 0x00, 0x5B, 0x00
- .byte 0x44, 0x00, 0x33, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x45, 0x00, 0x34, 0x00, 0x55, 0x00, 0x5E, 0x00
- .byte 0x46, 0x00, 0x35, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x47, 0x00, 0x36, 0x00, 0xD2, 0x01, 0xD3, 0x01
- .byte 0x00, 0x00, 0x37, 0x00, 0x64, 0x00, 0x61, 0x00, 0x49, 0x00, 0x38, 0x00, 0x64, 0x00, 0x62, 0x00
- .byte 0x4A, 0x00, 0x39, 0x00, 0x64, 0x00, 0x63, 0x00, 0x4B, 0x00, 0x3A, 0x00, 0x64, 0x00, 0x65, 0x00
- .byte 0x4C, 0x00, 0x3B, 0x00, 0x64, 0x00, 0x66, 0x00, 0x4D, 0x00, 0x3C, 0x00, 0x64, 0x00, 0x67, 0x00
- .byte 0x4E, 0x00, 0x3D, 0x00, 0x64, 0x00, 0x68, 0x00, 0x4F, 0x00, 0x3E, 0x00, 0x64, 0x00, 0xD5, 0x01
- .byte 0x00, 0x00, 0x3F, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x50, 0x00, 0x40, 0x00, 0x6B, 0x00, 0x6C, 0x00
- .byte 0x51, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, 0x00, 0x27, 0x00, 0x42, 0x00, 0x41, 0x00, 0x43, 0x00
- .byte 0x28, 0x00, 0x43, 0x00, 0x41, 0x00, 0x44, 0x00, 0x29, 0x00, 0x44, 0x00, 0x41, 0x00, 0x45, 0x00
- .byte 0x2A, 0x00, 0x45, 0x00, 0x41, 0x00, 0x46, 0x00, 0x2B, 0x00, 0x46, 0x00, 0x33, 0x00, 0x4B, 0x00
- .byte 0x2E, 0x00, 0x47, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x2F, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x4F, 0x00
- .byte 0x30, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x50, 0x00, 0x31, 0x00, 0x4A, 0x00, 0x4E, 0x00, 0x51, 0x00
- .byte 0x32, 0x00, 0x4B, 0x00, 0x4E, 0x00, 0x52, 0x00, 0x33, 0x00, 0x4C, 0x00, 0x6D, 0x00, 0x6E, 0x00
- .byte 0x53, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x54, 0x00, 0x4E, 0x00, 0x70, 0x00, 0x71, 0x00
- .byte 0x55, 0x00, 0x4F, 0x00, 0x6D, 0x00, 0x72, 0x00, 0x56, 0x00, 0x50, 0x00, 0x73, 0x00, 0x74, 0x00
- .byte 0x5D, 0x00, 0x51, 0x00, 0x75, 0x00, 0x76, 0x00, 0x5E, 0x00, 0x52, 0x00, 0x77, 0x00, 0x78, 0x00
- .byte 0x5F, 0x00, 0x53, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x60, 0x00, 0x54, 0x00, 0x7B, 0x00, 0x7C, 0x00
- .byte 0x61, 0x00, 0x55, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x62, 0x00, 0x56, 0x00, 0x7F, 0x00, 0x81, 0x00
- .byte 0x67, 0x00, 0x57, 0x00, 0x80, 0x00, 0x81, 0x00, 0x68, 0x00, 0x58, 0x00, 0x82, 0x00, 0x83, 0x00
- .byte 0x6A, 0x00, 0x59, 0x00, 0x84, 0x00, 0x83, 0x00, 0x6B, 0x00, 0x5A, 0x00, 0x85, 0x00, 0x86, 0x00
- .byte 0x6C, 0x00, 0x5B, 0x00, 0x87, 0x00, 0x86, 0x00, 0x6D, 0x00, 0x5C, 0x00, 0x88, 0x00, 0x89, 0x00
- .byte 0x6E, 0x00, 0x5D, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x6F, 0x00, 0x5E, 0x00, 0xD6, 0x01, 0xD7, 0x01
- .byte 0x00, 0x00, 0x5F, 0x00, 0xD8, 0x01, 0xD9, 0x01, 0x00, 0x00, 0x60, 0x00, 0xDA, 0x01, 0xDB, 0x01
- .byte 0x00, 0x00, 0x61, 0x00, 0xDC, 0x01, 0xDD, 0x01, 0x00, 0x00, 0x62, 0x00, 0xDE, 0x01, 0xDF, 0x01
- .byte 0x00, 0x00, 0x63, 0x00, 0x88, 0x01, 0x89, 0x01, 0x1E, 0x01, 0x64, 0x00, 0x8A, 0x01, 0x89, 0x01
- .byte 0x1F, 0x01, 0x65, 0x00, 0xAF, 0x01, 0xB0, 0x01, 0x65, 0x01, 0x66, 0x00, 0xB1, 0x01, 0xB0, 0x01
- .byte 0x66, 0x01, 0x67, 0x00, 0xA9, 0x01, 0xAA, 0x01, 0x62, 0x01, 0x68, 0x00, 0x69, 0x02, 0x6A, 0x02
- .byte 0x00, 0x00, 0x69, 0x00, 0x67, 0x02, 0x68, 0x02, 0x00, 0x00, 0x6A, 0x00, 0x51, 0x01, 0x52, 0x01
- .byte 0x00, 0x00, 0x6B, 0x00, 0xE0, 0x01, 0xE1, 0x01, 0x00, 0x00, 0x6C, 0x00, 0xE2, 0x01, 0xE3, 0x01
- .byte 0x00, 0x00, 0x6D, 0x00, 0xE4, 0x01, 0xE5, 0x01, 0x00, 0x00, 0x6E, 0x00, 0xE6, 0x01, 0xE7, 0x01
- .byte 0x00, 0x00, 0x6F, 0x00, 0xE8, 0x01, 0xE9, 0x01, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x70, 0x00, 0x88, 0x02, 0x89, 0x02, 0x00, 0x00, 0x71, 0x00, 0x86, 0x02, 0x87, 0x02
- .byte 0x00, 0x00, 0x72, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x73, 0x00, 0x8E, 0x00, 0x8F, 0x00
- .byte 0x00, 0x00, 0x74, 0x00, 0x90, 0x00, 0x91, 0x00, 0x00, 0x00, 0x75, 0x00, 0x92, 0x00, 0x93, 0x00
- .byte 0x00, 0x00, 0x76, 0x00, 0x94, 0x00, 0x95, 0x00, 0x00, 0x00, 0x77, 0x00, 0x96, 0x00, 0x97, 0x00
- .byte 0x00, 0x00, 0x78, 0x00, 0x98, 0x00, 0x99, 0x00, 0x00, 0x00, 0x79, 0x00, 0x9A, 0x00, 0x9B, 0x00
- .byte 0x00, 0x00, 0x7A, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x9E, 0x00, 0x9F, 0x00
- .byte 0x00, 0x00, 0x7C, 0x00, 0xA0, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x7D, 0x00, 0xA2, 0x00, 0xA3, 0x00
- .byte 0x00, 0x00, 0x7E, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0x85, 0x00, 0x7F, 0x00, 0xA6, 0x00, 0xA7, 0x00
- .byte 0x86, 0x00, 0x80, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0x87, 0x00, 0x81, 0x00, 0xAA, 0x00, 0xAB, 0x00
- .byte 0x88, 0x00, 0x82, 0x00, 0xAC, 0x00, 0xAD, 0x00, 0x89, 0x00, 0x83, 0x00, 0xAE, 0x00, 0xAF, 0x00
- .byte 0x8A, 0x00, 0x84, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0x8B, 0x00, 0x85, 0x00, 0xB2, 0x00, 0xB3, 0x00
- .byte 0x8C, 0x00, 0x86, 0x00, 0xB4, 0x00, 0xB5, 0x00, 0x8D, 0x00, 0x87, 0x00, 0xB6, 0x00, 0xB7, 0x00
- .byte 0x8E, 0x00, 0x88, 0x00, 0xB8, 0x00, 0xB9, 0x00, 0x8F, 0x00, 0x89, 0x00, 0xBA, 0x00, 0xBB, 0x00
- .byte 0x90, 0x00, 0x8A, 0x00, 0xBC, 0x00, 0xBD, 0x00, 0x91, 0x00, 0x8B, 0x00, 0xBE, 0x00, 0xBF, 0x00
- .byte 0x92, 0x00, 0x8C, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0x93, 0x00, 0x8D, 0x00, 0xC2, 0x00, 0xC3, 0x00
- .byte 0x94, 0x00, 0x8E, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0x95, 0x00, 0x8F, 0x00, 0xC6, 0x00, 0xC7, 0x00
- .byte 0x96, 0x00, 0x90, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0x97, 0x00, 0x91, 0x00, 0xCA, 0x00, 0xCB, 0x00
- .byte 0x98, 0x00, 0x92, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0x99, 0x00, 0x93, 0x00, 0xCE, 0x00, 0xCF, 0x00
- .byte 0x9A, 0x00, 0x94, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0x9B, 0x00, 0x95, 0x00, 0xD2, 0x00, 0xD3, 0x00
- .byte 0x9C, 0x00, 0x96, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0x9D, 0x00, 0x97, 0x00, 0xD6, 0x00, 0xD7, 0x00
- .byte 0x9E, 0x00, 0x98, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0x9F, 0x00, 0x99, 0x00, 0xDA, 0x00, 0xDB, 0x00
- .byte 0xA0, 0x00, 0x9A, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xA1, 0x00, 0x9B, 0x00, 0xDE, 0x00, 0xDF, 0x00
- .byte 0xA2, 0x00, 0x9C, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xA3, 0x00, 0x9D, 0x00, 0xE2, 0x00, 0xE3, 0x00
- .byte 0xA4, 0x00, 0x9E, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xA5, 0x00, 0x9F, 0x00, 0xE6, 0x00, 0xE7, 0x00
- .byte 0xA6, 0x00, 0xA0, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xA7, 0x00, 0xA1, 0x00, 0x2A, 0x02, 0x2B, 0x02
- .byte 0x00, 0x00, 0xA2, 0x00, 0x2C, 0x02, 0x2D, 0x02, 0x00, 0x00, 0xA3, 0x00, 0x2E, 0x02, 0x2F, 0x02
- .byte 0x00, 0x00, 0xA4, 0x00, 0x30, 0x02, 0x31, 0x02, 0x00, 0x00, 0xA5, 0x00, 0x32, 0x02, 0x33, 0x02
- .byte 0x00, 0x00, 0xA6, 0x00, 0x34, 0x02, 0x35, 0x02, 0x00, 0x00, 0xA7, 0x00, 0x36, 0x02, 0x37, 0x02
- .byte 0x00, 0x00, 0xA8, 0x00, 0x38, 0x02, 0x39, 0x02, 0x00, 0x00, 0xA9, 0x00, 0x3A, 0x02, 0x3B, 0x02
- .byte 0x00, 0x00, 0xAA, 0x00, 0x3C, 0x02, 0x3D, 0x02, 0x00, 0x00, 0xAB, 0x00, 0x3E, 0x02, 0x3F, 0x02
- .byte 0x00, 0x00, 0xAC, 0x00, 0x40, 0x02, 0x41, 0x02, 0x00, 0x00, 0xAD, 0x00, 0x42, 0x02, 0x43, 0x02
- .byte 0x00, 0x00, 0xAE, 0x00, 0x44, 0x02, 0x45, 0x02, 0x00, 0x00, 0xAF, 0x00, 0x46, 0x02, 0x47, 0x02
- .byte 0x00, 0x00, 0xB0, 0x00, 0x48, 0x02, 0x49, 0x02, 0x00, 0x00, 0xB1, 0x00, 0x4A, 0x02, 0x4B, 0x02
- .byte 0x00, 0x00, 0xB2, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xA8, 0x00, 0xB3, 0x00, 0xEC, 0x00, 0xED, 0x00
- .byte 0xA9, 0x00, 0xB4, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xAA, 0x00, 0xB5, 0x00, 0xF0, 0x00, 0xF1, 0x00
- .byte 0xAB, 0x00, 0xB6, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xAC, 0x00, 0xB7, 0x00, 0xF4, 0x00, 0xF5, 0x00
- .byte 0xAD, 0x00, 0xB8, 0x00, 0xF6, 0x00, 0xF7, 0x00, 0xAE, 0x00, 0xB9, 0x00, 0xF8, 0x00, 0xF9, 0x00
- .byte 0xAF, 0x00, 0xBA, 0x00, 0x4C, 0x02, 0x4D, 0x02, 0x00, 0x00, 0xBB, 0x00, 0x4E, 0x02, 0x4F, 0x02
- .byte 0x00, 0x00, 0xBC, 0x00, 0x50, 0x02, 0x51, 0x02, 0x00, 0x00, 0xBD, 0x00, 0x52, 0x02, 0x53, 0x02
- .byte 0x00, 0x00, 0xBE, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xB3, 0x00, 0xBF, 0x00, 0xFC, 0x00, 0xFD, 0x00
- .byte 0xB4, 0x00, 0xC0, 0x00, 0xFE, 0x00, 0xFF, 0x00, 0xB5, 0x00, 0xC1, 0x00, 0x00, 0x01, 0x01, 0x01
- .byte 0xB6, 0x00, 0xC2, 0x00, 0x02, 0x01, 0x03, 0x01, 0xB7, 0x00, 0xC3, 0x00, 0x04, 0x01, 0x05, 0x01
- .byte 0xB8, 0x00, 0xC4, 0x00, 0xFC, 0x00, 0x06, 0x01, 0xB9, 0x00, 0xC5, 0x00, 0x07, 0x01, 0x08, 0x01
- .byte 0xBA, 0x00, 0xC6, 0x00, 0x09, 0x01, 0x0A, 0x01, 0xBB, 0x00, 0xC7, 0x00, 0x0B, 0x01, 0x0C, 0x01
- .byte 0xBC, 0x00, 0xC8, 0x00, 0x0D, 0x01, 0x0E, 0x01, 0xBD, 0x00, 0xC9, 0x00, 0x0F, 0x01, 0x10, 0x01
- .byte 0xBE, 0x00, 0xCA, 0x00, 0x11, 0x01, 0x12, 0x01, 0xBF, 0x00, 0xCB, 0x00, 0x13, 0x01, 0x14, 0x01
- .byte 0xC0, 0x00, 0xCC, 0x00, 0x15, 0x01, 0x16, 0x01, 0xC1, 0x00, 0xCD, 0x00, 0x17, 0x01, 0x18, 0x01
- .byte 0xC2, 0x00, 0xCE, 0x00, 0x19, 0x01, 0x1A, 0x01, 0xC3, 0x00, 0xCF, 0x00, 0x1B, 0x01, 0x1C, 0x01
- .byte 0xC4, 0x00, 0xD0, 0x00, 0x1D, 0x01, 0x1E, 0x01, 0xC5, 0x00, 0xD1, 0x00, 0x1F, 0x01, 0x20, 0x01
- .byte 0xC6, 0x00, 0xD2, 0x00, 0x21, 0x01, 0x22, 0x01, 0xC7, 0x00, 0xD3, 0x00, 0x23, 0x01, 0x24, 0x01
- .byte 0xC8, 0x00, 0xD4, 0x00, 0x25, 0x01, 0x26, 0x01, 0xC9, 0x00, 0xD5, 0x00, 0x27, 0x01, 0x28, 0x01
- .byte 0xCA, 0x00, 0xD6, 0x00, 0x29, 0x01, 0x2A, 0x01, 0xCB, 0x00, 0xD7, 0x00, 0x2B, 0x01, 0x2C, 0x01
- .byte 0xCC, 0x00, 0xD8, 0x00, 0x2D, 0x01, 0x2E, 0x01, 0xCD, 0x00, 0xD9, 0x00, 0x2F, 0x01, 0x30, 0x01
- .byte 0xCE, 0x00, 0xDA, 0x00, 0x31, 0x01, 0x30, 0x01, 0xCF, 0x00, 0xDB, 0x00, 0x32, 0x01, 0x33, 0x01
- .byte 0xD0, 0x00, 0xDC, 0x00, 0x34, 0x01, 0x35, 0x01, 0xD1, 0x00, 0xDD, 0x00, 0x36, 0x01, 0x37, 0x01
- .byte 0xD2, 0x00, 0xDE, 0x00, 0x38, 0x01, 0x39, 0x01, 0xD3, 0x00, 0xDF, 0x00, 0x3A, 0x01, 0x3B, 0x01
- .byte 0xD4, 0x00, 0xE0, 0x00, 0x3C, 0x01, 0x3D, 0x01, 0xD5, 0x00, 0xE1, 0x00, 0x3E, 0x01, 0x3F, 0x01
- .byte 0xD6, 0x00, 0xE2, 0x00, 0x40, 0x01, 0x41, 0x01, 0xD7, 0x00, 0xE3, 0x00, 0x42, 0x01, 0x43, 0x01
- .byte 0xD8, 0x00, 0xE4, 0x00, 0x44, 0x01, 0x45, 0x01, 0xD9, 0x00, 0xE5, 0x00, 0x46, 0x01, 0x47, 0x01
- .byte 0xDA, 0x00, 0xE6, 0x00, 0x48, 0x01, 0x4D, 0x00, 0xDB, 0x00, 0xE7, 0x00, 0x49, 0x01, 0x4A, 0x01
- .byte 0xDC, 0x00, 0xE8, 0x00, 0x4B, 0x01, 0x4C, 0x01, 0xDD, 0x00, 0xE9, 0x00, 0x4D, 0x01, 0x4E, 0x01
- .byte 0xDE, 0x00, 0xEA, 0x00, 0x4F, 0x01, 0x50, 0x01, 0xDF, 0x00, 0xEB, 0x00, 0x51, 0x01, 0x52, 0x01
- .byte 0xE0, 0x00, 0xEC, 0x00, 0x53, 0x01, 0x54, 0x01, 0xE1, 0x00, 0xED, 0x00, 0x55, 0x01, 0x56, 0x01
- .byte 0xFE, 0x00, 0xEE, 0x00, 0x55, 0x01, 0x57, 0x01, 0xFF, 0x00, 0xEF, 0x00, 0x55, 0x01, 0x58, 0x01
- .byte 0x00, 0x01, 0xF0, 0x00, 0x55, 0x01, 0x59, 0x01, 0x01, 0x01, 0xF1, 0x00, 0x55, 0x01, 0x5A, 0x01
- .byte 0x02, 0x01, 0xF2, 0x00, 0xEA, 0x01, 0xEB, 0x01, 0x00, 0x00, 0xF3, 0x00, 0xEC, 0x01, 0xED, 0x01
- .byte 0x00, 0x00, 0xF4, 0x00, 0xEE, 0x01, 0xEF, 0x01, 0x00, 0x00, 0xF5, 0x00, 0xF0, 0x01, 0xF1, 0x01
- .byte 0x00, 0x00, 0xF6, 0x00, 0x63, 0x02, 0x64, 0x02, 0x00, 0x00, 0xF7, 0x00, 0xF2, 0x01, 0xF3, 0x01
- .byte 0x00, 0x00, 0xF8, 0x00, 0xF4, 0x01, 0xF5, 0x01, 0x00, 0x00, 0xF9, 0x00, 0xF6, 0x01, 0xF7, 0x01
- .byte 0x00, 0x00, 0xFA, 0x00, 0xF8, 0x01, 0xF9, 0x01, 0x00, 0x00, 0xFB, 0x00, 0x4F, 0x01, 0x92, 0x02
- .byte 0x00, 0x00, 0xFC, 0x00, 0x93, 0x02, 0x94, 0x02, 0x00, 0x00, 0xFD, 0x00, 0xFA, 0x01, 0xFB, 0x01
- .byte 0x00, 0x00, 0xFE, 0x00, 0xFC, 0x01, 0xFD, 0x01, 0x00, 0x00, 0xFF, 0x00, 0x65, 0x02, 0x66, 0x02
- .byte 0x00, 0x00, 0x00, 0x01, 0x8A, 0x02, 0x8B, 0x02, 0x00, 0x00, 0x01, 0x01, 0x8E, 0x02, 0x8F, 0x02
- .byte 0x00, 0x00, 0x02, 0x01, 0xFE, 0x01, 0xFF, 0x01, 0x00, 0x00, 0x03, 0x01, 0x7C, 0x02, 0x7D, 0x02
- .byte 0x00, 0x00, 0x04, 0x01, 0x7E, 0x02, 0x7F, 0x02, 0x00, 0x00, 0x05, 0x01, 0x80, 0x02, 0x81, 0x02
- .byte 0x00, 0x00, 0x06, 0x01, 0x82, 0x02, 0x83, 0x02, 0x00, 0x00, 0x07, 0x01, 0x8C, 0x02, 0x8D, 0x02
- .byte 0x00, 0x00, 0x08, 0x01, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x09, 0x01, 0x02, 0x02, 0x03, 0x02
- .byte 0x00, 0x00, 0x0A, 0x01, 0xAB, 0x02, 0xAC, 0x02, 0x00, 0x00, 0x0B, 0x01, 0xB3, 0x02, 0xB4, 0x02
- .byte 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x02, 0xB6, 0x02, 0x00, 0x00, 0x0D, 0x01, 0xAD, 0x02, 0xAE, 0x02
- .byte 0x00, 0x00, 0x0E, 0x01, 0xAF, 0x02, 0xB0, 0x02, 0x00, 0x00, 0x0F, 0x01, 0xB1, 0x02, 0xB2, 0x02
- .byte 0x00, 0x00, 0x10, 0x01, 0x04, 0x02, 0x05, 0x02, 0x00, 0x00, 0x11, 0x01, 0x06, 0x02, 0x07, 0x02
- .byte 0x00, 0x00, 0x12, 0x01, 0x08, 0x02, 0x09, 0x02, 0x00, 0x00, 0x13, 0x01, 0x6B, 0x02, 0x6C, 0x02
- .byte 0x00, 0x00, 0x14, 0x01, 0x6B, 0x02, 0x6D, 0x02, 0x00, 0x00, 0x15, 0x01, 0x6B, 0x02, 0x6E, 0x02
- .byte 0x00, 0x00, 0x16, 0x01, 0x6B, 0x02, 0x6F, 0x02, 0x00, 0x00, 0x17, 0x01, 0x6B, 0x02, 0x70, 0x02
- .byte 0x00, 0x00, 0x18, 0x01, 0x6B, 0x02, 0x71, 0x02, 0x00, 0x00, 0x19, 0x01, 0x6B, 0x02, 0x72, 0x02
- .byte 0x00, 0x00, 0x1A, 0x01, 0x6B, 0x02, 0x73, 0x02, 0x00, 0x00, 0x1B, 0x01, 0x6B, 0x02, 0x74, 0x02
- .byte 0x00, 0x00, 0x1C, 0x01, 0x6B, 0x02, 0x75, 0x02, 0x00, 0x00, 0x1D, 0x01, 0x6B, 0x02, 0x76, 0x02
- .byte 0x00, 0x00, 0x1E, 0x01, 0x6B, 0x02, 0x77, 0x02, 0x00, 0x00, 0x1F, 0x01, 0x6B, 0x02, 0x78, 0x02
- .byte 0x00, 0x00, 0x20, 0x01, 0x6B, 0x02, 0x79, 0x02, 0x00, 0x00, 0x21, 0x01, 0x6B, 0x02, 0x7A, 0x02
- .byte 0x00, 0x00, 0x22, 0x01, 0x6B, 0x02, 0x7B, 0x02, 0x00, 0x00, 0x23, 0x01, 0x0A, 0x02, 0x0B, 0x02
- .byte 0x00, 0x00, 0x24, 0x01, 0x0C, 0x02, 0x0D, 0x02, 0x00, 0x00, 0x25, 0x01, 0x0E, 0x02, 0x0F, 0x02
- .byte 0x00, 0x00, 0x26, 0x01, 0x10, 0x02, 0x11, 0x02, 0x00, 0x00, 0x27, 0x01, 0x12, 0x02, 0x13, 0x02
- .byte 0x00, 0x00, 0x28, 0x01, 0x14, 0x02, 0x15, 0x02, 0x00, 0x00, 0x29, 0x01, 0x16, 0x02, 0x17, 0x02
- .byte 0x00, 0x00, 0x2A, 0x01, 0xB7, 0x02, 0xB8, 0x02, 0x00, 0x00, 0x2B, 0x01, 0x18, 0x02, 0x19, 0x02
- .byte 0x00, 0x00, 0x2C, 0x01, 0x1A, 0x02, 0x1B, 0x02, 0x00, 0x00, 0x2D, 0x01, 0x1C, 0x02, 0x1D, 0x02
- .byte 0x00, 0x00, 0x2E, 0x01, 0x1E, 0x02, 0x1F, 0x02, 0x00, 0x00, 0x2F, 0x01, 0x20, 0x02, 0x21, 0x02
- .byte 0x00, 0x00, 0x30, 0x01, 0x22, 0x02, 0x23, 0x02, 0x00, 0x00, 0x31, 0x01, 0x8D, 0x01, 0x8E, 0x01
- .byte 0x21, 0x01, 0x32, 0x01, 0x8D, 0x01, 0x8F, 0x01, 0x22, 0x01, 0x33, 0x01, 0x8D, 0x01, 0x90, 0x01
- .byte 0x23, 0x01, 0x34, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x24, 0x01, 0x35, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x25, 0x01, 0x36, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x26, 0x01, 0x37, 0x01, 0x8D, 0x01, 0x94, 0x01
- .byte 0x27, 0x01, 0x38, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x28, 0x01, 0x39, 0x01, 0x8D, 0x01, 0x95, 0x01
- .byte 0x29, 0x01, 0x3A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x2A, 0x01, 0x3B, 0x01, 0x8D, 0x01, 0x96, 0x01
- .byte 0x2B, 0x01, 0x3C, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x2C, 0x01, 0x3D, 0x01, 0x8D, 0x01, 0x94, 0x01
- .byte 0x2D, 0x01, 0x3E, 0x01, 0x8D, 0x01, 0x94, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x2F, 0x01, 0x40, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x30, 0x01, 0x41, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x31, 0x01, 0x42, 0x01, 0x8D, 0x01, 0x90, 0x01, 0x32, 0x01, 0x43, 0x01, 0x8D, 0x01, 0x95, 0x01
- .byte 0x33, 0x01, 0x44, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x34, 0x01, 0x45, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x35, 0x01, 0x46, 0x01, 0x8D, 0x01, 0x95, 0x01, 0x36, 0x01, 0x47, 0x01, 0x8D, 0x01, 0x98, 0x01
- .byte 0x37, 0x01, 0x48, 0x01, 0x8D, 0x01, 0x99, 0x01, 0x38, 0x01, 0x49, 0x01, 0x8D, 0x01, 0x99, 0x01
- .byte 0x39, 0x01, 0x4A, 0x01, 0x8D, 0x01, 0x9A, 0x01, 0x3A, 0x01, 0x4B, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x3B, 0x01, 0x4C, 0x01, 0x8D, 0x01, 0x9A, 0x01, 0x3C, 0x01, 0x4D, 0x01, 0x8D, 0x01, 0x91, 0x01
- .byte 0x3D, 0x01, 0x4E, 0x01, 0x8D, 0x01, 0x9B, 0x01, 0x3E, 0x01, 0x4F, 0x01, 0x8D, 0x01, 0x8E, 0x01
- .byte 0x3F, 0x01, 0x50, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x40, 0x01, 0x51, 0x01, 0x8D, 0x01, 0x91, 0x01
- .byte 0x41, 0x01, 0x52, 0x01, 0x8D, 0x01, 0x99, 0x01, 0x42, 0x01, 0x53, 0x01, 0x8D, 0x01, 0x96, 0x01
- .byte 0x43, 0x01, 0x54, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x44, 0x01, 0x55, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x45, 0x01, 0x56, 0x01, 0x8D, 0x01, 0x96, 0x01, 0x46, 0x01, 0x57, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x47, 0x01, 0x58, 0x01, 0x8D, 0x01, 0x9D, 0x01, 0x48, 0x01, 0x59, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x49, 0x01, 0x5A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x4A, 0x01, 0x5B, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x4B, 0x01, 0x5C, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x4C, 0x01, 0x5D, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x4D, 0x01, 0x5E, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x4E, 0x01, 0x5F, 0x01, 0x8D, 0x01, 0x98, 0x01
- .byte 0x4F, 0x01, 0x60, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x50, 0x01, 0x61, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x51, 0x01, 0x62, 0x01, 0x8D, 0x01, 0x96, 0x01, 0x52, 0x01, 0x63, 0x01, 0x8D, 0x01, 0x9D, 0x01
- .byte 0x00, 0x00, 0x64, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x00, 0x00, 0x65, 0x01, 0x8D, 0x01, 0x95, 0x01
- .byte 0x00, 0x00, 0x66, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x67, 0x01, 0x8D, 0x01, 0x90, 0x01
- .byte 0x00, 0x00, 0x68, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x00, 0x00, 0x69, 0x01, 0x8D, 0x01, 0x99, 0x01
- .byte 0x00, 0x00, 0x6A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x6B, 0x01, 0x8D, 0x01, 0x8F, 0x01
- .byte 0x00, 0x00, 0x6C, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x00, 0x00, 0x6D, 0x01, 0x8D, 0x01, 0x96, 0x01
- .byte 0x00, 0x00, 0x6E, 0x01, 0x8D, 0x01, 0x62, 0x02, 0x00, 0x00, 0x6F, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x00, 0x00, 0x70, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x71, 0x01, 0x8D, 0x01, 0x9B, 0x01
- .byte 0x00, 0x00, 0x72, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x00, 0x00, 0x73, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x74, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x75, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x00, 0x00, 0x76, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x77, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x00, 0x00, 0x78, 0x01, 0x8D, 0x01, 0x94, 0x01, 0x00, 0x00, 0x79, 0x01, 0x8D, 0x01, 0x99, 0x01
- .byte 0x00, 0x00, 0x7A, 0x01, 0x8D, 0x01, 0x98, 0x01, 0x00, 0x00, 0x7B, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x7C, 0x01, 0x8D, 0x01, 0x9C, 0x01, 0x00, 0x00, 0x7D, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x7E, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x7F, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x00, 0x00, 0x80, 0x01, 0x8D, 0x01, 0x9C, 0x01, 0x00, 0x00, 0x81, 0x01, 0x8D, 0x01, 0x62, 0x02
- .byte 0x00, 0x00, 0x82, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x83, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x84, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x00, 0x00, 0x85, 0x01, 0x8D, 0x01, 0x91, 0x01
- .byte 0x00, 0x00, 0x86, 0x01, 0x8D, 0x01, 0x95, 0x01, 0x00, 0x00, 0x87, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x88, 0x01, 0x8D, 0x01, 0x9D, 0x01, 0x00, 0x00, 0x89, 0x01, 0x8D, 0x01, 0x62, 0x02
- .byte 0x00, 0x00, 0x8A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x8B, 0x01, 0x8D, 0x01, 0x98, 0x01
- .byte 0x00, 0x00, 0x8C, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x00, 0x00, 0x8D, 0x01, 0x9E, 0x01, 0x92, 0x01
- .byte 0x53, 0x01, 0x8E, 0x01, 0x9E, 0x01, 0x9D, 0x01, 0x54, 0x01, 0x8F, 0x01, 0x9E, 0x01, 0x90, 0x01
- .byte 0x55, 0x01, 0x90, 0x01, 0x9E, 0x01, 0x92, 0x01, 0x56, 0x01, 0x91, 0x01, 0x9E, 0x01, 0x90, 0x01
- .byte 0x57, 0x01, 0x92, 0x01, 0x9E, 0x01, 0x8E, 0x01, 0x58, 0x01, 0x93, 0x01, 0x9E, 0x01, 0x90, 0x01
- .byte 0x59, 0x01, 0x94, 0x01, 0x9E, 0x01, 0x92, 0x01, 0x5A, 0x01, 0x95, 0x01, 0x24, 0x02, 0x25, 0x02
- .byte 0x00, 0x00, 0x96, 0x01, 0x26, 0x02, 0x27, 0x02, 0x00, 0x00, 0x97, 0x01, 0x28, 0x02, 0x29, 0x02
- .byte 0x00, 0x00, 0x98, 0x01, 0xB9, 0x02, 0xBA, 0x02, 0x00, 0x00, 0x99, 0x01, 0xA9, 0x02, 0xAA, 0x02
- .byte 0x00, 0x00, 0x9A, 0x01, 0x5E, 0x02, 0x5F, 0x02, 0x00, 0x00, 0x9B, 0x01, 0x9F, 0x02, 0xA0, 0x02
- .byte 0x00, 0x00, 0x9C, 0x01, 0xA3, 0x02, 0xA4, 0x02, 0x00, 0x00, 0x9D, 0x01, 0xA1, 0x02, 0xA2, 0x02
- .byte 0x00, 0x00, 0x9E, 0x01, 0x95, 0x02, 0x96, 0x02, 0x00, 0x00, 0x9F, 0x01, 0x84, 0x02, 0x85, 0x02
- .byte 0x00, 0x00, 0xA0, 0x01, 0x5C, 0x02, 0x5D, 0x02, 0x00, 0x00, 0xA1, 0x01, 0x90, 0x02, 0x91, 0x02
- .byte 0x00, 0x00, 0xA2, 0x01, 0xA7, 0x02, 0xA8, 0x02, 0x00, 0x00, 0xA3, 0x01, 0xB7, 0x01, 0xB8, 0x01
- .byte 0x69, 0x01, 0xA4, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0x6A, 0x01, 0xA5, 0x01, 0x5D, 0x01, 0x5E, 0x01
- .byte 0x04, 0x01, 0xA6, 0x01, 0x61, 0x01, 0x62, 0x01, 0x06, 0x01, 0xA7, 0x01, 0x63, 0x01, 0x64, 0x01
- .byte 0x07, 0x01, 0xA8, 0x01, 0x65, 0x01, 0x66, 0x01, 0x08, 0x01, 0xA9, 0x01, 0x6B, 0x01, 0x6C, 0x01
- .byte 0x00, 0x00, 0xAA, 0x01, 0x75, 0x01, 0x76, 0x01, 0x00, 0x00, 0xAB, 0x01, 0xB5, 0x01, 0xB6, 0x01
- .byte 0x68, 0x01, 0xAC, 0x01, 0xAD, 0x01, 0xAE, 0x01, 0x00, 0x00, 0xAD, 0x01, 0x77, 0x01, 0x40, 0x00
- .byte 0x00, 0x00, 0xAE, 0x01, 0x5A, 0x02, 0x5B, 0x02, 0x00, 0x00, 0xAF, 0x01, 0x60, 0x02, 0x61, 0x02
- .byte 0x00, 0x00, 0xB0, 0x01, 0xA5, 0x02, 0xA6, 0x02, 0x00, 0x00, 0xB1, 0x01, 0x67, 0x01, 0x68, 0x01
- .byte 0x09, 0x01, 0xB2, 0x01, 0x69, 0x01, 0x6A, 0x01, 0x0A, 0x01, 0xB3, 0x01, 0x54, 0x02, 0x55, 0x02
- .byte 0x00, 0x00, 0xB4, 0x01, 0x9F, 0x01, 0xA0, 0x01, 0x5D, 0x01, 0xB5, 0x01, 0xA1, 0x01, 0xA2, 0x01
- .byte 0x00, 0x00, 0xB6, 0x01, 0xA3, 0x01, 0xA4, 0x01, 0x00, 0x00, 0xB7, 0x01, 0xA5, 0x01, 0xA6, 0x01
- .byte 0x00, 0x00, 0xB8, 0x01, 0x56, 0x02, 0x57, 0x02, 0x1D, 0x01, 0xB9, 0x01, 0x58, 0x02, 0x59, 0x02
- .byte 0x00, 0x00
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0001, 0x0002, 0x0003, 0x0001
+ .short 0x0002, 0x0004, 0x0005, 0x0002
+ .short 0x0003, 0x0006, 0x0007, 0x0003
+ .short 0x0004, 0x0008, 0x0009, 0x0004
+ .short 0x0005, 0x000A, 0x000B, 0x0005
+ .short 0x0006, 0x000C, 0x000D, 0x0006
+ .short 0x0007, 0x000E, 0x000F, 0x0007
+ .short 0x0008, 0x0010, 0x0011, 0x0008
+ .short 0x0009, 0x0012, 0x0013, 0x0009
+ .short 0x000A, 0x0014, 0x0013, 0x000A
+ .short 0x000B, 0x0015, 0x0016, 0x000B
+ .short 0x000C, 0x0017, 0x0016, 0x000C
+ .short 0x000D, 0x0297, 0x0298, 0x0000
+ .short 0x000E, 0x0299, 0x029A, 0x0000
+ .short 0x000F, 0x029B, 0x029C, 0x0000
+ .short 0x0010, 0x029D, 0x029E, 0x0000
+ .short 0x0011, 0x0018, 0x0019, 0x000D
+ .short 0x0012, 0x001A, 0x001B, 0x000E
+ .short 0x0013, 0x001E, 0x001C, 0x000F
+ .short 0x0014, 0x001E, 0x001D, 0x0010
+ .short 0x0015, 0x001E, 0x001F, 0x0011
+ .short 0x0016, 0x001E, 0x0020, 0x0012
+ .short 0x0017, 0x0021, 0x0022, 0x0013
+ .short 0x0018, 0x0021, 0x0023, 0x0014
+ .short 0x0019, 0x0018, 0x0024, 0x0015
+ .short 0x001A, 0x0018, 0x0025, 0x0016
+ .short 0x001B, 0x0026, 0x0027, 0x0017
+ .short 0x001C, 0x0028, 0x002A, 0x0018
+ .short 0x001D, 0x0029, 0x002A, 0x0019
+ .short 0x001E, 0x002B, 0x002C, 0x001A
+ .short 0x001F, 0x002D, 0x002E, 0x001B
+ .short 0x0020, 0x002F, 0x0030, 0x001C
+ .short 0x0021, 0x0031, 0x0032, 0x001D
+ .short 0x0022, 0x0033, 0x0034, 0x001E
+ .short 0x0023, 0x0035, 0x0036, 0x001F
+ .short 0x0024, 0x0033, 0x0037, 0x0020
+ .short 0x0025, 0x0038, 0x0039, 0x0021
+ .short 0x0026, 0x003A, 0x003B, 0x0022
+ .short 0x0027, 0x003A, 0x003C, 0x0023
+ .short 0x0028, 0x003A, 0x003D, 0x0024
+ .short 0x0029, 0x003A, 0x003E, 0x0025
+ .short 0x002A, 0x003F, 0x0040, 0x0026
+ .short 0x002B, 0x0047, 0x0048, 0x002C
+ .short 0x002C, 0x0049, 0x004A, 0x002D
+ .short 0x002D, 0x0053, 0x0054, 0x003F
+ .short 0x002E, 0x0055, 0x0056, 0x0040
+ .short 0x002F, 0x0055, 0x0057, 0x0041
+ .short 0x0030, 0x0055, 0x0058, 0x0042
+ .short 0x0031, 0x0055, 0x0059, 0x0043
+ .short 0x0032, 0x005A, 0x005B, 0x0044
+ .short 0x0033, 0x005C, 0x005D, 0x0045
+ .short 0x0034, 0x0055, 0x005E, 0x0046
+ .short 0x0035, 0x005F, 0x0060, 0x0047
+ .short 0x0036, 0x01D2, 0x01D3, 0x0000
+ .short 0x0037, 0x0064, 0x0061, 0x0049
+ .short 0x0038, 0x0064, 0x0062, 0x004A
+ .short 0x0039, 0x0064, 0x0063, 0x004B
+ .short 0x003A, 0x0064, 0x0065, 0x004C
+ .short 0x003B, 0x0064, 0x0066, 0x004D
+ .short 0x003C, 0x0064, 0x0067, 0x004E
+ .short 0x003D, 0x0064, 0x0068, 0x004F
+ .short 0x003E, 0x0064, 0x01D5, 0x0000
+ .short 0x003F, 0x0069, 0x006A, 0x0050
+ .short 0x0040, 0x006B, 0x006C, 0x0051
+ .short 0x0041, 0x0041, 0x0042, 0x0027
+ .short 0x0042, 0x0041, 0x0043, 0x0028
+ .short 0x0043, 0x0041, 0x0044, 0x0029
+ .short 0x0044, 0x0041, 0x0045, 0x002A
+ .short 0x0045, 0x0041, 0x0046, 0x002B
+ .short 0x0046, 0x0033, 0x004B, 0x002E
+ .short 0x0047, 0x004C, 0x004D, 0x002F
+ .short 0x0048, 0x004E, 0x004F, 0x0030
+ .short 0x0049, 0x004E, 0x0050, 0x0031
+ .short 0x004A, 0x004E, 0x0051, 0x0032
+ .short 0x004B, 0x004E, 0x0052, 0x0033
+ .short 0x004C, 0x006D, 0x006E, 0x0053
+ .short 0x004D, 0x006D, 0x006F, 0x0054
+ .short 0x004E, 0x0070, 0x0071, 0x0055
+ .short 0x004F, 0x006D, 0x0072, 0x0056
+ .short 0x0050, 0x0073, 0x0074, 0x005D
+ .short 0x0051, 0x0075, 0x0076, 0x005E
+ .short 0x0052, 0x0077, 0x0078, 0x005F
+ .short 0x0053, 0x0079, 0x007A, 0x0060
+ .short 0x0054, 0x007B, 0x007C, 0x0061
+ .short 0x0055, 0x007D, 0x007E, 0x0062
+ .short 0x0056, 0x007F, 0x0081, 0x0067
+ .short 0x0057, 0x0080, 0x0081, 0x0068
+ .short 0x0058, 0x0082, 0x0083, 0x006A
+ .short 0x0059, 0x0084, 0x0083, 0x006B
+ .short 0x005A, 0x0085, 0x0086, 0x006C
+ .short 0x005B, 0x0087, 0x0086, 0x006D
+ .short 0x005C, 0x0088, 0x0089, 0x006E
+ .short 0x005D, 0x008A, 0x008B, 0x006F
+ .short 0x005E, 0x01D6, 0x01D7, 0x0000
+ .short 0x005F, 0x01D8, 0x01D9, 0x0000
+ .short 0x0060, 0x01DA, 0x01DB, 0x0000
+ .short 0x0061, 0x01DC, 0x01DD, 0x0000
+ .short 0x0062, 0x01DE, 0x01DF, 0x0000
+ .short 0x0063, 0x0188, 0x0189, 0x011E
+ .short 0x0064, 0x018A, 0x0189, 0x011F
+ .short 0x0065, 0x01AF, 0x01B0, 0x0165
+ .short 0x0066, 0x01B1, 0x01B0, 0x0166
+ .short 0x0067, 0x01A9, 0x01AA, 0x0162
+ .short 0x0068, 0x0269, 0x026A, 0x0000
+ .short 0x0069, 0x0267, 0x0268, 0x0000
+ .short 0x006A, 0x0151, 0x0152, 0x0000
+ .short 0x006B, 0x01E0, 0x01E1, 0x0000
+ .short 0x006C, 0x01E2, 0x01E3, 0x0000
+ .short 0x006D, 0x01E4, 0x01E5, 0x0000
+ .short 0x006E, 0x01E6, 0x01E7, 0x0000
+ .short 0x006F, 0x01E8, 0x01E9, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0070, 0x0288, 0x0289, 0x0000
+ .short 0x0071, 0x0286, 0x0287, 0x0000
+ .short 0x0072, 0x008C, 0x008D, 0x0000
+ .short 0x0073, 0x008E, 0x008F, 0x0000
+ .short 0x0074, 0x0090, 0x0091, 0x0000
+ .short 0x0075, 0x0092, 0x0093, 0x0000
+ .short 0x0076, 0x0094, 0x0095, 0x0000
+ .short 0x0077, 0x0096, 0x0097, 0x0000
+ .short 0x0078, 0x0098, 0x0099, 0x0000
+ .short 0x0079, 0x009A, 0x009B, 0x0000
+ .short 0x007A, 0x009C, 0x009D, 0x0000
+ .short 0x007B, 0x009E, 0x009F, 0x0000
+ .short 0x007C, 0x00A0, 0x00A1, 0x0000
+ .short 0x007D, 0x00A2, 0x00A3, 0x0000
+ .short 0x007E, 0x00A4, 0x00A5, 0x0085
+ .short 0x007F, 0x00A6, 0x00A7, 0x0086
+ .short 0x0080, 0x00A8, 0x00A9, 0x0087
+ .short 0x0081, 0x00AA, 0x00AB, 0x0088
+ .short 0x0082, 0x00AC, 0x00AD, 0x0089
+ .short 0x0083, 0x00AE, 0x00AF, 0x008A
+ .short 0x0084, 0x00B0, 0x00B1, 0x008B
+ .short 0x0085, 0x00B2, 0x00B3, 0x008C
+ .short 0x0086, 0x00B4, 0x00B5, 0x008D
+ .short 0x0087, 0x00B6, 0x00B7, 0x008E
+ .short 0x0088, 0x00B8, 0x00B9, 0x008F
+ .short 0x0089, 0x00BA, 0x00BB, 0x0090
+ .short 0x008A, 0x00BC, 0x00BD, 0x0091
+ .short 0x008B, 0x00BE, 0x00BF, 0x0092
+ .short 0x008C, 0x00C0, 0x00C1, 0x0093
+ .short 0x008D, 0x00C2, 0x00C3, 0x0094
+ .short 0x008E, 0x00C4, 0x00C5, 0x0095
+ .short 0x008F, 0x00C6, 0x00C7, 0x0096
+ .short 0x0090, 0x00C8, 0x00C9, 0x0097
+ .short 0x0091, 0x00CA, 0x00CB, 0x0098
+ .short 0x0092, 0x00CC, 0x00CD, 0x0099
+ .short 0x0093, 0x00CE, 0x00CF, 0x009A
+ .short 0x0094, 0x00D0, 0x00D1, 0x009B
+ .short 0x0095, 0x00D2, 0x00D3, 0x009C
+ .short 0x0096, 0x00D4, 0x00D5, 0x009D
+ .short 0x0097, 0x00D6, 0x00D7, 0x009E
+ .short 0x0098, 0x00D8, 0x00D9, 0x009F
+ .short 0x0099, 0x00DA, 0x00DB, 0x00A0
+ .short 0x009A, 0x00DC, 0x00DD, 0x00A1
+ .short 0x009B, 0x00DE, 0x00DF, 0x00A2
+ .short 0x009C, 0x00E0, 0x00E1, 0x00A3
+ .short 0x009D, 0x00E2, 0x00E3, 0x00A4
+ .short 0x009E, 0x00E4, 0x00E5, 0x00A5
+ .short 0x009F, 0x00E6, 0x00E7, 0x00A6
+ .short 0x00A0, 0x00E8, 0x00E9, 0x00A7
+ .short 0x00A1, 0x022A, 0x022B, 0x0000
+ .short 0x00A2, 0x022C, 0x022D, 0x0000
+ .short 0x00A3, 0x022E, 0x022F, 0x0000
+ .short 0x00A4, 0x0230, 0x0231, 0x0000
+ .short 0x00A5, 0x0232, 0x0233, 0x0000
+ .short 0x00A6, 0x0234, 0x0235, 0x0000
+ .short 0x00A7, 0x0236, 0x0237, 0x0000
+ .short 0x00A8, 0x0238, 0x0239, 0x0000
+ .short 0x00A9, 0x023A, 0x023B, 0x0000
+ .short 0x00AA, 0x023C, 0x023D, 0x0000
+ .short 0x00AB, 0x023E, 0x023F, 0x0000
+ .short 0x00AC, 0x0240, 0x0241, 0x0000
+ .short 0x00AD, 0x0242, 0x0243, 0x0000
+ .short 0x00AE, 0x0244, 0x0245, 0x0000
+ .short 0x00AF, 0x0246, 0x0247, 0x0000
+ .short 0x00B0, 0x0248, 0x0249, 0x0000
+ .short 0x00B1, 0x024A, 0x024B, 0x0000
+ .short 0x00B2, 0x00EA, 0x00EB, 0x00A8
+ .short 0x00B3, 0x00EC, 0x00ED, 0x00A9
+ .short 0x00B4, 0x00EE, 0x00EF, 0x00AA
+ .short 0x00B5, 0x00F0, 0x00F1, 0x00AB
+ .short 0x00B6, 0x00F2, 0x00F3, 0x00AC
+ .short 0x00B7, 0x00F4, 0x00F5, 0x00AD
+ .short 0x00B8, 0x00F6, 0x00F7, 0x00AE
+ .short 0x00B9, 0x00F8, 0x00F9, 0x00AF
+ .short 0x00BA, 0x024C, 0x024D, 0x0000
+ .short 0x00BB, 0x024E, 0x024F, 0x0000
+ .short 0x00BC, 0x0250, 0x0251, 0x0000
+ .short 0x00BD, 0x0252, 0x0253, 0x0000
+ .short 0x00BE, 0x00FA, 0x00FB, 0x00B3
+ .short 0x00BF, 0x00FC, 0x00FD, 0x00B4
+ .short 0x00C0, 0x00FE, 0x00FF, 0x00B5
+ .short 0x00C1, 0x0100, 0x0101, 0x00B6
+ .short 0x00C2, 0x0102, 0x0103, 0x00B7
+ .short 0x00C3, 0x0104, 0x0105, 0x00B8
+ .short 0x00C4, 0x00FC, 0x0106, 0x00B9
+ .short 0x00C5, 0x0107, 0x0108, 0x00BA
+ .short 0x00C6, 0x0109, 0x010A, 0x00BB
+ .short 0x00C7, 0x010B, 0x010C, 0x00BC
+ .short 0x00C8, 0x010D, 0x010E, 0x00BD
+ .short 0x00C9, 0x010F, 0x0110, 0x00BE
+ .short 0x00CA, 0x0111, 0x0112, 0x00BF
+ .short 0x00CB, 0x0113, 0x0114, 0x00C0
+ .short 0x00CC, 0x0115, 0x0116, 0x00C1
+ .short 0x00CD, 0x0117, 0x0118, 0x00C2
+ .short 0x00CE, 0x0119, 0x011A, 0x00C3
+ .short 0x00CF, 0x011B, 0x011C, 0x00C4
+ .short 0x00D0, 0x011D, 0x011E, 0x00C5
+ .short 0x00D1, 0x011F, 0x0120, 0x00C6
+ .short 0x00D2, 0x0121, 0x0122, 0x00C7
+ .short 0x00D3, 0x0123, 0x0124, 0x00C8
+ .short 0x00D4, 0x0125, 0x0126, 0x00C9
+ .short 0x00D5, 0x0127, 0x0128, 0x00CA
+ .short 0x00D6, 0x0129, 0x012A, 0x00CB
+ .short 0x00D7, 0x012B, 0x012C, 0x00CC
+ .short 0x00D8, 0x012D, 0x012E, 0x00CD
+ .short 0x00D9, 0x012F, 0x0130, 0x00CE
+ .short 0x00DA, 0x0131, 0x0130, 0x00CF
+ .short 0x00DB, 0x0132, 0x0133, 0x00D0
+ .short 0x00DC, 0x0134, 0x0135, 0x00D1
+ .short 0x00DD, 0x0136, 0x0137, 0x00D2
+ .short 0x00DE, 0x0138, 0x0139, 0x00D3
+ .short 0x00DF, 0x013A, 0x013B, 0x00D4
+ .short 0x00E0, 0x013C, 0x013D, 0x00D5
+ .short 0x00E1, 0x013E, 0x013F, 0x00D6
+ .short 0x00E2, 0x0140, 0x0141, 0x00D7
+ .short 0x00E3, 0x0142, 0x0143, 0x00D8
+ .short 0x00E4, 0x0144, 0x0145, 0x00D9
+ .short 0x00E5, 0x0146, 0x0147, 0x00DA
+ .short 0x00E6, 0x0148, 0x004D, 0x00DB
+ .short 0x00E7, 0x0149, 0x014A, 0x00DC
+ .short 0x00E8, 0x014B, 0x014C, 0x00DD
+ .short 0x00E9, 0x014D, 0x014E, 0x00DE
+ .short 0x00EA, 0x014F, 0x0150, 0x00DF
+ .short 0x00EB, 0x0151, 0x0152, 0x00E0
+ .short 0x00EC, 0x0153, 0x0154, 0x00E1
+ .short 0x00ED, 0x0155, 0x0156, 0x00FE
+ .short 0x00EE, 0x0155, 0x0157, 0x00FF
+ .short 0x00EF, 0x0155, 0x0158, 0x0100
+ .short 0x00F0, 0x0155, 0x0159, 0x0101
+ .short 0x00F1, 0x0155, 0x015A, 0x0102
+ .short 0x00F2, 0x01EA, 0x01EB, 0x0000
+ .short 0x00F3, 0x01EC, 0x01ED, 0x0000
+ .short 0x00F4, 0x01EE, 0x01EF, 0x0000
+ .short 0x00F5, 0x01F0, 0x01F1, 0x0000
+ .short 0x00F6, 0x0263, 0x0264, 0x0000
+ .short 0x00F7, 0x01F2, 0x01F3, 0x0000
+ .short 0x00F8, 0x01F4, 0x01F5, 0x0000
+ .short 0x00F9, 0x01F6, 0x01F7, 0x0000
+ .short 0x00FA, 0x01F8, 0x01F9, 0x0000
+ .short 0x00FB, 0x014F, 0x0292, 0x0000
+ .short 0x00FC, 0x0293, 0x0294, 0x0000
+ .short 0x00FD, 0x01FA, 0x01FB, 0x0000
+ .short 0x00FE, 0x01FC, 0x01FD, 0x0000
+ .short 0x00FF, 0x0265, 0x0266, 0x0000
+ .short 0x0100, 0x028A, 0x028B, 0x0000
+ .short 0x0101, 0x028E, 0x028F, 0x0000
+ .short 0x0102, 0x01FE, 0x01FF, 0x0000
+ .short 0x0103, 0x027C, 0x027D, 0x0000
+ .short 0x0104, 0x027E, 0x027F, 0x0000
+ .short 0x0105, 0x0280, 0x0281, 0x0000
+ .short 0x0106, 0x0282, 0x0283, 0x0000
+ .short 0x0107, 0x028C, 0x028D, 0x0000
+ .short 0x0108, 0x0200, 0x0201, 0x0000
+ .short 0x0109, 0x0202, 0x0203, 0x0000
+ .short 0x010A, 0x02AB, 0x02AC, 0x0000
+ .short 0x010B, 0x02B3, 0x02B4, 0x0000
+ .short 0x010C, 0x02B5, 0x02B6, 0x0000
+ .short 0x010D, 0x02AD, 0x02AE, 0x0000
+ .short 0x010E, 0x02AF, 0x02B0, 0x0000
+ .short 0x010F, 0x02B1, 0x02B2, 0x0000
+ .short 0x0110, 0x0204, 0x0205, 0x0000
+ .short 0x0111, 0x0206, 0x0207, 0x0000
+ .short 0x0112, 0x0208, 0x0209, 0x0000
+ .short 0x0113, 0x026B, 0x026C, 0x0000
+ .short 0x0114, 0x026B, 0x026D, 0x0000
+ .short 0x0115, 0x026B, 0x026E, 0x0000
+ .short 0x0116, 0x026B, 0x026F, 0x0000
+ .short 0x0117, 0x026B, 0x0270, 0x0000
+ .short 0x0118, 0x026B, 0x0271, 0x0000
+ .short 0x0119, 0x026B, 0x0272, 0x0000
+ .short 0x011A, 0x026B, 0x0273, 0x0000
+ .short 0x011B, 0x026B, 0x0274, 0x0000
+ .short 0x011C, 0x026B, 0x0275, 0x0000
+ .short 0x011D, 0x026B, 0x0276, 0x0000
+ .short 0x011E, 0x026B, 0x0277, 0x0000
+ .short 0x011F, 0x026B, 0x0278, 0x0000
+ .short 0x0120, 0x026B, 0x0279, 0x0000
+ .short 0x0121, 0x026B, 0x027A, 0x0000
+ .short 0x0122, 0x026B, 0x027B, 0x0000
+ .short 0x0123, 0x020A, 0x020B, 0x0000
+ .short 0x0124, 0x020C, 0x020D, 0x0000
+ .short 0x0125, 0x020E, 0x020F, 0x0000
+ .short 0x0126, 0x0210, 0x0211, 0x0000
+ .short 0x0127, 0x0212, 0x0213, 0x0000
+ .short 0x0128, 0x0214, 0x0215, 0x0000
+ .short 0x0129, 0x0216, 0x0217, 0x0000
+ .short 0x012A, 0x02B7, 0x02B8, 0x0000
+ .short 0x012B, 0x0218, 0x0219, 0x0000
+ .short 0x012C, 0x021A, 0x021B, 0x0000
+ .short 0x012D, 0x021C, 0x021D, 0x0000
+ .short 0x012E, 0x021E, 0x021F, 0x0000
+ .short 0x012F, 0x0220, 0x0221, 0x0000
+ .short 0x0130, 0x0222, 0x0223, 0x0000
+ .short 0x0131, 0x018D, 0x018E, 0x0121
+ .short 0x0132, 0x018D, 0x018F, 0x0122
+ .short 0x0133, 0x018D, 0x0190, 0x0123
+ .short 0x0134, 0x018D, 0x0191, 0x0124
+ .short 0x0135, 0x018D, 0x0192, 0x0125
+ .short 0x0136, 0x018D, 0x0193, 0x0126
+ .short 0x0137, 0x018D, 0x0194, 0x0127
+ .short 0x0138, 0x018D, 0x018E, 0x0128
+ .short 0x0139, 0x018D, 0x0195, 0x0129
+ .short 0x013A, 0x018D, 0x0192, 0x012A
+ .short 0x013B, 0x018D, 0x0196, 0x012B
+ .short 0x013C, 0x018D, 0x0197, 0x012C
+ .short 0x013D, 0x018D, 0x0194, 0x012D
+ .short 0x013E, 0x018D, 0x0194, 0x012E
+ .short 0x013F, 0x018D, 0x0192, 0x012F
+ .short 0x0140, 0x018D, 0x0191, 0x0130
+ .short 0x0141, 0x018D, 0x0192, 0x0131
+ .short 0x0142, 0x018D, 0x0190, 0x0132
+ .short 0x0143, 0x018D, 0x0195, 0x0133
+ .short 0x0144, 0x018D, 0x0192, 0x0134
+ .short 0x0145, 0x018D, 0x0192, 0x0135
+ .short 0x0146, 0x018D, 0x0195, 0x0136
+ .short 0x0147, 0x018D, 0x0198, 0x0137
+ .short 0x0148, 0x018D, 0x0199, 0x0138
+ .short 0x0149, 0x018D, 0x0199, 0x0139
+ .short 0x014A, 0x018D, 0x019A, 0x013A
+ .short 0x014B, 0x018D, 0x0192, 0x013B
+ .short 0x014C, 0x018D, 0x019A, 0x013C
+ .short 0x014D, 0x018D, 0x0191, 0x013D
+ .short 0x014E, 0x018D, 0x019B, 0x013E
+ .short 0x014F, 0x018D, 0x018E, 0x013F
+ .short 0x0150, 0x018D, 0x0192, 0x0140
+ .short 0x0151, 0x018D, 0x0191, 0x0141
+ .short 0x0152, 0x018D, 0x0199, 0x0142
+ .short 0x0153, 0x018D, 0x0196, 0x0143
+ .short 0x0154, 0x018D, 0x0193, 0x0144
+ .short 0x0155, 0x018D, 0x019C, 0x0145
+ .short 0x0156, 0x018D, 0x0196, 0x0146
+ .short 0x0157, 0x018D, 0x019C, 0x0147
+ .short 0x0158, 0x018D, 0x019D, 0x0148
+ .short 0x0159, 0x018D, 0x0197, 0x0149
+ .short 0x015A, 0x018D, 0x0192, 0x014A
+ .short 0x015B, 0x018D, 0x0192, 0x014B
+ .short 0x015C, 0x018D, 0x0191, 0x014C
+ .short 0x015D, 0x018D, 0x0192, 0x014D
+ .short 0x015E, 0x018D, 0x0197, 0x014E
+ .short 0x015F, 0x018D, 0x0198, 0x014F
+ .short 0x0160, 0x018D, 0x0191, 0x0150
+ .short 0x0161, 0x018D, 0x0197, 0x0151
+ .short 0x0162, 0x018D, 0x0196, 0x0152
+ .short 0x0163, 0x018D, 0x019D, 0x0000
+ .short 0x0164, 0x018D, 0x018E, 0x0000
+ .short 0x0165, 0x018D, 0x0195, 0x0000
+ .short 0x0166, 0x018D, 0x0192, 0x0000
+ .short 0x0167, 0x018D, 0x0190, 0x0000
+ .short 0x0168, 0x018D, 0x0197, 0x0000
+ .short 0x0169, 0x018D, 0x0199, 0x0000
+ .short 0x016A, 0x018D, 0x0192, 0x0000
+ .short 0x016B, 0x018D, 0x018F, 0x0000
+ .short 0x016C, 0x018D, 0x018E, 0x0000
+ .short 0x016D, 0x018D, 0x0196, 0x0000
+ .short 0x016E, 0x018D, 0x0262, 0x0000
+ .short 0x016F, 0x018D, 0x0197, 0x0000
+ .short 0x0170, 0x018D, 0x0192, 0x0000
+ .short 0x0171, 0x018D, 0x019B, 0x0000
+ .short 0x0172, 0x018D, 0x0197, 0x0000
+ .short 0x0173, 0x018D, 0x0192, 0x0000
+ .short 0x0174, 0x018D, 0x0192, 0x0000
+ .short 0x0175, 0x018D, 0x019C, 0x0000
+ .short 0x0176, 0x018D, 0x0192, 0x0000
+ .short 0x0177, 0x018D, 0x019C, 0x0000
+ .short 0x0178, 0x018D, 0x0194, 0x0000
+ .short 0x0179, 0x018D, 0x0199, 0x0000
+ .short 0x017A, 0x018D, 0x0198, 0x0000
+ .short 0x017B, 0x018D, 0x0192, 0x0000
+ .short 0x017C, 0x018D, 0x019C, 0x0000
+ .short 0x017D, 0x018D, 0x0192, 0x0000
+ .short 0x017E, 0x018D, 0x0192, 0x0000
+ .short 0x017F, 0x018D, 0x0197, 0x0000
+ .short 0x0180, 0x018D, 0x019C, 0x0000
+ .short 0x0181, 0x018D, 0x0262, 0x0000
+ .short 0x0182, 0x018D, 0x0192, 0x0000
+ .short 0x0183, 0x018D, 0x0192, 0x0000
+ .short 0x0184, 0x018D, 0x0193, 0x0000
+ .short 0x0185, 0x018D, 0x0191, 0x0000
+ .short 0x0186, 0x018D, 0x0195, 0x0000
+ .short 0x0187, 0x018D, 0x0192, 0x0000
+ .short 0x0188, 0x018D, 0x019D, 0x0000
+ .short 0x0189, 0x018D, 0x0262, 0x0000
+ .short 0x018A, 0x018D, 0x0192, 0x0000
+ .short 0x018B, 0x018D, 0x0198, 0x0000
+ .short 0x018C, 0x018D, 0x0191, 0x0000
+ .short 0x018D, 0x019E, 0x0192, 0x0153
+ .short 0x018E, 0x019E, 0x019D, 0x0154
+ .short 0x018F, 0x019E, 0x0190, 0x0155
+ .short 0x0190, 0x019E, 0x0192, 0x0156
+ .short 0x0191, 0x019E, 0x0190, 0x0157
+ .short 0x0192, 0x019E, 0x018E, 0x0158
+ .short 0x0193, 0x019E, 0x0190, 0x0159
+ .short 0x0194, 0x019E, 0x0192, 0x015A
+ .short 0x0195, 0x0224, 0x0225, 0x0000
+ .short 0x0196, 0x0226, 0x0227, 0x0000
+ .short 0x0197, 0x0228, 0x0229, 0x0000
+ .short 0x0198, 0x02B9, 0x02BA, 0x0000
+ .short 0x0199, 0x02A9, 0x02AA, 0x0000
+ .short 0x019A, 0x025E, 0x025F, 0x0000
+ .short 0x019B, 0x029F, 0x02A0, 0x0000
+ .short 0x019C, 0x02A3, 0x02A4, 0x0000
+ .short 0x019D, 0x02A1, 0x02A2, 0x0000
+ .short 0x019E, 0x0295, 0x0296, 0x0000
+ .short 0x019F, 0x0284, 0x0285, 0x0000
+ .short 0x01A0, 0x025C, 0x025D, 0x0000
+ .short 0x01A1, 0x0290, 0x0291, 0x0000
+ .short 0x01A2, 0x02A7, 0x02A8, 0x0000
+ .short 0x01A3, 0x01B7, 0x01B8, 0x0169
+ .short 0x01A4, 0x01B9, 0x01BA, 0x016A
+ .short 0x01A5, 0x015D, 0x015E, 0x0104
+ .short 0x01A6, 0x0161, 0x0162, 0x0106
+ .short 0x01A7, 0x0163, 0x0164, 0x0107
+ .short 0x01A8, 0x0165, 0x0166, 0x0108
+ .short 0x01A9, 0x016B, 0x016C, 0x0000
+ .short 0x01AA, 0x0175, 0x0176, 0x0000
+ .short 0x01AB, 0x01B5, 0x01B6, 0x0168
+ .short 0x01AC, 0x01AD, 0x01AE, 0x0000
+ .short 0x01AD, 0x0177, 0x0040, 0x0000
+ .short 0x01AE, 0x025A, 0x025B, 0x0000
+ .short 0x01AF, 0x0260, 0x0261, 0x0000
+ .short 0x01B0, 0x02A5, 0x02A6, 0x0000
+ .short 0x01B1, 0x0167, 0x0168, 0x0109
+ .short 0x01B2, 0x0169, 0x016A, 0x010A
+ .short 0x01B3, 0x0254, 0x0255, 0x0000
+ .short 0x01B4, 0x019F, 0x01A0, 0x015D
+ .short 0x01B5, 0x01A1, 0x01A2, 0x0000
+ .short 0x01B6, 0x01A3, 0x01A4, 0x0000
+ .short 0x01B7, 0x01A5, 0x01A6, 0x0000
+ .short 0x01B8, 0x0256, 0x0257, 0x011D
+ .short 0x01B9, 0x0258, 0x0259, 0x0000
.text
@@ -401,7 +621,7 @@ _0206E672:
bx lr
_0206E67C:
lsl r1, r0, #0x3
- ldr r0, _0206E6C8 ; =UNK_020F85B6
+ ldr r0, _0206E6C8 ; =UNK_020F85B4 + 2
ldrh r0, [r0, r1]
bx lr
_0206E684:
@@ -418,7 +638,7 @@ _0206E68E:
bx lr
_0206E698:
lsl r1, r0, #0x3
- ldr r0, _0206E6D0 ; =UNK_020F85B8
+ ldr r0, _0206E6D0 ; =UNK_020F85B4 + 4
ldrh r0, [r0, r1]
bx lr
_0206E6A0:
@@ -428,7 +648,7 @@ _0206E6A0:
cmp r0, r1
beq _0206E6B2
lsl r1, r0, #0x3
- ldr r0, _0206E6D4 ; =UNK_020F85BA
+ ldr r0, _0206E6D4 ; =UNK_020F85B4 + 6
ldrh r0, [r0, r1]
bx lr
_0206E6B2:
@@ -439,10 +659,10 @@ _0206E6B8: .word 0x0000FFFF
_0206E6BC: .word UNK_020F85B4
_0206E6C0: .word 0x000002BB
_0206E6C4: .word 0x000002BD
-_0206E6C8: .word UNK_020F85B6
+_0206E6C8: .word UNK_020F85B4 + 2
_0206E6CC: .word 0x000002BE
-_0206E6D0: .word UNK_020F85B8
-_0206E6D4: .word UNK_020F85BA
+_0206E6D0: .word UNK_020F85B4 + 4
+_0206E6D4: .word UNK_020F85B4 + 6
thumb_func_start FUN_0206E6D8
FUN_0206E6D8: ; 0x0206E6D8
@@ -507,14 +727,14 @@ _0206E72C:
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E73A:
- ldr r1, _0206E760 ; =UNK_020F85B6
+ ldr r1, _0206E760 ; =UNK_020F85B4 + 2
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
mov r0, #0x10
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E748:
- ldr r1, _0206E764 ; =UNK_020F85B8
+ ldr r1, _0206E764 ; =UNK_020F85B4 + 4
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
mov r0, #0x10
@@ -525,8 +745,8 @@ _0206E756:
pop {r3, pc}
nop
_0206E75C: .word UNK_020F85B4
-_0206E760: .word UNK_020F85B6
-_0206E764: .word UNK_020F85B8
+_0206E760: .word UNK_020F85B4 + 2
+_0206E764: .word UNK_020F85B4 + 4
thumb_func_start FUN_0206E768
FUN_0206E768: ; 0x0206E768
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index 2a03ef5f..4534dc1b 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -1666,7 +1666,7 @@ FUN_0207008C: ; 0x0207008C
ldr r0, _020701DC ; =0x000005A4
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp, #0x0]
cmp r0, r1
bgt _020700BC
@@ -1677,11 +1677,11 @@ _020700BC:
ldr r0, _020701DC ; =0x000005A4
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x4]
@@ -1705,42 +1705,42 @@ _020700DE:
add r0, r7, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701E4 ; =0x00000706
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701E8 ; =0x00000708
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701EC ; =0x0000070A
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701F0 ; =0x0000070C
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xa1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701F4 ; =0x00000712
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x71
add r2, r5, r6
lsl r1, r1, #0x4
@@ -1748,14 +1748,14 @@ _020700DE:
add r0, r7, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701F8 ; =0x00000711
add r2, r5, r6
strb r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xaf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
ldr r0, _020701FC ; =0x0000070E
bne _02070184
@@ -1775,7 +1775,7 @@ _0207018E:
ldr r0, _020701FC ; =0x0000070E
add r6, r5, r0
add r0, r7, #0x0
- bl GetMonGenderEncrypted
+ bl GetMonGender
lsl r0, r0, #0x1e
ldrh r2, [r6, r4]
ldr r1, _02070204 ; =0xFFFF9FFF
@@ -1864,7 +1864,7 @@ _02070256:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207026C
add r4, r4, #0x1
@@ -1925,106 +1925,106 @@ _020702BE: ; jump table (using 16-bit offset)
_020702C8:
mov r1, #0x7a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x7b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x7c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x7d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_020702F8:
mov r1, #0x7e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x7f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x80
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x81
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_02070328:
mov r1, #0x82
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x83
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x84
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x85
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_02070358:
mov r1, #0x86
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x87
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x88
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x89
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_02070388:
mov r1, #0x8a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x8b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x8c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x8d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
_020703B6:
add r0, r4, #0x0
@@ -2809,7 +2809,7 @@ FUN_020709FC: ; 0x020709FC
add r6, r1, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, _02070A7C ; =0x00000B23
ldrb r2, [r5, r1]
lsl r3, r2, #0x19
@@ -2839,7 +2839,7 @@ _02070A38:
_02070A3A:
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02070A4E
add r0, r4, #0x2
@@ -3755,7 +3755,7 @@ FUN_0207117C: ; 0x0207117C
ldr r1, [sp, #0x0]
ldr r0, [r0, #0x0]
ldrb r1, [r1, r2]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x8]
ldr r0, [sp, #0x4]
mov r1, #0x1
@@ -3790,7 +3790,7 @@ _020711D0:
ldr r0, [sp, #0x8]
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
beq _02071210
@@ -3996,7 +3996,7 @@ FUN_02071340: ; 0x02071340
cmp r0, #0x0
beq _0207136E
ldr r0, [r2, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _020713E0 ; =0x000005A4
ldr r2, _020713E4 ; =0x00000B34
@@ -5033,7 +5033,7 @@ _02071B34:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, _02071C3C ; =0x0000069C
mov r1, #0x40
@@ -5244,12 +5244,12 @@ _02071D14:
add r1, r6, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldrh r1, [r7, r4]
add r2, sp, #0x0
str r1, [sp, #0x0]
mov r1, #0xa2
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
pop {r3-r7, pc}
_02071D30:
@@ -5426,7 +5426,7 @@ _02071E5A:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _02071F1C ; =0x000005A4
mov r2, #0x3
@@ -5436,7 +5436,7 @@ _02071E5A:
str r0, [sp, #0x0]
ldrh r3, [r3, #0x24]
mov r0, #0x0
- bl FUN_02069168
+ bl GetMonEvolution
ldr r1, _02071F1C ; =0x000005A4
ldr r2, [r5, r1]
strh r0, [r2, #0x38]
@@ -5460,7 +5460,7 @@ _02071ECC:
ldr r0, [r1, #0x0]
ldr r1, _02071F20 ; =0x00000B25
ldrb r1, [r5, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _02071F1C ; =0x000005A4
ldr r2, [r5, r0]
@@ -5526,7 +5526,7 @@ FUN_02071F58: ; 0x02071F58
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
mov r7, #0x89
add r0, r5, #0x0
@@ -5670,7 +5670,7 @@ FUN_02072080: ; 0x02072080
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02069EC4
ldr r1, _020720D8 ; =0x00000B25
@@ -5713,7 +5713,7 @@ FUN_020720E0: ; 0x020720E0
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02069EC4
ldr r1, _02072138 ; =0x00000B25
@@ -5804,7 +5804,7 @@ _020721B0:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
ldr r0, _020722A8 ; =0x000005A4
ldr r0, [r5, r0]
@@ -5968,7 +5968,7 @@ FUN_0207230C: ; 0x0207230C
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
ldr r0, _02072410 ; =0x000005A4
ldr r0, [r5, r0]
diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s
index 8c630d8e..062862b7 100644
--- a/arm9/asm/unk_02072548.s
+++ b/arm9/asm/unk_02072548.s
@@ -582,7 +582,7 @@ _0207297E:
ldr r1, _020729CC ; =0x00000B25
ldr r0, [r2, #0x0]
ldrb r1, [r5, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, _020729D0 ; =0x0000069C
mov r1, #0x25
@@ -1211,7 +1211,7 @@ _02072E98:
add r1, r4, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
mov r0, #0x0
ldr r3, _02072EE0 ; =0x000005A4
@@ -1219,7 +1219,7 @@ _02072E98:
ldr r3, [r5, r3]
mov r2, #0x3
ldrh r3, [r3, #0x24]
- bl FUN_02069168
+ bl GetMonEvolution
cmp r0, #0x0
bne _02072ED0
add r0, r5, #0x0
@@ -1280,7 +1280,7 @@ _02072F2C:
add r1, r4, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_02076AA0
@@ -1983,41 +1983,41 @@ FUN_020734C0: ; 0x020734C0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa3
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0xa4
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x2]
add r0, r4, #0x0
mov r1, #0xa5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x4]
add r0, r4, #0x0
mov r1, #0xa7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x6]
add r0, r4, #0x0
mov r1, #0xa8
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x8]
add r0, r4, #0x0
mov r1, #0xa6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0xa]
mov r3, #0x1
diff --git a/arm9/asm/unk_02073710.s b/arm9/asm/unk_02073710.s
index 7a217fbe..16631f9e 100644
--- a/arm9/asm/unk_02073710.s
+++ b/arm9/asm/unk_02073710.s
@@ -218,7 +218,7 @@ FUN_020737D0: ; 0x020737D0
add r4, r2, #0x0
ldr r0, [r0, #0x0]
add r7, r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
lsl r1, r4, #0x10
asr r6, r1, #0x10
mov r1, #0x2c
@@ -248,7 +248,7 @@ FUN_020737D0: ; 0x020737D0
ldr r0, [sp, #0x10]
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
str r7, [sp, #0x14]
add r0, sp, #0x14
diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s
index 9afd1e10..cb5d7a22 100644
--- a/arm9/asm/unk_02073DA8.s
+++ b/arm9/asm/unk_02073DA8.s
@@ -199,7 +199,7 @@ FUN_02073EEC: ; 0x02073EEC
bne _02073F66
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, _02074058 ; =0x0000069C
add r6, r0, #0x0
ldr r0, [r5, r2]
@@ -238,13 +238,13 @@ _02073F66:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x0
str r1, [sp, #0x0]
add r6, r0, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
bl FUN_02069EC4
ldr r2, _02074058 ; =0x0000069C
@@ -530,7 +530,7 @@ FUN_02074200: ; 0x02074200
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _02074268 ; =0x000005A4
mov r2, #0xc
@@ -625,13 +625,13 @@ FUN_020742A8: ; 0x020742A8
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x0
str r1, [sp, #0x0]
add r5, r0, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02069EC4
ldr r1, _02074330 ; =0x00000B25
@@ -789,7 +789,7 @@ FUN_02074428: ; 0x02074428
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_0206AA84
ldr r0, _0207444C ; =0x000005A4
mov r1, #0x0
@@ -2383,10 +2383,10 @@ FUN_02075118: ; 0x02075118
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
ldr r2, _02075198 ; =0x0000069C
bne _0207515C
diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s
index 7186cf11..995ebf7e 100644
--- a/arm9/asm/unk_0207550C.s
+++ b/arm9/asm/unk_0207550C.s
@@ -365,7 +365,7 @@ FUN_020757F4: ; 0x020757F4
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
add r5, r2, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0x0
mov r0, #0x6a
@@ -1045,53 +1045,53 @@ FUN_02075DC0: ; 0x02075DC0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xd
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
add r0, r4, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x18]
add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x14]
add r0, r4, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
add r0, r4, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
add r0, r4, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x8]
add r0, r4, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r0, _02075F4C ; =0x000005A4
@@ -1135,42 +1135,42 @@ FUN_02075DC0: ; 0x02075DC0
add r0, r4, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x1c]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x18]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x14]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0xc]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x8]
cmp r1, r0
beq _02075F26
@@ -1178,7 +1178,7 @@ _02075EFA:
add r0, r4, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
ldr r1, _02075F4C ; =0x000005A4
beq _02075F18
@@ -1243,11 +1243,11 @@ FUN_02075F60: ; 0x02075F60
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0x0
str r0, [sp, #0x8]
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
ldr r0, _02076084 ; =0x00000B25
ldrb r1, [r5, r0]
@@ -1372,10 +1372,10 @@ FUN_020760A0: ; 0x020760A0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02076134 ; =0x00000B25
add r4, r0, #0x0
ldrb r2, [r5, r1]
@@ -1558,7 +1558,7 @@ _02076212:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
add r0, r4, #0x0
bl FUN_020772CC
@@ -1574,7 +1574,7 @@ _02076212:
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r0, _020763E4 ; =0x0000069C
mov r1, #0x46
ldr r0, [r4, r0]
@@ -1646,10 +1646,10 @@ _020762DC:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, _020763E0 ; =0x00000B25
add r5, r0, #0x0
ldr r0, _02076400 ; =0x00000706
@@ -1782,42 +1782,42 @@ FUN_0207640C: ; 0x0207640C
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa3
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B8 ; =0x00000B28
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa4
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765BC ; =0x00000B2A
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa5
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765C0 ; =0x00000B2C
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa7
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765C4 ; =0x00000B2E
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa8
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xb3
lsl r1, r1, #0x4
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765C8 ; =0x00000B32
strh r0, [r5, r1]
ldr r0, _020765B0 ; =0x000005A4
@@ -1836,7 +1836,7 @@ FUN_0207640C: ; 0x0207640C
add r0, r4, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
@@ -1847,7 +1847,7 @@ FUN_0207640C: ; 0x0207640C
add r0, r4, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
@@ -1858,7 +1858,7 @@ FUN_0207640C: ; 0x0207640C
add r0, r4, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
@@ -2056,7 +2056,7 @@ _02076680:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, _02076878 ; =0x000005A4
add r5, r0, #0x0
ldr r2, [r4, r1]
@@ -2196,7 +2196,7 @@ _020767A4:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, _02076878 ; =0x000005A4
add r1, r0, #0x0
ldr r2, [r4, r2]
@@ -2241,7 +2241,7 @@ _02076814:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
ldr r0, _02076878 ; =0x000005A4
ldr r0, [r4, r0]
@@ -2260,7 +2260,7 @@ _02076814:
ldr r0, [r1, #0x0]
add r1, r5, #0x0
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
ldr r1, _02076878 ; =0x000005A4
ldr r2, [r4, r1]
strh r0, [r2, #0x38]
@@ -2307,7 +2307,7 @@ FUN_02076890: ; 0x02076890
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -2335,7 +2335,7 @@ _020768E6:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -2540,7 +2540,7 @@ _02076AAA:
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, [r5, r7]
@@ -2586,7 +2586,7 @@ FUN_02076AF8: ; 0x02076AF8
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
add r0, r4, #0x0
add r1, r6, #0x0
@@ -2775,7 +2775,7 @@ FUN_02076C94: ; 0x02076C94
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -2803,7 +2803,7 @@ _02076CDC:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -2854,7 +2854,7 @@ FUN_02076D3C: ; 0x02076D3C
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, _02076DC4 ; =0x000005A4
add r1, r0, #0x0
ldr r2, [r5, r2]
@@ -3080,14 +3080,14 @@ FUN_02076F2C: ; 0x02076F2C
str r0, [sp, #0x0]
add r0, r4, #0x0
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add r1, r6, #0x0
str r0, [sp, #0x0]
add r0, r4, #0x0
add r1, #0x3e
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _02076FAC ; =0x000005A4
mov r1, #0x0
ldr r0, [r5, r0]
@@ -3098,7 +3098,7 @@ FUN_02076F2C: ; 0x02076F2C
add r0, r4, #0x0
add r1, r6, #0x0
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _02076FAC ; =0x000005A4
ldr r1, [r5, r0]
ldrh r0, [r1, #0x24]
@@ -3121,7 +3121,7 @@ _02076F98:
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x4
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_02076FA8:
add sp, #0x4
pop {r3-r6, pc}
@@ -3138,11 +3138,11 @@ FUN_02076FB0: ; 0x02076FB0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, _02077034 ; =0x0000069C
@@ -3375,11 +3375,11 @@ _0207716A:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x36
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02077234 ; =0x000005A4
add r2, r0, #0x0
ldr r1, [r5, r1]
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 11d65c38..9da982ce 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -1555,7 +1555,7 @@ _0207A8C0:
mov r1, #0x13
ldrb r6, [r5, r0]
add r0, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA08 ; =0x00000295
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1572,7 +1572,7 @@ _0207A8F4:
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA0C ; =0x00000296
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1589,7 +1589,7 @@ _0207A916:
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA10 ; =0x00000297
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1607,7 +1607,7 @@ _0207A938:
add r0, r4, #0x0
mov r1, #0x16
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xa6
lsl r1, r1, #0x2
strb r0, [r5, r1]
@@ -1625,7 +1625,7 @@ _0207A95E:
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA14 ; =0x00000299
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1640,7 +1640,7 @@ _0207A980:
add r0, r4, #0x0
mov r1, #0x18
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA18 ; =0x0000029A
strb r0, [r5, r1]
sub r1, #0x4e
@@ -1843,12 +1843,12 @@ FUN_0207AB0C: ; 0x0207AB0C
add r7, r0, #0x0
add r0, r6, #0x0
add r5, r2, #0x0
- bl TryDecryptMon
+ bl AcquireMonLock
str r0, [sp, #0x4]
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xc]
add r0, r6, #0x0
bl FUN_020690E4
@@ -1913,12 +1913,12 @@ FUN_0207AB0C: ; 0x0207AB0C
add r0, r6, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xe]
add r0, r6, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldrb r1, [r5, #0x12]
mov r2, #0x7f
lsl r0, r0, #0x18
@@ -1931,7 +1931,7 @@ FUN_0207AB0C: ; 0x0207AB0C
add r0, r6, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1f
ldr r2, [r5, #0x50]
ldr r1, _0207AEB4 ; =0xEFFFFFFF
@@ -1942,7 +1942,7 @@ FUN_0207AB0C: ; 0x0207AB0C
add r0, r6, #0x0
mov r1, #0xaf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _0207AC16
ldr r0, [r5, #0x50]
@@ -1961,7 +1961,7 @@ _0207AC16:
strb r0, [r5, #0x12]
_0207AC1E:
add r0, r6, #0x0
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldrb r1, [r5, #0x13]
mov r2, #0x3
bic r1, r2
@@ -1972,7 +1972,7 @@ _0207AC1E:
add r0, r6, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
lsl r0, r0, #0x1a
@@ -1985,27 +1985,27 @@ _0207AC1E:
add r0, r6, #0x0
mov r1, #0xb0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x10]
add r0, r6, #0x0
mov r1, #0xb1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x11]
add r0, r6, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x14]
add r0, r6, #0x0
mov r1, #0x8
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x18]
add r0, r6, #0x0
mov r1, #0x9c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x44
strb r0, [r1, #0x0]
@@ -2013,7 +2013,7 @@ _0207AC1E:
ldrh r0, [r5, #0xc]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [r5, #0x1c]
ldrb r0, [r5, #0x12]
lsl r0, r0, #0x19
@@ -2025,53 +2025,53 @@ _0207AC1E:
_0207ACAA:
ldrh r0, [r5, #0xc]
add r1, r1, #0x1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
_0207ACB2:
str r0, [r5, #0x20]
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x24]
add r0, r6, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x26]
add r0, r6, #0x0
mov r1, #0xa4
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x28]
add r0, r6, #0x0
mov r1, #0xa5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x2a]
add r0, r6, #0x0
mov r1, #0xa7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x2c]
add r0, r6, #0x0
mov r1, #0xa8
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x2e]
add r0, r6, #0x0
mov r1, #0xa6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x30]
add r0, r6, #0x0
mov r1, #0xa
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x32
strb r0, [r1, #0x0]
add r0, r6, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r1, r5, #0x0
add r1, #0x33
strb r0, [r1, #0x0]
@@ -2084,14 +2084,14 @@ _0207AD26:
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x0]
mov r2, #0x0
strh r0, [r1, #0x34]
add r1, r4, #0x0
add r0, r6, #0x0
add r1, #0x3a
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, r4
add r1, #0x3c
strb r0, [r1, #0x0]
@@ -2099,7 +2099,7 @@ _0207AD26:
add r0, r6, #0x0
add r1, #0x3e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x0]
@@ -2116,42 +2116,42 @@ _0207AD26:
add r0, r6, #0x0
mov r1, #0x13
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x45
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x14
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x46
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x15
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x47
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x16
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x48
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x17
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x49
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x18
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x4a
strb r0, [r1, #0x0]
@@ -2180,14 +2180,14 @@ _0207ADFE:
add r0, r6, #0x0
mov r1, #0xb
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x4c
strh r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x4e
strh r0, [r1, #0x0]
@@ -2243,7 +2243,7 @@ _0207AE7C:
str r0, [r5, #0x50]
_0207AE84:
add r0, r6, #0x0
- bl FUN_02068A80
+ bl MonIsShiny
cmp r0, #0x1
ldr r1, [r5, #0x50]
bne _0207AE98
@@ -2281,7 +2281,7 @@ _0207AECC:
add r1, r0, #0x0
add r0, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207AF04
lsr r0, r4, #0x5
@@ -2308,7 +2308,7 @@ _0207AF04:
blo _0207AECC
ldr r1, [sp, #0x4]
add r0, r6, #0x0
- bl TryEncryptMon
+ bl ReleaseMonLock
add sp, #0x8
pop {r3-r7, pc}
nop
@@ -3123,13 +3123,13 @@ _0207B528:
add r0, r6, r7
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B50C
add r0, r6, r7
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B55E
add r0, r5, #0x0
@@ -3169,17 +3169,17 @@ _0207B588:
_0207B58E:
ldr r0, [r1, #0x0]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B574
add r0, r6, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B5BC
add r0, r5, #0x0
@@ -3227,13 +3227,13 @@ _0207B5EC:
add r0, r6, r7
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0207B5D0
add r0, r6, r7
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0207B622
add r0, r5, #0x0
@@ -3269,7 +3269,7 @@ _0207B640:
_0207B64E:
ldrb r1, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, pc}
_0207B658:
bl FUN_020690C8
@@ -4814,12 +4814,12 @@ FUN_0207C2D4: ; 0x0207C2D4
add r5, r0, #0x0
mov r1, #0x9f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0207C2F4
mov r0, #0x6
diff --git a/arm9/asm/unk_0207FD00.s b/arm9/asm/unk_0207FD00.s
index 903c4d94..1f17ee0a 100644
--- a/arm9/asm/unk_0207FD00.s
+++ b/arm9/asm/unk_0207FD00.s
@@ -472,7 +472,7 @@ FUN_020800E0: ; 0x020800E0
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, [r5, #0xc]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r4, r0, #0x0
cmp r4, #0x18
bgt _02080106
@@ -511,7 +511,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x94
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -523,7 +523,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x95
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x1
@@ -531,7 +531,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x96
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -544,7 +544,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x9b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -557,7 +557,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x4
@@ -565,7 +565,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x91
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -577,7 +577,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x92
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x6
@@ -585,7 +585,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x93
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -598,7 +598,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x8
@@ -635,7 +635,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x94
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -647,7 +647,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x95
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r4, #0x8]
mov r1, #0x1
@@ -655,7 +655,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x96
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -668,7 +668,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x9b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -681,7 +681,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x79
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xf
bhi _020802F8
add r0, r0, r0
@@ -797,7 +797,7 @@ FUN_02080384: ; 0x02080384
bne _02080418
mov r1, #0x91
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -809,7 +809,7 @@ FUN_02080384: ; 0x02080384
ldr r0, [r5, #0xc]
mov r1, #0x92
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x6
@@ -817,7 +817,7 @@ FUN_02080384: ; 0x02080384
ldr r0, [r5, #0xc]
mov r1, #0x93
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -830,7 +830,7 @@ FUN_02080384: ; 0x02080384
ldr r0, [r5, #0xc]
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x8
@@ -839,7 +839,7 @@ FUN_02080384: ; 0x02080384
_02080418:
mov r1, #0x94
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -851,7 +851,7 @@ _02080418:
ldr r0, [r5, #0xc]
mov r1, #0x95
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x6
@@ -859,7 +859,7 @@ _02080418:
ldr r0, [r5, #0xc]
mov r1, #0x96
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -872,7 +872,7 @@ _02080418:
ldr r0, [r5, #0xc]
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x8
@@ -899,37 +899,37 @@ FUN_0208048C: ; 0x0208048C
ldr r0, [r4, #0xc]
mov r1, #0x46
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4, #0xc]
mov r1, #0x47
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
ldr r0, [r4, #0xc]
mov r1, #0x48
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x4]
ldr r0, [r4, #0xc]
mov r1, #0x49
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x0]
ldr r0, [r4, #0xc]
mov r1, #0x4a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x4b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r1, #0x0
ldr r0, [r4, #0xc]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x6
bl _u32_div_f
cmp r1, #0x5
@@ -1196,7 +1196,7 @@ FUN_020806B4: ; 0x020806B4
ldr r0, [r5, #0xc]
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
mov r0, #0x12
ldr r1, [r5, #0x0]
@@ -1232,7 +1232,7 @@ FUN_020806F4: ; 0x020806F4
mov r1, #0x4c
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02080708
b _0208084E
@@ -1240,13 +1240,13 @@ _02080708:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02080774
add r0, r5, #0x0
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x0
mov r1, #0x37
@@ -1259,7 +1259,7 @@ _02080732:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _0208074C
cmp r4, #0x1
@@ -1273,7 +1273,7 @@ _0208074C:
add r0, r5, #0x0
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
mov r0, #0x1
add r1, r0, #0x0
@@ -1294,13 +1294,13 @@ _02080774:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _020807D6
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
mov r1, #0x2
@@ -1318,7 +1318,7 @@ _020807A6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
mov r0, #0x2
mov r1, #0x1
@@ -1344,7 +1344,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
add r1, r0, #0x0
@@ -1354,7 +1354,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
mov r1, #0x0
@@ -1364,7 +1364,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
mov r1, #0x9
@@ -1374,7 +1374,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
mov r0, #0x1
mov r1, #0xa
@@ -1403,13 +1403,13 @@ _0208084E:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _02080880
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
mov r0, #0x2
mov r1, #0x1
@@ -1428,7 +1428,7 @@ _02080884:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _02080896
mov r0, #0x13
@@ -1484,7 +1484,7 @@ _020808E4:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0208090C
add r0, r4, #0x0
@@ -1514,7 +1514,7 @@ _0208091E:
_0208092A:
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _02080958
add r0, r4, #0x0
@@ -1575,7 +1575,7 @@ _020809B0:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _020809E2
add r0, r4, #0x0
@@ -1601,7 +1601,7 @@ _020809F6:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _02080A1E
add r0, r4, #0x0
@@ -1629,7 +1629,7 @@ _02080A30:
_02080A38:
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _02080AE0
mov r0, #0x1
@@ -1657,39 +1657,39 @@ _02080A66:
add r0, r4, #0x0
mov r1, #0x98
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x97
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x94
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x95
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x92
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x96
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x93
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_02080ACC:
add r0, r4, #0x0
add r1, r5, #0x0
@@ -1723,15 +1723,15 @@ FUN_02080AE4: ; 0x02080AE4
add r0, r5, #0x0
mov r1, #0x7
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x9c
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x90
add r2, r4, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
bl FUN_02021A20
add sp, #0x8
@@ -1751,19 +1751,19 @@ FUN_02080B30: ; 0x02080B30
bne _02080B76
add r0, r5, #0x0
mov r1, #0x97
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x92
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x93
add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x10
pop {r3-r5}
pop {r3}
@@ -1772,19 +1772,19 @@ FUN_02080B30: ; 0x02080B30
_02080B76:
add r0, r5, #0x0
mov r1, #0x98
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x94
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x95
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x96
add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x10
pop {r3-r5}
pop {r3}
@@ -1803,36 +1803,36 @@ FUN_02080BA8: ; 0x02080BA8
add r2, sp, #0x0
bne _02080BE0
mov r1, #0x97
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x92
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x93
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
_02080BE0:
mov r1, #0x98
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x94
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x95
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x96
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
@@ -1843,12 +1843,12 @@ FUN_02080C08: ; 0x02080C08
add r4, r0, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x9b
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
.balign 4
@@ -1860,5 +1860,5 @@ FUN_02080C28: ; 0x02080C28
str r1, [sp, #0x0]
mov r1, #0x6e
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
pop {r3, pc}
diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s
index f40af68a..86eedd81 100644
--- a/arm9/asm/unk_02080C38.s
+++ b/arm9/asm/unk_02080C38.s
@@ -108,7 +108,7 @@ _02080CB4:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
add r0, r6, #0x0
bl FUN_020377AC
@@ -1083,7 +1083,7 @@ _02081454:
ldr r0, [r4, #0x0]
ldr r2, [r2, #0x0]
mov r1, #0x90
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r6, #0x1
add r4, r4, #0x4
cmp r6, #0x4
@@ -1223,7 +1223,7 @@ _02081566:
add r0, r5, #0x0
add r1, #0x7a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_02081576:
@@ -1231,7 +1231,7 @@ _02081576:
add r0, r5, #0x0
add r1, #0x7e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_02081586:
@@ -1239,7 +1239,7 @@ _02081586:
add r0, r5, #0x0
add r1, #0x82
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_02081596:
@@ -1247,7 +1247,7 @@ _02081596:
add r0, r5, #0x0
add r1, #0x86
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_020815A6:
@@ -1255,7 +1255,7 @@ _020815A6:
add r0, r5, #0x0
add r1, #0x8a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_020815B6:
@@ -2973,7 +2973,7 @@ FUN_02082254: ; 0x02082254
ldr r0, _02082280 ; =0x00001990
mov r2, #0x0
ldr r0, [r4, r0]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0208227A
mov r0, #0x1
@@ -3590,7 +3590,7 @@ _020826AC:
add r1, r6, #0x0
ldr r0, [r4, r0]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _020826DE
mov r5, #0x1
@@ -3599,7 +3599,7 @@ _020826DE:
add r1, r6, #0x0
ldr r0, [r4, r0]
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
_020826EA:
ldr r0, _02082848 ; =0x0000198C
ldr r0, [r4, r0]
@@ -3748,7 +3748,7 @@ _02082820:
lsl r2, r2, #0x10
mov r1, #0x9
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_0208283A:
add sp, #0xc
pop {r4-r7, pc}
diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s
index fb6f03c8..316c13b0 100644
--- a/arm9/asm/unk_020828BC.s
+++ b/arm9/asm/unk_020828BC.s
@@ -765,7 +765,7 @@ FUN_02082D60: ; 0x02082D60
lsl r1, r1, #0x18
lsr r1, r1, #0x18
mov r2, #0x0
- bl FUN_02066E74
+ bl GenPersonalityByGenderAndNature
mov r1, #0x1
str r1, [sp, #0x0]
str r0, [sp, #0x4]
@@ -789,7 +789,7 @@ _02082D9A:
add r0, r6, #0x0
add r1, #0x36
add r2, #0x2
- bl SetMonDataEncrypted
+ bl SetMonData
add r4, r4, #0x1
add r5, r5, #0x2
cmp r4, #0x4
@@ -810,11 +810,11 @@ _02082D9A:
add r0, r6, #0x0
mov r1, #0x76
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r2, [sp, #0x14]
add r0, r6, #0x0
mov r1, #0x90
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02021A20
ldr r0, [sp, #0x14]
@@ -838,30 +838,30 @@ _02082D9A:
strb r1, [r0, #0x0]
add r0, r6, #0x0
mov r1, #0x13
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
mov r1, #0x14
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0x0
mov r1, #0x15
add r2, #0x3
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0x0
mov r1, #0x16
add r2, #0x2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0x0
mov r1, #0x17
add r2, #0x1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
mov r1, #0x18
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x20
pop {r3-r7, pc}
nop
diff --git a/arm9/asm/unk_020842DC.s b/arm9/asm/unk_020842DC.s
index 17aec9b7..b4f2fa48 100644
--- a/arm9/asm/unk_020842DC.s
+++ b/arm9/asm/unk_020842DC.s
@@ -28,7 +28,7 @@ _02084308:
add r0, r6, #0x0
mov r1, #0x9f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0xf
@@ -103,7 +103,7 @@ _020843AA:
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0x17
@@ -139,7 +139,7 @@ _020843EA:
add r0, r6, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bhs _02084414
add r0, r4, #0x0
@@ -156,7 +156,7 @@ _02084414:
add r0, r6, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
bhs _0208443A
add r0, r4, #0x0
@@ -175,7 +175,7 @@ _0208443A:
ldr r3, [sp, #0x4]
add r1, r6, #0x0
mov r2, #0x3
- bl FUN_02069168
+ bl GetMonEvolution
cmp r0, #0x0
beq _02084464
add r0, r4, #0x0
@@ -199,14 +199,14 @@ _0208447C:
add r0, r6, #0x0
add r1, #0x3e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x3
bhs _020844B2
add r1, r7, #0x0
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x0
@@ -260,37 +260,37 @@ _02084502:
add r0, r6, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
add r0, r6, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
add r0, r6, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r6, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
add r0, r6, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r6, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x49
lsl r1, r1, #0x2
cmp r0, r1
@@ -616,7 +616,7 @@ FUN_020847F8: ; 0x020847F8
add r5, r1, #0x0
add r1, r2, #0x0
add r4, r3, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r3, [sp, #0x10]
add r1, r5, #0x0
add r2, r4, #0x0
@@ -652,7 +652,7 @@ _02084840:
mov r1, #0x9f
add r2, r6, #0x0
add r7, r6, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
str r0, [sp, #0x54]
add r0, r4, #0x0
@@ -717,18 +717,18 @@ _020848C0:
add r0, r5, #0x0
mov r1, #0x9f
add r2, sp, #0x54
- bl SetMonDataEncrypted
+ bl SetMonData
mov r6, #0x1
_020848D4:
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
add r0, r5, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x54]
add r0, r4, #0x0
mov r1, #0x17
@@ -786,7 +786,7 @@ _0208495C:
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x58]
add r0, r4, #0x0
mov r1, #0x19
@@ -797,20 +797,20 @@ _0208495C:
cmp r0, #0x64
bge _020849B2
add r0, r5, #0x0
- bl CalcMonExpToNextLevelEncrypted
+ bl CalcMonExpToNextLevel
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0x8
- bl AddMonPartyStatEncrypted
+ bl AddMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [sp, #0x50]
cmp r0, #0x0
bne _020849B0
add r0, r5, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r3, [sp, #0x54]
ldr r1, [sp, #0x50]
@@ -915,37 +915,37 @@ _02084A66:
add r0, r5, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
add r0, r5, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x54]
add r0, r5, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x58]
add r0, r5, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x5c]
add r0, r5, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x60]
add r0, r5, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x64]
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x49
lsl r1, r1, #0x2
cmp r0, r1
@@ -985,9 +985,9 @@ _02084A66:
add r0, r5, #0x0
mov r1, #0xd
add r2, sp, #0x50
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084B18:
ldr r0, [sp, #0x6c]
@@ -1030,9 +1030,9 @@ _02084B20:
add r0, r5, #0x0
mov r1, #0xe
add r2, sp, #0x54
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084B78:
ldr r0, [sp, #0x6c]
@@ -1075,9 +1075,9 @@ _02084B80:
add r0, r5, #0x0
mov r1, #0xf
add r2, sp, #0x58
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084BD8:
ldr r0, [sp, #0x6c]
@@ -1120,9 +1120,9 @@ _02084BE0:
add r0, r5, #0x0
mov r1, #0x10
add r2, sp, #0x5c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084C38:
ldr r0, [sp, #0x6c]
@@ -1165,9 +1165,9 @@ _02084C40:
add r0, r5, #0x0
mov r1, #0x11
add r2, sp, #0x60
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084C98:
ldr r0, [sp, #0x6c]
@@ -1210,9 +1210,9 @@ _02084CA0:
add r0, r5, #0x0
mov r1, #0x12
add r2, sp, #0x64
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084CF8:
ldr r0, [sp, #0x6c]
@@ -1233,7 +1233,7 @@ _02084D14:
add r0, r5, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
cmp r0, #0x64
bge _02084D54
@@ -1320,7 +1320,7 @@ FUN_02084DD0: ; 0x02084DD0
add r5, r1, #0x0
add r1, r2, #0x0
add r4, r3, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x14]
add r3, sp, #0x0
str r1, [sp, #0x0]
@@ -1338,7 +1338,7 @@ FUN_02084DF0: ; 0x02084DF0
add r1, #0x36
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
bne _02084E08
@@ -1349,14 +1349,14 @@ _02084E08:
add r0, r5, #0x0
add r1, #0x3a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
add r6, #0x3e
lsr r4, r0, #0x18
add r0, r5, #0x0
add r1, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
add r0, r7, #0x0
@@ -1382,7 +1382,7 @@ FUN_02084E40: ; 0x02084E40
add r1, #0x36
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
bne _02084E5E
@@ -1397,14 +1397,14 @@ _02084E5E:
ldr r1, [sp, #0x0]
add r0, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x4
strb r0, [r1, #0x0]
add r5, #0x3e
add r0, r6, #0x0
add r1, r5, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
lsl r1, r1, #0x18
add r0, r7, #0x0
@@ -1429,7 +1429,7 @@ _02084EA8:
ldr r1, [sp, #0x0]
add r0, r6, #0x0
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
@@ -1450,7 +1450,7 @@ FUN_02084EC0: ; 0x02084EC0
mov r2, #0x0
add r5, r0, #0x0
str r1, [sp, #0x0]
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x8
strb r0, [r1, #0x0]
ldrb r0, [r1, #0x0]
@@ -1464,7 +1464,7 @@ _02084EE6:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x0
@@ -1480,7 +1480,7 @@ _02084F08:
add r0, r5, #0x0
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x8
strb r0, [r1, #0x1]
ldrb r1, [r1, #0x0]
@@ -1511,12 +1511,12 @@ _02084F34:
ldr r1, [sp, #0x0]
add r0, r5, #0x0
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x8
add r0, r5, #0x0
add r1, r4, #0x0
add r2, #0x1
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
add sp, #0xc
pop {r4-r7, pc}
@@ -1556,7 +1556,7 @@ _02084F96:
_02084F98:
mov r1, #0xa2
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
pop {r3}
pop {r3}
add sp, #0x10
@@ -1621,7 +1621,7 @@ FUN_02085000: ; 0x02085000
add r4, r1, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xff
blt _02085014
mov r0, #0x0
@@ -1723,7 +1723,7 @@ _020850BE:
add r0, r5, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
ldr r2, [sp, #0x20]
lsr r0, r0, #0x10
@@ -1741,7 +1741,7 @@ _020850EC:
add r0, r5, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xb
bne _02085100
ldr r0, [sp, #0x18]
@@ -1751,7 +1751,7 @@ _02085100:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r6, r0
bne _02085114
ldr r0, [sp, #0x18]
@@ -1775,7 +1775,7 @@ _0208512C:
add r0, r5, #0x0
mov r1, #0x9
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
pop {r4-r6}
pop {r3}
@@ -1787,7 +1787,7 @@ FUN_02085140: ; 0x02085140
push {r4-r7, lr}
sub sp, #0xc
str r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r7, #0x0
str r0, [sp, #0x4]
cmp r0, #0x0
@@ -1796,28 +1796,28 @@ FUN_02085140: ; 0x02085140
_02085154:
ldr r0, [sp, #0x0]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xab
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020851AC
add r0, r5, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0xa2
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0x9f
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
mov r4, #0x0
_02085190:
add r0, r5, #0x0
diff --git a/arm9/asm/unk_020854E0.s b/arm9/asm/unk_020854E0.s
index 0921775e..b2b33741 100644
--- a/arm9/asm/unk_020854E0.s
+++ b/arm9/asm/unk_020854E0.s
@@ -46,9 +46,9 @@ FUN_020854E0: ; 0x020854E0
strh r0, [r4, #0xc]
ldr r0, [sp, #0x20]
str r5, [r4, #0x10]
- bl FUN_020256BC
+ bl CreateNewSealsObject
str r0, [r4, #0x14]
- bl FUN_02025658
+ bl InitSealsObject
ldr r0, [r4, #0x14]
mov r1, #0xff
add r2, r6, #0x0
@@ -106,12 +106,12 @@ FUN_02085578: ; 0x02085578
strh r0, [r4, #0x0]
str r5, [r4, #0x10]
add r0, r7, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
str r0, [r4, #0x14]
ldr r2, [r4, #0x14]
add r0, r6, #0x0
mov r1, #0xa9
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0x0
pop {r3-r7, pc}
.balign 4
@@ -133,7 +133,7 @@ FUN_020855B0: ; 0x020855B0
strh r0, [r4, #0x0]
add r0, r7, #0x0
str r5, [r4, #0x10]
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r1, r6, #0x0
str r0, [r4, #0x14]
bl FUN_020257D0
@@ -180,7 +180,7 @@ _0208561E:
ldr r2, [r5, #0x14]
add r0, r4, #0x0
mov r1, #0xa9
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
pop {r3-r5, pc}
@@ -213,27 +213,27 @@ FUN_02085644: ; 0x02085644
cmp r6, r0
beq _0208569E
add r0, r4, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r7, #0x0
mov r1, #0x0
add r2, r6, #0x0
add r3, r4, #0x0
bl FUN_02025888
add r0, r4, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r5, #0x0
mov r1, #0xa9
add r2, r4, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
bl FreeToHeap
add r0, r6, #0x0
@@ -262,11 +262,11 @@ _020856BC:
add r0, r4, #0x0
mov r1, #0xa9
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0x0
mov r1, #0x0
add r2, r5, #0x0
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index ed131b94..0111206a 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -178,7 +178,7 @@ _02085A7C:
beq _02085A9A
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02085A9A
lsl r0, r0, #0x3
@@ -573,7 +573,7 @@ _02085DDC:
ldr r0, [r6, #0x10]
bl FUN_0206BB1C
str r0, [r7, #0x1c]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r4, #0x0
str r0, [sp, #0x0]
str r0, [r7, #0x0]
@@ -583,7 +583,7 @@ _02085DDC:
_02085E0A:
ldr r0, [r7, #0x1c]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r5, #0x4]
ldr r0, [sp, #0x0]
add r4, r4, #0x1
@@ -675,7 +675,7 @@ _02085EA6:
mov r1, #0xa1
add r2, sp, #0x8
add r5, r0, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r1, [sp, #0x8]
ldr r0, [r7, #0x20]
sub r1, r1, #0x1
@@ -683,7 +683,7 @@ _02085EA6:
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0xaa
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r1, [sp, #0x8]
ldr r0, [r7, #0x20]
sub r1, r1, #0x1
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index 8a6d5079..98f5d44f 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -125,7 +125,7 @@ _0208618C:
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020861D8 ; =0x000001EA
cmp r0, r1
bne _020861A4
@@ -286,7 +286,7 @@ _020862D6:
add r0, r5, #0x0
mov r1, #0x4c
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0xb
str r0, [sp, #0x0]
ldr r3, [sp, #0x4]
@@ -297,7 +297,7 @@ _020862D6:
add r0, r5, #0x0
mov r1, #0xb2
mov r2, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
bl FUN_020377AC
ldr r1, [r4, #0xc]
@@ -319,7 +319,7 @@ _0208633A:
ldr r0, [r4, #0xc]
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
bl FUN_020377AC
@@ -334,13 +334,13 @@ _0208633A:
ldr r0, [r4, #0xc]
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0x8]
mov r2, #0x0
str r0, [r1, #0x10]
ldr r0, [r4, #0xc]
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0x8]
str r0, [r1, #0x8]
ldr r1, _020863D8 ; =UNK_020FA5FC
@@ -359,7 +359,7 @@ _02086396:
ldr r0, [r4, #0xc]
ldr r2, [r2, #0x18]
mov r1, #0x77
- bl SetMonDataEncrypted
+ bl SetMonData
_020863A8:
ldr r0, [r4, #0x8]
bl FUN_02077AC4
diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s
index 83a10e29..ef50db3f 100644
--- a/arm9/asm/unk_02086414.s
+++ b/arm9/asm/unk_02086414.s
@@ -1441,7 +1441,7 @@ FUN_02086EE8: ; 0x02086EE8
ldr r4, [r0, #0xc]
mov r2, #0x0
add r0, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
add r0, r4, #0x0
mov r1, #0x2
@@ -1452,7 +1452,7 @@ FUN_02086EE8: ; 0x02086EE8
add r0, r4, #0x0
mov r1, #0x4c
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, sp, #0x28
add r1, r4, #0x0
mov r2, #0x2
@@ -1487,11 +1487,11 @@ FUN_02086F4C: ; 0x02086F4C
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
ldr r0, [r5, #0x0]
ldr r0, [r0, #0xc]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r6, r0, #0x0
ldr r0, [r5, #0x68]
mov r1, #0x1
diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s
index f27865fe..e728ee4a 100644
--- a/arm9/asm/unk_02086FA8.s
+++ b/arm9/asm/unk_02086FA8.s
@@ -164,7 +164,7 @@ _020870D2:
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_02005578
@@ -447,7 +447,7 @@ _02087322:
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_02005578
diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s
index c3c27acb..644d8dc5 100644
--- a/arm9/asm/unk_02087D00.s
+++ b/arm9/asm/unk_02087D00.s
@@ -446,7 +446,7 @@ _02087FFE:
strb r0, [r4, #0x11]
strb r6, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r1, #0x0
strh r1, [r4, #0x18]
@@ -540,7 +540,7 @@ FUN_020880A0: ; 0x020880A0
ldr r0, [r5, #0xc]
ldrb r1, [r5, #0x8]
ldr r0, [r0, #0x10]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x0]
ldr r0, [r5, #0xc]
ldr r0, [r0, #0x18]
@@ -608,7 +608,7 @@ FUN_02088130: ; 0x02088130
ldrb r0, [r5, #0x8]
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r1, #0x0
strh r1, [r4, #0x18]
@@ -704,7 +704,7 @@ FUN_0208821C: ; 0x0208821C
add r6, r1, #0x0
add r4, r0, #0x0
add r0, r6, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
lsl r1, r0, #0x1
ldr r0, _02088310 ; =UNK_020FD17C
ldrb r0, [r0, r1]
@@ -723,7 +723,7 @@ _02088246:
add r0, r6, #0x0
add r1, #0x13
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r4, #0x2
str r0, [r5, r1]
add r0, r4, #0x1
@@ -791,7 +791,7 @@ _020882D4:
add r0, r6, #0x0
add r1, #0x13
add r2, r4, r2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -800,7 +800,7 @@ _020882D4:
add r0, r6, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x8
strb r0, [r1, #0x0]
ldrb r0, [r1, #0x0]
@@ -811,7 +811,7 @@ _020882D4:
add r0, r6, #0x0
mov r1, #0x9
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
_0208830C:
add sp, #0x30
pop {r3-r7, pc}
diff --git a/arm9/asm/unk_02088DD8.s b/arm9/asm/unk_02088DD8.s
index 9e8c27a7..1dda59b0 100644
--- a/arm9/asm/unk_02088DD8.s
+++ b/arm9/asm/unk_02088DD8.s
@@ -33,21 +33,21 @@ FUN_02088DF8: ; 0x02088DF8
mov r1, #0x5
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
add r0, r5, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r4, #0x0
@@ -59,7 +59,7 @@ _02088E34:
add r0, r5, #0x0
add r1, #0x36
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r4, #0x1
strh r0, [r6, r1]
add r0, r4, #0x1
diff --git a/arm9/global.inc b/arm9/global.inc
index db7e72c3..08442742 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -805,7 +805,7 @@
.extern FUN_020126D8
.extern FUN_020126FC
.extern FUN_02012710
-.extern FUN_0201277C
+.extern IsNighttime
.extern FUN_02012794
.extern FUN_020127A8
.extern FUN_020127C0
@@ -1629,10 +1629,10 @@
.extern FUN_020254F8
.extern FUN_02025520
.extern FUN_02025614
-.extern FUN_02025658
+.extern InitSealsObject
.extern FUN_020256AC
-.extern FUN_020256BC
-.extern FUN_020256D0
+.extern CreateNewSealsObject
+.extern CopySealsObject
.extern FUN_020256DC
.extern FUN_020257C0
.extern FUN_020257C4
@@ -4705,49 +4705,49 @@
.extern FUN_02066818
.extern FUN_02066840
.extern ZeroMonData
-.extern WipeBoxMonDataAndEncrypt
+.extern ZeroBoxMonData
.extern SizeOfStructPokemon
.extern AllocMonZeroed
-.extern TryDecryptMon
-.extern TryEncryptMon
-.extern TryDecryptBoxMon
-.extern TryEncryptBoxMon
+.extern AcquireMonLock
+.extern ReleaseMonLock
+.extern AcquireBoxMonLock
+.extern ReleaseBoxMonLock
.extern CreateMon
.extern CreateMonWithNature
-.extern CreateMonWithNatureGenderLetter
-.extern FUN_02066E74
-.extern FUN_02066EA4
-.extern UpdateMonLevelAndRecalcStats
-.extern CalcMonStatsMaybeEncrypted
-.extern GetMonDataEncrypted
-.extern GetBoxMonDataEncrypted
-.extern SetMonDataEncrypted
-.extern SetBoxMonDataEncrypted
-.extern AddMonPartyStatEncrypted
+.extern CreateMonWithGenderNatureLetter
+.extern GenPersonalityByGenderAndNature
+.extern CreateMonWithFixedIVs
+.extern CalcMonLevelAndStats
+.extern CalcMonStats
+.extern GetMonData
+.extern GetBoxMonData
+.extern SetMonData
+.extern SetBoxMonData
+.extern AddMonData
.extern AllocAndLoadMonPersonal
.extern GetPersonalAttr
.extern FreeMonPersonal
.extern GetMonBaseStat_HandleFormeConversion
.extern GetMonBaseStat
-.extern FUN_02068698
-.extern CalcMonExpToNextLevelEncrypted
-.extern FUN_02068734
-.extern GetMonExpByLevel
-.extern CalcMonLevelEncrypted
-.extern CalcBoxMonLevelEncrypted
+.extern GetPercentProgressTowardsNextLevel
+.extern CalcMonExpToNextLevel
+.extern GetMonBaseExperienceAtCurrentLevel
+.extern GetMonExpBySpeciesAndLevel
+.extern CalcMonLevel
+.extern CalcBoxMonLevel
.extern CalcLevelBySpeciesAndExp
.extern CalcLevelBySpeciesAndExp_PreloadedPersonal
-.extern GetMonNatureEncrypted
-.extern GetBoxMonNatureEncrypted
+.extern GetMonNature
+.extern GetBoxMonNature
.extern GetNatureFromPersonality
-.extern MonApplyFriendshipModEncrypted
-.extern GetMonGenderEncrypted
-.extern GetBoxMonGenderEncrypted
+.extern MonApplyFriendshipMod
+.extern GetMonGender
+.extern GetBoxMonGender
.extern GetGenderBySpeciesAndPersonality
.extern GetGenderBySpeciesAndPersonality_PreloadedPersonal
-.extern FUN_02068A80
-.extern FUN_02068AAC
-.extern FUN_02068AD8
+.extern MonIsShiny
+.extern CalcShininessByOtIdAndPersonality
+.extern GenerateShinyPersonality
.extern FUN_02068B68
.extern FUN_02068B70
.extern FUN_02068C00
@@ -4764,7 +4764,7 @@
.extern FUN_020690D4
.extern FUN_020690E4
.extern FUN_020690E8
-.extern FUN_02069168
+.extern GetMonEvolution
.extern ReadFromPersonalPmsNarc
.extern GetEggSpecies
.extern FUN_02069698
@@ -4792,7 +4792,7 @@
.extern FUN_02069E94
.extern FUN_02069EC4
.extern FUN_02069ECC
-.extern GetArceusTypeByPlate
+.extern GetArceusTypeByHeldItemEffect
.extern LoadWotbl_HandleAlternateForme
.extern FUN_02069FB0
.extern FUN_0206A014
@@ -4862,12 +4862,12 @@
.extern FUN_0206B8CC
.extern FUN_0206B900
.extern FUN_0206B938
-.extern FUN_0206B9AC
-.extern FUN_0206B9B0
+.extern GetPartyCount
+.extern GetPartyMonByIndex
.extern FUN_0206B9DC
.extern FUN_0206BA38
.extern FUN_0206BAD0
-.extern FUN_0206BAE4
+.extern PartyHasMon
.extern FUN_0206BB1C
.extern FUN_0206BB28
.extern FUN_0206BB34
diff --git a/arm9/lib/include/MI_memory.h b/arm9/lib/include/MI_memory.h
index bf6c0ca5..e1e5fe11 100644
--- a/arm9/lib/include/MI_memory.h
+++ b/arm9/lib/include/MI_memory.h
@@ -22,4 +22,6 @@ static inline void MI_CpuClear32(void *dest, u32 size)
MI_CpuFill32(dest, 0, size);
}
+void MIi_CpuClearFast(u32 data, void *destp, u32 size);
+
#endif //NITRO_MI_MEMORY_H_
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 72d4bbbd..a05f9c76 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -3279,7 +3279,7 @@ MOD05_021D8FD0: ; 0x021D8FD0
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r7, r0, #0
mov r4, #0
cmp r7, #0
@@ -3287,10 +3287,10 @@ MOD05_021D8FD0: ; 0x021D8FD0
_021D8FF6:
add r0, r6, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
add r2, r5, #0
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
add r4, r4, #1
cmp r4, r7
blt _021D8FF6
@@ -27440,12 +27440,12 @@ _021E4980:
add r0, r7, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [sp]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x55
lsl r1, r1, #2
ldr r1, [r5, r1]
@@ -32853,7 +32853,7 @@ MOD05_021E72E8: ; 0x021E72E8
add r4, r1, #0
bl FUN_0206BB1C
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, pc}
.balign 4, 0
@@ -43049,7 +43049,7 @@ _021EC46E:
bl FUN_02023C7C
add r1, r7, #0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021EC48C
add r0, r4, #1
@@ -43081,7 +43081,7 @@ _021EC4AA:
bl FUN_02023C7C
add r1, r6, #0
add r2, r7, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021EC4C6
add r0, r4, #0
@@ -43103,7 +43103,7 @@ MOD05_021EC4DC: ; 0x021EC4DC
push {r3, lr}
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
@@ -43117,7 +43117,7 @@ MOD05_021EC4F0: ; 0x021EC4F0
add r6, r0, #0
str r1, [sp]
add r7, r3, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
bl FUN_02023C80
@@ -43131,7 +43131,7 @@ MOD05_021EC4F0: ; 0x021EC4F0
add r0, r4, #0
mov r1, #0x74
add r2, sp, #0xc
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
bl FUN_020690E4
bl MOD05_021EC4DC
@@ -43142,7 +43142,7 @@ MOD05_021EC4F0: ; 0x021EC4F0
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
- bl GetMonDataEncrypted
+ bl GetMonData
_021EC544:
ldr r1, [sp, #4]
add r0, r4, #0
@@ -43155,7 +43155,7 @@ _021EC544:
bl FUN_0206B938
ldr r1, _021EC578 ; =0x000001B9
add r0, r6, #0
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _021EC572
add r0, r7, #0
@@ -43211,13 +43211,13 @@ MOD05_021EC5B0: ; 0x021EC5B0
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021EC600
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021EC600
add r0, r5, #0
@@ -43275,7 +43275,7 @@ _021EC64E:
blt _021EC616
_021EC658:
add r0, r5, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
@@ -43304,7 +43304,7 @@ MOD05_021EC668: ; 0x021EC668
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
add r0, r5, #0
@@ -43313,13 +43313,13 @@ MOD05_021EC668: ; 0x021EC668
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
beq _021EC6E0
add r0, r4, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
add r0, r6, #0
bl FUN_02023C84
@@ -43329,7 +43329,7 @@ MOD05_021EC668: ; 0x021EC668
str r0, [sp, #8]
add r0, r4, #0
mov r1, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
bl MOD05_021EC604
_021EC6E0:
@@ -43342,13 +43342,13 @@ _021EC6E0:
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
- bl SetMonDataEncrypted
+ bl SetMonData
_021EC6FA:
ldr r0, [sp]
add r1, r4, #0
bl FUN_0206B900
add r0, r5, #0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r6, #0
mov r1, #0
bl FUN_02023CA0
@@ -43394,16 +43394,16 @@ MOD05_021EC744: ; 0x021EC744
add r0, r4, #0
mov r1, #8
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp]
add r0, r0, r5
str r0, [sp]
add r0, r4, #0
mov r1, #8
add r2, sp, #0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
add r4, r0, #0
add r0, r7, #0
bl FreeToHeap
@@ -43416,7 +43416,7 @@ MOD05_021EC78C: ; 0x021EC78C
add r5, r0, #0
bl FUN_02023C7C
add r6, r0, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0
@@ -43525,7 +43525,7 @@ MOD05_021EC864: ; 0x021EC864
bl FUN_02023C7C
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021EC888
add r0, r4, #0
@@ -43564,7 +43564,7 @@ MOD05_021EC8A8: ; 0x021EC8A8
add r5, sp, #4
_021EC8BC:
ldr r0, [r5]
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
cmp r0, #1
bne _021EC8C8
str r4, [sp]
@@ -43581,7 +43581,7 @@ _021EC8D8:
ldr r0, [r4]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [r5]
cmp r0, #0x84
bne _021EC8EC
@@ -43612,7 +43612,7 @@ _021EC90E:
add r0, sp, #4
ldr r0, [r0, r1]
mov r1, #6
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0xe5
bne _021EC938
bl rand_LC
@@ -43652,7 +43652,7 @@ _021EC960:
bl MOD05_021EC458
add r1, r5, #0
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
bl GetNatureFromPersonality
mov r7, #0x96
add r6, r0, #0
@@ -43791,62 +43791,62 @@ _021ECA60: ; jump table
_021ECA6C:
mov r1, #0x46
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x46
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECA82:
mov r1, #0x47
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x47
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECA98:
mov r1, #0x48
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x48
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECAAE:
mov r1, #0x49
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x49
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECAC4:
mov r1, #0x4a
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x4a
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECADA:
mov r1, #0x4b
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x4b
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
_021ECAEE:
add r0, r5, #1
lsl r0, r0, #0x18
@@ -43864,7 +43864,7 @@ MOD05_021ECAFC: ; 0x021ECAFC
mov r1, #5
add r2, r4, #0
add r6, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, _021ECB60 ; =0x00004E20
@@ -43935,14 +43935,14 @@ MOD05_021ECB6C: ; 0x021ECB6C
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x18]
add r0, r7, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
@@ -43965,13 +43965,13 @@ _021ECBC0:
ldr r0, [sp]
add r1, r6, #0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, [sp, #0x20]
mov r2, #0
str r0, [r4, r1]
ldr r0, [sp, #4]
add r1, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, [sp, #0x10]
str r0, [r1, #0x20]
add r0, r5, #1
@@ -44218,13 +44218,13 @@ _021ECDAE:
ldr r0, [sp]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, [sp, #4]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
mov r0, #6
@@ -44258,12 +44258,12 @@ MOD05_021ECDF4: ; 0x021ECDF4
ldr r0, [sp]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r5, r0, #0
ldr r0, [sp, #4]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r5, #0xec
beq _021ECE20
cmp r0, #0xec
@@ -44301,7 +44301,7 @@ _021ECE56:
ldr r0, [r7, r6]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r1, r4, #1
add r2, sp, #0xc
strh r0, [r2, r1]
@@ -44316,7 +44316,7 @@ _021ECE56:
b _021ECE8C
_021ECE7A:
ldr r0, [r7, r6]
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
cmp r0, #1
bne _021ECE8C
mov r0, #1
@@ -44377,7 +44377,7 @@ _021ECEDE:
lsl r1, r0, #2
add r0, sp, #4
ldr r0, [r0, r1]
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
cmp r0, #1
beq _021ECF02
ldrb r1, [r5, #1]
@@ -44424,16 +44424,16 @@ MOD05_021ECF14: ; 0x021ECF14
add r0, r5, #0
mov r1, #0x9a
add r2, sp, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #9
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x10
add r0, r5, #0
mov r1, #0x9b
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, sp, #0x30
ldrb r0, [r0, #8]
cmp r0, #0
@@ -44441,7 +44441,7 @@ MOD05_021ECF14: ; 0x021ECF14
add r0, r5, #0
mov r1, #0x97
add r2, sp, #0x38
- bl SetMonDataEncrypted
+ bl SetMonData
_021ECF7E:
add r2, sp, #0x10
mov r1, #1
@@ -44450,7 +44450,7 @@ _021ECF7E:
add r0, r5, #0
mov r1, #0x4c
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _021ED008 ; =0x000001EE
mov r1, #4
bl FUN_0200AA50
@@ -44458,7 +44458,7 @@ _021ECF7E:
add r0, r5, #0
mov r1, #0x76
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
bl FUN_02021A20
ldr r0, [sp, #0x40]
@@ -44477,15 +44477,15 @@ _021ECF7E:
add r0, r5, #0
mov r1, #0x90
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #7
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #0x9c
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
bl FUN_02021A20
_021ECFEE:
@@ -44526,7 +44526,7 @@ MOD05_021ED00C: ; 0x021ED00C
beq _021ED05E
add r0, r6, #0
add r1, r4, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED05E
mov r5, #0
@@ -44536,7 +44536,7 @@ _021ED044:
add r4, r0, #0
add r0, r6, #0
add r1, r4, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED05E
add r5, r5, #1
@@ -44562,20 +44562,20 @@ _021ED05E:
add r0, r7, #0
mov r1, #0x9a
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
mov r1, #9
add r2, sp, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x14
add r0, r7, #0
mov r1, #0x9b
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
mov r1, #0x70
add r2, sp, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _021ED0C8 ; =0x000001EE
mov r1, #4
bl FUN_0200AA50
@@ -44583,7 +44583,7 @@ _021ED05E:
add r0, r7, #0
mov r1, #0x76
add r2, r4, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
bl FUN_02021A20
add sp, #0x18
@@ -44617,7 +44617,7 @@ MOD05_021ED0CC: ; 0x021ED0CC
bl MOD05_021EC458
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -44664,7 +44664,7 @@ _021ED168:
add r0, r4, #0
mov r1, #0x4c
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #4]
add r1, r4, #0
bl FUN_0206B900
@@ -44679,7 +44679,7 @@ _021ED168:
MOD05_021ED190: ; 0x021ED190
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0
mov r4, #0
cmp r6, #0
@@ -44688,18 +44688,18 @@ MOD05_021ED190: ; 0x021ED190
_021ED1A2:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021ED1D6
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x28
@@ -44765,18 +44765,18 @@ _021ED228:
ldr r0, [r5]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4]
ldr r0, [r5]
mov r1, #7
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, [sp]
str r0, [r1]
mov r1, #0
ldr r0, [r5]
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #0
ldrh r0, [r4]
bl GetGenderBySpeciesAndPersonality
@@ -44956,7 +44956,7 @@ _021ED38E:
ldr r0, [r5]
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021ED3AC
ldr r0, [sp]
@@ -45017,29 +45017,29 @@ _021ED3F8:
add r6, r0, #0
add r0, r7, #0
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bls _021ED490
_021ED430:
add r0, r7, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021ED484
add r0, r4, #0
mov r1, #3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021ED484
add r0, r4, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
cmp r0, #0
beq _021ED47E
@@ -45055,7 +45055,7 @@ _021ED472:
add r0, r4, #0
mov r1, #9
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ED484
_021ED47E:
add sp, #0x14
@@ -45064,7 +45064,7 @@ _021ED47E:
_021ED484:
add r0, r7, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blo _021ED430
_021ED490:
@@ -45078,7 +45078,7 @@ _021ED498: .word 0x0000FFFF
MOD05_021ED49C: ; 0x021ED49C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0
mov r5, #0
cmp r6, #0
@@ -45086,17 +45086,17 @@ MOD05_021ED49C: ; 0x021ED49C
_021ED4AC:
add r0, r7, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021ED4D4
add r0, r4, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021ED4D4
add r0, r4, #0
@@ -45120,7 +45120,7 @@ MOD05_021ED4E0: ; 0x021ED4E0
ldr r0, [sp]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021ED50E
ldr r2, [sp]
@@ -45135,7 +45135,7 @@ _021ED50E:
ldr r0, [sp, #4]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021ED526
ldr r2, [sp, #4]
@@ -45186,7 +45186,7 @@ MOD05_021ED52C: ; 0x021ED52C
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #2
@@ -45194,7 +45194,7 @@ MOD05_021ED52C: ; 0x021ED52C
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #0x1d
@@ -45205,7 +45205,7 @@ _021ED5A4:
add r0, r5, #0
mov r1, #0x4d
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021ED5B4
mov r4, #2
@@ -45222,7 +45222,7 @@ _021ED5B4:
MOD05_021ED5C4: ; 0x021ED5C4
push {r3, r4, r5, lr}
add r5, r2, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
bl FUN_020690E4
add r2, r0, #0
@@ -45232,7 +45232,7 @@ MOD05_021ED5C4: ; 0x021ED5C4
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, r4, r5, pc}
@@ -45316,7 +45316,7 @@ MOD05_021ED650: ; 0x021ED650
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x14]
@@ -45327,14 +45327,14 @@ _021ED67C:
add r0, r4, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r5, #1
strh r0, [r7, r1]
add r1, r5, #0
add r0, r4, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x30
strb r0, [r1, r5]
add r0, r5, #1
@@ -45345,7 +45345,7 @@ _021ED67C:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
mov r5, #0
_021ED6B4:
@@ -45353,7 +45353,7 @@ _021ED6B4:
add r0, r4, #0
add r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x24
add r1, #2
strb r0, [r1, r5]
@@ -45365,52 +45365,52 @@ _021ED6B4:
add r0, r4, #0
mov r1, #0xc
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #9]
add r0, r4, #0
mov r1, #0x79
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #8]
add r0, r4, #0
mov r1, #0xb
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #7]
add r0, r4, #0
mov r1, #0x99
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #0xa]
add r0, r4, #0
mov r1, #0x6e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #5]
ldr r2, [sp, #0x10]
add r0, r4, #0
mov r1, #0x90
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
mov r1, #0x9c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #3]
add r0, r4, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x2c]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #4]
ldr r1, _021ED93C ; =0x000001EA
@@ -45420,7 +45420,7 @@ _021ED6B4:
add r0, r4, #0
mov r1, #0x97
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
mov r0, #2
mov r1, #1
@@ -45429,7 +45429,7 @@ _021ED6B4:
bne _021ED788
ldr r0, [sp, #0x2c]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
beq _021ED788
_021ED774:
@@ -45438,7 +45438,7 @@ _021ED774:
add r7, r0, #0
ldr r0, [sp, #0x2c]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED774
_021ED788:
@@ -45460,13 +45460,13 @@ _021ED7A2:
add r0, r6, #0
add r1, #0x36
add r2, r7, r2
- bl SetMonDataEncrypted
+ bl SetMonData
add r1, r5, #0
add r2, sp, #0x30
add r0, r6, #0
add r1, #0x3a
add r2, r2, r5
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -45480,7 +45480,7 @@ _021ED7CE:
add r0, r6, #0
add r1, #0x46
add r2, r7, r5
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -45490,16 +45490,16 @@ _021ED7CE:
add r0, r6, #0
mov r1, #0xc
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x79
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x1c
add r0, r6, #0
mov r1, #0xb
add r2, #3
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x1c
mov r1, #0x78
add r0, sp, #0x18
@@ -45507,118 +45507,118 @@ _021ED7CE:
add r0, r6, #0
mov r1, #9
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x20
add r0, r6, #0
mov r1, #0x99
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x1c
add r0, r6, #0
mov r1, #0x6e
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r2, [sp, #0x10]
add r0, r6, #0
mov r1, #0x90
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x9c
add r2, #3
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #7
add r2, sp, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x70
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x97
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strh r0, [r1, #0xc]
add r0, r4, #0
mov r1, #0x91
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #2]
add r0, r4, #0
mov r1, #0x92
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #1]
add r0, r4, #0
mov r1, #0x93
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1]
add r0, r6, #0
mov r1, #0x97
add r2, sp, #0x24
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x91
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x92
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x93
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x98
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strh r0, [r1, #0xc]
add r0, r4, #0
mov r1, #0x94
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #2]
add r0, r4, #0
mov r1, #0x95
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #1]
add r0, r4, #0
mov r1, #0x96
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1]
add r0, r6, #0
mov r1, #0x98
add r2, sp, #0x24
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x94
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x95
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x96
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
add r1, r4, #0
bl FUN_02069B88
@@ -45649,11 +45649,11 @@ MOD05_021ED940: ; 0x021ED940
add r0, r4, #0
mov r1, #0x4c
add r2, #3
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #5
add r2, r5, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
add r1, r5, #0
@@ -45662,23 +45662,23 @@ MOD05_021ED940: ; 0x021ED940
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0
add r0, r4, #0
mov r1, #0x4d
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0
add r0, r4, #0
mov r1, #0x9a
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x9b
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add sp, #0x1c
pop {r4, r5, pc}
.balign 4, 0
@@ -58115,13 +58115,13 @@ MOD05_021F38CC: ; 0x021F38CC
mov r1, #0
add r2, r1, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r5, #0
mov r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58130,7 +58130,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x47
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58139,7 +58139,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x48
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58148,7 +58148,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x49
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58156,7 +58156,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x4a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58164,7 +58164,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x4b
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58275,11 +58275,11 @@ MOD05_021F3A18: ; 0x021F3A18
add r5, r1, #0
bl FUN_0206BB1C
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
str r0, [sp]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r0, [sp]
@@ -58344,7 +58344,7 @@ MOD05_021F3AB4: ; 0x021F3AB4
add r5, r1, #0
bl FUN_0206BB1C
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl MOD05_021F38CC
add r1, sp, #0
strh r0, [r1]
@@ -58440,11 +58440,11 @@ MOD05_021F3B7C: ; 0x021F3B7C
add r7, r1, #0
bl FUN_0206BB1C
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0
@@ -62943,7 +62943,7 @@ _021F5CBA:
bne _021F5D10
ldr r0, [r0, #8]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r5, #4]
add r3, r0, #0
lsl r2, r2, #0x10
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 2f478ef3..a7f8e367 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -4786,7 +4786,7 @@ _0223BA42:
add r4, r0, #0
add r0, r7, #0
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x20]
ldr r1, [sp, #0x20]
add r0, r5, #0
@@ -4804,7 +4804,7 @@ _0223BA42:
str r1, [sp, #0x34]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x24
strb r0, [r1, #0x18]
_0223BA8C:
@@ -5130,7 +5130,7 @@ _0223BD2E:
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x14]
ldr r0, [sp, #8]
ldr r1, [sp, #0x14]
@@ -5312,7 +5312,7 @@ _0223BEA4:
add r4, r0, #0
add r0, r6, #0
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x18]
ldr r1, [sp, #0x18]
add r0, r5, #0
@@ -5568,7 +5568,7 @@ _0223C0CE:
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x1c]
ldr r1, [sp, #0x1c]
ldr r2, [sp, #0x14]
@@ -5586,7 +5586,7 @@ _0223C0CE:
str r1, [sp, #0x2c]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strb r0, [r1, #0x14]
_0223C118:
@@ -6400,7 +6400,7 @@ MOD06_0223C738: ; 0x0223C738
add r4, r1, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
cmp r1, #0xe0
@@ -6464,7 +6464,7 @@ _0223C7AC:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x19
bl _u32_div_f
lsl r0, r1, #0x18
@@ -6588,7 +6588,7 @@ _0223C8A6:
ldr r0, [sp, #0x44]
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x24]
@@ -6607,12 +6607,12 @@ _0223C8D2:
cmp r4, #0
bne _0223C8E0
ldr r0, [sp, #0x44]
- bl GetMonNatureEncrypted
+ bl GetMonNature
str r0, [sp, #0x20]
mov r7, #1
_0223C8E0:
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
cmp r7, #0
beq _0223C92E
@@ -6632,7 +6632,7 @@ _0223C904:
cmp r7, r0
bne _0223C92E
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
b _0223C8EC
_0223C914:
@@ -6644,7 +6644,7 @@ _0223C914:
cmp r0, r1
beq _0223C92E
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
b _0223C8EC
_0223C92E:
@@ -6722,7 +6722,7 @@ _0223C9BE:
ldr r0, [sp, #0x28]
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r6, r0, #0x18
cmp r6, #1
@@ -6748,11 +6748,11 @@ _0223C9E4:
add r0, r4, #0
add r1, r7, #0
mov r3, #0x20
- bl CreateMonWithNatureGenderLetter
+ bl CreateMonWithGenderNatureLetter
add r0, r4, #0
mov r1, #7
add r2, r5, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
ldr r3, [sp, #0x2c]
add r1, r5, #0
@@ -6779,7 +6779,7 @@ _0223CA28:
add r0, r4, #0
mov r1, #7
add r2, r5, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
ldr r3, [sp, #0x2c]
add r1, r5, #0
@@ -7118,7 +7118,7 @@ MOD06_0223CCDC: ; 0x0223CCDC
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0xc]
ldr r1, [sp, #0xc]
add r0, r5, #0
@@ -7194,7 +7194,7 @@ MOD06_0223CD7C: ; 0x0223CD7C
add r6, r3, #0
bl FUN_0206BB1C
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
@@ -7488,7 +7488,7 @@ _0223CF96:
add r0, r1, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #5
@@ -7622,19 +7622,19 @@ MOD06_0223D044: ; 0x0223D044
add r0, r4, #0
lsr r1, r1, #0x10
add r2, r7, #0
- bl FUN_02066EA4
+ bl CreateMonWithFixedIVs
add r0, r4, #0
mov r1, #7
add r2, sp, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x9f
add r2, sp, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0xa2
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r6, #8]
add r1, r4, #0
bl FUN_0206B900
@@ -7782,7 +7782,7 @@ _0223D1DA:
add r0, r6, #0
mov r1, #5
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0223D270 ; =0x000001A6
cmp r0, r1
bne _0223D208
@@ -7839,7 +7839,7 @@ _0223D24E:
add r0, r6, #0
mov r1, #0x70
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
_0223D25C:
ldr r0, [sp]
add r1, r6, #0
@@ -7919,14 +7919,14 @@ MOD06_0223D2DC: ; 0x0223D2DC
mov r1, #0x4c
mov r2, #0
add r4, r3, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0223D302
mov r2, #0
add r0, r7, #0
mov r1, #0xa
strb r2, [r4, #0xd]
- bl GetMonDataEncrypted
+ bl GetMonData
b _0223D308
_0223D302:
mov r0, #1
@@ -19735,7 +19735,7 @@ MOD06_022432E4: ; 0x022432E4
add r0, r1, #0
bl FUN_0206BB1C
str r0, [sp, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r1, r0, #0x18
str r1, [sp, #8]
@@ -19754,23 +19754,23 @@ _02243308:
_02243312:
ldr r0, [sp, #4]
add r1, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
str r0, [sp, #0xc]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r0, [sp, #0xc]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r0, [sp, #0xc]
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0224336E
add r0, r5, #0
@@ -20281,18 +20281,18 @@ _02243726:
add r1, #0x2a
ldrb r1, [r1]
ldr r0, [sp, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
lsl r1, r4, #1
add r6, r5, r1
add r7, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x2e]
add r0, r7, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x36]
add r0, r4, #1
lsl r0, r0, #0x10
@@ -20333,17 +20333,17 @@ _0224379C:
add r1, r1, r5
add r1, #0x2a
ldrb r1, [r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #8]
lsl r6, r5, #1
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, r6]
ldr r0, [sp, #8]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r7, r6]
cmp r5, #0
beq _022437FA
@@ -20579,7 +20579,7 @@ _0224394A:
bne _0224396C
add r5, #0x2a
ldrb r1, [r5]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0
add r0, r4, #0
add r1, r6, #0
@@ -20589,7 +20589,7 @@ _0224394A:
_0224396C:
add r5, #0x2a
ldrb r1, [r5]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0
add r0, r4, #0
add r1, r6, #0
@@ -21453,17 +21453,17 @@ _02243FFA:
add r1, #0x2a
ldrb r1, [r1]
ldr r0, [sp]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r6, #0
mov r2, #0
str r0, [sp, #4]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02244024
ldr r0, [sp, #4]
add r1, r6, #0
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #1
lsl r0, r0, #0x18
lsr r7, r0, #0x18
@@ -21522,7 +21522,7 @@ MOD06_0224406C: ; 0x0224406C
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
lsl r0, r0, #0x10
ldrh r1, [r1]
@@ -21537,7 +21537,7 @@ MOD06_0224406C: ; 0x0224406C
strh r1, [r0]
add r0, r5, #0
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
lsl r0, r0, #0x10
ldrh r2, [r1]
@@ -21552,7 +21552,7 @@ MOD06_0224406C: ; 0x0224406C
strh r1, [r0]
add r0, r5, #0
mov r1, #6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r4, #0
strh r0, [r1, #2]
@@ -21567,13 +21567,13 @@ _022440D0:
add r0, r5, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
strh r0, [r6, #4]
add r0, r5, #0
add r1, #0x3e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #4]
lsl r0, r7
ldrb r1, [r1]
@@ -21588,25 +21588,25 @@ _022440D0:
add r0, r5, #0
mov r1, #0xc
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r2, #0
strb r0, [r1, #0x1f]
add r0, r5, #0
mov r1, #7
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
str r0, [r1, #0xc]
mov r1, #0
add r0, r5, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r2, #0
str r0, [r1, #0x10]
add r0, r5, #0
mov r1, #0xae
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r4, #0
str r0, [r1, #0x14]
@@ -21616,7 +21616,7 @@ _0224413C:
add r0, r5, #0
add r1, #0xd
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
add r1, r1, r4
add r4, r4, #1
@@ -21626,14 +21626,14 @@ _0224413C:
add r0, r5, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r2, #0
add r1, #0x20
strb r0, [r1]
add r0, r5, #0
mov r1, #9
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
ldr r2, [sp]
add r1, #0x21
@@ -21642,7 +21642,7 @@ _0224413C:
add r0, r5, #0
mov r1, #0x74
str r2, [sp]
- bl GetMonDataEncrypted
+ bl GetMonData
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -21673,7 +21673,7 @@ _022441B8:
add r1, #0x2a
ldrb r1, [r1]
add r0, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r5, #0
bl MOD06_0224406C
@@ -21909,7 +21909,7 @@ MOD06_02244388: ; 0x02244388
lsr r1, r1, #0x15
mov r2, #0x32
and r3, r4
- bl FUN_02066EA4
+ bl CreateMonWithFixedIVs
ldrh r0, [r6]
add r2, sp, #8
add r2, #1
@@ -21919,11 +21919,11 @@ MOD06_02244388: ; 0x02244388
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x70
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #6
add r2, r6, #2
- bl SetMonDataEncrypted
+ bl SetMonData
mov r4, #0
str r6, [sp, #4]
add r7, r4, #0
@@ -21937,7 +21937,7 @@ _022443D4:
add r1, r4, #0
add r0, r5, #0
add r1, #0x36
- bl SetMonDataEncrypted
+ bl SetMonData
ldrb r0, [r6, #0x1e]
add r2, sp, #8
add r2, #1
@@ -21950,19 +21950,19 @@ _022443D4:
add r1, r4, #0
add r0, r5, #0
add r1, #0x3e
- bl SetMonDataEncrypted
+ bl SetMonData
add r1, r4, #0
add r0, r5, #0
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #8
strb r0, [r1]
add r1, r4, #0
add r0, r5, #0
add r1, #0x3a
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #4]
add r4, r4, #1
add r0, r0, #2
@@ -21975,7 +21975,7 @@ _022443D4:
str r0, [sp, #0xc]
add r0, r5, #0
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x18]
add r0, sp, #8
@@ -21983,7 +21983,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0xd
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x19]
add r0, sp, #8
@@ -21991,7 +21991,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0xe
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1a]
add r0, sp, #8
@@ -21999,7 +21999,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0xf
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1b]
add r0, sp, #8
@@ -22007,7 +22007,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1c]
add r0, sp, #8
@@ -22015,7 +22015,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x11
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1d]
add r0, sp, #8
@@ -22023,17 +22023,17 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x12
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r6, #0
add r0, r5, #0
mov r1, #0xa
add r2, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r6, #0
add r0, r5, #0
mov r1, #9
add r2, #0x21
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r6, #0x14]
lsl r0, r0, #1
lsr r0, r0, #0x1f
@@ -22052,7 +22052,7 @@ _022443D4:
add r0, r5, #0
mov r1, #0x76
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
bl FUN_02021A20
add r0, r4, #0
@@ -22063,15 +22063,15 @@ _022444FC:
add r0, r5, #0
mov r1, #0x74
add r2, #0x22
- bl SetMonDataEncrypted
+ bl SetMonData
_02244508:
add r6, #0x1f
add r0, r5, #0
mov r1, #0xc
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -22151,28 +22151,28 @@ _022445A6:
add r1, #0x2a
ldrb r1, [r1]
ldr r0, [sp, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0
bl FUN_02069B88
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x32
bls _022445E8
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x32
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [sp, #8]
add r0, r4, #0
mov r1, #8
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
_022445E8:
add r0, r7, #0
add r1, r4, #0
@@ -22345,10 +22345,10 @@ _0224471C:
add r1, #0x2a
ldrb r1, [r1]
add r0, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x21
lsl r1, r1, #6
strh r0, [r5, r1]
@@ -22587,7 +22587,7 @@ _022448EC:
beq _0224491A
ldr r0, [sp]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #1
beq _022448EC
_0224491A:
@@ -26833,7 +26833,7 @@ MOD06_0224690C: ; 0x0224690C
str r0, [r4]
ldr r0, [r4, #0x5c]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_02005578
@@ -28745,7 +28745,7 @@ _022477A8:
mov r1, #0
add r0, r6, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
@@ -30761,7 +30761,7 @@ MOD06_02248724: ; 0x02248724
ldr r0, [r1, #8]
str r1, [sp]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0
ldr r0, [r5, #0xc]
bl FUN_0202A9B0
@@ -30769,7 +30769,7 @@ MOD06_02248724: ; 0x02248724
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
add r0, r7, #0
bl MOD06_02248810
@@ -30779,13 +30779,13 @@ MOD06_02248724: ; 0x02248724
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldr r0, [sp]
@@ -31014,11 +31014,11 @@ MOD06_0224891C: ; 0x0224891C
add r4, r3, #0
bl FUN_0206BB1C
add r1, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa0
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r0, [r5, #0x10]
str r0, [sp]
@@ -31114,7 +31114,7 @@ MOD06_022489D4: ; 0x022489D4
add r0, r5, #0
mov r1, #0x76
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
bl FUN_02021A20
mov r1, #1
@@ -31123,66 +31123,66 @@ MOD06_022489D4: ; 0x022489D4
add r0, r5, #0
mov r1, #0x4d
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #0x46
add r2, r4, #4
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x47
add r2, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x48
add r2, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x49
add r2, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x4a
add r2, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x4b
add r2, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x13
add r2, #0x24
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x14
add r2, #0x28
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x15
add r2, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x16
add r2, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x17
add r2, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #6
add r2, #0x3c
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x28]
add r1, r6, #4
bl MOD06_022489AC
@@ -31190,19 +31190,19 @@ MOD06_022489D4: ; 0x022489D4
add r0, r5, #0
mov r1, #0x90
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
bl FUN_02021A20
add r2, r4, #0
add r0, r5, #0
mov r1, #0x9c
add r2, #0x40
- bl SetMonDataEncrypted
+ bl SetMonData
add r4, #0x48
add r0, r5, #0
mov r1, #0xc
add r2, r4, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x2c]
bl FUN_02034824
add r3, r0, #0
@@ -31213,9 +31213,9 @@ MOD06_022489D4: ; 0x022489D4
mov r2, #1
bl FUN_0208089C
add r0, r5, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add r0, r5, #0
- bl FUN_02068A80
+ bl MonIsShiny
cmp r0, #0
beq _02248B08
bl ErrorHandling
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index cb716405..c9c4dd87 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -2305,7 +2305,7 @@ MOD07_02213104: ; 0x02213104
str r1, [sp]
str r2, [sp, #4]
add r7, r3, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
@@ -2329,17 +2329,17 @@ _0221312A:
bls _022131B0
ldr r0, [sp]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022131B0
add r0, r7, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _022131B0
add r0, r7, #0
@@ -3643,7 +3643,7 @@ MOD07_02213BEC: ; 0x02213BEC
add r0, r1, #0
str r1, [sp]
add r5, r2, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
@@ -3672,7 +3672,7 @@ _02213C0C:
_02213C2E:
ldr r0, [sp]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x18
add r2, r6, #0
mul r2, r1
@@ -3686,7 +3686,7 @@ _02213C2E:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x86
lsl r1, r1, #2
strh r0, [r7, r1]
@@ -3702,52 +3702,52 @@ _02213C2E:
add r5, r0, r1
add r0, r4, #0
mov r1, #0x4c
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D18 ; =0x00000223
mov r2, #0
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D1C ; =0x0000021A
mov r2, #0
strh r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa3
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x87
lsl r1, r1, #2
strh r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x22
lsl r1, r1, #4
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D20 ; =0x0000021E
mov r2, #0
strh r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa1
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x89
lsl r1, r1, #2
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D24 ; =0x00000225
mov r2, #0
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #0xaf
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #1
bne _02213CE8
mov r1, #0
@@ -3758,7 +3758,7 @@ _02213CEA:
ldr r0, _02213D28 ; =0x00000222
strb r1, [r7, r0]
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldr r1, _02213D2C ; =0x00000221
strb r0, [r5, r1]
add r0, r4, #0
@@ -4488,13 +4488,13 @@ MOD07_0221428C: ; 0x0221428C
bhs _022142B4
ldr r0, [r0, #4]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x18]
b _022142BE
_022142B4:
ldr r0, [r0, #0xc]
sub r1, r4, #3
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x18]
_022142BE:
add r1, r4, #0
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index 6c672cb0..e09211f8 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -45038,7 +45038,7 @@ MOD08_02228244: ; 0x02228244
str r0, [r2]
ldr r0, [r4, #0xc]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x9c
str r0, [r1]
@@ -45067,7 +45067,7 @@ _02228272:
_02228290:
ldr r0, [r4, #0xc]
mov r1, #0x9a
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, #0x98
str r0, [r4]
pop {r4, pc}
@@ -45080,7 +45080,7 @@ _0222829E:
add r4, #0xa0
mov r1, #0xaa
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
pop {r4, pc}
thumb_func_start MOD08_022282B4
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 9ac54172..50557058 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -576,7 +576,7 @@ _022122BA:
add r0, r5, r1
ldr r0, [r0, #4]
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x20]
ldrb r1, [r4, #0x11]
mov r0, #0x50
@@ -1630,7 +1630,7 @@ _02212B0A:
ldr r0, [r0, #4]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, #4
strh r0, [r4, r1]
mov r2, #2
@@ -1686,7 +1686,7 @@ _02212BAA:
add r0, r4, r0
ldr r0, [r0, #4]
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02212C84 ; =0x0000207E
mov r2, #4
strh r0, [r4, r1]
@@ -1841,7 +1841,7 @@ _02212CD0:
add r1, r7, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x82
lsl r1, r1, #6
strh r0, [r4, r1]
@@ -2423,7 +2423,7 @@ MOD09_022131C8: ; 0x022131C8
ldr r0, [sp]
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bgt _022131E2
b _02213476
@@ -2437,11 +2437,11 @@ _022131E2:
ldr r0, [r0]
ldr r1, [sp, #8]
ldr r0, [r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #4]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #8]
ldrh r0, [r4, #8]
cmp r0, #0
@@ -2457,54 +2457,54 @@ _0221320C:
add r4, r0, r5
ldr r0, [r4, #4]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xa]
ldr r0, [r4, #4]
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xc]
ldr r0, [r4, #4]
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
ldr r0, [r4, #4]
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x12]
ldr r0, [r4, #4]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x14]
ldr r0, [r4, #4]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x16]
ldr r0, [r4, #4]
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #0x18]
ldr r0, [r4, #4]
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r6, [sp]
strb r0, [r4, #0x19]
ldr r0, [r4, #4]
add r6, #0x1a
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldrb r1, [r6, r5]
mov r2, #0x7f
lsl r0, r0, #0x18
@@ -2517,7 +2517,7 @@ _0221320C:
ldr r0, [r4, #4]
mov r1, #0xaf
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #1
ldrb r1, [r6, r5]
bne _022132BC
@@ -2535,7 +2535,7 @@ _022132C2:
add r6, r0, #0
ldr r0, [r4, #4]
add r6, #0x1b
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldrb r1, [r6, r5]
mov r2, #7
bic r1, r2
@@ -2557,7 +2557,7 @@ _022132C2:
ldr r0, [r4, #4]
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
lsl r0, r0, #0x1f
@@ -2570,17 +2570,17 @@ _022132C2:
ldr r0, [r4, #4]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1c]
ldr r0, [r4, #4]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1e]
ldr r0, [r4, #4]
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r6, [sp]
str r0, [r4, #0x20]
add r6, #0x1a
@@ -2588,7 +2588,7 @@ _022132C2:
ldrh r0, [r4, #8]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [r4, #0x24]
ldrb r0, [r6, r5]
lsl r0, r0, #0x19
@@ -2604,55 +2604,55 @@ _0221335A:
add r1, r1, #1
add r4, r0, r5
ldrh r0, [r4, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
_02213366:
str r0, [r4, #0x28]
ldr r0, [r4, #4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2c
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2d
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2e
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2f
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x30
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0xa1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x31
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, #0x32
strb r0, [r4]
ldr r1, [sp]
@@ -2670,7 +2670,7 @@ _022133E4:
ldr r0, [r6, #4]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0xc]
strh r0, [r7, r1]
add r0, r1, #0
@@ -2681,13 +2681,13 @@ _022133E4:
ldr r0, [r6, #4]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #2]
add r1, r4, #0
ldr r0, [r6, #4]
add r1, #0x3e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #3]
ldrh r0, [r5]
ldrb r1, [r5, #3]
@@ -2724,7 +2724,7 @@ _0221345A:
ldr r0, [sp]
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp, #8]
cmp r1, r0
bge _02213476
@@ -6734,7 +6734,7 @@ MOD09_022155D0: ; 0x022155D0
ldr r0, [r5]
mov r4, #0
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02215656
add r0, r4, #0
@@ -6788,7 +6788,7 @@ _0221563E:
add r7, #0x50
ldr r0, [r0]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022155EE
_02215656:
@@ -8336,7 +8336,7 @@ MOD09_02216378: ; 0x02216378
mov r1, #0xa2
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
@@ -10495,7 +10495,7 @@ MOD09_02217580: ; 0x02217580
ldr r0, [r5]
mov r4, #0
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022175D8
add r7, r5, #4
@@ -10528,7 +10528,7 @@ _022175C6:
lsr r4, r0, #0x10
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02217594
_022175D8:
@@ -13506,7 +13506,7 @@ _02218DF2:
bl MOD11_02230290
add r4, r0, #0
add r0, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _02218E32
add r0, r4, #0
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index dd2316a4..5b67e5a9 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -213,7 +213,7 @@ _0222D752:
bl FUN_0201681C
ldr r0, [r5, #4]
ldr r1, [sp, #0x24]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
mov r0, #0x5a
lsl r0, r0, #2
@@ -1141,7 +1141,7 @@ MOD11_0222DFA4: ; 0x0222DFA4
beq _0222DFE4
ldr r0, [r4, #0x6c]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r4, #0
bl MOD11_02230FA8
@@ -1685,7 +1685,7 @@ _0222E4AC:
bl MOD11_02230014
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r1, [r6, #0x34]
add r0, r5, #0
@@ -2014,35 +2014,35 @@ _0222E734:
_0222E760:
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E7AA
_0222E76C:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E79E
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E79E
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E7AA
_0222E79E:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222E76C
_0222E7AA:
@@ -2119,35 +2119,35 @@ _0222E810:
_0222E83C:
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E886
_0222E848:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E87A
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E87A
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E886
_0222E87A:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222E848
_0222E886:
@@ -2234,13 +2234,13 @@ _0222E920:
add r7, r4, r0
ldr r0, [r7, #0x68]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E9B8
_0222E938:
ldr r0, [r7, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x14]
add r5, r0, #0
cmp r1, #1
@@ -2255,44 +2255,44 @@ _0222E938:
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E9AC
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9AC
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9B8
b _0222E9AC
_0222E984:
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E9AC
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9AC
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9B8
_0222E9AC:
ldr r0, [r7, #0x68]
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _0222E938
_0222E9B8:
@@ -2345,35 +2345,35 @@ _0222EA0C:
bl FUN_0206BAD0
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EA60
_0222EA22:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EA54
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EA54
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EA60
_0222EA54:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EA22
_0222EA60:
@@ -2457,19 +2457,19 @@ _0222EAEE:
bne _0222EB2E
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EB56
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EB56
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EB56
ldr r0, [sp, #0x38]
@@ -2479,19 +2479,19 @@ _0222EAEE:
_0222EB2E:
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EB56
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EB56
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EB64
_0222EB56:
@@ -2572,35 +2572,35 @@ _0222EBC6:
_0222EBEA:
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EC34
_0222EBF6:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EC28
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EC28
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EC34
_0222EC28:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EBF6
_0222EC34:
@@ -2686,13 +2686,13 @@ _0222ECC8:
add r7, r4, r0
ldr r0, [r7, #0x68]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222ED60
_0222ECE0:
ldr r0, [r7, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x20]
add r5, r0, #0
cmp r1, #1
@@ -2707,44 +2707,44 @@ _0222ECE0:
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222ED54
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED54
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED60
b _0222ED54
_0222ED2C:
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222ED54
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED54
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED60
_0222ED54:
ldr r0, [r7, #0x68]
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _0222ECE0
_0222ED60:
@@ -2800,35 +2800,35 @@ _0222EDBC:
bl FUN_0206BAD0
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EE10
_0222EDD2:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EE04
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EE04
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EE10
_0222EE04:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EDD2
_0222EE10:
@@ -2861,11 +2861,11 @@ _0222EE3E:
beq _0222EE5A
ldr r0, [r4, #0x6c]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r4, #0
mov r1, #0x8f
add r2, #0xf4
- bl GetMonDataEncrypted
+ bl GetMonData
_0222EE5A:
ldr r1, [r4, #0x2c]
mov r0, #1
@@ -2885,7 +2885,7 @@ _0222EE5A:
_0222EE7C:
ldr r0, [r4, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EEAC
ldr r6, _0222EEEC ; =0x00002404
@@ -2893,21 +2893,21 @@ _0222EE7C:
_0222EE8C:
ldr r0, [r4, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r4, r6]
add r1, r7, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
ldr r0, [r4, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EE8C
_0222EEAC:
ldr r0, [r4, #0x70]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EEDC
ldr r6, _0222EEEC ; =0x00002404
@@ -2915,15 +2915,15 @@ _0222EEAC:
_0222EEBC:
ldr r0, [r4, #0x70]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r4, r6]
add r1, r7, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
ldr r0, [r4, #0x70]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EEBC
_0222EEDC:
@@ -5057,7 +5057,7 @@ _0222FFE6:
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
+ bl GetPartyCount
pop {r3, r4, r5, pc}
_0222FFF2:
ldr r1, [r5, #0x2c]
@@ -5068,13 +5068,13 @@ _0222FFF2:
lsr r0, r0, #0x1d
add r0, r5, r0
ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
+ bl GetPartyCount
pop {r3, r4, r5, pc}
_02230008:
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
+ bl GetPartyCount
pop {r3, r4, r5, pc}
thumb_func_start MOD11_02230014
@@ -5099,7 +5099,7 @@ _02230034:
add r0, r5, r0
ldr r0, [r0, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, r5, r6, pc}
_02230042:
ldr r1, [r5, #0x2c]
@@ -5111,14 +5111,14 @@ _02230042:
add r0, r5, r0
ldr r0, [r0, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, r5, r6, pc}
_0223005A:
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, r5, r6, pc}
thumb_func_start MOD11_02230068
@@ -5703,7 +5703,7 @@ _022303E4:
ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #7
str r0, [sp, #0x20]
tst r1, r0
@@ -5714,7 +5714,7 @@ _022303E4:
ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _02230434
@@ -5765,7 +5765,7 @@ _02230478:
ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0223068C ; =0x00000F88
str r0, [sp, #0x20]
tst r1, r0
@@ -5776,7 +5776,7 @@ _02230478:
str r0, [sp, #0x20]
ldr r0, [sp, #0x18]
mov r1, #0x9f
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _022304B8
@@ -5813,7 +5813,7 @@ _022304DC:
ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x10
str r0, [sp, #0x20]
tst r1, r0
@@ -5824,7 +5824,7 @@ _022304DC:
ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _0223051C
@@ -5861,7 +5861,7 @@ _02230540:
ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x20
str r0, [sp, #0x20]
tst r1, r0
@@ -5872,7 +5872,7 @@ _02230540:
ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _02230580
@@ -5909,7 +5909,7 @@ _022305A4:
ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x40
str r0, [sp, #0x20]
tst r1, r0
@@ -5920,7 +5920,7 @@ _022305A4:
ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _022305E4
@@ -6300,20 +6300,20 @@ _022308C4:
ldr r0, [sp, #0x18]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r1, r4, #0
ldr r0, [sp, #0x18]
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _0223095A
add r1, r4, #0
ldr r0, [sp, #0x18]
ldr r2, [sp, #0x20]
add r1, #0x3a
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _0223091C
@@ -6371,20 +6371,20 @@ _0223097E:
ldr r0, [sp, #0x18]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r1, r4, #0
ldr r0, [sp, #0x18]
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _022309F2
add r1, r4, #0
ldr r0, [sp, #0x18]
ldr r2, [sp, #0x20]
add r1, #0x3a
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _022309B4
@@ -6448,7 +6448,7 @@ _02230A0C:
ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02230A42
mov r0, #1
@@ -6458,7 +6458,7 @@ _02230A36:
ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
_02230A42:
ldr r0, [sp, #0x20]
@@ -6467,12 +6467,12 @@ _02230A42:
ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r4, r0
beq _02230B14
ldr r0, [sp, #0x38]
@@ -6491,14 +6491,14 @@ _02230A42:
ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
b _02230AC2
_02230A8C:
ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsr r0, r0, #1
str r0, [sp, #0x20]
bne _02230AC2
@@ -6509,7 +6509,7 @@ _02230AA2:
ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x19
mul r1, r0
add r0, r1, #0
@@ -6524,7 +6524,7 @@ _02230AC2:
ldr r0, [sp, #0x18]
ldr r2, [sp, #0x20]
mov r1, #0xa2
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x38]
mov r1, #0x17
lsl r0, r0, #0x10
@@ -6572,7 +6572,7 @@ _02230B14:
ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
bhs _02230B4A
ldr r0, [sp, #0x14]
@@ -6597,13 +6597,13 @@ _02230B4A:
ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
blo _02230B8E
ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xc8
bhs _02230B8E
ldr r0, [sp, #0x14]
@@ -6628,7 +6628,7 @@ _02230B8E:
ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xc8
blo _02230BC4
ldr r0, [sp, #0x14]
@@ -6649,7 +6649,7 @@ _02230BC4:
ldr r0, [sp, #0x18]
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xb
bne _02230BE0
ldr r0, [sp, #8]
@@ -6659,7 +6659,7 @@ _02230BE0:
ldr r0, [sp, #0x18]
mov r1, #0x97
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, [sp, #4]
bl MOD11_022302B0
@@ -6672,7 +6672,7 @@ _02230BFC:
ldr r0, [sp, #0x18]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
ldr r0, [sp, #0x38]
mov r1, #1
@@ -6692,7 +6692,7 @@ _02230C28:
ldr r0, [sp, #0x18]
ldr r2, [sp, #8]
mov r1, #9
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _02230C3E
@@ -6901,7 +6901,7 @@ _02230D9C:
cmp r1, #6
bge _02230DC4
ldr r0, [r5, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r3, #0x59
str r7, [sp]
lsl r3, r3, #2
@@ -6911,7 +6911,7 @@ _02230D9C:
ldr r0, [r5, #4]
mov r2, #0
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #4]
cmp r0, #0
bne _02230DD0
@@ -7102,7 +7102,7 @@ _02230EE4:
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
mov r0, #0x67
@@ -7152,7 +7152,7 @@ _02230F4E:
add r0, r6, #0
mov r1, #0x70
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
_02230F58:
add r0, r5, #0
mov r1, #0
@@ -8141,7 +8141,7 @@ _02231606:
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x67
lsl r1, r1, #2
cmp r0, r1
@@ -12578,7 +12578,7 @@ _02233938:
add r4, r0, #0
add r0, r7, #0
bl MOD11_0222FF88
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022339C6
_02233950:
@@ -12589,13 +12589,13 @@ _02233950:
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022339B4
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022339B4
add r0, r4, #0
@@ -12616,7 +12616,7 @@ _02233994:
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
add r0, r5, #0
@@ -12632,7 +12632,7 @@ _022339B4:
mov r1, #0
add r4, r4, #1
bl MOD11_0222FF88
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02233950
_022339C6:
@@ -18480,23 +18480,23 @@ _0223678C:
_02236794:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367C8
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _022367C8
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367C8
add r7, r7, #1
@@ -18533,23 +18533,23 @@ _022367EA:
beq _022367EA
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367EA
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #1
beq _022367EA
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367EA
ldr r0, [sp]
@@ -20636,26 +20636,26 @@ _022378A2:
beq _02237900
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022378F8
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022378F8
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02237AAC ; =0x000001EE
cmp r0, r1
beq _022378F8
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237900
_022378F8:
@@ -20672,17 +20672,17 @@ _02237900:
add r4, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #4]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, [sp, #4]
add r1, r6, #0
@@ -20818,26 +20818,26 @@ _02237A2A:
beq _02237A9A
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237A7C
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237A7C
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02237AAC ; =0x000001EE
cmp r0, r1
beq _02237A7C
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237A9A
_02237A7C:
@@ -21174,13 +21174,13 @@ _02237D16:
mov r1, #0xad
mov r2, #0
str r0, [sp, #8]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237D7E
ldr r0, [sp, #8]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02237DBC ; =0x000001EE
cmp r0, r1
beq _02237D7E
@@ -21190,7 +21190,7 @@ _02237D4E:
ldr r0, [sp, #8]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r6, #0
@@ -23876,20 +23876,20 @@ _02239222:
mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
@@ -23915,7 +23915,7 @@ _02239222:
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
sub r0, r0, #1
mov r1, #0xa
bl _u32_div_f
@@ -23939,7 +23939,7 @@ _022392AA:
add r0, r4, #0
mov r1, #6
add r2, r5, r2
- bl SetMonDataEncrypted
+ bl SetMonData
b _022392EC
_022392C4:
cmp r5, #0x62
@@ -23954,7 +23954,7 @@ _022392C4:
add r0, r4, #0
mov r1, #6
add r2, r2, r3
- bl SetMonDataEncrypted
+ bl SetMonData
b _022392EC
_022392E2:
add r1, r1, #1
@@ -23979,7 +23979,7 @@ _022392EC:
mov r1, #0xa0
str r2, [sp, #0xc]
mov r5, #0xa
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
cmp r1, #0xa
@@ -24010,7 +24010,7 @@ _0223932E:
add r0, r4, #0
mov r1, #6
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
_02239350:
ldr r0, [sp]
mov r1, #0
@@ -25352,35 +25352,35 @@ _02239DFA:
bl MOD11_0222FF7C
add r0, r7, #0
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02239E68
_02239E2A:
add r0, r7, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02239E5C
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02239F48 ; =0x000001EE
cmp r0, r1
beq _02239E5C
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02239E5C:
add r0, r7, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02239E2A
_02239E68:
@@ -25400,35 +25400,35 @@ _02239E76:
_02239E82:
ldr r0, [sp, #8]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02239ECC
ldr r7, _02239F48 ; =0x000001EE
_02239E90:
ldr r0, [sp, #8]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02239EC0
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, r7
beq _02239EC0
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02239EC0:
ldr r0, [sp, #8]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02239E90
_02239ECC:
@@ -25448,35 +25448,35 @@ _02239EDA:
bl MOD11_0222FF7C
add r0, r7, #0
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02239F36
_02239EF8:
add r0, r7, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02239F2A
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02239F48 ; =0x000001EE
cmp r0, r1
beq _02239F2A
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02239F2A:
add r0, r7, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02239EF8
_02239F36:
@@ -25807,12 +25807,12 @@ MOD11_0223A178: ; 0x0223A178
add r6, r0, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp]
add r0, r6, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r0, _0223A210 ; =0x00002D67
add r1, r5, r4
@@ -26642,7 +26642,7 @@ _0223A7D6:
mov r1, #6
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #1
@@ -26746,7 +26746,7 @@ _0223A8B0:
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #1
@@ -26768,7 +26768,7 @@ _0223A8B0:
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0223A90E
ldr r1, [r4, #4]
@@ -26794,7 +26794,7 @@ _0223A90E:
ldr r2, [sp, #0x34]
add r0, r6, #0
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0223A928
b _0223AA34
@@ -26802,7 +26802,7 @@ _0223A928:
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
beq _0223AA34
ldr r0, [r4, #4]
@@ -26861,7 +26861,7 @@ _0223A994:
add r0, r6, #0
mov r1, #0xc
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0223ABAC ; =0x020ECAC4
ldrb r1, [r1]
cmp r1, r0
@@ -26888,10 +26888,10 @@ _0223A9D6:
add r0, r6, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x48]
add r0, r6, #0
- bl FUN_02068734
+ bl GetMonBaseExperienceAtCurrentLevel
ldr r1, [sp, #0x48]
sub r0, r1, r0
str r0, [r4, #0x3c]
@@ -26914,7 +26914,7 @@ _0223AA0C:
add r0, r6, #0
mov r1, #8
add r2, sp, #0x48
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r6, [r4, #4]
ldr r0, [r4]
add r1, r7, #0
@@ -27062,7 +27062,7 @@ _0223AB22:
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x30]
mov r0, #5
mov r1, #0x18
@@ -27082,7 +27082,7 @@ _0223AB58:
ldr r1, [r1, r2]
add r0, r6, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x4c]
lsl r2, r1, #2
ldr r1, [sp, #0x2c]
@@ -27099,9 +27099,9 @@ _0223AB58:
add r0, r6, #0
mov r1, #0
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
add r0, r6, #0
- bl CalcMonStatsMaybeEncrypted
+ bl CalcMonStats
ldr r1, [r4, #4]
ldr r0, _0223ABB0 ; =0x0000219C
b _0223ABBC
@@ -27324,7 +27324,7 @@ _0223AD30:
ldr r1, [r1, r2]
add r0, r6, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x28]
lsl r2, r5, #2
ldr r1, [r1, r2]
@@ -27390,7 +27390,7 @@ _0223ADEC:
strb r0, [r5, #1]
add r0, r6, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xb4]
mov r0, #3
str r0, [sp, #0xcc]
@@ -27838,7 +27838,7 @@ _0223B192:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xb8]
ldr r0, [r4]
bl MOD11_02230E54
@@ -27897,7 +27897,7 @@ _0223B1F6:
add r0, r6, #0
add r1, #0x3e
add r2, sp, #0x4c
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r1, [r4, #0x40]
ldr r2, [r4, #0x44]
lsl r1, r1, #0x10
@@ -27988,11 +27988,11 @@ MOD11_0223B2DC: ; 0x0223B2DC
add r7, r0, #0
ldr r0, [sp]
ldr r1, [sp, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #6
add r2, r4, #0
str r0, [sp, #0x14]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r6, #0
@@ -28015,7 +28015,7 @@ _0223B328:
ldr r0, [sp, #0x14]
add r1, #0xd
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0xc]
strb r0, [r1]
add r0, r1, #0
@@ -28183,7 +28183,7 @@ _0223B45A:
str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r1, #0xd
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
add r0, r0, #1
str r0, [sp, #0x10]
@@ -28638,7 +28638,7 @@ _0223B83C:
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
ldr r0, [r4]
bl MOD11_02231668
@@ -29020,7 +29020,7 @@ _0223BB76:
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
ldr r0, [r4]
bl MOD11_02230E18
@@ -29058,7 +29058,7 @@ _0223BBEE:
add r0, r6, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #8]
ldr r0, [r4]
bl MOD11_02230290
@@ -29066,7 +29066,7 @@ _0223BBEE:
add r0, r6, #0
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x10]
ldr r0, _0223BF18 ; =0x020FA5FC
add r1, r5, #0
@@ -29102,7 +29102,7 @@ _0223BC38:
bne _0223BC62
ldr r2, [r5, #0x18]
mov r1, #0x77
- bl SetMonDataEncrypted
+ bl SetMonData
_0223BC62:
add r0, r5, #0
bl FUN_02077AC4
@@ -29204,13 +29204,13 @@ _0223BD3E:
add r0, r6, #0
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0
str r0, [sp, #0x2c]
add r0, r6, #0
add r1, #0x3a
add r2, sp, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r5, r5, #1
cmp r5, #4
blt _0223BD3E
@@ -31430,7 +31430,7 @@ MOD11_0223CDC4: ; 0x0223CDC4
ldr r0, [sp, #0x18]
mov r1, #0xaf
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0223CF26
mov r0, #2
@@ -31439,7 +31439,7 @@ _0223CF26:
ldr r0, [sp, #0x18]
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
_0223CF30:
cmp r0, #0
bne _0223CF42
@@ -31472,7 +31472,7 @@ _0223CF5C:
ldr r0, [sp, #0x18]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0
str r0, [sp]
@@ -31697,7 +31697,7 @@ _0223D148:
add r0, r7, #0
mov r1, #8
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
pop {r3, r4, r5, r6, r7, pc}
_0223D18E:
add r0, r5, #0
@@ -31707,7 +31707,7 @@ _0223D18E:
add r0, r7, #0
mov r1, #6
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
pop {r3, r4, r5, r6, r7, pc}
_0223D1A4:
add r0, r5, #0
@@ -31717,7 +31717,7 @@ _0223D1A4:
add r0, r7, #0
mov r1, #6
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_0223D1B8:
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -41607,7 +41607,7 @@ _02241DD2:
bl MOD11_0222FF7C
add r0, r6, #0
add r5, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02241E4A
ldr r0, [sp, #0x2c]
@@ -41619,24 +41619,24 @@ _02241DD2:
_02241DFE:
add r0, r6, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02241E3E
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02241FCC ; =0x000001EE
cmp r0, r1
beq _02241E3E
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02241E3E
ldr r2, [sp, #8]
@@ -41648,7 +41648,7 @@ _02241DFE:
_02241E3E:
add r0, r6, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02241DFE
_02241E4A:
@@ -41700,35 +41700,35 @@ _02241E8A:
bl MOD11_0222FF7C
add r0, r6, #0
add r5, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02241EF2
_02241EB4:
add r0, r6, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02241EE6
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02241FCC ; =0x000001EE
cmp r0, r1
beq _02241EE6
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_02241EE6:
add r0, r6, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02241EB4
_02241EF2:
@@ -41905,35 +41905,35 @@ _0224200C:
bl MOD11_0222FF7C
add r0, r6, #0
add r4, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02242094
_02242056:
add r0, r6, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02242088
add r0, r5, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242340 ; =0x000001EE
cmp r0, r1
beq _02242088
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_02242088:
add r0, r6, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02242056
_02242094:
@@ -41985,69 +41985,69 @@ _022420CA:
str r0, [sp, #0x14]
add r0, r7, #0
add r4, r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224213C
_022420FE:
add r0, r7, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02242130
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242340 ; =0x000001EE
cmp r0, r1
beq _02242130
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02242130:
add r0, r7, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022420FE
_0224213C:
ldr r0, [sp, #0x18]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02242186
ldr r7, _02242340 ; =0x000001EE
_0224214A:
ldr r0, [sp, #0x18]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224217A
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, r7
beq _0224217A
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_0224217A:
ldr r0, [sp, #0x18]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0224214A
_02242186:
@@ -42089,35 +42089,35 @@ _022421B0:
str r0, [sp, #0x10]
add r0, r6, #0
add r4, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224221A
_022421DC:
add r0, r6, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224220E
add r0, r5, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242340 ; =0x000001EE
cmp r0, r1
beq _0224220E
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_0224220E:
add r0, r6, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022421DC
_0224221A:
@@ -43364,41 +43364,41 @@ MOD11_02242B78: ; 0x02242B78
mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x18]
mov r2, #0
strh r0, [r1, r5]
add r0, r4, #0
mov r1, #0xa4
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F4C ; =0x00002D42
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F50 ; =0x00002D44
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F54 ; =0x00002D46
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F58 ; =0x00002D48
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, r5
ldr r2, _02242F5C ; =0x00002D4A
str r1, [sp, #0xc]
@@ -43412,7 +43412,7 @@ _02242C02:
add r0, r4, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp, #0x14]
ldr r1, _02242F60 ; =0x00002D4C
strh r0, [r2, r1]
@@ -43420,7 +43420,7 @@ _02242C02:
add r0, r4, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp, #0x10]
ldr r1, _02242F64 ; =0x00002D6C
strb r0, [r2, r1]
@@ -43428,7 +43428,7 @@ _02242C02:
add r0, r4, #0
add r1, #0x3e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp, #0x10]
ldr r1, _02242F68 ; =0x00002D70
add r6, r6, #1
@@ -43447,7 +43447,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r6, r5]
mov r2, #0x1f
bic r1, r2
@@ -43458,7 +43458,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x47
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F6C ; =0xFFFFFC1F
@@ -43469,7 +43469,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x48
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F70 ; =0xFFFF83FF
@@ -43480,7 +43480,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x49
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F74 ; =0xFFF07FFF
@@ -43491,7 +43491,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x4a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F78 ; =0xFE0FFFFF
@@ -43502,7 +43502,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x4b
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F7C ; =0xC1FFFFFF
@@ -43513,7 +43513,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [r6, r5]
ldr r1, _02242F80 ; =0xBFFFFFFF
lsl r0, r0, #0x1f
@@ -43524,7 +43524,7 @@ _02242C02:
add r0, r4, #0
mov r1, #0x4d
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [r6, r5]
ldr r1, _02242F84 ; =0x7FFFFFFF
lsl r0, r0, #0x1f
@@ -43598,14 +43598,14 @@ _02242D2E:
add r0, r4, #0
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FA0 ; =0x00002D64
add r2, r7, r5
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FA4 ; =0x00002D65
add r2, r7, r5
strb r0, [r2, r1]
@@ -43613,7 +43613,7 @@ _02242D2E:
add r0, r7, r1
str r0, [sp, #0x1c]
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldr r1, [sp, #0x1c]
mov r2, #0xf
ldrb r1, [r1, r5]
@@ -43626,7 +43626,7 @@ _02242D2E:
ldr r0, _02242FA8 ; =0x00002D66
add r6, r7, r0
add r0, r4, #0
- bl FUN_02068A80
+ bl MonIsShiny
ldrb r1, [r6, r5]
mov r2, #0x20
lsl r0, r0, #0x1f
@@ -43637,7 +43637,7 @@ _02242D2E:
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldrb r1, [r6, r5]
mov r2, #0x1f
lsl r0, r0, #0x18
@@ -43670,14 +43670,14 @@ _02242E24:
add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FAC ; =0x00002D67
add r2, r7, r5
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FB0 ; =0x00002DAC
add r2, r7, r5
str r0, [r2, r1]
@@ -43688,7 +43688,7 @@ _02242E24:
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, r5]
_02242E58:
ldr r0, [sp, #4]
@@ -43698,56 +43698,56 @@ _02242E58:
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FB4 ; =0x00002D74
add r2, r7, r6
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FB8 ; =0x00002D75
add r2, r7, r6
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FBC ; =0x00002D8C
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FC0 ; =0x00002D90
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FC4 ; =0x00002DA4
add r2, r7, r6
str r0, [r2, r1]
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FC8 ; =0x00002DA8
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FCC ; =0x00002DB4
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #0x9c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -43762,7 +43762,7 @@ _02242E58:
strb r1, [r0, r5]
add r0, r4, #0
mov r1, #0x9a
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FD0 ; =0x00002DBF
add r2, r7, r6
strb r0, [r2, r1]
@@ -43788,13 +43788,13 @@ _02242E58:
add r2, r7, r2
mov r1, #0x74
add r2, r2, r6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, _02242FDC ; =0x00002D94
add r0, r4, #0
add r2, r7, r2
mov r1, #0x8f
add r2, r2, r6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r0, _02242FE0 ; =0x00002DBC
b _02242FE4
.align 2, 0
@@ -43906,7 +43906,7 @@ MOD11_02243054: ; 0x02243054
mov r1, #0xa4
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43915,7 +43915,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43924,7 +43924,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43933,7 +43933,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43942,7 +43942,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43951,7 +43951,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43960,7 +43960,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43969,7 +43969,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43978,7 +43978,7 @@ MOD11_02243054: ; 0x02243054
add r0, r6, #0
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -44016,21 +44016,21 @@ _02243142:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _022431CC ; =0x00002D4C
mov r2, #0
strh r0, [r7, r1]
add r1, r4, #0
add r0, r6, #0
add r1, #0x3a
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _022431D0 ; =0x00002D6C
mov r2, #0
strb r0, [r5, r1]
add r1, r4, #0
add r0, r6, #0
add r1, #0x3e
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _022431D4 ; =0x00002D70
strb r0, [r5, r1]
_02243186:
@@ -44042,7 +44042,7 @@ _02243186:
add r0, r6, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -48640,23 +48640,23 @@ _02245384:
mov r6, #0
add r5, r0, #0
add r4, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022453C6
_022453A4:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022453BA
add r6, r6, #1
_022453BA:
add r0, r5, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022453A4
_022453C6:
@@ -48697,23 +48697,23 @@ _022453F8:
mov r6, #0
add r5, r0, #0
add r4, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224543A
_02245418:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224542E
add r6, r6, #1
_0224542E:
add r0, r5, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02245418
_0224543A:
@@ -52132,23 +52132,23 @@ _02246E72:
_02246E76:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02246EB6
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02246EB6
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02246EB6
ldr r0, [sp, #0xc]
@@ -60443,7 +60443,7 @@ MOD11_0224AD38: ; 0x0224AD38
add r0, r6, #0
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
b _0224AD7A
_0224AD76:
@@ -60552,17 +60552,17 @@ MOD11_0224AE14: ; 0x0224AE14
add r0, r5, #0
mov r1, #0x8f
add r2, sp, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r6, r0
bne _0224AE72
add r0, r5, #0
mov r1, #0x9c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
bne _0224AE72
add r0, r4, #0
@@ -61031,7 +61031,7 @@ _0224B1D8:
bl FUN_0206E7B8
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl GetArceusTypeByPlate
+ bl GetArceusTypeByHeldItemEffect
mov r1, #0x46
lsl r1, r1, #2
ldr r1, [r5, r1]
@@ -64908,13 +64908,13 @@ _0224CEE2:
add r0, r7, #0
add r1, #0x36
add r2, r5, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r2, [sp, #8]
add r1, r4, #0
add r0, r7, #0
add r1, #0x3a
add r2, r2, r4
- bl SetMonDataEncrypted
+ bl SetMonData
_0224CF0C:
add r4, r4, #1
add r5, r5, #2
@@ -64932,16 +64932,16 @@ _0224CF14:
add r0, r7, #0
mov r1, #6
add r2, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
_0224CF30:
add r0, r7, #0
mov r1, #0xa2
add r2, r6, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
mov r1, #0x9f
add r2, r6, #4
- bl SetMonDataEncrypted
+ bl SetMonData
mov r2, #0x65
ldr r1, [sp, #4]
lsl r2, r2, #2
@@ -65054,7 +65054,7 @@ _0224D00A:
_0224D024:
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
_0224D02C:
ldrh r1, [r4, #2]
cmp r1, #0xd7
@@ -65066,7 +65066,7 @@ _0224D038:
add r0, r6, #0
mov r1, #0x9f
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
_0224D042:
ldr r0, [sp, #4]
add r5, r5, #1
@@ -65586,23 +65586,23 @@ _0224D452:
bl MOD11_0222FF88
add r6, r0, #0
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224D4C0
_0224D466:
add r0, r6, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224D4B4
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0224D4B4
ldr r0, [sp]
@@ -65613,7 +65613,7 @@ _0224D466:
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #8]
add r0, r1, r0
str r0, [sp, #8]
@@ -65622,12 +65622,12 @@ _0224D4A8:
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_0224D4B4:
add r0, r6, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0224D466
_0224D4C0:
@@ -73750,7 +73750,7 @@ _02251662:
bl FUN_0206B8CC
ldr r0, [sp, #0x14]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022516B0
mov r0, #6
@@ -73775,7 +73775,7 @@ _02251680:
strb r0, [r1]
ldr r0, [sp, #0x14]
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _02251680
_022516B0:
@@ -74596,7 +74596,7 @@ _02251CEC:
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #8]
mov r2, #0
ldr r1, [r1, #4]
@@ -74605,7 +74605,7 @@ _02251CEC:
str r0, [r5, #0x28]
add r0, r6, #0
mov r1, #0xa3
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x2c]
ldr r0, [r4, #8]
mov r1, #0x9f
@@ -74614,7 +74614,7 @@ _02251CEC:
ldrh r0, [r0, #0x20]
str r0, [r5, #0x30]
add r0, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02251D72
add r0, r5, #0
@@ -74735,7 +74735,7 @@ _02251E2E:
bl MOD11_02230014
mov r1, #0x9f
add r2, r5, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02251E6A
ldr r0, [sp, #0x10]
@@ -75168,7 +75168,7 @@ _022521DC:
ldr r0, [r4, #4]
add r1, r6, #0
ldr r0, [r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
ldr r0, [sp, #0x1c]
bl FUN_02069B88
@@ -75208,7 +75208,7 @@ _02252232:
ldr r0, [r4, #4]
ldr r1, [sp, #0xc]
ldr r0, [r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
ldr r0, [sp, #0x20]
bl FUN_02069B88
@@ -75279,7 +75279,7 @@ _022522C4:
bl MOD11_0222FF88
str r0, [sp, #0x10]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0225230E
mov r0, #6
@@ -75302,7 +75302,7 @@ _022522E2:
ldr r0, [sp, #0x10]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _022522E2
_0225230E:
@@ -75514,7 +75514,7 @@ _0225249A:
bl MOD11_0222FF88
str r0, [sp, #8]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022524FE
ldr r0, [sp, #4]
@@ -75527,7 +75527,7 @@ _022524D0:
bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022524F2
ldrb r0, [r7, #0xc]
@@ -75539,7 +75539,7 @@ _022524D0:
_022524F2:
ldr r0, [sp, #8]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022524D0
_022524FE:
@@ -81046,12 +81046,12 @@ MOD11_02255034: ; 0x02255034
add r6, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
mov r0, #0xc
add r2, sp, #0x14
@@ -81124,7 +81124,7 @@ _022550D0:
_022550EA:
ldr r0, [sp, #0x10]
ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -81135,11 +81135,11 @@ _022550EA:
str r0, [sp, #0x1c]
ldr r0, [sp, #0x10]
add r1, r1, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
ldr r0, [sp, #0x10]
ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x20]
ldrh r1, [r7, r6]
@@ -81265,7 +81265,7 @@ _02255210:
bl MOD11_0222FF88
str r0, [sp, #0x24]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022552A6
mov r0, #6
@@ -81283,11 +81283,11 @@ _0225523A:
ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x24]
ldrb r1, [r7, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255298
ldr r1, _02255500 ; =0x000001EE
@@ -81296,13 +81296,13 @@ _0225523A:
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255280
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0225527A
mov r0, #3
@@ -81323,7 +81323,7 @@ _02255284:
b _02255294
_0225528E:
add r0, r4, #0
- bl FUN_02068698
+ bl GetPercentProgressTowardsNextLevel
_02255294:
strb r0, [r5, #2]
add r5, r5, #1
@@ -81331,7 +81331,7 @@ _02255298:
ldr r0, [sp, #0x24]
add r7, r7, #1
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _0225523A
_022552A6:
@@ -81371,7 +81371,7 @@ _022552E2:
bl MOD11_0222FF88
str r0, [sp, #0x10]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0225535E
add r1, r4, #0
@@ -81384,11 +81384,11 @@ _02255304:
ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x10]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255350
ldr r1, _02255500 ; =0x000001EE
@@ -81397,13 +81397,13 @@ _02255304:
add r0, r7, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0225534A
add r0, r7, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255344
mov r0, #3
@@ -81422,7 +81422,7 @@ _02255350:
ldr r0, [sp, #0x10]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02255304
_0225535E:
@@ -81446,7 +81446,7 @@ _0225537C:
bl MOD11_0222FF88
str r0, [sp, #0x14]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02255482
add r1, r4, #0
@@ -81460,11 +81460,11 @@ _022553A0:
ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x14]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022553EC
ldr r1, _02255500 ; =0x000001EE
@@ -81473,13 +81473,13 @@ _022553A0:
add r0, r7, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022553E6
add r0, r7, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022553E0
mov r0, #3
@@ -81498,7 +81498,7 @@ _022553EC:
ldr r0, [sp, #0x14]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _022553A0
b _02255482
@@ -81513,7 +81513,7 @@ _022553FC:
bl MOD11_0222FF88
str r0, [sp, #0x18]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02255482
add r1, r4, #0
@@ -81526,11 +81526,11 @@ _02255428:
ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x18]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255474
ldr r1, _02255500 ; =0x000001EE
@@ -81539,13 +81539,13 @@ _02255428:
add r0, r7, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0225546E
add r0, r7, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255468
mov r0, #3
@@ -81564,7 +81564,7 @@ _02255474:
ldr r0, [sp, #0x18]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02255428
_02255482:
@@ -82376,12 +82376,12 @@ MOD11_02255A8C: ; 0x02255A8C
add r4, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
mov r0, #0x18
add r2, sp, #0xc
@@ -82432,7 +82432,7 @@ _02255B04:
_02255B12:
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
ldr r1, _02255B64 ; =0x00002DA4
add r2, r5, r4
ldr r1, [r2, r1]
@@ -82440,11 +82440,11 @@ _02255B12:
str r0, [sp, #0x18]
add r0, r7, #0
add r1, r6, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r4, r0, #0
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r4, r0
str r0, [sp, #0x1c]
mov r0, #0x14
@@ -82480,12 +82480,12 @@ MOD11_02255B68: ; 0x02255B68
add r6, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
mov r1, #0x19
add r0, sp, #0xc
@@ -82494,7 +82494,7 @@ MOD11_02255B68: ; 0x02255B68
add r1, r6, #0
str r0, [sp, #0x10]
add r0, r7, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -82504,11 +82504,11 @@ MOD11_02255B68: ; 0x02255B68
str r0, [sp, #0x14]
add r0, r7, #0
add r1, r6, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x18]
mov r0, #0x10
@@ -83105,12 +83105,12 @@ MOD11_02256020: ; 0x02256020
add r6, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
mov r0, #0x26
add r2, sp, #0x10
@@ -83183,7 +83183,7 @@ _022560BA:
_022560D4:
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -83194,11 +83194,11 @@ _022560D4:
str r0, [sp, #0x18]
ldr r0, [sp, #0xc]
add r1, r1, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x1c]
ldrh r1, [r7, r6]
@@ -84454,7 +84454,7 @@ _02256A60:
mov r4, #0
str r0, [sp, #0x10]
add r7, r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02256AE0
mov r0, #6
@@ -84466,11 +84466,11 @@ _02256A80:
ldr r1, _02256C00 ; =0x0000312C
ldr r0, [sp, #0x10]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x14]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256AD2
ldr r1, _02256C04 ; =0x000001EE
@@ -84479,13 +84479,13 @@ _02256A80:
ldr r0, [sp, #0x14]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256ACA
ldr r0, [sp, #0x14]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256AC2
add r1, r5, r4
@@ -84507,7 +84507,7 @@ _02256AD2:
ldr r0, [sp, #0x10]
add r6, r6, #1
add r7, r7, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r7, r0
blt _02256A80
_02256AE0:
@@ -84517,7 +84517,7 @@ _02256AE0:
str r0, [sp, #8]
mov r4, #3
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bgt _02256AF8
b _02256BFA
@@ -84531,11 +84531,11 @@ _02256B02:
ldr r1, _02256C00 ; =0x0000312C
ldr r0, [sp, #8]
ldrb r1, [r7, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x18]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256B54
ldr r1, _02256C04 ; =0x000001EE
@@ -84544,13 +84544,13 @@ _02256B02:
ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256B4C
ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256B44
add r1, r5, r4
@@ -84572,7 +84572,7 @@ _02256B54:
ldr r0, [sp, #8]
add r7, r7, #1
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _02256B02
add sp, #0x20
@@ -84595,7 +84595,7 @@ _02256B7A:
mov r4, #0
str r0, [sp, #0xc]
add r7, r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02256BFA
ldr r0, [sp, #0x38]
@@ -84607,11 +84607,11 @@ _02256B9A:
ldr r1, _02256C00 ; =0x0000312C
ldr r0, [sp, #0xc]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x1c]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256BEC
ldr r1, _02256C04 ; =0x000001EE
@@ -84620,13 +84620,13 @@ _02256B9A:
ldr r0, [sp, #0x1c]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256BE4
ldr r0, [sp, #0x1c]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256BDC
add r1, r5, r4
@@ -84648,7 +84648,7 @@ _02256BEC:
ldr r0, [sp, #0xc]
add r6, r6, #1
add r7, r7, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r7, r0
blt _02256B9A
_02256BFA:
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index acf2d363..6862284e 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -217,7 +217,7 @@ _0222D7BC:
ldr r0, [r1, r0]
add r1, r6, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
add r6, r6, #1
add r5, r5, #2
@@ -975,7 +975,7 @@ _0222DE9E:
ldr r0, [r1, r0]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222DEBE
mov r1, #0xb
@@ -5972,7 +5972,7 @@ _0223072E:
mov r1, #5
ldr r0, [r0, r6]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD12_0223EE70
add r1, r5, r4
add r4, r4, #1
@@ -7750,7 +7750,7 @@ _0223151C:
ldr r0, [r4]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r6, #0x64
add r5, r0, #0
add r0, r6, #0
@@ -7777,17 +7777,17 @@ _0223154E:
ldr r0, [r4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa0
@@ -7812,17 +7812,17 @@ _02231594:
ldr r0, [r4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa0
@@ -7847,17 +7847,17 @@ _022315DA:
ldr r0, [r4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa1
@@ -7882,17 +7882,17 @@ _02231620:
ldr r0, [r4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa2
@@ -7917,17 +7917,17 @@ _02231666:
ldr r0, [r4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa0
@@ -7954,7 +7954,7 @@ _022316B2:
ldr r0, [r4]
mov r1, #0x18
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #8]
add r1, r1, r7
add r1, r0, r1
@@ -8951,7 +8951,7 @@ _02231E5E:
ldr r0, [r0, r1]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r4, #1
add r2, sp, #0x3c
strh r0, [r2, r1]
@@ -9369,7 +9369,7 @@ _022321A6:
ldr r0, [r1, r0]
add r1, r5, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022321C8
ldr r0, _0223220C ; =0x000002E1
@@ -10201,7 +10201,7 @@ _022327EC:
ldr r0, [r0, r1]
add r1, r6, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
add r6, r6, #1
add r5, r5, #2
@@ -11076,7 +11076,7 @@ _02232EB2:
ldr r0, [r0, r1]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r2, r4, #1
add r1, sp, #0x10
strh r0, [r1, r2]
@@ -12221,7 +12221,7 @@ _022336D4:
mov r1, #5
ldr r0, [r0, r4]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD08_0222A6C8
cmp r0, #1
bne _02233750
@@ -12296,7 +12296,7 @@ _0223377C:
ldr r0, [r0]
mov r2, #0
ldr r0, [r0, r4]
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD08_0222A6C8
cmp r0, #1
bne _022337E6
@@ -15395,7 +15395,7 @@ MOD12_02235038: ; 0x02235038
ldr r0, [r1, r0]
ldr r2, [sp, #0x30]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r5]
ldr r0, _022350E8 ; =0x00000123
ldrb r0, [r1, r0]
@@ -16862,12 +16862,12 @@ _02235B9C:
ldr r0, [r6, r5]
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [r6, r5]
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, #7
beq _02235BBC
cmp r0, #7
@@ -18438,7 +18438,7 @@ _02236736:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #5
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
ldr r0, [r4]
mov r2, #0
@@ -18447,14 +18447,14 @@ _02236736:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #0x6f
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [r4]
ldr r1, [r0, #0xc]
ldrb r0, [r4, #0xd]
lsl r0, r0, #2
ldr r0, [r1, r0]
- bl FUN_02068A80
+ bl MonIsShiny
str r0, [sp, #0x20]
ldr r0, [r4]
mov r2, #0
@@ -18463,7 +18463,7 @@ _02236736:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x1c]
ldr r0, [r4]
ldr r1, [r0, #0xc]
@@ -18472,7 +18472,7 @@ _02236736:
ldr r0, [r1, r0]
mov r1, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
lsl r5, r5, #2
@@ -18480,33 +18480,33 @@ _02236736:
mov r1, #5
ldr r0, [r0, r5]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x18]
ldr r0, [r4]
mov r1, #0x6f
ldr r0, [r0, #0xc]
mov r2, #0
ldr r0, [r0, r5]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
ldr r0, [r4]
ldr r0, [r0, #0xc]
ldr r0, [r0, r5]
- bl FUN_02068A80
+ bl MonIsShiny
str r0, [sp, #0x10]
ldr r0, [r4]
mov r1, #0x70
ldr r0, [r0, #0xc]
mov r2, #0
ldr r0, [r0, r5]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0
ldr r0, [r0, #0xc]
add r2, r1, #0
ldr r0, [r0, r5]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #4]
mov r2, #0x47
mov r0, #0
@@ -19010,7 +19010,7 @@ _02236BD0:
lsl r0, r0, #2
ldr r0, [r2, r0]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
ldr r0, _02236CF0 ; =0x000005DD
bl FUN_020054C8
@@ -23971,7 +23971,7 @@ _02239080:
ldr r0, [r0, r1]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
mov r0, #0x23
lsl r0, r0, #4
@@ -27801,7 +27801,7 @@ _0223AC68:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #5
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0x7f
str r0, [sp]
@@ -43888,7 +43888,7 @@ _022428E6:
str r0, [sp, #0x10]
ldr r0, [r1, r0]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #1
lsl r0, r0, #4
str r0, [sp, #0x14]
@@ -47346,7 +47346,7 @@ _022443A4:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #5
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0x7f
str r0, [sp]
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 00b933b8..191de449 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -116,7 +116,7 @@ MOD14_021D75B8: ; 0x021D75B8
lsl r1, r1, #2
ldr r0, [r4, r1]
add r1, #0x95
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _021D75DE
mov r0, #0x47
@@ -1905,7 +1905,7 @@ _021D8476:
add r0, #0x19
strb r2, [r4, r0]
ldr r0, [r4, r1]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, _021D8504 ; =0x0000013F
strb r0, [r4, r1]
add r0, r4, #0
@@ -3868,7 +3868,7 @@ _021D9488:
bl FUN_0206B5E4
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021D94AE
mov r0, #0
@@ -4031,7 +4031,7 @@ _021D95CA:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r0, r0, #1
cmp r6, r0
beq _021D9610
@@ -4238,7 +4238,7 @@ _021D979C:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
beq _021D97F2
mov r0, #0x45
@@ -4699,7 +4699,7 @@ MOD14_021D9B84: ; 0x021D9B84
lsl r1, r1, #2
str r0, [sp]
ldr r0, [r0, r1]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
add r5, r6, #0
str r0, [sp, #4]
@@ -4711,27 +4711,27 @@ _021D9B9E:
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
- bl TryDecryptMon
+ bl AcquireMonLock
add r7, r0, #0
add r0, r4, #0
mov r1, #0xac
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021D9BD2
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021D9BD2
add r5, r5, #1
_021D9BD2:
add r0, r4, #0
add r1, r7, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
cmp r5, #2
blt _021D9BE4
add sp, #8
@@ -5301,7 +5301,7 @@ _021DA042:
mov r1, #0xab
mov r2, #0
add r7, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DA080
ldr r4, _021DA164 ; =0x021E6224
@@ -5351,7 +5351,7 @@ _021DA0A4:
_021DA0AE:
add r0, r1, #0
ldr r0, [r0, #0x18]
- bl FUN_0206B9AC
+ bl GetPartyCount
str r0, [sp, #0x10]
mov r0, #0
str r0, [sp, #8]
@@ -5362,7 +5362,7 @@ _021DA0C2:
ldr r0, [sp, #4]
ldr r1, [sp, #8]
ldr r0, [r0, #0x18]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r4, _021DA164 ; =0x021E6224
ldr r5, [sp, #4]
add r7, r0, #0
@@ -5455,12 +5455,12 @@ MOD14_021DA168: ; 0x021DA168
mov r1, #0
add r5, r0, #0
str r1, [sp, #4]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp]
add r0, r5, #0
mov r1, #0xac
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021DA1A8
mov r4, #0
@@ -5470,7 +5470,7 @@ _021DA18C:
add r0, r5, #0
add r1, #0x36
add r2, r7, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r6, r0
bne _021DA1A2
mov r0, #1
@@ -5483,7 +5483,7 @@ _021DA1A2:
_021DA1A8:
ldr r1, [sp]
add r0, r5, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp, #4]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@@ -8416,7 +8416,7 @@ MOD14_021DB8D0: ; 0x021DB8D0
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #8]
mov r0, #8
ldrsb r0, [r4, r0]
@@ -8495,14 +8495,14 @@ _021DB96C:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
bge _021DB98E
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4]
b _021DB998
_021DB98E:
@@ -8518,7 +8518,7 @@ _021DB998:
beq _021DB9C4
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DB9C4
mov r0, #1
@@ -8739,7 +8739,7 @@ _021DBB36:
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x20]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DBB86
ldr r0, [sp, #0x20]
@@ -8896,13 +8896,13 @@ _021DBC70:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r0, #0
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
sub r1, r1, #1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
_021DBC8A:
add r0, r7, #0
@@ -9122,7 +9122,7 @@ MOD14_021DBE34: ; 0x021DBE34
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
mov r0, #1
strb r0, [r4, #0x13]
add r0, r4, #0
@@ -9189,18 +9189,18 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
add r6, r2, #0
add r4, #0x4c
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp]
str r5, [r7, #0x4c]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #4]
add r0, r5, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #6]
mov r0, #0x47
lsl r0, r0, #2
@@ -9212,7 +9212,7 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #0xac
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xf]
ldrh r0, [r4, #4]
mov r1, #9
@@ -9221,7 +9221,7 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #8
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r2, r0, #0
ldrh r1, [r4, #4]
add r0, r7, #0
@@ -9230,17 +9230,17 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #0xb
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xb]
add r0, r5, #0
mov r1, #0xb0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xc]
add r0, r5, #0
mov r1, #0xb1
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xd]
ldrb r0, [r4, #0xf]
cmp r0, #0
@@ -9248,13 +9248,13 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #0xaf
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DBF68
mov r1, #0
add r0, r5, #0
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r2, r0, #0
ldrh r1, [r4, #4]
add r0, r7, #0
@@ -9268,7 +9268,7 @@ _021DBF6C:
ldr r2, [r4, #0x14]
add r0, r5, #0
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _021DBF8C
@@ -9302,7 +9302,7 @@ _021DBFAA:
bl FUN_0200A8E0
_021DBFB8:
add r0, r5, #0
- bl GetBoxMonNatureEncrypted
+ bl GetBoxMonNature
add r1, r0, #0
mov r0, #0x65
lsl r0, r0, #2
@@ -9312,7 +9312,7 @@ _021DBFB8:
add r0, r5, #0
mov r1, #0xa
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #0
mov r0, #0x66
lsl r0, r0, #2
@@ -9323,7 +9323,7 @@ _021DBFB8:
bl FreeMonPersonal
ldr r1, [sp]
add r0, r5, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021DBFF4
@@ -9371,125 +9371,125 @@ _021DC034:
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
- bl TryDecryptMon
+ bl AcquireMonLock
add r6, r0, #0
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xa]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa4
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xc]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xe]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x12]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x14]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x16]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x18]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1a]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1c]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1e]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x20]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x37
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x22]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x38
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x24]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x39
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x26]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #7]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r6, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
add r0, r7, #0
add r0, #0xa4
ldrb r0, [r0]
@@ -9557,7 +9557,7 @@ MOD14_021DC1AC: ; 0x021DC1AC
ldr r0, [r4, #0x4c]
mov r1, #0xb
add r2, sp, #0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
bl MOD14_021DC3CC
cmp r0, #0
@@ -9623,12 +9623,12 @@ _021DC24A:
ldr r0, [r4]
mov r1, #6
add r2, sp, #0x1c
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_021DC254:
ldr r0, [r4]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, _021DC274 ; =0x000001ED
cmp r0, r1
bne _021DC26A
@@ -10215,7 +10215,7 @@ MOD14_021DC58C: ; 0x021DC58C
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
pop {r4, r5, r6, pc}
_021DC5B2:
ldrb r0, [r5, #0x1f]
@@ -10224,13 +10224,13 @@ _021DC5B2:
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
pop {r4, r5, r6, pc}
_021DC5C4:
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DC5D0
@@ -10245,13 +10245,13 @@ MOD14_021DC5D0: ; 0x021DC5D0
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
pop {r4, r5, r6, pc}
_021DC5EC:
ldr r0, [r5, #8]
add r1, r4, #0
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DC5F8
@@ -14333,7 +14333,7 @@ _021DE5FE:
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x34]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DE64E
add r0, r4, #0
@@ -14434,7 +14434,7 @@ _021DE6D0:
mov r1, #5
mov r2, #0
add r7, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DE70A
ldr r1, _021DE724 ; =0x00005814
@@ -14908,7 +14908,7 @@ _021DEA70:
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x20]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DEB02
ldrb r1, [r5, #2]
@@ -15025,7 +15025,7 @@ _021DEB5C:
mov r1, #5
mov r2, #0
str r0, [sp, #0x2c]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DEBA0
add r0, r4, #0
@@ -18859,7 +18859,7 @@ MOD14_021E0940: ; 0x021E0940
str r2, [sp, #8]
str r3, [sp, #0xc]
ldr r4, [sp, #0x64]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
@@ -18877,21 +18877,21 @@ MOD14_021E0940: ; 0x021E0940
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x18]
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r7, r0, #0x18
add r0, r6, #0
@@ -18905,12 +18905,12 @@ MOD14_021E0940: ; 0x021E0940
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x30]
add r0, r6, #0
mov r1, #0xb
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x2e]
add r0, r4, #4
bl FUN_020B1A24
@@ -18971,7 +18971,7 @@ _021E0A36:
bl MOD14_021E0B54
ldr r1, [sp, #0x10]
add r0, r6, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add sp, #0x44
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -18987,19 +18987,19 @@ MOD14_021E0A60: ; 0x021E0A60
str r2, [sp, #8]
add r7, r3, #0
ldr r4, [sp, #0x70]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
add r0, r6, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
@@ -19023,12 +19023,12 @@ MOD14_021E0A60: ; 0x021E0A60
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x30]
add r0, r6, #0
mov r1, #0xb
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x2e]
add r0, r4, #4
bl FUN_020B1A24
@@ -19079,7 +19079,7 @@ _021E0B28:
bl MOD14_021E0B54
ldr r1, [sp, #0x14]
add r0, r6, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -21819,26 +21819,26 @@ _021E204A:
bl FUN_0206B5E4
add r4, r4, #1
add r5, r0, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r7, r0, #0
beq _021E20C8
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021E209A
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
add r0, r7, #0
@@ -21876,7 +21876,7 @@ _021E20AA:
_021E20C8:
ldr r1, [sp, #0x1c]
add r0, r5, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp, #0x24]
add r6, r6, #2
add r0, r0, #1
@@ -23402,7 +23402,7 @@ MOD14_021E2C7C: ; 0x021E2C7C
add r6, r0, #0
ldr r0, [r6, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r6, #0
add r1, #0x28
ldrb r4, [r1]
@@ -23570,7 +23570,7 @@ MOD14_021E2DB4: ; 0x021E2DB4
add r5, r0, #0
ldr r0, [r5, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r4, r0, #1
add r0, r5, #0
add r0, #0x28
@@ -23975,7 +23975,7 @@ MOD14_021E30C0: ; 0x021E30C0
str r1, [sp]
ldr r0, [r0, #4]
str r2, [sp, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r6, r0, #1
add r4, r5, #0
mov r0, #0x34
@@ -24281,7 +24281,7 @@ _021E330E:
ldr r0, [sp, #0x24]
ldr r0, [r0, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r4, #0
str r0, [sp, #0x20]
cmp r0, #0
@@ -24299,7 +24299,7 @@ _021E3330:
add r1, r4, #0
ldr r0, [r0, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
mov r0, #1
str r0, [sp]
@@ -24347,7 +24347,7 @@ MOD14_021E3390: ; 0x021E3390
add r7, r0, #0
ldr r0, [r7, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
str r0, [sp]
cmp r0, #0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 3191e90c..0dae9777 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -51043,7 +51043,7 @@ MOD16_021EEFA4: ; 0x021EEFA4
ldr r0, [r4, #0x10]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x6f
lsl r1, r1, #2
str r0, [r5, r1]
@@ -55018,7 +55018,7 @@ _021F0E5A:
_021F0E68:
ldr r0, [sp, #0xc]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #8]
add r6, r0, #0
cmp r4, r1
@@ -55028,19 +55028,19 @@ _021F0E68:
beq _021F0EB6
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F0EB6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F0EB6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F0ECC ; =0x000001EE
cmp r0, r1
beq _021F0EB6
@@ -55568,7 +55568,7 @@ _021F1276:
_021F128E:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #8]
add r4, r0, #0
cmp r5, r1
@@ -55578,26 +55578,26 @@ _021F128E:
beq _021F12EA
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F12EA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F12EA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F1300 ; =0x000001EE
cmp r0, r1
beq _021F12EA
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
tst r0, r1
beq _021F12EA
@@ -55683,7 +55683,7 @@ _021F136A:
_021F1382:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #8]
add r4, r0, #0
cmp r5, r1
@@ -55693,26 +55693,26 @@ _021F1382:
beq _021F13DE
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F13DE
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F13DE
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F13F4 ; =0x000001EE
cmp r0, r1
beq _021F13DE
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
tst r0, r1
bne _021F13DE
@@ -57075,12 +57075,12 @@ _021F1E2C:
beq _021F1E66
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [sp, #0xc]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _021F1E66
ldr r0, [sp]
@@ -57149,13 +57149,13 @@ _021F1ED6:
add r0, r5, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r6, r0, #0
add r0, r5, #0
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r6, r0
beq _021F1EFE
ldr r0, [sp, #4]
@@ -57555,19 +57555,19 @@ _021F21D8:
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F22A0
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F22A0
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F22C0 ; =0x000001EE
cmp r0, r1
beq _021F22A0
@@ -57579,7 +57579,7 @@ _021F221E:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
add r4, r4, #1
add r5, r5, #2
@@ -57592,7 +57592,7 @@ _021F2238:
add r0, r6, #0
add r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4]
add r5, r5, #1
add r4, r4, #1
@@ -57601,12 +57601,12 @@ _021F2238:
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x44
str r1, [sp]
lsl r1, r4, #0x10
@@ -60065,7 +60065,7 @@ _021F3486:
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r6, #0
@@ -60078,7 +60078,7 @@ _021F34A2:
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r6, #0
@@ -60166,32 +60166,32 @@ _021F3530:
add r0, r4, #0
mov r1, #0x4b
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
add r0, r4, #0
mov r1, #0x4a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r4, #0
mov r1, #0x49
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r4, #0
mov r1, #0x48
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #4]
add r0, r4, #0
mov r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0x47
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r2, r6, #0x1f
lsl r0, r5, #0x1f
@@ -60398,19 +60398,19 @@ _021F36EC:
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F37DE
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F37DE
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3804 ; =0x000001EE
cmp r0, r1
beq _021F37DE
@@ -60426,7 +60426,7 @@ _021F3730:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x1c]
@@ -60444,7 +60444,7 @@ _021F3730:
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x30]
add r0, r5, #0
add r1, r4, #0
@@ -60700,19 +60700,19 @@ _021F3956:
mov r1, #0xa2
mov r2, #0
str r0, [sp, #0x50]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F39BC
ldr r0, [sp, #0x50]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F39BC
ldr r0, [sp, #0x50]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3B84 ; =0x000001EE
cmp r0, r1
beq _021F39BC
@@ -60750,7 +60750,7 @@ _021F39C2:
ldr r0, [sp, #0x50]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
ldr r0, [sp, #0x14]
@@ -60780,7 +60780,7 @@ _021F39F2:
ldr r0, [sp, #0x50]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x70]
add r0, r5, #0
add r1, r6, #0
@@ -60844,7 +60844,7 @@ _021F3A7E:
ldr r0, [sp, #0x50]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x80]
add r0, r5, #0
add r1, r4, #0
@@ -60934,19 +60934,19 @@ _021F3B3C:
mov r1, #0xa2
mov r2, #0
str r0, [sp, #0x20]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3BBE
ldr r0, [sp, #0x20]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3BBE
ldr r0, [sp, #0x20]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3B84 ; =0x000001EE
cmp r0, r1
beq _021F3BBE
@@ -60993,7 +60993,7 @@ _021F3BC4:
ldr r0, [sp, #0x20]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
ldr r0, [sp, #0x14]
@@ -61023,7 +61023,7 @@ _021F3BF4:
ldr r0, [sp, #0x20]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x90]
add r0, r5, #0
add r1, r6, #0
@@ -61089,7 +61089,7 @@ _021F3C82:
ldr r0, [sp, #0x20]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xa0]
add r0, r5, #0
add r1, r4, #0
@@ -61455,19 +61455,19 @@ _021F3F62:
mov r1, #0xa2
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3FE6
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3FE6
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3FFC ; =0x000001EE
cmp r0, r1
beq _021F3FE6
@@ -61490,7 +61490,7 @@ _021F3F62:
add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x10]
@@ -61608,19 +61608,19 @@ _021F4094:
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F40FA
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F40FA
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F4254 ; =0x000001EE
cmp r0, r1
beq _021F40FA
@@ -61669,12 +61669,12 @@ _021F40FC:
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x40]
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r5, #0
@@ -61685,12 +61685,12 @@ _021F40FC:
add r0, r6, #0
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x40]
ldr r2, [sp, #0x38]
str r1, [sp]
@@ -61715,7 +61715,7 @@ _021F4182:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x20]
@@ -61733,7 +61733,7 @@ _021F4182:
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F425C ; =0x0000306C
str r0, [sp, #0x4c]
ldrh r1, [r4, r1]
@@ -62080,19 +62080,19 @@ _021F445C:
mov r1, #0xa2
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F44BA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F44BA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F4598 ; =0x000001EE
cmp r0, r1
beq _021F44BA
@@ -62308,7 +62308,7 @@ _021F462E:
bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4664
ldr r0, _021F4694 ; =0x0000219C
@@ -62420,7 +62420,7 @@ _021F4704:
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x68]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
beq _021F47E0
@@ -62430,7 +62430,7 @@ _021F4704:
ldr r0, [sp, #0x68]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F47E0
add r0, r4, #0
@@ -62477,14 +62477,14 @@ _021F4704:
ldr r0, [sp, #0x68]
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x58]
ldr r0, [sp, #0x68]
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x54]
@@ -62542,7 +62542,7 @@ _021F480E:
add r0, r4, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x3c]
@@ -62560,7 +62560,7 @@ _021F480E:
add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x70]
add r0, r5, #0
add r1, r6, #0
@@ -62648,7 +62648,7 @@ _021F48E0:
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x1c]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
beq _021F4900
@@ -62661,7 +62661,7 @@ _021F4902:
ldr r0, [sp, #0x1c]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4A06
ldr r0, _021F4A20 ; =0x0000219C
@@ -62703,7 +62703,7 @@ _021F4954:
ldr r0, [sp, #0x1c]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x8c]
@@ -62866,29 +62866,29 @@ _021F4A94:
bl MOD11_0222FF88
add r7, r0, #0
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _021F4AF2
_021F4AA8:
add r0, r7, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4AE6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4AE6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F4D70 ; =0x000001EE
cmp r0, r1
beq _021F4AE6
@@ -62900,7 +62900,7 @@ _021F4AA8:
_021F4AE6:
add r0, r7, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _021F4AA8
_021F4AF2:
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 4f74dada..a9ad0efd 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -8856,7 +8856,7 @@ MOD17_021DB700: ; 0x021DB700
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r6, #0
add r1, r4, #0
mov r2, #2
diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s
index 8b3921cf..7bd6fc00 100644
--- a/arm9/modules/27/asm/module_27.s
+++ b/arm9/modules/27/asm/module_27.s
@@ -293,7 +293,7 @@ MOD27_02254A48: ; 0x02254A48
str r0, [sp]
add r0, r1, #0
str r1, [sp, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp]
mov r6, #0
str r0, [r1]
@@ -303,9 +303,9 @@ MOD27_02254A48: ; 0x02254A48
_02254A62:
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
- bl TryDecryptMon
+ bl AcquireMonLock
add r7, r0, #0
add r0, r4, #0
bl FUN_0206B688
@@ -313,27 +313,27 @@ _02254A62:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #8]
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xa]
add r0, r4, #0
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xc]
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xe]
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02254ABC
mov r0, #1
@@ -345,16 +345,16 @@ _02254ABE:
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x12]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x13]
add r0, r4, #0
add r1, r7, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
ldr r0, [sp]
add r6, r6, #1
ldr r0, [r0]
diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s
index 89222d17..2ba07ed6 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -73,7 +73,7 @@ MOD28_0225489C: ; 0x0225489C
mov r1, #0
str r0, [sp, #4]
str r1, [sp]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
str r0, [r7, #4]
cmp r0, #0
@@ -82,22 +82,22 @@ MOD28_0225489C: ; 0x0225489C
_022548D6:
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02254962
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xc]
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
add r0, r5, #0
bl FUN_0206B688
@@ -105,7 +105,7 @@ _022548D6:
add r0, r5, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD28_0225498C
cmp r0, #6
bhi _02254944
diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s
index d24971d9..a07a6426 100644
--- a/arm9/modules/35/asm/module_35.s
+++ b/arm9/modules/35/asm/module_35.s
@@ -330,7 +330,7 @@ _02254A7A:
str r0, [sp, #8]
bl FUN_02023C7C
add r4, r0, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp, #0xc]
add r0, r4, #0
bl FUN_0206B688
@@ -338,22 +338,22 @@ _02254A7A:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r6, #0x1c]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r6, #0x20]
ldr r0, [sp, #8]
bl MOD05_021EC7B4
str r0, [r5, #0xc]
add r0, r4, #0
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
str r0, [r5, #0x14]
ldr r1, [sp, #0xc]
add r0, r4, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp]
add r7, r7, #1
ldrb r0, [r0]
diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s
index 0f1fecfb..f7c09bfc 100644
--- a/arm9/modules/39/asm/module_39.s
+++ b/arm9/modules/39/asm/module_39.s
@@ -63,7 +63,7 @@ MOD39_0225489C: ; 0x0225489C
bl MOD20_02252C40
bl FUN_0206BB1C
str r0, [sp, #0x10]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp, #4]
mov r6, #0
add r1, #0x34
@@ -78,19 +78,19 @@ MOD39_0225489C: ; 0x0225489C
_022548CC:
ldr r0, [sp, #0x10]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0
bl FUN_0206B688
str r0, [r4, #4]
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x1c]
add r0, r7, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x28]
ldr r0, [sp, #4]
str r7, [r4, #0x48]
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index 3abecf47..ee020bca 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -212,7 +212,7 @@ MOD56_02211F88: ; 0x02211F88
ldr r0, [r0]
bl FUN_0206BB1C
str r0, [sp]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0
add r7, r0, #0
add r4, r5, #0
@@ -221,17 +221,17 @@ MOD56_02211F88: ; 0x02211F88
_02211FA2:
ldr r0, [sp]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02211FC8
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02211FC8
add r5, r5, #1
@@ -1992,7 +1992,7 @@ MOD56_02212E0C: ; 0x02212E0C
bl FUN_02029AFC
str r0, [sp, #8]
ldr r0, [sp, #0xc]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
str r0, [sp, #4]
cmp r0, #0
@@ -2001,17 +2001,17 @@ MOD56_02212E0C: ; 0x02212E0C
_02212E52:
ldr r0, [sp, #0xc]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r5, #4]
mov r2, #0
strh r0, [r1, r4]
add r0, r7, #0
mov r1, #6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r5, #4]
add r6, r6, #1
add r1, r1, r4
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index 6fff3ef5..b187276b 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -2218,17 +2218,17 @@ _0222E5EC:
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r7, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
add r0, r7, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
ldr r0, [sp, #0x10]
ldr r2, [sp, #0x14]
@@ -3004,7 +3004,7 @@ MOD62_0222EC54: ; 0x0222EC54
ldr r0, [r0, #4]
mov r1, #0xa1
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
_0222EC80:
cmp r7, #0xff
beq _0222EC9A
@@ -3017,7 +3017,7 @@ _0222EC80:
add r0, r1, r0
ldr r0, [r0, #4]
mov r1, #0xa1
- bl SetMonDataEncrypted
+ bl SetMonData
_0222EC9A:
add r2, r5, #4
ldr r1, [r2, r6]
@@ -4492,7 +4492,7 @@ _0222F83E:
mov r1, #0x4c
add r0, r7, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222F85C
ldr r1, _0222F86C ; =0x00000428
@@ -5701,7 +5701,7 @@ MOD62_022301AC: ; 0x022301AC
mov r1, #5
ldr r0, [r5, r0]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, _02230214 ; =0x00000428
mov r1, #2
@@ -5749,11 +5749,11 @@ MOD62_0223021C: ; 0x0223021C
mov r1, #5
ldr r0, [r5, r0]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, _02230268 ; =0x00000428
ldr r0, [r5, r0]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r6, r0, #0
mov r0, #0x6a
lsl r0, r0, #2
@@ -6199,7 +6199,7 @@ _0223059A:
str r0, [sp, #0x9c]
ldr r0, _02230724 ; =0x00000428
ldr r0, [r4, r0]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8c]
add r0, sp, #0x7c
bl MOD08_02229918
@@ -6235,12 +6235,12 @@ _022305E2:
mov r1, #0xa1
ldr r0, [r4, r0]
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _02230724 ; =0x00000428
mov r1, #0xaa
ldr r0, [r4, r0]
add r2, sp, #0x64
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x35
add r1, sp, #0x58
bl MOD08_02228218
@@ -6396,7 +6396,7 @@ _0223072C:
str r0, [sp, #0x50]
ldr r0, [r4, r1]
mov r1, #0x9a
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x40]
add r0, sp, #0x30
bl MOD08_02229918
@@ -6531,7 +6531,7 @@ _02230860:
add r2, r0, #0
add r0, r5, #0
mov r1, #0xaa
- bl SetMonDataEncrypted
+ bl SetMonData
_022308A8:
mov r0, #0xf5
mov r1, #8
@@ -7091,7 +7091,7 @@ MOD62_02230D38: ; 0x02230D38
ldr r0, [r0, #4]
mov r1, #0xa1
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
_02230D5C:
mov r0, #0xff
str r0, [r4, r6]
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index 20b90cb6..fa4d0c5b 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -3372,17 +3372,17 @@ MOD65_021D8F34: ; 0x021D8F34
str r0, [r4, #0x30]
ldr r0, [r4, #0x10]
ldr r0, [r0]
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x34]
ldr r0, [r4, #0x10]
ldr r0, [r0]
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r1, r4, #0
add r1, #0x37
strb r0, [r1]
ldr r0, [r4, #0x10]
ldr r0, [r0]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r1, r4, #0
add r1, #0x36
strb r0, [r1]
@@ -3402,7 +3402,7 @@ MOD65_021D8F34: ; 0x021D8F34
ldr r2, [r4, #0x3c]
ldr r0, [r0]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
ldr r0, [r4, #0x10]
add r1, #0x36
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index 7d7666f9..03dbe420 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -3307,7 +3307,7 @@ MOD67_021D8F00: ; 0x021D8F00
add r1, r7, #0
mov r2, #1
mov r3, #0x20
- bl CreateMonWithNatureGenderLetter
+ bl CreateMonWithGenderNatureLetter
add r0, r6, #0
bl FUN_020690E4
add r2, r0, #0
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index c0a49cfe..bdd1afca 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -50,7 +50,7 @@ MOD69_0222D5C0: ; 0x0222D5C0
str r0, [r4, #4]
ldr r0, [r4, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0
mov r5, #0
cmp r6, #0
@@ -61,10 +61,10 @@ _0222D63A:
ldr r0, [r4, #0xc]
add r1, r5, #0
ldr r0, [r0, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222D65E
ldr r0, [r4, #4]
@@ -1224,7 +1224,7 @@ _0222DF98:
lsl r1, r1, #2
ldr r0, [r0, #4]
ldr r1, [r5, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x2c]
ldr r1, [sp, #0x2c]
add r0, sp, #0xc4
@@ -1233,14 +1233,14 @@ _0222DF98:
ldr r0, [sp, #0x2c]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x81
lsl r1, r1, #2
str r0, [r5, r1]
mov r1, #0
ldr r0, [sp, #0x2c]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r4, [sp]
str r0, [sp, #4]
mov r0, #1
@@ -1268,7 +1268,7 @@ _0222DF98:
mov r1, #0
ldr r0, [sp, #0x2c]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r4, [sp]
str r0, [sp, #4]
mov r0, #1
@@ -2281,7 +2281,7 @@ _0222E860:
lsl r1, r1, #2
ldr r0, [r0, #4]
ldr r1, [r2, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x24]
ldr r0, [r5, #0xc]
mov r2, #0
@@ -2360,7 +2360,7 @@ MOD69_0222E8FC: ; 0x0222E8FC
mov r1, #0
bl FUN_0200AC60
ldr r0, [r4, #0x24]
- bl CalcMonLevelEncrypted
+ bl CalcMonLevel
add r2, r0, #0
mov r0, #0
str r0, [sp]
@@ -2370,7 +2370,7 @@ MOD69_0222E8FC: ; 0x0222E8FC
mov r3, #3
bl FUN_0200AD38
ldr r0, [r4, #0x24]
- bl GetMonGenderEncrypted
+ bl GetMonGender
cmp r0, #0
beq _0222E93C
cmp r0, #1
@@ -2418,7 +2418,7 @@ _0222E982:
ldr r0, [r5, #0x24]
mov r1, #0x98
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r0, [r5, #0x14]
mov r1, #0
@@ -2480,7 +2480,7 @@ _0222E9FC:
ldr r0, [r4, #0x24]
ldr r2, [r4, #0x1c]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
mov r1, #0x48
bl MOD69_0222E89C
@@ -4037,12 +4037,12 @@ MOD69_0222F6C4: ; 0x0222F6C4
add r5, r0, #0
add r0, r4, #0
add r6, r2, #0
- bl TryDecryptMon
+ bl AcquireMonLock
str r0, [sp]
add r0, r4, #0
mov r1, #0x79
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
sub r1, r0, #1
cmp r1, #2
bhi _0222F6E8
@@ -4063,7 +4063,7 @@ _0222F6FA:
add r0, r4, #0
mov r1, #0x6e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222F70C
mov r5, #6
@@ -4075,7 +4075,7 @@ _0222F70C:
add r0, r4, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _0222F726
mov r5, #2
@@ -4089,7 +4089,7 @@ _0222F726:
add r0, r4, #0
ldr r2, [r5, r2]
mov r1, #0x90
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0222F788 ; =0x00001B54
ldr r0, [r5, r1]
add r1, r1, #4
@@ -4103,7 +4103,7 @@ _0222F750:
add r0, r4, #0
mov r1, #0x98
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x7d
lsl r1, r1, #4
cmp r0, r1
@@ -4114,7 +4114,7 @@ _0222F766:
add r0, r4, #0
mov r1, #0x92
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222F778
mov r5, #0
@@ -4124,7 +4124,7 @@ _0222F778:
_0222F77A:
ldr r1, [sp]
add r0, r4, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
index ec5af814..6ab711fd 100644
--- a/arm9/modules/70/asm/module_70.s
+++ b/arm9/modules/70/asm/module_70.s
@@ -1562,7 +1562,7 @@ _021D80F4:
ldr r0, [r7, r0]
ldr r2, [sp, #0x1c]
mov r1, #0x70
- bl SetMonDataEncrypted
+ bl SetMonData
mov r1, #0x66
lsl r1, r1, #2
ldr r1, [r7, r1]
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index a6e576b3..a480a3f6 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -138,7 +138,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
mov r0, #0x1a
bl FUN_020335F0
bl FUN_02033E74
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0
bne _0222D71A
ldr r1, _0222D748 ; =0x0000043D
@@ -420,11 +420,11 @@ MOD71_0222D93C: ; 0x0222D93C
bl MOD71_0222DB94
ldr r0, _0222D9B8 ; =0x00002218
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, r0, #0
ldr r0, _0222D9BC ; =0x0000221C
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r2, r0, #0
mov r0, #0x5d
lsl r0, r0, #2
@@ -644,13 +644,13 @@ MOD71_0222DB5C: ; 0x0222DB5C
add r0, r5, #0
add r6, r2, #0
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DB92
_0222DB70:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
add r0, r7, #0
@@ -658,7 +658,7 @@ _0222DB70:
bl FUN_0200ACF8
add r0, r5, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0222DB70
_0222DB92:
@@ -676,7 +676,7 @@ MOD71_0222DB94: ; 0x0222DB94
str r3, [sp, #0x10]
ldr r6, [sp, #0x28]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DBE6
add r7, r6, #1
@@ -701,7 +701,7 @@ _0222DBB0:
ldr r0, [sp, #0x10]
add r5, #0x10
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0222DBB0
_0222DBE6:
@@ -718,7 +718,7 @@ MOD71_0222DBEC: ; 0x0222DBEC
str r1, [sp, #0xc]
str r2, [sp, #0x20]
mov r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bgt _0222DC02
b _0222DD10
@@ -847,7 +847,7 @@ _0222DCE2:
_0222DD02:
ldr r0, [sp, #8]
add r7, r7, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r7, r0
bge _0222DD10
b _0222DC0C
@@ -1086,7 +1086,7 @@ _0222DED6:
blt _0222DED6
ldr r0, _0222E0F8 ; =0x00002218
ldr r0, [r4, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DF12
mov r0, #0x69
@@ -1097,20 +1097,20 @@ _0222DEF4:
ldr r0, _0222E0F8 ; =0x00002218
add r1, r5, #0
ldr r0, [r4, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r6, #0
bl MOD71_0222E118
ldr r0, [r4, r7]
add r6, #0x10
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222DEF4
_0222DF12:
ldr r0, _0222E0FC ; =0x0000221C
mov r5, #0
ldr r0, [r4, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DF48
mov r0, #0x69
@@ -1121,14 +1121,14 @@ _0222DF28:
ldr r0, _0222E0FC ; =0x0000221C
add r1, r5, #0
ldr r0, [r4, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r5, #6
lsl r1, r1, #4
add r1, r6, r1
bl MOD71_0222E118
ldr r0, [r4, r7]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222DF28
_0222DF48:
@@ -1233,7 +1233,7 @@ _0222E010:
ldr r0, _0222E0F8 ; =0x00002218
mov r1, #0
ldr r0, [r4, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x7f
ldr r3, _0222E104 ; =0x000020F0
lsl r2, r2, #4
@@ -1343,46 +1343,46 @@ MOD71_0222E118: ; 0x0222E118
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
- bl TryDecryptMon
+ bl AcquireMonLock
add r7, r0, #0
add r0, r5, #0
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #4]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4]
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #6]
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #5]
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #8]
add r0, r5, #0
mov r1, #0xa1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r4, #0xc]
add r0, r5, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r5, #0
add r1, r7, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
ldrh r0, [r4]
cmp r0, #0
beq _0222E18E
@@ -1412,7 +1412,7 @@ MOD71_0222E1A0: ; 0x0222E1A0
ldr r0, _0222E20C ; =0x0000221C
add r7, r1, #0
ldr r0, [r5, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0
add r0, r4, #0
mov r1, #6
@@ -1473,7 +1473,7 @@ MOD71_0222E224: ; 0x0222E224
bge _0222E29E
ldr r0, _0222E2BC ; =0x00002218
ldr r0, [r5, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
add r0, #0x88
@@ -1675,7 +1675,7 @@ MOD71_0222E3D4: ; 0x0222E3D4
ldr r0, _0222E42C ; =0x00002218
mov r4, #0
ldr r0, [r6, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E402
ldr r7, _0222E42C ; =0x00002218
@@ -1688,14 +1688,14 @@ _0222E3EA:
ldr r0, [r6, r7]
add r5, r5, #4
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0222E3EA
_0222E402:
ldr r0, _0222E430 ; =0x0000221C
mov r5, #0
ldr r0, [r6, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E42A
ldr r7, _0222E430 ; =0x0000221C
@@ -1707,7 +1707,7 @@ _0222E414:
ldr r0, [r6, r7]
add r4, r4, #4
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222E414
_0222E42A:
@@ -2647,12 +2647,12 @@ MOD71_0222EBFC: ; 0x0222EBFC
mov r1, #0
add r0, r6, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0
str r3, [sp]
mov r1, #0xa
@@ -2694,10 +2694,10 @@ MOD71_0222EC5C: ; 0x0222EC5C
add r4, r0, #0
add r0, r6, #0
add r1, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x76
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0
mov r1, #0
bl FUN_02019620
@@ -2728,10 +2728,10 @@ MOD71_0222ECA8: ; 0x0222ECA8
_0222ECB6:
add r0, r1, #0
add r1, r2, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4d
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ECCE
mov r0, #2
@@ -2753,7 +2753,7 @@ MOD71_0222ECD4: ; 0x0222ECD4
str r2, [sp, #8]
str r3, [sp, #0xc]
ldr r4, [sp, #0x50]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #2
bl FUN_02068E14
str r0, [sp, #0x10]
@@ -2929,10 +2929,10 @@ _0222EE14:
bl MOD71_02230EFC
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
mov r0, #1
@@ -2975,10 +2975,10 @@ _0222EEA6:
bl MOD71_02230EFC
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, #0x20
lsl r0, r0, #0x10
lsl r4, r5, #4
@@ -3864,7 +3864,7 @@ MOD71_0222F59C: ; 0x0222F59C
str r0, [r5, #0xc]
ldr r0, [r5, #8]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r5, #0x1f]
mov r0, #0
str r0, [r5, #0x34]
@@ -3880,7 +3880,7 @@ _0222F5CC:
ldr r1, [r5, r0]
str r1, [r5, #0xc]
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r5, #0x1f]
bl FUN_02031190
mov r2, #1
@@ -4875,7 +4875,7 @@ MOD71_0222FDD8: ; 0x0222FDD8
add r1, #0x88
ldr r0, [r4, r0]
ldr r1, [r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -5694,7 +5694,7 @@ MOD71_022304AC: ; 0x022304AC
add r1, #0x88
ldr r0, [r4, r0]
ldr r1, [r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -5708,7 +5708,7 @@ MOD71_022304AC: ; 0x022304AC
ldr r1, [r1]
ldr r0, [r4, r0]
sub r1, r1, #6
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -6121,7 +6121,7 @@ MOD71_02230810: ; 0x02230810
ldr r1, [r1]
ldr r0, [r4, r0]
sub r1, r1, #6
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -6327,18 +6327,18 @@ MOD71_022309E8: ; 0x022309E8
add r4, r0, #0
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0
bl FUN_02069B88
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0
bl FUN_02069B88
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02230A40
mov r1, #0x46
@@ -6347,7 +6347,7 @@ MOD71_022309E8: ; 0x022309E8
add r0, r4, #0
mov r1, #9
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
_02230A40:
bl FUN_02031190
bl FUN_0202DFA4
@@ -6375,7 +6375,7 @@ _02230A40:
ldr r0, [sp, #4]
ldr r1, _02230AE0 ; =0x000001B9
str r6, [r5, #0x2c]
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _02230A98
ldr r0, [r5, #0x10]
@@ -6387,13 +6387,13 @@ _02230A98:
bl FUN_0202C144
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r4, #0
bl FUN_02069B88
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r7, #0
bl FUN_02069B88
@@ -6427,7 +6427,7 @@ MOD71_02230AE4: ; 0x02230AE4
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0
bl FUN_0202398C
add r7, r0, #0
@@ -6435,7 +6435,7 @@ MOD71_02230AE4: ; 0x02230AE4
bl FUN_020239CC
add r5, r0, #0
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r3, r0, #0
mov r0, #0x1a
lsl r1, r5, #0x18
@@ -6538,7 +6538,7 @@ MOD71_02230BC4: ; 0x02230BC4
ldr r0, _02230C00 ; =0x00002218
mov r4, #0
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r3, r4, #0
cmp r0, #0
ble _02230BF0
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index 6f7aff75..e40f2c19 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -801,7 +801,7 @@ MOD76_021D7B2C: ; 0x021D7B2C
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x36
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0
str r0, [sp]
ldr r1, [r4]
@@ -809,7 +809,7 @@ MOD76_021D7B2C: ; 0x021D7B2C
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x3e
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
bl MOD76_021D8514
mov r1, #0
@@ -820,7 +820,7 @@ MOD76_021D7B2C: ; 0x021D7B2C
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x3a
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r4]
mov r1, #0
strb r1, [r0, #0x16]
@@ -2028,7 +2028,7 @@ MOD76_021D8524: ; 0x021D8524
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, pc}
@@ -2131,7 +2131,7 @@ _021D85EC:
ldr r0, [r0]
add r1, #0x36
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021D8608
add r0, r4, #1
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index ca042f7e..2ff872c5 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -4660,7 +4660,7 @@ _0222FA26:
beq _0222FA80
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _0222FA80
ldr r0, _0222FAE4 ; =0x00000F0F
@@ -4855,7 +4855,7 @@ MOD80_0222FBC0: ; 0x0222FBC0
ldr r0, [sp, #0x48]
ldr r2, [sp, #0x1c]
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
mov r2, #0
ldrsh r0, [r4, r2]
mov r1, #6
@@ -4866,7 +4866,7 @@ MOD80_0222FBC0: ; 0x0222FBC0
mov r0, #3
ldrsb r4, [r4, r0]
ldr r0, [sp, #0x48]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x30]
add r0, r5, #0
mov r1, #0x46
@@ -5058,12 +5058,12 @@ MOD80_0222FD88: ; 0x0222FD88
mov r1, #0
add r0, r5, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0
str r3, [sp]
mov r1, #0xa
@@ -9976,10 +9976,10 @@ _022325CE:
add r1, #0xba
ldrh r1, [r1]
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa1
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022325FE
mov r0, #0xe
@@ -10216,10 +10216,10 @@ _022327CE:
add r1, #0xba
ldrh r1, [r1]
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa1
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022327FE
mov r0, #0xb
@@ -10458,7 +10458,7 @@ MOD80_02232990: ; 0x02232990
beq _022329E6
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _022329E6
ldr r0, _02232A2C ; =0x00000F0F
@@ -10777,7 +10777,7 @@ MOD80_02232BD4: ; 0x02232BD4
MOD80_02232C2C: ; 0x02232C2C
push {r4, lr}
add r4, r1, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
strb r0, [r4, #3]
pop {r4, pc}
thumb_func_end MOD80_02232C2C
@@ -10832,38 +10832,38 @@ MOD80_02232C88: ; 0x02232C88
add r7, r2, #0
add r6, r3, #0
ldr r4, [sp, #0x40]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
add r0, r5, #0
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x1c]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r6]
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x10]
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x14]
add r0, r5, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x18]
ldrh r0, [r6]
mov r1, #0x6f
mov r2, #0
strh r0, [r4]
add r0, r5, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r0, r0, #1
strb r0, [r4, #2]
ldr r0, [sp, #0x14]
@@ -10874,7 +10874,7 @@ MOD80_02232C88: ; 0x02232C88
_02232CF2:
add r0, r5, #0
mov r1, #1
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp, #0x1c]
cmp r0, #0
beq _02232D60
@@ -11031,7 +11031,7 @@ _02232E22:
_02232E3A:
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r4, #0
str r0, [sp, #0x14]
cmp r0, #0
@@ -11040,7 +11040,7 @@ _02232E4A:
ldr r0, [r5]
add r1, r4, #0
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x24]
bl FUN_020690E4
ldr r1, _02232F84 ; =0x00001004
@@ -11076,7 +11076,7 @@ _02232E4A:
ldr r0, [sp, #0x24]
mov r1, #0xa1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
ldr r0, _02232F90 ; =0x00000E54
beq _02232EB4
@@ -11221,7 +11221,7 @@ MOD80_02232FB8: ; 0x02232FB8
cmp r0, #0
beq _02232FEA
add r0, r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r0, r0, #1
cmp r4, r0
ble _02232FDC
@@ -11230,7 +11230,7 @@ MOD80_02232FB8: ; 0x02232FB8
_02232FDC:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
pop {r3, r4, r5, r6, r7, pc}
_02232FEA:
@@ -11251,7 +11251,7 @@ MOD80_02232FF8: ; 0x02232FF8
cmp r0, #0
beq _02233014
add r0, r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #2
bge _02233014
mov r0, #0
@@ -11266,7 +11266,7 @@ MOD80_02233018: ; 0x02233018
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r4, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
ldr r5, _02233050 ; =0x02237220
str r0, [sp]
add r6, r4, #0
@@ -11274,7 +11274,7 @@ _02233028:
ldrh r1, [r5]
add r0, r7, #0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r6, r6, #1
add r4, r4, r0
add r5, r5, #2
@@ -11282,7 +11282,7 @@ _02233028:
blt _02233028
ldr r1, [sp]
add r0, r7, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
cmp r4, #0
beq _0223304C
mov r0, #1
@@ -11305,7 +11305,7 @@ MOD80_02233054: ; 0x02233054
_02233062:
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _02233072
mov r0, #0
@@ -11314,7 +11314,7 @@ _02233072:
add r0, r4, #0
mov r1, #0xac
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _02233084
mov r0, #2
@@ -11386,18 +11386,18 @@ MOD80_022330E4: ; 0x022330E4
mov r1, #5
mov r2, #0
add r5, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, sp, #0
strh r0, [r1]
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #1
add r0, sp, #0
strb r1, [r0, #2]
add r0, r5, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
add r1, sp, #0
strb r0, [r1, #3]
add r0, sp, #0
@@ -11418,7 +11418,7 @@ MOD80_0223311C: ; 0x0223311C
ldr r0, [r0]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, sp, #0
strh r0, [r1, #6]
add r0, r5, #0
@@ -11426,14 +11426,14 @@ MOD80_0223311C: ; 0x0223311C
ldr r0, [r0]
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #1
add r0, sp, #0
strb r1, [r0, #8]
add r0, r5, #0
add r0, #0xbc
ldr r0, [r0]
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
add r1, sp, #0
strb r0, [r1, #9]
add r0, r4, #0
@@ -11459,13 +11459,13 @@ MOD80_0223311C: ; 0x0223311C
mov r1, #5
mov r2, #0
add r5, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, sp, #0
strh r0, [r1]
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r0, r0, #1
add r1, sp, #0
strb r0, [r1, #2]
@@ -11524,7 +11524,7 @@ MOD80_022331F8: ; 0x022331F8
push {r3, lr}
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
@@ -13374,14 +13374,14 @@ MOD80_022340DC: ; 0x022340DC
ldr r0, [sp, #0xc]
ldr r2, [sp, #0x18]
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r0, [sp, #0xc]
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r6, r0, #1
ldr r0, [sp, #0xc]
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
str r0, [sp, #0x10]
add r0, r4, #0
mov r1, #0x64
@@ -13467,7 +13467,7 @@ _022341CA:
ldr r0, [sp, #0xc]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r7]
ldr r0, [sp, #0x10]
strb r6, [r7, #2]
@@ -16102,7 +16102,7 @@ _02235590:
add r1, #0xba
ldrh r1, [r1]
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
bl FUN_0206AA84
add r2, r5, #0
@@ -16121,7 +16121,7 @@ _02235590:
ldr r0, [r5]
ldr r1, _022355EC ; =0x000001B9
ldr r0, [r0, #8]
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _022355DC
ldr r0, [r5]
@@ -16152,7 +16152,7 @@ MOD80_022355F0: ; 0x022355F0
mov r1, #6
mov r2, #0
add r6, r3, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r0, [r5]
add r1, r4, #0
ldr r0, [r0, #0x20]
@@ -16161,7 +16161,7 @@ MOD80_022355F0: ; 0x022355F0
str r0, [sp, #0x20]
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _02235624
mov r0, #0
@@ -16175,7 +16175,7 @@ _02235624:
add r0, r4, #0
mov r1, #9
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r5]
ldr r0, [r0]
bl MOD80_02235754
@@ -16189,7 +16189,7 @@ _02235640:
bl FUN_0206B900
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r5, #0
mov r2, #0x12
add r1, #0xcc
@@ -16246,7 +16246,7 @@ MOD80_022356AC: ; 0x022356AC
str r0, [sp, #0x20]
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _022356D2
mov r0, #0
@@ -16258,7 +16258,7 @@ _022356D2:
add r0, r4, #0
mov r1, #9
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x20]
cmp r0, #0x12
bne _02235706
@@ -16268,7 +16268,7 @@ _022356D2:
bl FUN_0206B900
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r5, #0
mov r2, #0x12
add r1, #0xcc
@@ -16364,9 +16364,9 @@ MOD80_022357A0: ; 0x022357A0
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r3, r0, #0
mov r0, #0x3e
str r0, [sp]
@@ -16395,7 +16395,7 @@ MOD80_022357DC: ; 0x022357DC
beq _022357FA
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _022357FA
mov r0, #2
@@ -16409,7 +16409,7 @@ _022357FA:
bne _02235816
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _02235816
mov r0, #1
@@ -17434,7 +17434,7 @@ _02235FDE:
mov r1, #6
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0
add r0, sp, #0x30
lsl r3, r3, #0x10
@@ -17443,7 +17443,7 @@ _02235FDE:
add r1, r7, #0
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #0x24]
cmp r0, #0
beq _02236052
@@ -17502,30 +17502,30 @@ _02236068:
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
ldr r0, [sp, #0x20]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _022360B6
mov r1, #0
add r0, r7, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
mov r1, #0
ldr r0, [sp, #0x20]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02236126
_022360B6:
add r0, r7, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0
add r0, sp, #0x2c
lsl r3, r3, #0x10
@@ -17534,7 +17534,7 @@ _022360B6:
add r1, r7, #0
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #0x28]
cmp r0, #0
beq _02236118
@@ -17717,7 +17717,7 @@ MOD80_02236218: ; 0x02236218
add r5, #0xd0
ldr r0, [r0, #8]
ldr r1, [r5]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r4, #0
bl FUN_02069B88
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index 87239548..82f5fbd1 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -136,7 +136,7 @@ _02237F22:
mov r1, #5
ldr r0, [r0]
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
mov r1, #0x53
lsl r1, r1, #2
strh r0, [r4, r1]
@@ -144,7 +144,7 @@ _02237F22:
mov r1, #5
ldr r0, [r0, #4]
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, _02237FD8 ; =0x0000014E
strh r0, [r4, r1]
mov r0, #0
@@ -197,7 +197,7 @@ MOD81_02237FE8: ; 0x02237FE8
push {r3, lr}
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
mov r1, #0x1c
bl GetMonBaseStat
cmp r0, #0
@@ -999,7 +999,7 @@ _0223860E:
ldr r4, [r0, #4]
_02238610:
add r0, r4, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp, #0x20]
add r0, sp, #0x34
add r1, r4, #0
@@ -1008,12 +1008,12 @@ _02238610:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x1c]
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
ldr r1, [sp, #0x58]
lsr r0, r0, #0x10
@@ -1051,7 +1051,7 @@ _02238648:
bl FUN_02017E14
ldr r1, [sp, #0x20]
add r0, r4, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add r0, r7, #0
bl FreeToHeap
_02238690:
@@ -2514,7 +2514,7 @@ _02239138:
bl MOD81_02238818
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _0223918A
ldr r0, [r4, #0x10]
@@ -9501,7 +9501,7 @@ _0223C8D6:
bl MOD81_02238820
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _0223C902
ldr r0, [r4]
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 0ce9b5c7..2aa02a59 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -21809,7 +21809,7 @@ MOD83_02237F04: ; 0x02237F04
add r0, r1, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r4, #0
@@ -21864,9 +21864,9 @@ MOD83_02237F6C: ; 0x02237F6C
add r4, r1, #0
add r6, r0, #0
add r0, r4, #0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r4, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
mov r1, #0
str r0, [sp]
add r0, r6, #0
@@ -21876,7 +21876,7 @@ MOD83_02237F6C: ; 0x02237F6C
add r0, r4, #0
mov r1, #0
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0xb
mov r2, #0
@@ -21887,7 +21887,7 @@ MOD83_02237F6C: ; 0x02237F6C
add r0, r4, #0
mov r1, #5
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0xc
mov r2, #0
@@ -21903,7 +21903,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #6
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #1
mov r2, #0
@@ -21912,7 +21912,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #7
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x19
mov r2, #0
@@ -21921,13 +21921,13 @@ _02237FCE:
add r0, r4, #0
mov r1, #8
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
mov r0, #0x46
str r0, [sp, #8]
add r0, r4, #0
mov r1, #9
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
add r1, r4, #0
bl MOD83_02237F04
@@ -21935,7 +21935,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xa
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #8
mov r2, #0
@@ -21944,7 +21944,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xb
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #3
mov r2, #0
@@ -21953,7 +21953,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xc
add r2, sp, #4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1a
mov r2, #0
@@ -21962,7 +21962,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xd
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1b
mov r2, #0
@@ -21971,7 +21971,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xe
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1c
mov r2, #0
@@ -21980,7 +21980,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xf
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1d
mov r2, #0
@@ -21989,7 +21989,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x10
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1e
mov r2, #0
@@ -21998,7 +21998,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x11
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1f
mov r2, #0
@@ -22007,7 +22007,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x12
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x16
mov r2, #0
@@ -22016,7 +22016,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x13
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x17
mov r2, #0
@@ -22025,7 +22025,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x14
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x18
mov r2, #0
@@ -22034,7 +22034,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x15
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x21
mov r2, #0
@@ -22043,7 +22043,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x16
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2f
mov r2, #0
@@ -22052,7 +22052,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x17
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x30
mov r2, #0
@@ -22061,7 +22061,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x18
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
mov r5, #0
add r7, r5, #0
_0223815E:
@@ -22075,7 +22075,7 @@ _0223815E:
add r0, r4, #0
add r1, #0x36
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x15
mov r2, #0
@@ -22090,18 +22090,18 @@ _0223815E:
add r0, r4, #0
add r1, #0x3e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r5, #0
add r0, r4, #0
add r1, #0x42
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r5, #0
str r0, [sp, #8]
add r0, r4, #0
add r1, #0x3a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
add r7, r7, #2
cmp r5, #4
@@ -22114,7 +22114,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x46
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x28
mov r2, #0
@@ -22123,7 +22123,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x47
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x29
mov r2, #0
@@ -22132,7 +22132,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x48
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2a
mov r2, #0
@@ -22141,7 +22141,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x49
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2b
mov r2, #0
@@ -22150,7 +22150,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2c
mov r2, #0
@@ -22159,7 +22159,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2d
mov r2, #0
@@ -22168,7 +22168,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x32
mov r2, #0
@@ -22186,7 +22186,7 @@ _0223826C:
add r0, r4, #0
add r1, #0x4e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _0223826C
@@ -22208,7 +22208,7 @@ _02238298:
add r0, r4, #0
add r1, #0x52
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _02238298
@@ -22230,7 +22230,7 @@ _022382C4:
add r0, r4, #0
add r1, #0x56
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _022382C4
@@ -22252,7 +22252,7 @@ _022382F0:
add r0, r4, #0
add r1, #0x5a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _022382F0
@@ -22274,7 +22274,7 @@ _0223831C:
add r0, r4, #0
add r1, #0x5e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _0223831C
@@ -22287,7 +22287,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x62
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x44
mov r2, #0
@@ -22296,7 +22296,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x63
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x45
mov r2, #0
@@ -22305,7 +22305,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x64
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x46
mov r2, #0
@@ -22314,7 +22314,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x65
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x47
mov r2, #0
@@ -22323,7 +22323,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x66
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x48
mov r2, #0
@@ -22332,7 +22332,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x67
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x49
mov r2, #0
@@ -22341,7 +22341,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x68
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4a
mov r2, #0
@@ -22350,7 +22350,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x69
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4b
mov r2, #0
@@ -22359,7 +22359,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
@@ -22368,7 +22368,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4d
mov r2, #0
@@ -22377,7 +22377,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4e
mov r2, #0
@@ -22386,7 +22386,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6d
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x50
mov r2, #0
@@ -22395,18 +22395,18 @@ _02238332:
add r0, r4, #0
mov r1, #0x6e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0x6f
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0xc9
bne _022384AE
mov r1, #0
@@ -22436,12 +22436,12 @@ _02238332:
add r0, r4, #0
mov r1, #0x70
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_022384AE:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, _022385F0 ; =0x00000182
cmp r0, r1
bne _022384FE
@@ -22481,7 +22481,7 @@ _022384F4:
add r0, r4, #0
mov r1, #0x70
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_022384FE:
add r0, r6, #0
mov r1, #2
@@ -22495,7 +22495,7 @@ _022384FE:
add r0, r4, #0
mov r1, #0x75
add r2, sp, #0xc
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #3
mov r2, #0
@@ -22509,7 +22509,7 @@ _022384FE:
add r0, r4, #0
mov r1, #0x4d
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_0223853E:
add r0, r6, #0
mov r1, #0x25
@@ -22519,7 +22519,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x79
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #7
add r2, sp, #0x24
@@ -22532,7 +22532,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x8f
add r2, sp, #0xc
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x23
mov r2, #0
@@ -22541,7 +22541,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x98
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x22
mov r2, #0
@@ -22550,7 +22550,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x99
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x26
mov r2, #0
@@ -22559,7 +22559,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x24
mov r2, #0
@@ -22568,7 +22568,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x31
mov r2, #0
@@ -22577,10 +22577,10 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
ldr r1, [sp]
add r0, r4, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -23885,10 +23885,10 @@ MOD83_02238F94: ; 0x02238F94
add r7, r2, #0
add r6, r3, #0
ldr r4, [sp, #0x40]
- bl GetMonGenderEncrypted
+ bl GetMonGender
str r0, [sp, #0x24]
ldr r0, [sp, #0x20]
- bl FUN_02068A80
+ bl MonIsShiny
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -23908,7 +23908,7 @@ MOD83_02238F94: ; 0x02238F94
mov r1, #0
ldr r0, [sp, #0x20]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0
str r3, [sp]
mov r1, #0xa
@@ -24027,12 +24027,12 @@ _022390C2:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0xe9
lsl r0, r0, #4
diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c
new file mode 100644
index 00000000..4a4b8a6d
--- /dev/null
+++ b/arm9/src/pokemon.c
@@ -0,0 +1,3741 @@
+#include "global.h"
+#define IN_POKEMON_C
+#include "proto.h"
+#include "party.h"
+#include "pokemon.h"
+#include "filesystem.h"
+#include "heap.h"
+#include "MI_memory.h"
+#include "math_util.h"
+#include "move_data.h"
+#include "string_util.h"
+#include "text.h"
+#include "constants/abilities.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/sinnoh_dex.h"
+
+#pragma thumb on
+
+u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * ptr);
+u32 GetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr);
+void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * ptr);
+void SetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr);
+void AddMonDataInternal(struct Pokemon * pokemon, int attr, int amount);
+void AddBoxMonData(struct BoxPokemon * pokemon, int attr, int amount);
+u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon);
+u16 ModifyStatByNature(u8 nature, u16 statval, u8 statno);
+u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid);
+u8 BoxMonIsShiny(struct BoxPokemon * boxmon);
+u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid);
+void InitBoxMonMoveset(struct BoxPokemon * boxmon);
+u32 FUN_020696A8(struct BoxPokemon * boxmon, u16 move);
+void FUN_02069718(struct BoxPokemon * boxmon, u16 move);
+void FUN_020697D4(struct BoxPokemon * boxmon, u16 move, u8 slot);
+void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2);
+s8 FUN_02069BD0(struct BoxPokemon * boxmon, int flavor);
+s8 FUN_02069BE4(u32 personality, int flavor);
+u8 FUN_02069CF4(struct PlayerParty * party_p, u8 mask);
+BOOL FUN_02069E7C(struct BoxPokemon * boxmon);
+BOOL FUN_02069E9C(struct BoxPokemon * boxmon);
+void FUN_02069ECC(struct BoxPokemon * boxmon);
+void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl);
+void FUN_0206A054(struct BoxPokemon * boxmon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5);
+BOOL MonHasMove(struct Pokemon * pokemon, u16 move);
+BOOL FUN_0206A144(struct BoxPokemon * boxmon, u32 a1);
+BOOL FUN_0206A16C(u16 species, int forme, u32 a2);
+void FUN_0206A1CC(struct BoxPokemon * boxmon);
+u32 MaskOfFlagNo(int flagno);
+void LoadMonPersonal(int species, struct BaseStats * personal);
+void LoadMonEvolutionTable(u16 species, struct Evolution * dest);
+
+int ResolveMonForme(int species, int forme);
+void MonEncryptSegment(u16 * datap, u32 size, u32 key);
+void MonDecryptSegment(u16 * datap, u32 size, u32 key);
+u16 MonEncryptionLCRNG(u32 * seed);
+u16 CalcMonChecksum(u16 * datap, u32 size);
+PokemonDataBlock * GetSubstruct(struct BoxPokemon * boxmon, u32 personality, u8 which_struct);
+void LoadMonBaseStats_HandleAlternateForme(int species, int forme, struct BaseStats * baseStats);
+u8 FUN_020690D4(struct BoxPokemon * boxmon);
+
+#define ENCRY_ARGS_PTY(mon) (u16 *)&(mon)->party, sizeof((mon)->party), (mon)->box.pid
+#define ENCRY_ARGS_BOX(boxmon) (u16 *)&(boxmon)->substructs, sizeof((boxmon)->substructs), (boxmon)->checksum
+#define ENCRYPT_PTY(mon) MonEncryptSegment(ENCRY_ARGS_PTY(mon))
+#define ENCRYPT_BOX(boxmon) MonEncryptSegment(ENCRY_ARGS_BOX(boxmon))
+#define DECRYPT_PTY(mon) MonDecryptSegment(ENCRY_ARGS_PTY(mon))
+#define DECRYPT_BOX(boxmon) MonDecryptSegment(ENCRY_ARGS_BOX(boxmon))
+#define CHECKSUM(boxmon) CalcMonChecksum((u16 *)(boxmon)->substructs, sizeof((boxmon)->substructs))
+#define SHINY_CHECK(otid, pid) (( \
+ ((((otid) & 0xFFFF0000u) >> 16u)) ^ \
+ (((otid) & 0xFFFFu)) ^ \
+ ((((pid) & 0xFFFF0000u) >> 16u))^ \
+ (((pid) & 0xFFFFu))) \
+ < 8u)
+#define CALC_UNOWN_LETTER(pid) ((u32)((((pid) & 0x3000000) >> 18) | (((pid) & 0x30000) >> 12) | (((pid) & 0x300) >> 6) | (((pid) & 0x3) >> 0)) % 28u)
+
+const u16 sItemOdds[2][2] = {
+ { 45, 95 },
+ { 20, 80 },
+};
+
+const s8 sFriendshipModTable[][3] = {
+ { 5, 3, 2 },
+ { 5, 3, 2 },
+ { 1, 1, 0 },
+ { 3, 2, 1 },
+ { 1, 1, 0 },
+ { 1, 1, 1 },
+ { -1, -1, -1 },
+ { -5, -5, -10 },
+ { -5, -5, -10 },
+ { 3, 2, 1 },
+};
+
+const u16 sLegendaryMonsList[] = {
+ SPECIES_MEWTWO,
+ SPECIES_MEW,
+ SPECIES_HO_OH,
+ SPECIES_LUGIA,
+ SPECIES_CELEBI,
+ SPECIES_KYOGRE,
+ SPECIES_GROUDON,
+ SPECIES_RAYQUAZA,
+ SPECIES_JIRACHI,
+ SPECIES_DEOXYS,
+ SPECIES_DIALGA,
+ SPECIES_PALKIA,
+ SPECIES_GIRATINA,
+ SPECIES_PHIONE,
+ SPECIES_MANAPHY,
+ SPECIES_DARKRAI,
+ SPECIES_SHAYMIN,
+ SPECIES_ARCEUS,
+};
+
+const s8 UNK_020F7F16[][5] = {
+ // Atk, Def, Spd, SpA, SpD
+ { 0, 0, 0, 0, 0},
+ { 1, 0, 0, 0, -1},
+ { 1, 0, -1, 0, 0},
+ { 1, -1, 0, 0, 0},
+ { 1, 0, 0, -1, 0},
+ { -1, 0, 0, 0, 1},
+ { 0, 0, 0, 0, 0},
+ { 0, 0, -1, 0, 1},
+ { 0, -1, 0, 0, 1},
+ { 0, 0, 0, -1, 1},
+ { -1, 0, 1, 0, 0},
+ { 0, 0, 1, 0, -1},
+ { 0, 0, 0, 0, 0},
+ { 0, -1, 1, 0, 0},
+ { 0, 0, 1, -1, 0},
+ { -1, 1, 0, 0, 0},
+ { 0, 1, 0, 0, -1},
+ { 0, 1, -1, 0, 0},
+ { 0, 0, 0, 0, 0},
+ { 0, 1, 0, -1, 0},
+ { -1, 0, 0, 1, 0},
+ { 0, 0, 0, 1, -1},
+ { 0, 0, -1, 1, 0},
+ { 0, -1, 0, 1, 0},
+ { 0, 0, 0, 0, 0},
+};
+
+const s8 sNatureStatMods[][5] = {
+ { 0, 0, 0, 0, 0 },
+ { 1, -1, 0, 0, 0 },
+ { 1, 0, -1, 0, 0 },
+ { 1, 0, 0, -1, 0 },
+ { 1, 0, 0, 0, -1 },
+ { -1, 1, 0, 0, 0 },
+ { 0, 0, 0, 0, 0 },
+ { 0, 1, -1, 0, 0 },
+ { 0, 1, 0, -1, 0 },
+ { 0, 1, 0, 0, -1 },
+ { -1, 0, 1, 0, 0 },
+ { 0, -1, 1, 0, 0 },
+ { 0, 0, 0, 0, 0 },
+ { 0, 0, 1, -1, 0 },
+ { 0, 0, 1, 0, -1 },
+ { -1, 0, 0, 1, 0 },
+ { 0, -1, 0, 1, 0 },
+ { 0, 0, -1, 1, 0 },
+ { 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 1, -1 },
+ { -1, 0, 0, 0, 1 },
+ { 0, -1, 0, 0, 1 },
+ { 0, 0, -1, 0, 1 },
+ { 0, 0, 0, -1, 1 },
+ { 0, 0, 0, 0, 0 },
+};
+
+void ZeroMonData(struct Pokemon * pokemon)
+{
+ MIi_CpuClearFast(0, pokemon, sizeof(struct Pokemon));
+ ENCRYPT_BOX(&pokemon->box);
+ ENCRYPT_PTY(pokemon);
+}
+
+void ZeroBoxMonData(struct BoxPokemon * boxmon)
+{
+ MIi_CpuClearFast(0, boxmon, sizeof(struct BoxPokemon));
+ ENCRYPT_BOX(boxmon);
+}
+
+u32 SizeOfStructPokemon(void)
+{
+ return sizeof(struct Pokemon);
+}
+
+struct Pokemon * AllocMonZeroed(u32 heap_id)
+{
+ struct Pokemon * pokemon = (struct Pokemon *)AllocFromHeap(heap_id, sizeof(struct Pokemon));
+ ZeroMonData(pokemon);
+ return pokemon;
+}
+
+BOOL AcquireMonLock(struct Pokemon * mon)
+{
+ BOOL ret = FALSE;
+
+ if (!mon->box.party_lock)
+ {
+ ret = TRUE;
+ GF_ASSERT(!mon->box.box_lock);
+ mon->box.party_lock = TRUE;
+ mon->box.box_lock = TRUE;
+ DECRYPT_PTY(mon);
+ DECRYPT_BOX(&mon->box);
+ }
+ return ret;
+}
+
+BOOL ReleaseMonLock(struct Pokemon * mon, BOOL decrypt_result)
+{
+ BOOL ret = FALSE;
+ if (mon->box.party_lock == TRUE && decrypt_result == TRUE)
+ {
+ ret = TRUE;
+ mon->box.party_lock = FALSE;
+ mon->box.box_lock = FALSE;
+ ENCRYPT_PTY(mon);
+ mon->box.checksum = CHECKSUM(&mon->box);
+ ENCRYPT_BOX(&mon->box);
+ }
+ return ret;
+}
+
+BOOL AcquireBoxMonLock(struct BoxPokemon * mon)
+{
+ BOOL ret = FALSE;
+
+ if (!mon->box_lock)
+ {
+ ret = TRUE;
+ mon->box_lock = TRUE;
+ DECRYPT_BOX(mon);
+ }
+ return ret;
+}
+
+BOOL ReleaseBoxMonLock(struct BoxPokemon * mon, BOOL decrypt_result)
+{
+ BOOL ret = FALSE;
+ if (mon->box_lock == TRUE && decrypt_result == TRUE)
+ {
+ ret = TRUE;
+ mon->box_lock = FALSE;
+ mon->checksum = CHECKSUM(mon);
+ ENCRYPT_BOX(mon);
+ }
+ return ret;
+}
+
+void CreateMon(struct Pokemon * pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId)
+{
+ struct SealStruct * seal;
+ u32 capsule;
+ u8 seal_coords[0x18];
+ ZeroMonData(pokemon);
+ CreateBoxMon(&pokemon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
+ // Not your average encryption call
+ MonEncryptSegment((u16 *)&pokemon->party, sizeof(pokemon->party), 0);
+ ENCRYPT_PTY(pokemon);
+ SetMonData(pokemon, MON_DATA_LEVEL, &level);
+ seal = CreateNewSealsObject(0);
+ SetMonData(pokemon, MON_DATA_SEAL_STRUCT, seal);
+ FreeToHeap(seal);
+ capsule = 0;
+ SetMonData(pokemon, MON_DATA_CAPSULE, &capsule);
+ MIi_CpuClearFast(0, seal_coords, sizeof(seal_coords));
+ SetMonData(pokemon, MON_DATA_SEAL_COORDS, seal_coords);
+ CalcMonLevelAndStats(pokemon);
+}
+
+void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId)
+{
+ BOOL decry;
+ u32 exp;
+ u32 iv;
+ ZeroBoxMonData(boxPokemon);
+ decry = AcquireBoxMonLock(boxPokemon);
+ if (hasFixedPersonality == 0)
+ {
+ fixedPersonality = (rand_LC() | (rand_LC() << 16));
+ }
+ SetBoxMonData(boxPokemon, MON_DATA_PERSONALITY, &fixedPersonality);
+ if (otIdType == 2)
+ {
+ do
+ {
+ fixedOtId = (rand_LC() | (rand_LC() << 16));
+ } while (SHINY_CHECK(fixedOtId, fixedPersonality));
+ }
+ else if (otIdType != 1)
+ fixedOtId = 0;
+ SetBoxMonData(boxPokemon, MON_DATA_OTID, &fixedOtId);
+ SetBoxMonData(boxPokemon, MON_DATA_GAME_LANGUAGE, (void *)&gGameLanguage);
+ SetBoxMonData(boxPokemon, MON_DATA_SPECIES, &species);
+ SetBoxMonData(boxPokemon, MON_DATA_SPECIES_NAME, NULL);
+ exp = GetMonExpBySpeciesAndLevel(species, level);
+ SetBoxMonData(boxPokemon, MON_DATA_EXPERIENCE, &exp);
+ exp = (u32)GetMonBaseStat(species, BASE_FRIENDSHIP);
+ SetBoxMonData(boxPokemon, MON_DATA_FRIENDSHIP, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_MET_LEVEL, &level);
+ SetBoxMonData(boxPokemon, MON_DATA_GAME_VERSION, (void *)&gGameVersion);
+ exp = ITEM_POKE_BALL;
+ SetBoxMonData(boxPokemon, MON_DATA_POKEBALL, &exp);
+ if (fixedIV < 0x20)
+ {
+ SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &fixedIV);
+ }
+ else
+ {
+ exp = rand_LC();
+ iv = exp & 0x1F;
+ SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &iv);
+ iv = (exp & 0x3E0) >> 5;
+ SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &iv);
+ iv = (exp & 0x7C00) >> 10;
+ SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &iv);
+ exp = rand_LC();
+ iv = exp & 0x1F;
+ SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &iv);
+ iv = (exp & 0x3E0) >> 5;
+ SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &iv);
+ iv = (exp & 0x7C00) >> 10;
+ SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &iv);
+ }
+ exp = (u32)GetMonBaseStat(species, BASE_ABILITY_1);
+ iv = (u32)GetMonBaseStat(species, BASE_ABILITY_2);
+ if (iv != 0)
+ {
+ if (fixedPersonality & 1)
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &iv);
+ else
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp);
+ }
+ else
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp);
+ exp = GetBoxMonGender(boxPokemon);
+ SetBoxMonData(boxPokemon, MON_DATA_GENDER, &exp);
+ InitBoxMonMoveset(boxPokemon);
+ ReleaseBoxMonLock(boxPokemon, decry);
+}
+
+void CreateMonWithNature(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 nature)
+{
+ u32 personality;
+ do
+ {
+ personality = (u32)(rand_LC() | (rand_LC() << 16));
+ } while (nature != GetNatureFromPersonality(personality));
+ CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)personality, (int)0, (int)0);
+}
+
+// FIXME: stack storage of pokemon, fixedIv swapped
+void CreateMonWithGenderNatureLetter(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter)
+{
+ u32 pid = 0;
+ u16 test = 0;
+ if (letter != 0 && letter < 29)
+ {
+ do {
+ pid = (u32)(rand_LC() | (rand_LC() << 16));
+ test = (u16)CALC_UNOWN_LETTER(pid);
+ } while (nature != GetNatureFromPersonality(pid) || gender != GetGenderBySpeciesAndPersonality(species, pid) || test != letter - 1);
+ }
+ else
+ {
+ pid = GenPersonalityByGenderAndNature(species, gender, nature);
+ }
+ CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)pid, 0, 0);
+}
+
+u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature)
+{
+ int pid = nature;
+ u8 ratio = (u8)GetMonBaseStat(species, BASE_GENDER_RATIO);
+ switch (ratio)
+ {
+ case MON_RATIO_MALE:
+ case MON_RATIO_FEMALE:
+ case MON_RATIO_UNKNOWN:
+ break;
+ default:
+ if (gender == MON_MALE)
+ {
+ // Smallest increment that forces the low byte to exceed the
+ // gender ratio, thus making the mon male
+ pid = 25 * ((ratio / 25) + 1);
+ pid += nature;
+ }
+ break;
+ }
+ return (u32)pid;
+}
+
+void CreateMonWithFixedIVs(struct Pokemon * pokemon, int species, int level, int ivs, int personality)
+{
+ CreateMon(pokemon, species, level, 0, 1, personality, 0, 0);
+ SetMonData(pokemon, MON_DATA_IVS_WORD, &ivs);
+ CalcMonLevelAndStats(pokemon);
+}
+
+void CalcMonLevelAndStats(struct Pokemon * pokemon)
+{
+ BOOL decry = AcquireMonLock(pokemon);
+ u32 level = (u32)CalcMonLevel(pokemon);
+ SetMonData(pokemon, MON_DATA_LEVEL, &level);
+ CalcMonStats(pokemon);
+ ReleaseMonLock(pokemon, decry);
+}
+
+void CalcMonStats(struct Pokemon * pokemon)
+{
+ struct BaseStats * baseStats;
+ int level;
+ int maxHp;
+ int hpIv;
+ int hpEv;
+ int atkIv;
+ int defIv;
+ int speedIv;
+ int spatkIv;
+ int spdefIv;
+ int atkEv;
+ int defEv;
+ int speedEv;
+ int spatkEv;
+ int spdefEv;
+ int forme;
+ int hp;
+ int species;
+ int newMaxHp;
+ int newAtk;
+ int newDef;
+ int newSpeed;
+ int newSpatk;
+ int newSpdef;
+ BOOL decry = AcquireMonLock(pokemon);
+ level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ maxHp = (int)GetMonData(pokemon, MON_DATA_MAXHP, NULL);
+ hp = (int)GetMonData(pokemon, MON_DATA_HP, NULL);
+ hpIv = (int)GetMonData(pokemon, MON_DATA_HP_IV, NULL);
+ hpEv = (int)GetMonData(pokemon, MON_DATA_HP_EV, NULL);
+ atkIv = (int)GetMonData(pokemon, MON_DATA_ATK_IV, NULL);
+ atkEv = (int)GetMonData(pokemon, MON_DATA_ATK_EV, NULL);
+ defIv = (int)GetMonData(pokemon, MON_DATA_DEF_IV, NULL);
+ defEv = (int)GetMonData(pokemon, MON_DATA_DEF_EV, NULL);
+ speedIv = (int)GetMonData(pokemon, MON_DATA_SPEED_IV, NULL);
+ speedEv = (int)GetMonData(pokemon, MON_DATA_SPEED_EV, NULL);
+ spatkIv = (int)GetMonData(pokemon, MON_DATA_SPATK_IV, NULL);
+ spatkEv = (int)GetMonData(pokemon, MON_DATA_SPATK_EV, NULL);
+ spdefIv = (int)GetMonData(pokemon, MON_DATA_SPDEF_IV, NULL);
+ spdefEv = (int)GetMonData(pokemon, MON_DATA_SPDEF_EV, NULL);
+ forme = (int)GetMonData(pokemon, MON_DATA_FORME, NULL);
+ species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+
+ baseStats = (struct BaseStats *)AllocFromHeap(0, sizeof(struct BaseStats));
+ LoadMonBaseStats_HandleAlternateForme(species, forme, baseStats);
+
+ if (species == SPECIES_SHEDINJA)
+ newMaxHp = 1;
+ else
+ {
+ newMaxHp = (baseStats->hp * 2 + hpIv + hpEv / 4) * level / 100 + level + 10;
+ }
+ SetMonData(pokemon, MON_DATA_MAXHP, &newMaxHp);
+
+ newAtk = (baseStats->atk * 2 + atkIv + atkEv / 4) * level / 100 + 5;
+ newAtk = ModifyStatByNature(GetMonNature(pokemon), (u16)newAtk, 1);
+ SetMonData(pokemon, MON_DATA_ATK, &newAtk);
+
+ newDef = (baseStats->def * 2 + defIv + defEv / 4) * level / 100 + 5;
+ newDef = ModifyStatByNature(GetMonNature(pokemon), (u16)newDef, 2);
+ SetMonData(pokemon, MON_DATA_DEF, &newDef);
+
+ newSpeed = (baseStats->speed * 2 + speedIv + speedEv / 4) * level / 100 + 5;
+ newSpeed = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpeed, 3);
+ SetMonData(pokemon, MON_DATA_SPEED, &newSpeed);
+
+ newSpatk = (baseStats->spatk * 2 + spatkIv + spatkEv / 4) * level / 100 + 5;
+ newSpatk = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpatk, 4);
+ SetMonData(pokemon, MON_DATA_SPATK, &newSpatk);
+
+ newSpdef = (baseStats->spdef * 2 + spdefIv + spdefEv / 4) * level / 100 + 5;
+ newSpdef = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpdef, 5);
+ SetMonData(pokemon, MON_DATA_SPDEF, &newSpdef);
+
+ FreeToHeap(baseStats);
+
+ if (hp != 0 || maxHp == 0)
+ {
+ if (species == SPECIES_SHEDINJA)
+ hp = 1;
+ else if (hp == 0)
+ hp = newMaxHp;
+ else
+ hp += newMaxHp - maxHp;
+ }
+ if (hp != 0)
+ SetMonData(pokemon, MON_DATA_HP, &hp);
+ ReleaseMonLock(pokemon, decry);
+}
+
+u32 GetMonData(struct Pokemon * pokemon, int attr, void * dest)
+{
+ u32 ret;
+ u32 checksum;
+ if (!pokemon->box.party_lock)
+ {
+ DECRYPT_PTY(pokemon);
+ DECRYPT_BOX(&pokemon->box);
+ checksum = CHECKSUM(&pokemon->box);
+ if (checksum != pokemon->box.checksum)
+ {
+ GF_ASSERT(checksum == pokemon->box.checksum);
+ pokemon->box.checksum_fail = TRUE;
+ }
+ }
+ ret = GetMonDataInternal(pokemon, attr, dest);
+ if (!pokemon->box.party_lock)
+ {
+ ENCRYPT_PTY(pokemon);
+ ENCRYPT_BOX(&pokemon->box);
+ }
+ return ret;
+}
+
+u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * dest)
+{
+ switch (attr)
+ {
+ case MON_DATA_STATUS:
+ return pokemon->party.status;
+ case MON_DATA_LEVEL:
+ return pokemon->party.level;
+ case MON_DATA_CAPSULE:
+ return pokemon->party.capsule;
+ case MON_DATA_HP:
+ return pokemon->party.hp;
+ case MON_DATA_MAXHP:
+ return pokemon->party.maxHp;
+ case MON_DATA_ATK:
+ return pokemon->party.atk;
+ case MON_DATA_DEF:
+ return pokemon->party.def;
+ case MON_DATA_SPEED:
+ return pokemon->party.speed;
+ case MON_DATA_SPATK:
+ return pokemon->party.spatk;
+ case MON_DATA_SPDEF:
+ return pokemon->party.spdef;
+ case MON_DATA_SEAL_STRUCT:
+ CopySealsObject(&pokemon->party.seal_something, dest);
+ return 1;
+ case MON_DATA_SEAL_COORDS:
+ FUN_02029C74(pokemon->party.sealCoords, dest);
+ return 1;
+ default:
+ return GetBoxMonDataInternal(&pokemon->box, attr, dest);
+ }
+}
+
+u32 GetBoxMonData(struct BoxPokemon * boxmon, int attr, void * dest)
+{
+ u32 ret;
+ u32 checksum;
+ if (!boxmon->box_lock)
+ {
+ DECRYPT_BOX(boxmon);
+ checksum = CHECKSUM(boxmon);
+ if (checksum != boxmon->checksum)
+ {
+ GF_ASSERT(checksum == boxmon->checksum);
+ boxmon->checksum_fail = TRUE;
+ }
+ }
+ ret = GetBoxMonDataInternal(boxmon, attr, dest);
+ if (!boxmon->box_lock)
+ {
+ ENCRYPT_BOX(boxmon);
+ }
+ return ret;
+}
+
+u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
+{
+ u32 ret = 0;
+ PokemonDataBlockA * blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA;
+ PokemonDataBlockB * blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB;
+ PokemonDataBlockC * blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC;
+ PokemonDataBlockD * blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD;
+
+ switch (attr)
+ {
+ default:
+ ret = 0;
+ break;
+ case MON_DATA_PERSONALITY:
+ ret = boxmon->pid;
+ break;
+ case MON_DATA_PARTY_LOCK:
+ ret = boxmon->party_lock;
+ break;
+ case MON_DATA_BOX_LOCK:
+ ret = boxmon->box_lock;
+ break;
+ case MON_DATA_CHECKSUM_FAILED:
+ ret = boxmon->checksum_fail;
+ break;
+ case MON_DATA_CHECKSUM:
+ ret = boxmon->checksum;
+ break;
+ case MON_DATA_SPECIES_EXISTS:
+ if (blockA->species != SPECIES_NONE)
+ ret = TRUE;
+ else
+ ret = FALSE;
+ break;
+ case MON_DATA_SANITY_IS_EGG:
+ ret = boxmon->checksum_fail;
+ if (!ret)
+ ret = blockB->isEgg;
+ break;
+ case MON_DATA_SPECIES2:
+ ret = blockA->species;
+ if (ret != SPECIES_NONE && (blockB->isEgg || boxmon->checksum_fail))
+ ret = SPECIES_EGG;
+ break;
+ case MON_DATA_LEVEL:
+ ret = (u32)CalcLevelBySpeciesAndExp(blockA->species, blockA->exp);
+ break;
+ case MON_DATA_SPECIES:
+ if (boxmon->checksum_fail)
+ ret = SPECIES_EGG;
+ else
+ ret = blockA->species;
+ break;
+ case MON_DATA_HELD_ITEM:
+ ret = blockA->heldItem;
+ break;
+ case MON_DATA_OTID:
+ ret = blockA->otID;
+ break;
+ case MON_DATA_EXPERIENCE:
+ ret = blockA->exp;
+ break;
+ case MON_DATA_FRIENDSHIP:
+ ret = blockA->friendship;
+ break;
+ case MON_DATA_ABILITY:
+ ret = blockA->ability;
+ break;
+ case MON_DATA_MARKINGS:
+ ret = blockA->markings;
+ break;
+ case MON_DATA_GAME_LANGUAGE:
+ ret = blockA->originLanguage;
+ break;
+ case MON_DATA_HP_EV:
+ ret = blockA->hpEV;
+ break;
+ case MON_DATA_ATK_EV:
+ ret = blockA->atkEV;
+ break;
+ case MON_DATA_DEF_EV:
+ ret = blockA->defEV;
+ break;
+ case MON_DATA_SPEED_EV:
+ ret = blockA->spdEV;
+ break;
+ case MON_DATA_SPATK_EV:
+ ret = blockA->spatkEV;
+ break;
+ case MON_DATA_SPDEF_EV:
+ ret = blockA->spdefEV;
+ break;
+ case MON_DATA_COOL:
+ ret = blockA->coolStat;
+ break;
+ case MON_DATA_BEAUTY:
+ ret = blockA->beautyStat;
+ break;
+ case MON_DATA_CUTE:
+ ret = blockA->cuteStat;
+ break;
+ case MON_DATA_SMART:
+ ret = blockA->smartStat;
+ break;
+ case MON_DATA_TOUGH:
+ ret = blockA->toughStat;
+ break;
+ case MON_DATA_SHEEN:
+ ret = blockA->sheen;
+ break;
+ case MON_DATA_SINNOH_CHAMP_RIBBON:
+ case MON_DATA_SINNOH_RIBBON_26:
+ case MON_DATA_SINNOH_RIBBON_27:
+ case MON_DATA_SINNOH_RIBBON_28:
+ case MON_DATA_SINNOH_RIBBON_29:
+ case MON_DATA_SINNOH_RIBBON_30:
+ case MON_DATA_SINNOH_RIBBON_31:
+ case MON_DATA_SINNOH_RIBBON_32:
+ case MON_DATA_SINNOH_RIBBON_33:
+ case MON_DATA_SINNOH_RIBBON_34:
+ case MON_DATA_SINNOH_RIBBON_35:
+ case MON_DATA_SINNOH_RIBBON_36:
+ case MON_DATA_SINNOH_RIBBON_37:
+ case MON_DATA_SINNOH_RIBBON_38:
+ case MON_DATA_SINNOH_RIBBON_39:
+ case MON_DATA_SINNOH_RIBBON_40:
+ case MON_DATA_SINNOH_RIBBON_41:
+ case MON_DATA_SINNOH_RIBBON_42:
+ case MON_DATA_SINNOH_RIBBON_43:
+ case MON_DATA_SINNOH_RIBBON_44:
+ case MON_DATA_SINNOH_RIBBON_45:
+ case MON_DATA_SINNOH_RIBBON_46:
+ case MON_DATA_SINNOH_RIBBON_47:
+ case MON_DATA_SINNOH_RIBBON_48:
+ case MON_DATA_SINNOH_RIBBON_49:
+ case MON_DATA_SINNOH_RIBBON_50:
+ case MON_DATA_SINNOH_RIBBON_51:
+ case MON_DATA_SINNOH_RIBBON_52:
+ case MON_DATA_SINNOH_RIBBON_53:
+ {
+ if (blockA->sinnohRibbons & (1ll << (attr - MON_DATA_SINNOH_CHAMP_RIBBON)))
+ {
+ ret = TRUE;
+ }
+ else
+ {
+ ret = FALSE;
+ }
+ }
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ ret = blockB->moves[attr - MON_DATA_MOVE1];
+ break;
+ case MON_DATA_MOVE1PP:
+ case MON_DATA_MOVE2PP:
+ case MON_DATA_MOVE3PP:
+ case MON_DATA_MOVE4PP:
+ ret = blockB->movePP[attr - MON_DATA_MOVE1PP];
+ break;
+ case MON_DATA_MOVE1PPUP:
+ case MON_DATA_MOVE2PPUP:
+ case MON_DATA_MOVE3PPUP:
+ case MON_DATA_MOVE4PPUP:
+ ret = blockB->movePpUps[attr - MON_DATA_MOVE1PPUP];
+ break;
+ case MON_DATA_MOVE1MAXPP:
+ case MON_DATA_MOVE2MAXPP:
+ case MON_DATA_MOVE3MAXPP:
+ case MON_DATA_MOVE4MAXPP:
+ ret = (u32)FUN_0206AB30(blockB->moves[attr - MON_DATA_MOVE1MAXPP], blockB->movePpUps[attr - MON_DATA_MOVE1MAXPP]);
+ break;
+ case MON_DATA_HP_IV:
+ ret = blockB->hpIV;
+ break;
+ case MON_DATA_ATK_IV:
+ ret = blockB->atkIV;
+ break;
+ case MON_DATA_DEF_IV:
+ ret = blockB->defIV;
+ break;
+ case MON_DATA_SPEED_IV:
+ ret = blockB->spdIV;
+ break;
+ case MON_DATA_SPATK_IV:
+ ret = blockB->spatkIV;
+ break;
+ case MON_DATA_SPDEF_IV:
+ ret = blockB->spdefIV;
+ break;
+ case MON_DATA_IS_EGG:
+ ret = boxmon->checksum_fail;
+ if (!ret)
+ ret = blockB->isEgg;
+ break;
+ case MON_DATA_HAS_NICKNAME:
+ ret = blockB->isNicknamed;
+ break;
+ case MON_DATA_COOL_RIBBON:
+ case MON_DATA_HOENN_RIBBON_79:
+ case MON_DATA_HOENN_RIBBON_80:
+ case MON_DATA_HOENN_RIBBON_81:
+ case MON_DATA_HOENN_RIBBON_82:
+ case MON_DATA_HOENN_RIBBON_83:
+ case MON_DATA_HOENN_RIBBON_84:
+ case MON_DATA_HOENN_RIBBON_85:
+ case MON_DATA_HOENN_RIBBON_86:
+ case MON_DATA_HOENN_RIBBON_87:
+ case MON_DATA_HOENN_RIBBON_88:
+ case MON_DATA_HOENN_RIBBON_89:
+ case MON_DATA_HOENN_RIBBON_90:
+ case MON_DATA_HOENN_RIBBON_91:
+ case MON_DATA_HOENN_RIBBON_92:
+ case MON_DATA_HOENN_RIBBON_93:
+ case MON_DATA_HOENN_RIBBON_94:
+ case MON_DATA_HOENN_RIBBON_95:
+ case MON_DATA_HOENN_RIBBON_96:
+ case MON_DATA_HOENN_RIBBON_97:
+ case MON_DATA_HOENN_RIBBON_98:
+ case MON_DATA_HOENN_RIBBON_99:
+ case MON_DATA_HOENN_RIBBON_100:
+ case MON_DATA_HOENN_RIBBON_101:
+ case MON_DATA_HOENN_RIBBON_102:
+ case MON_DATA_HOENN_RIBBON_103:
+ case MON_DATA_HOENN_RIBBON_104:
+ case MON_DATA_HOENN_RIBBON_105:
+ case MON_DATA_HOENN_RIBBON_106:
+ case MON_DATA_HOENN_RIBBON_107:
+ case MON_DATA_HOENN_RIBBON_108:
+ case MON_DATA_HOENN_RIBBON_109:
+ if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_COOL_RIBBON)))
+ ret = TRUE;
+ else
+ ret = FALSE;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ ret = blockB->fatefulEncounter;
+ break;
+ case MON_DATA_GENDER:
+ ret = blockB->gender;
+ break;
+ case MON_DATA_FORME:
+ ret = blockB->alternateForm;
+ break;
+ case MON_DATA_RESERVED_113:
+ ret = blockB->HGSS_shinyLeaves;
+ break;
+ case MON_DATA_RESERVED_114:
+ ret = blockB->Unused;
+ break;
+ case MON_DATA_NICKNAME:
+ if (boxmon->checksum_fail)
+ GetSpeciesName(SPECIES_MANAPHY_EGG, 0, dest);
+ else
+ {
+ u16 * dest16 = (u16 *)dest;
+ for (ret = 0; ret < POKEMON_NAME_LENGTH; ret++)
+ {
+ dest16[ret] = blockC->nickname[ret];
+ }
+ dest16[ret] = EOS;
+ }
+ break;
+ case MON_DATA_NICKNAME_4:
+ ret = blockB->isNicknamed;
+ // fallthrough
+ case MON_DATA_NICKNAME_3:
+ if (boxmon->checksum_fail)
+ {
+ u16 * buffer = FUN_0200AA50(SPECIES_MANAPHY_EGG, 0);
+ FUN_02021A74(dest, buffer);
+ FUN_02021A20(buffer);
+ }
+ else
+ {
+ FUN_02021E28(dest, blockC->nickname);
+ }
+ break;
+ case MON_DATA_UNK_120:
+ ret = blockC->Unused;
+ break;
+ case MON_DATA_GAME_VERSION:
+ ret = blockC->originGame;
+ break;
+ case MON_DATA_SINNOH_RIBBON_122:
+ case MON_DATA_SINNOH_RIBBON_123:
+ case MON_DATA_SINNOH_RIBBON_124:
+ case MON_DATA_SINNOH_RIBBON_125:
+ case MON_DATA_SINNOH_RIBBON_126:
+ case MON_DATA_SINNOH_RIBBON_127:
+ case MON_DATA_SINNOH_RIBBON_128:
+ case MON_DATA_SINNOH_RIBBON_129:
+ case MON_DATA_SINNOH_RIBBON_130:
+ case MON_DATA_SINNOH_RIBBON_131:
+ case MON_DATA_SINNOH_RIBBON_132:
+ case MON_DATA_SINNOH_RIBBON_133:
+ case MON_DATA_SINNOH_RIBBON_134:
+ case MON_DATA_SINNOH_RIBBON_135:
+ case MON_DATA_SINNOH_RIBBON_136:
+ case MON_DATA_SINNOH_RIBBON_137:
+ case MON_DATA_SINNOH_RIBBON_138:
+ case MON_DATA_SINNOH_RIBBON_139:
+ case MON_DATA_SINNOH_RIBBON_140:
+ case MON_DATA_SINNOH_RIBBON_141:
+ case MON_DATA_SINNOH_RIBBON_142:
+ if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_SINNOH_RIBBON_122)))
+ ret = TRUE;
+ else
+ ret = FALSE;
+ break;
+ case MON_DATA_OT_NAME:
+ {
+ u16 * dest16 = (u16 *)dest;
+ for (ret = 0; ret < OT_NAME_LENGTH; ret++)
+ dest16[ret] = blockD->otTrainerName[ret];
+ dest16[ret] = EOS;
+ }
+ break;
+ case MON_DATA_OT_NAME_2:
+ FUN_02021E28(dest, blockD->otTrainerName);
+ break;
+ case MON_DATA_EGG_MET_YEAR:
+ ret = blockD->dateEggReceived[0];
+ break;
+ case MON_DATA_EGG_MET_MONTH:
+ ret = blockD->dateEggReceived[1];
+ break;
+ case MON_DATA_EGG_MET_DAY:
+ ret = blockD->dateEggReceived[2];
+ break;
+ case MON_DATA_MET_YEAR:
+ ret = blockD->dateMet[0];
+ break;
+ case MON_DATA_MET_MONTH:
+ ret = blockD->dateMet[1];
+ break;
+ case MON_DATA_MET_DAY:
+ ret = blockD->dateMet[2];
+ break;
+ case MON_DATA_EGG_MET_LOCATION:
+ ret = blockD->DP_EggLocation;
+ break;
+ case MON_DATA_MET_LOCATION:
+ ret = blockD->DP_MetLocation;
+ break;
+ case MON_DATA_POKERUS:
+ ret = blockD->pokerus;
+ break;
+ case MON_DATA_POKEBALL:
+ ret = blockD->pokeball;
+ break;
+ case MON_DATA_MET_LEVEL:
+ ret = blockD->metLevel;
+ break;
+ case MON_DATA_MET_GENDER:
+ ret = blockD->metGender;
+ break;
+ case MON_DATA_ENCOUNTER_TYPE:
+ ret = blockD->encounterType;
+ break;
+ case MON_DATA_RESERVED_158:
+ ret = blockD->HGSS_Pokeball;
+ break;
+ case MON_DATA_IVS_WORD:
+ ret = (blockB->hpIV) | \
+ (blockB->atkIV << 5) | \
+ (blockB->defIV << 10) | \
+ (blockB->spdIV << 15) | \
+ (blockB->spatkIV << 20) | \
+ (blockB->spdefIV << 25);
+ break;
+ case MON_DATA_UNK_175:
+ if ((blockA->species == SPECIES_NIDORAN_F || blockA->species == SPECIES_NIDORAN_M) && !blockB->isNicknamed)
+ ret = FALSE;
+ else
+ ret = TRUE;
+ break;
+ case MON_DATA_TYPE_1:
+ case MON_DATA_TYPE_2:
+ if (blockA->species == SPECIES_ARCEUS && blockA->ability == ABILITY_MULTITYPE)
+ ret = (u32)GetArceusTypeByHeldItemEffect((u16)FUN_0206E7B8(blockA->heldItem, 1, 0));
+ else
+ {
+ ret = (u32)GetMonBaseStat_HandleFormeConversion(blockA->species, blockB->alternateForm, (enum BaseStat)(attr - MON_DATA_TYPE_1 + BASE_TYPE1));
+ }
+ break;
+ case MON_DATA_SPECIES_NAME:
+ GetSpeciesName(blockA->species, 0, dest);
+ break;
+ }
+ return ret;
+}
+
+void SetMonData(struct Pokemon * pokemon, int attr, void * value)
+{
+ u16 checksum;
+ if (!pokemon->box.party_lock)
+ {
+ DECRYPT_PTY(pokemon);
+ DECRYPT_BOX(&pokemon->box);
+ checksum = CHECKSUM(&pokemon->box);
+ if (checksum != pokemon->box.checksum)
+ {
+ GF_ASSERT(checksum == pokemon->box.checksum);
+ pokemon->box.checksum_fail = TRUE;
+ ENCRYPT_BOX(&pokemon->box);
+ return;
+ }
+ }
+ SetMonDataInternal(pokemon, attr, value);
+ if (!pokemon->box.party_lock)
+ {
+ ENCRYPT_PTY(pokemon);
+ pokemon->box.checksum = CHECKSUM(&pokemon->box);
+ ENCRYPT_BOX(&pokemon->box);
+ }
+}
+
+void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * value)
+{
+#define VALUE(type) (*(const type *)value)
+ switch (attr)
+ {
+ case MON_DATA_STATUS:
+ pokemon->party.status = VALUE(u32);
+ break;
+ case MON_DATA_LEVEL:
+ pokemon->party.level = VALUE(u8);
+ break;
+ case MON_DATA_CAPSULE:
+ pokemon->party.capsule = VALUE(u8);
+ break;
+ case MON_DATA_HP:
+ pokemon->party.hp = VALUE(u16);
+ break;
+ case MON_DATA_MAXHP:
+ pokemon->party.maxHp = VALUE(u16);
+ break;
+ case MON_DATA_ATK:
+ pokemon->party.atk = VALUE(u16);
+ break;
+ case MON_DATA_DEF:
+ pokemon->party.def = VALUE(u16);
+ break;
+ case MON_DATA_SPEED:
+ pokemon->party.speed = VALUE(u16);
+ break;
+ case MON_DATA_SPATK:
+ pokemon->party.spatk = VALUE(u16);
+ break;
+ case MON_DATA_SPDEF:
+ pokemon->party.spdef = VALUE(u16);
+ break;
+ case MON_DATA_SEAL_STRUCT:
+ CopySealsObject((const struct SealStruct *)value, &pokemon->party.seal_something);
+ break;
+ case MON_DATA_SEAL_COORDS:
+ FUN_02029C74((const u8 *)value, pokemon->party.sealCoords);
+ break;
+ default:
+ SetBoxMonDataInternal(&pokemon->box, attr, value);
+ break;
+ }
+#undef VALUE
+}
+
+void SetBoxMonData(struct BoxPokemon * boxmon, int attr, void * value)
+{
+ u16 checksum;
+ if (!boxmon->box_lock)
+ {
+ DECRYPT_BOX(boxmon);
+ checksum = CHECKSUM(boxmon);
+ if (checksum != boxmon->checksum)
+ {
+ GF_ASSERT(checksum == boxmon->checksum);
+ boxmon->checksum_fail = TRUE;
+ ENCRYPT_BOX(boxmon);
+ return;
+ }
+ }
+ SetBoxMonDataInternal(boxmon, attr, value);
+ if (!boxmon->box_lock)
+ {
+ boxmon->checksum = CHECKSUM(boxmon);
+ ENCRYPT_BOX(boxmon);
+ }
+}
+
+
+void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value)
+{
+#define VALUE(type) (*(const type *)value)
+ u8 flag;
+ u64 mask;
+ u32 i;
+ u16 namebuf[POKEMON_NAME_LENGTH + 1];
+ u16 namebuf2[POKEMON_NAME_LENGTH + 1];
+ u16 namebuf3[POKEMON_NAME_LENGTH + 1];
+ u16 * speciesName;
+
+ PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA;
+ PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB;
+ PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC;
+ PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD;
+
+ switch (attr)
+ {
+ case MON_DATA_PERSONALITY:
+ boxmon->pid = VALUE(u32);
+ break;
+ case MON_DATA_PARTY_LOCK:
+ GF_ASSERT(0);
+ boxmon->party_lock = VALUE(u8);
+ break;
+ case MON_DATA_BOX_LOCK:
+ GF_ASSERT(0);
+ boxmon->box_lock = VALUE(u8);
+ break;
+ case MON_DATA_CHECKSUM_FAILED:
+ boxmon->checksum_fail = VALUE(u8);
+ break;
+ case MON_DATA_CHECKSUM:
+ boxmon->checksum = VALUE(u16);
+ break;
+ case MON_DATA_SPECIES:
+ blockA->species = VALUE(u16);
+ break;
+ case MON_DATA_HELD_ITEM:
+ blockA->heldItem = VALUE(u16);
+ break;
+ case MON_DATA_OTID:
+ blockA->otID = VALUE(u32);
+ break;
+ case MON_DATA_EXPERIENCE:
+ blockA->exp = VALUE(u32);
+ break;
+ case MON_DATA_FRIENDSHIP:
+ blockA->friendship = VALUE(u8);
+ break;
+ case MON_DATA_ABILITY:
+ blockA->ability = VALUE(u8);
+ break;
+ case MON_DATA_MARKINGS:
+ blockA->markings = VALUE(u8);
+ break;
+ case MON_DATA_GAME_LANGUAGE:
+ blockA->originLanguage = VALUE(u8);
+ break;
+ case MON_DATA_HP_EV:
+ blockA->hpEV = VALUE(u8);
+ break;
+ case MON_DATA_ATK_EV:
+ blockA->atkEV = VALUE(u8);
+ break;
+ case MON_DATA_DEF_EV:
+ blockA->defEV = VALUE(u8);
+ break;
+ case MON_DATA_SPEED_EV:
+ blockA->spdEV = VALUE(u8);
+ break;
+ case MON_DATA_SPATK_EV:
+ blockA->spatkEV = VALUE(u8);
+ break;
+ case MON_DATA_SPDEF_EV:
+ blockA->spdefEV = VALUE(u8);
+ break;
+ case MON_DATA_COOL:
+ blockA->coolStat = VALUE(u8);
+ break;
+ case MON_DATA_BEAUTY:
+ blockA->beautyStat = VALUE(u8);
+ break;
+ case MON_DATA_CUTE:
+ blockA->cuteStat = VALUE(u8);
+ break;
+ case MON_DATA_SMART:
+ blockA->smartStat = VALUE(u8);
+ break;
+ case MON_DATA_TOUGH:
+ blockA->toughStat = VALUE(u8);
+ break;
+ case MON_DATA_SHEEN:
+ blockA->sheen = VALUE(u8);
+ break;
+ case MON_DATA_SINNOH_CHAMP_RIBBON:
+ case MON_DATA_SINNOH_RIBBON_26:
+ case MON_DATA_SINNOH_RIBBON_27:
+ case MON_DATA_SINNOH_RIBBON_28:
+ case MON_DATA_SINNOH_RIBBON_29:
+ case MON_DATA_SINNOH_RIBBON_30:
+ case MON_DATA_SINNOH_RIBBON_31:
+ case MON_DATA_SINNOH_RIBBON_32:
+ case MON_DATA_SINNOH_RIBBON_33:
+ case MON_DATA_SINNOH_RIBBON_34:
+ case MON_DATA_SINNOH_RIBBON_35:
+ case MON_DATA_SINNOH_RIBBON_36:
+ case MON_DATA_SINNOH_RIBBON_37:
+ case MON_DATA_SINNOH_RIBBON_38:
+ case MON_DATA_SINNOH_RIBBON_39:
+ case MON_DATA_SINNOH_RIBBON_40:
+ case MON_DATA_SINNOH_RIBBON_41:
+ case MON_DATA_SINNOH_RIBBON_42:
+ case MON_DATA_SINNOH_RIBBON_43:
+ case MON_DATA_SINNOH_RIBBON_44:
+ case MON_DATA_SINNOH_RIBBON_45:
+ case MON_DATA_SINNOH_RIBBON_46:
+ case MON_DATA_SINNOH_RIBBON_47:
+ case MON_DATA_SINNOH_RIBBON_48:
+ case MON_DATA_SINNOH_RIBBON_49:
+ case MON_DATA_SINNOH_RIBBON_50:
+ case MON_DATA_SINNOH_RIBBON_51:
+ case MON_DATA_SINNOH_RIBBON_52:
+ case MON_DATA_SINNOH_RIBBON_53:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON);
+ if (flag)
+ blockA->sinnohRibbons |= mask;
+ else
+ blockA->sinnohRibbons &= -1ull ^ mask;
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ blockB->moves[attr - MON_DATA_MOVE1] = VALUE(u16);
+ break;
+ case MON_DATA_MOVE1PP:
+ case MON_DATA_MOVE2PP:
+ case MON_DATA_MOVE3PP:
+ case MON_DATA_MOVE4PP:
+ blockB->movePP[attr - MON_DATA_MOVE1PP] = VALUE(u8);
+ break;
+ case MON_DATA_MOVE1PPUP:
+ case MON_DATA_MOVE2PPUP:
+ case MON_DATA_MOVE3PPUP:
+ case MON_DATA_MOVE4PPUP:
+ blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] = VALUE(u8);
+ break;
+ case MON_DATA_HP_IV:
+ blockB->hpIV = VALUE(u8);
+ break;
+ case MON_DATA_ATK_IV:
+ blockB->atkIV = VALUE(u8);
+ break;
+ case MON_DATA_DEF_IV:
+ blockB->defIV = VALUE(u8);
+ break;
+ case MON_DATA_SPEED_IV:
+ blockB->spdIV = VALUE(u8);
+ break;
+ case MON_DATA_SPATK_IV:
+ blockB->spatkIV = VALUE(u8);
+ break;
+ case MON_DATA_SPDEF_IV:
+ blockB->spdefIV = VALUE(u8);
+ break;
+ case MON_DATA_IS_EGG:
+ blockB->isEgg = VALUE(u8);
+ break;
+ case MON_DATA_HAS_NICKNAME:
+ blockB->isNicknamed = VALUE(u8);
+ break;
+ case MON_DATA_COOL_RIBBON:
+ case MON_DATA_HOENN_RIBBON_79:
+ case MON_DATA_HOENN_RIBBON_80:
+ case MON_DATA_HOENN_RIBBON_81:
+ case MON_DATA_HOENN_RIBBON_82:
+ case MON_DATA_HOENN_RIBBON_83:
+ case MON_DATA_HOENN_RIBBON_84:
+ case MON_DATA_HOENN_RIBBON_85:
+ case MON_DATA_HOENN_RIBBON_86:
+ case MON_DATA_HOENN_RIBBON_87:
+ case MON_DATA_HOENN_RIBBON_88:
+ case MON_DATA_HOENN_RIBBON_89:
+ case MON_DATA_HOENN_RIBBON_90:
+ case MON_DATA_HOENN_RIBBON_91:
+ case MON_DATA_HOENN_RIBBON_92:
+ case MON_DATA_HOENN_RIBBON_93:
+ case MON_DATA_HOENN_RIBBON_94:
+ case MON_DATA_HOENN_RIBBON_95:
+ case MON_DATA_HOENN_RIBBON_96:
+ case MON_DATA_HOENN_RIBBON_97:
+ case MON_DATA_HOENN_RIBBON_98:
+ case MON_DATA_HOENN_RIBBON_99:
+ case MON_DATA_HOENN_RIBBON_100:
+ case MON_DATA_HOENN_RIBBON_101:
+ case MON_DATA_HOENN_RIBBON_102:
+ case MON_DATA_HOENN_RIBBON_103:
+ case MON_DATA_HOENN_RIBBON_104:
+ case MON_DATA_HOENN_RIBBON_105:
+ case MON_DATA_HOENN_RIBBON_106:
+ case MON_DATA_HOENN_RIBBON_107:
+ case MON_DATA_HOENN_RIBBON_108:
+ case MON_DATA_HOENN_RIBBON_109:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON);
+ if (flag)
+ blockB->ribbonFlags |= mask;
+ else
+ blockB->ribbonFlags &= -1ull ^ mask;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ blockB->fatefulEncounter = VALUE(u8);
+ break;
+ case MON_DATA_GENDER:
+ blockB->gender = VALUE(u8);
+ break;
+ case MON_DATA_FORME:
+ blockB->alternateForm = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_113:
+ blockB->HGSS_shinyLeaves = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_114:
+ blockB->Unused = VALUE(u16);
+ break;
+ case MON_DATA_NICKNAME_2:
+ GetSpeciesName(blockA->species, 0, namebuf);
+ blockB->isNicknamed = StringNotEqual(namebuf, value);
+ // fallthrough
+ case MON_DATA_NICKNAME:
+ for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
+ {
+ blockC->nickname[i] = VALUE(u16); value = (void *const )((char *)value + 2);
+ }
+ break;
+ case MON_DATA_NICKNAME_4:
+ GetSpeciesName(blockA->species, 0, namebuf2);
+ FUN_02021EF0(value, namebuf3, POKEMON_NAME_LENGTH + 1);
+ blockB->isNicknamed = StringNotEqual(namebuf2, namebuf3);
+ // fallthrough
+ case MON_DATA_NICKNAME_3:
+ FUN_02021EF0(value, blockC->nickname, POKEMON_NAME_LENGTH + 1);
+ break;
+ case MON_DATA_UNK_120:
+ blockC->Unused = VALUE(u8);
+ break;
+ case MON_DATA_GAME_VERSION:
+ blockC->originGame = VALUE(u8);
+ break;
+ case MON_DATA_SINNOH_RIBBON_122:
+ case MON_DATA_SINNOH_RIBBON_123:
+ case MON_DATA_SINNOH_RIBBON_124:
+ case MON_DATA_SINNOH_RIBBON_125:
+ case MON_DATA_SINNOH_RIBBON_126:
+ case MON_DATA_SINNOH_RIBBON_127:
+ case MON_DATA_SINNOH_RIBBON_128:
+ case MON_DATA_SINNOH_RIBBON_129:
+ case MON_DATA_SINNOH_RIBBON_130:
+ case MON_DATA_SINNOH_RIBBON_131:
+ case MON_DATA_SINNOH_RIBBON_132:
+ case MON_DATA_SINNOH_RIBBON_133:
+ case MON_DATA_SINNOH_RIBBON_134:
+ case MON_DATA_SINNOH_RIBBON_135:
+ case MON_DATA_SINNOH_RIBBON_136:
+ case MON_DATA_SINNOH_RIBBON_137:
+ case MON_DATA_SINNOH_RIBBON_138:
+ case MON_DATA_SINNOH_RIBBON_139:
+ case MON_DATA_SINNOH_RIBBON_140:
+ case MON_DATA_SINNOH_RIBBON_141:
+ case MON_DATA_SINNOH_RIBBON_142:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_SINNOH_RIBBON_122);
+ if (flag)
+ blockC->sinnohRibbons2 |= mask;
+ else
+ blockC->sinnohRibbons2 &= -1ull ^ mask;
+ break;
+ case MON_DATA_OT_NAME:
+ for (i = 0; i < OT_NAME_LENGTH + 1; i++)
+ {
+ blockD->otTrainerName[i] = VALUE(u16); value = (void *)((char *)value + 2);
+ }
+ break;
+ case MON_DATA_OT_NAME_2:
+ FUN_02021EF0(value, blockD->otTrainerName, OT_NAME_LENGTH + 1);
+ break;
+ case MON_DATA_EGG_MET_YEAR:
+ blockD->dateEggReceived[0] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_MONTH:
+ blockD->dateEggReceived[1] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_DAY:
+ blockD->dateEggReceived[2] = VALUE(u8);
+ break;
+ case MON_DATA_MET_YEAR:
+ blockD->dateMet[0] = VALUE(u8);
+ break;
+ case MON_DATA_MET_MONTH:
+ blockD->dateMet[1] = VALUE(u8);
+ break;
+ case MON_DATA_MET_DAY:
+ blockD->dateMet[2] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_LOCATION:
+ blockD->DP_EggLocation = VALUE(u16);
+ break;
+ case MON_DATA_MET_LOCATION:
+ blockD->DP_MetLocation = VALUE(u16);
+ break;
+ case MON_DATA_POKERUS:
+ blockD->pokerus = VALUE(u8);
+ break;
+ case MON_DATA_POKEBALL:
+ blockD->pokeball = VALUE(u8);
+ break;
+ case MON_DATA_MET_LEVEL:
+ blockD->metLevel = VALUE(u8);
+ break;
+ case MON_DATA_MET_GENDER:
+ blockD->metGender = VALUE(u8);
+ break;
+ case MON_DATA_ENCOUNTER_TYPE:
+ blockD->encounterType = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_158:
+ blockD->HGSS_Pokeball = VALUE(u16);
+ break;
+ case MON_DATA_IVS_WORD:
+ blockB->hpIV = (VALUE(u32) >> 0) & 0x1F;
+ blockB->atkIV = (VALUE(u32) >> 5) & 0x1F;
+ blockB->defIV = (VALUE(u32) >> 10) & 0x1F;
+ blockB->spdIV = (VALUE(u32) >> 15) & 0x1F;
+ blockB->spatkIV = (VALUE(u32) >> 20) & 0x1F;
+ blockB->spdefIV = (VALUE(u32) >> 25) & 0x1F;
+ break;
+ case MON_DATA_SPECIES_NAME:
+ speciesName = FUN_0200AA50(blockA->species, 0);
+ FUN_02021EF0(speciesName, blockC->nickname, POKEMON_NAME_LENGTH + 1);
+ FUN_02021A20(speciesName);
+ break;
+ }
+#undef VALUE
+}
+
+void AddMonData(struct Pokemon * pokemon, int attr, int value)
+{
+ u16 checksum;
+ if (!pokemon->box.party_lock)
+ {
+ DECRYPT_PTY(pokemon);
+ DECRYPT_BOX(&pokemon->box);
+ checksum = CHECKSUM(&pokemon->box);
+ if (checksum != pokemon->box.checksum)
+ {
+ GF_ASSERT(checksum == pokemon->box.checksum);
+ ENCRYPT_BOX(&pokemon->box);
+ return;
+ }
+ }
+ AddMonDataInternal(pokemon, attr, value);
+ if (!pokemon->box.party_lock)
+ {
+ ENCRYPT_PTY(pokemon);
+ pokemon->box.checksum = CHECKSUM(&pokemon->box);
+ ENCRYPT_BOX(&pokemon->box);
+ }
+}
+
+void AddMonDataInternal(struct Pokemon * pokemon, int attr, int value)
+{
+ s32 maxHp;
+ switch (attr)
+ {
+ case MON_DATA_HP:
+ maxHp = pokemon->party.maxHp;
+ if ((s32)(pokemon->party.hp + value) > maxHp)
+ pokemon->party.hp = (u16)maxHp;
+ else
+ pokemon->party.hp += value;
+ break;
+ case MON_DATA_STATUS:
+ case MON_DATA_LEVEL:
+ case MON_DATA_CAPSULE:
+ case MON_DATA_MAXHP:
+ case MON_DATA_ATK:
+ case MON_DATA_DEF:
+ case MON_DATA_SPEED:
+ case MON_DATA_SPATK:
+ case MON_DATA_SPDEF:
+ case MON_DATA_SEAL_STRUCT:
+ // case MON_DATA_SEAL_COORDS:
+ GF_ASSERT(0);
+ break;
+ default:
+ AddBoxMonData(&pokemon->box, attr, value);
+ break;
+ }
+}
+
+void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value)
+{
+ PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA;
+ PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB;
+ PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC;
+ PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD;
+
+ switch (attr)
+ {
+ case MON_DATA_EXPERIENCE:
+ if (blockA->exp + value > GetMonExpBySpeciesAndLevel(blockA->species, 100))
+ blockA->exp = GetMonExpBySpeciesAndLevel(blockA->species, 100);
+ else
+ blockA->exp += value;
+ break;
+ case MON_DATA_FRIENDSHIP:
+ if (blockA->friendship + value > 255)
+ blockA->friendship = 255;
+ else
+ blockA->friendship += value;
+ break;
+ case MON_DATA_HP_EV:
+ blockA->hpEV += value;
+ break;
+ case MON_DATA_ATK_EV:
+ blockA->atkEV += value;
+ break;
+ case MON_DATA_DEF_EV:
+ blockA->defEV += value;
+ break;
+ case MON_DATA_SPEED_EV:
+ blockA->spdEV += value;
+ break;
+ case MON_DATA_SPATK_EV:
+ blockA->spatkEV += value;
+ break;
+ case MON_DATA_SPDEF_EV:
+ blockA->spdefEV += value;
+ break;
+ case MON_DATA_COOL:
+ if (blockA->coolStat + value > 255)
+ blockA->coolStat = 255;
+ else
+ blockA->coolStat += value;
+ break;
+ case MON_DATA_BEAUTY:
+ if (blockA->beautyStat + value > 255)
+ blockA->beautyStat = 255;
+ else
+ blockA->beautyStat += value;
+ break;
+ case MON_DATA_CUTE:
+ if (blockA->cuteStat + value > 255)
+ blockA->cuteStat = 255;
+ else
+ blockA->cuteStat += value;
+ break;
+ case MON_DATA_SMART:
+ if (blockA->smartStat + value > 255)
+ blockA->smartStat = 255;
+ else
+ blockA->smartStat += value;
+ break;
+ case MON_DATA_TOUGH:
+ if (blockA->toughStat + value > 255)
+ blockA->toughStat = 255;
+ else
+ blockA->toughStat += value;
+ break;
+ case MON_DATA_SHEEN:
+ if (blockA->sheen + value > 255)
+ blockA->sheen = 255;
+ else
+ blockA->sheen += value;
+ break;
+ case MON_DATA_MOVE1PP:
+ case MON_DATA_MOVE2PP:
+ case MON_DATA_MOVE3PP:
+ case MON_DATA_MOVE4PP:
+ if (blockB->movePP[attr - MON_DATA_MOVE1PP] + value > FUN_0206AB30(blockB->moves[attr - MON_DATA_MOVE1PP], blockB->movePpUps[attr - MON_DATA_MOVE1PP]))
+ blockB->movePP[attr - MON_DATA_MOVE1PP] = (u8)FUN_0206AB30(blockB->moves[attr - MON_DATA_MOVE1PP], blockB->movePpUps[attr - MON_DATA_MOVE1PP]);
+ else
+ blockB->movePP[attr - MON_DATA_MOVE1PP] += value;
+ break;
+ case MON_DATA_MOVE1PPUP:
+ case MON_DATA_MOVE2PPUP:
+ case MON_DATA_MOVE3PPUP:
+ case MON_DATA_MOVE4PPUP:
+ if (blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] + value > 3)
+ blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] = 3;
+ else
+ blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] += value;
+ break;
+ case MON_DATA_MOVE1MAXPP:
+ case MON_DATA_MOVE2MAXPP:
+ case MON_DATA_MOVE3MAXPP:
+ case MON_DATA_MOVE4MAXPP:
+ break;
+ case MON_DATA_HP_IV:
+ if (blockB->hpIV + value > 31)
+ blockB->hpIV = 31;
+ else
+ blockB->hpIV += value;
+ break;
+ case MON_DATA_ATK_IV:
+ if (blockB->atkIV + value > 31)
+ blockB->atkIV = 31;
+ else
+ blockB->atkIV += value;
+ break;
+ case MON_DATA_DEF_IV:
+ if (blockB->defIV + value > 31)
+ blockB->defIV = 31;
+ else
+ blockB->defIV += value;
+ break;
+ case MON_DATA_SPEED_IV:
+ if (blockB->spdIV + value > 31)
+ blockB->spdIV = 31;
+ else
+ blockB->spdIV += value;
+ break;
+ case MON_DATA_SPATK_IV:
+ if (blockB->spatkIV + value > 31)
+ blockB->spatkIV = 31;
+ else
+ blockB->spatkIV += value;
+ break;
+ case MON_DATA_SPDEF_IV:
+ if (blockB->spdefIV + value > 31)
+ blockB->spdefIV = 31;
+ else
+ blockB->spdefIV += value;
+ break;
+ case MON_DATA_PERSONALITY:
+ case MON_DATA_PARTY_LOCK:
+ case MON_DATA_BOX_LOCK:
+ case MON_DATA_CHECKSUM_FAILED:
+ case MON_DATA_CHECKSUM:
+ case MON_DATA_SPECIES:
+ case MON_DATA_HELD_ITEM:
+ case MON_DATA_OTID:
+ case MON_DATA_ABILITY:
+ case MON_DATA_MARKINGS:
+ case MON_DATA_GAME_LANGUAGE:
+ case MON_DATA_SINNOH_CHAMP_RIBBON:
+ case MON_DATA_SINNOH_RIBBON_26:
+ case MON_DATA_SINNOH_RIBBON_27:
+ case MON_DATA_SINNOH_RIBBON_28:
+ case MON_DATA_SINNOH_RIBBON_29:
+ case MON_DATA_SINNOH_RIBBON_30:
+ case MON_DATA_SINNOH_RIBBON_31:
+ case MON_DATA_SINNOH_RIBBON_32:
+ case MON_DATA_SINNOH_RIBBON_33:
+ case MON_DATA_SINNOH_RIBBON_34:
+ case MON_DATA_SINNOH_RIBBON_35:
+ case MON_DATA_SINNOH_RIBBON_36:
+ case MON_DATA_SINNOH_RIBBON_37:
+ case MON_DATA_SINNOH_RIBBON_38:
+ case MON_DATA_SINNOH_RIBBON_39:
+ case MON_DATA_SINNOH_RIBBON_40:
+ case MON_DATA_SINNOH_RIBBON_41:
+ case MON_DATA_SINNOH_RIBBON_42:
+ case MON_DATA_SINNOH_RIBBON_43:
+ case MON_DATA_SINNOH_RIBBON_44:
+ case MON_DATA_SINNOH_RIBBON_45:
+ case MON_DATA_SINNOH_RIBBON_46:
+ case MON_DATA_SINNOH_RIBBON_47:
+ case MON_DATA_SINNOH_RIBBON_48:
+ case MON_DATA_SINNOH_RIBBON_49:
+ case MON_DATA_SINNOH_RIBBON_50:
+ case MON_DATA_SINNOH_RIBBON_51:
+ case MON_DATA_SINNOH_RIBBON_52:
+ case MON_DATA_SINNOH_RIBBON_53:
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ case MON_DATA_IS_EGG:
+ case MON_DATA_HAS_NICKNAME:
+ case MON_DATA_COOL_RIBBON:
+ case MON_DATA_HOENN_RIBBON_79:
+ case MON_DATA_HOENN_RIBBON_80:
+ case MON_DATA_HOENN_RIBBON_81:
+ case MON_DATA_HOENN_RIBBON_82:
+ case MON_DATA_HOENN_RIBBON_83:
+ case MON_DATA_HOENN_RIBBON_84:
+ case MON_DATA_HOENN_RIBBON_85:
+ case MON_DATA_HOENN_RIBBON_86:
+ case MON_DATA_HOENN_RIBBON_87:
+ case MON_DATA_HOENN_RIBBON_88:
+ case MON_DATA_HOENN_RIBBON_89:
+ case MON_DATA_HOENN_RIBBON_90:
+ case MON_DATA_HOENN_RIBBON_91:
+ case MON_DATA_HOENN_RIBBON_92:
+ case MON_DATA_HOENN_RIBBON_93:
+ case MON_DATA_HOENN_RIBBON_94:
+ case MON_DATA_HOENN_RIBBON_95:
+ case MON_DATA_HOENN_RIBBON_96:
+ case MON_DATA_HOENN_RIBBON_97:
+ case MON_DATA_HOENN_RIBBON_98:
+ case MON_DATA_HOENN_RIBBON_99:
+ case MON_DATA_HOENN_RIBBON_100:
+ case MON_DATA_HOENN_RIBBON_101:
+ case MON_DATA_HOENN_RIBBON_102:
+ case MON_DATA_HOENN_RIBBON_103:
+ case MON_DATA_HOENN_RIBBON_104:
+ case MON_DATA_HOENN_RIBBON_105:
+ case MON_DATA_HOENN_RIBBON_106:
+ case MON_DATA_HOENN_RIBBON_107:
+ case MON_DATA_HOENN_RIBBON_108:
+ case MON_DATA_HOENN_RIBBON_109:
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ case MON_DATA_GENDER:
+ case MON_DATA_FORME:
+ case MON_DATA_RESERVED_113:
+ case MON_DATA_RESERVED_114:
+ case MON_DATA_UNUSED_115:
+ case MON_DATA_NICKNAME:
+ case MON_DATA_NICKNAME_2:
+ case MON_DATA_NICKNAME_3:
+ case MON_DATA_NICKNAME_4:
+ case MON_DATA_UNK_120:
+ case MON_DATA_GAME_VERSION:
+ case MON_DATA_SINNOH_RIBBON_122:
+ case MON_DATA_SINNOH_RIBBON_123:
+ case MON_DATA_SINNOH_RIBBON_124:
+ case MON_DATA_SINNOH_RIBBON_125:
+ case MON_DATA_SINNOH_RIBBON_126:
+ case MON_DATA_SINNOH_RIBBON_127:
+ case MON_DATA_SINNOH_RIBBON_128:
+ case MON_DATA_SINNOH_RIBBON_129:
+ case MON_DATA_SINNOH_RIBBON_130:
+ case MON_DATA_SINNOH_RIBBON_131:
+ case MON_DATA_SINNOH_RIBBON_132:
+ case MON_DATA_SINNOH_RIBBON_133:
+ case MON_DATA_SINNOH_RIBBON_134:
+ case MON_DATA_SINNOH_RIBBON_135:
+ case MON_DATA_SINNOH_RIBBON_136:
+ case MON_DATA_SINNOH_RIBBON_137:
+ case MON_DATA_SINNOH_RIBBON_138:
+ case MON_DATA_SINNOH_RIBBON_139:
+ case MON_DATA_SINNOH_RIBBON_140:
+ case MON_DATA_SINNOH_RIBBON_141:
+ case MON_DATA_SINNOH_RIBBON_142:
+ case MON_DATA_OT_NAME:
+ case MON_DATA_OT_NAME_2:
+ case MON_DATA_EGG_MET_YEAR:
+ case MON_DATA_EGG_MET_MONTH:
+ case MON_DATA_EGG_MET_DAY:
+ case MON_DATA_MET_YEAR:
+ case MON_DATA_MET_MONTH:
+ case MON_DATA_MET_DAY:
+ case MON_DATA_EGG_MET_LOCATION:
+ case MON_DATA_MET_LOCATION:
+ case MON_DATA_POKERUS:
+ case MON_DATA_POKEBALL:
+ case MON_DATA_MET_LEVEL:
+ case MON_DATA_MET_GENDER:
+ case MON_DATA_ENCOUNTER_TYPE:
+ case MON_DATA_RESERVED_158:
+ case MON_DATA_STATUS:
+ case MON_DATA_LEVEL:
+ case MON_DATA_CAPSULE:
+ case MON_DATA_HP:
+ case MON_DATA_MAXHP:
+ case MON_DATA_ATK:
+ case MON_DATA_DEF:
+ case MON_DATA_SPEED:
+ case MON_DATA_SPATK:
+ case MON_DATA_SPDEF:
+ case MON_DATA_SEAL_STRUCT:
+ case MON_DATA_SEAL_COORDS:
+ case MON_DATA_SPECIES_EXISTS:
+ case MON_DATA_SANITY_IS_EGG:
+ case MON_DATA_SPECIES2:
+ case MON_DATA_IVS_WORD:
+ case MON_DATA_UNK_175:
+ case MON_DATA_TYPE_1:
+ case MON_DATA_TYPE_2:
+ case MON_DATA_SPECIES_NAME:
+ default:
+ GF_ASSERT(0);
+ }
+}
+
+struct BaseStats * AllocAndLoadMonPersonal(int species, u32 heap_id)
+{
+ struct BaseStats * baseStats = (struct BaseStats *)AllocFromHeap(heap_id, sizeof(struct BaseStats));
+ LoadMonPersonal(species, baseStats);
+ return baseStats;
+}
+
+int GetPersonalAttr(struct BaseStats * baseStats, enum BaseStat attr)
+{
+ int ret;
+ GF_ASSERT(baseStats != NULL);
+ switch (attr)
+ {
+ case BASE_HP:
+ ret = baseStats->hp;
+ break;
+ case BASE_ATK:
+ ret = baseStats->atk;
+ break;
+ case BASE_DEF:
+ ret = baseStats->def;
+ break;
+ case BASE_SPEED:
+ ret = baseStats->speed;
+ break;
+ case BASE_SPATK:
+ ret = baseStats->spatk;
+ break;
+ case BASE_SPDEF:
+ ret = baseStats->spdef;
+ break;
+ case BASE_TYPE1:
+ ret = baseStats->types[0];
+ break;
+ case BASE_TYPE2:
+ ret = baseStats->types[1];
+ break;
+ case BASE_CATCH_RATE:
+ ret = baseStats->catchRate;
+ break;
+ case BASE_EXP_YIELD:
+ ret = baseStats->expYield;
+ break;
+ case BASE_HP_YIELD:
+ ret = baseStats->hp_yield;
+ break;
+ case BASE_ATK_YIELD:
+ ret = baseStats->atk_yield;
+ break;
+ case BASE_DEF_YIELD:
+ ret = baseStats->def_yield;
+ break;
+ case BASE_SPEED_YIELD:
+ ret = baseStats->speed_yield;
+ break;
+ case BASE_SPATK_YIELD:
+ ret = baseStats->spatk_yield;
+ break;
+ case BASE_SPDEF_YIELD:
+ ret = baseStats->spdef_yield;
+ break;
+ case BASE_ITEM_1:
+ ret = baseStats->item1;
+ break;
+ case BASE_ITEM_2:
+ ret = baseStats->item2;
+ break;
+ case BASE_GENDER_RATIO:
+ ret = baseStats->genderRatio;
+ break;
+ case BASE_EGG_CYCLES:
+ ret = baseStats->eggCycles;
+ break;
+ case BASE_FRIENDSHIP:
+ ret = baseStats->friendship;
+ break;
+ case BASE_GROWTH_RATE:
+ ret = baseStats->growthRate;
+ break;
+ case BASE_EGG_GROUP_1:
+ ret = baseStats->eggGroups[0];
+ break;
+ case GASE_EGG_GROUP_2:
+ ret = baseStats->eggGroups[1];
+ break;
+ case BASE_ABILITY_1:
+ ret = baseStats->abilities[0];
+ break;
+ case BASE_ABILITY_2:
+ ret = baseStats->abilities[1];
+ break;
+ case BASE_GREAT_MARSH_RATE:
+ ret = baseStats->greatMarshRate;
+ break;
+ case BASE_COLOR:
+ ret = baseStats->color;
+ break;
+ case BASE_FLIP:
+ ret = baseStats->flip;
+ break;
+ case BASE_UNKNOWN_29:
+ ret = (int)baseStats->unk1C;
+ break;
+ case BASE_UNKNOWN_30:
+ ret = (int)baseStats->unk20;
+ break;
+ case BASE_UNKNOWN_31:
+ ret = (int)baseStats->unk24;
+ break;
+ case BASE_UNKNOWN_32:
+ ret = (int)baseStats->unk28;
+ break;
+ }
+ return ret;
+}
+
+void FreeMonPersonal(struct BaseStats * personal)
+{
+ GF_ASSERT(personal != NULL);
+ FreeToHeap(personal);
+}
+
+int GetMonBaseStat_HandleFormeConversion(int species, int forme, enum BaseStat attr)
+{
+ int ret;
+ struct BaseStats * personal = AllocAndLoadMonPersonal(ResolveMonForme(species, forme), 0);
+ ret = GetPersonalAttr(personal, attr);
+ FreeMonPersonal(personal);
+ return ret;
+}
+
+int GetMonBaseStat(int species, enum BaseStat attr)
+{
+ int ret;
+ struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0);
+ ret = GetPersonalAttr(personal, attr);
+ FreeMonPersonal(personal);
+ return ret;
+}
+
+u8 GetPercentProgressTowardsNextLevel(struct Pokemon * pokemon)
+{
+ BOOL decry = AcquireMonLock(pokemon);
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ u32 lo = GetMonExpBySpeciesAndLevel(species, level);
+ u32 hi = GetMonExpBySpeciesAndLevel(species, level + 1);
+ u32 cur = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL);
+ ReleaseMonLock(pokemon, decry);
+ return (u8)(100 * (cur - lo) / (hi - lo));
+}
+
+u32 CalcMonExpToNextLevel(struct Pokemon * pokemon)
+{
+ return CalcBoxMonExpToNextLevel(&pokemon->box);
+}
+
+u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon)
+{
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ u16 level = (u16)(CalcBoxMonLevel(boxmon) + 1);
+ u32 cur = GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL);
+ u32 hi = GetMonExpBySpeciesAndLevel(species, level);
+ return hi - cur;
+}
+
+u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon * pokemon)
+{
+ int species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ int level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ return GetMonExpBySpeciesAndLevel(species, level);
+}
+
+u32 GetMonExpBySpeciesAndLevel(int species, int level)
+{
+ return GetExpByGrowthRateAndLevel(GetMonBaseStat(species, BASE_GROWTH_RATE), level);
+}
+
+void LoadGrowthTable(int growthRate, u32 * dest)
+{
+ GF_ASSERT(growthRate < 8);
+ ReadWholeNarcMemberByIdPair(dest, NARC_POKETOOL_PERSONAL_GROWTBL, growthRate);
+}
+
+u32 GetExpByGrowthRateAndLevel(int growthRate, int level)
+{
+ u32 * table;
+ u32 ret;
+ GF_ASSERT(growthRate < 8);
+ GF_ASSERT(level <= 101);
+ table = (u32 *)AllocFromHeap(0, 101 * sizeof(u32));
+ LoadGrowthTable(growthRate, table);
+ ret = table[level];
+ FreeToHeap(table);
+ return ret;
+}
+
+int CalcMonLevel(struct Pokemon * pokemon)
+{
+ return CalcBoxMonLevel(&pokemon->box);
+}
+
+int CalcBoxMonLevel(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ int exp = (int)GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL);
+ ReleaseBoxMonLock(boxmon, decry);
+ return CalcLevelBySpeciesAndExp((u16)species, (u32)exp);
+}
+
+int CalcLevelBySpeciesAndExp(u16 species, u32 exp)
+{
+ int level;
+ struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0);
+ level = CalcLevelBySpeciesAndExp_PreloadedPersonal(personal, species, exp);
+ FreeMonPersonal(personal);
+ return level;
+}
+
+int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 exp)
+{
+#pragma unused(species)
+ static u32 table[101];
+ int i;
+ LoadGrowthTable(GetPersonalAttr(personal, BASE_GROWTH_RATE), table);
+ for (i = 1; i < 101; i++)
+ {
+ if (table[i] > exp)
+ break;
+ }
+ return i - 1;
+}
+
+u8 GetMonNature(struct Pokemon * pokemon)
+{
+ return GetBoxMonNature(&pokemon->box);
+}
+
+u8 GetBoxMonNature(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ ReleaseBoxMonLock(boxmon, decry);
+ return GetNatureFromPersonality(personality);
+}
+
+u8 GetNatureFromPersonality(u32 pid)
+{
+ return (u8)(pid % 25);
+}
+
+u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex)
+{
+ u16 retVal;
+
+ // Dont modify HP, Accuracy, or Evasion by nature
+ if (statIndex < 1 || statIndex > 5)
+ return n;
+
+ switch (sNatureStatMods[nature][statIndex - 1])
+ {
+ case 1:
+ retVal = (u16)((u16)(n * 110) / 100); // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. Fix by removing (u16) cast
+ break;
+ case -1:
+ retVal = (u16)((u16)(n * 90) / 100); // NOTE: will overflow for n > 728, see above
+ break;
+ default:
+ retVal = n;
+ break;
+ }
+ return retVal;
+}
+
+void MonApplyFriendshipMod(struct Pokemon * pokemon, u32 kind, u32 location)
+{
+ u16 species;
+ u8 effect;
+ u8 r4;
+ s16 friendship;
+ s8 mod;
+
+ if (kind == 5 && (rand_LC() & 1))
+ return;
+
+ species = (u16)GetMonData(pokemon, MON_DATA_SPECIES2, NULL);
+ if (species == SPECIES_NONE || species == SPECIES_EGG)
+ return;
+
+ effect = (u8)FUN_0206E7B8((u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL), 1, 0);
+ r4 = 0;
+ friendship = (s16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL);
+ if (friendship >= 100)
+ r4++;
+ if (friendship >= 200)
+ r4++;
+ mod = sFriendshipModTable[kind][r4];
+ if (mod > 0 && GetMonData(pokemon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL)
+ mod++;
+ if (mod > 0 && GetMonData(pokemon, MON_DATA_EGG_MET_LOCATION, NULL) == location)
+ mod++;
+ if (mod > 0 && effect == 52) // Soothe Bell effect?
+ mod = (s8)(mod * 150 / 100);
+ friendship += mod;
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pokemon, MON_DATA_FRIENDSHIP, &friendship);
+}
+
+u8 GetMonGender(struct Pokemon * pokemon)
+{
+ return GetBoxMonGender(&pokemon->box);
+}
+
+u8 GetBoxMonGender(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ ReleaseBoxMonLock(boxmon, decry);
+ return GetGenderBySpeciesAndPersonality(species, personality);
+}
+
+u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid)
+{
+ struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0);
+ u8 gender = GetGenderBySpeciesAndPersonality_PreloadedPersonal(personal, species, pid);
+ FreeMonPersonal(personal);
+ return gender;
+}
+
+u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid)
+{
+#pragma unused(species)
+ u8 ratio = (u8)GetPersonalAttr(personal, BASE_GENDER_RATIO);
+ switch (ratio)
+ {
+ case MON_RATIO_MALE:
+ return MON_MALE;
+ case MON_RATIO_FEMALE:
+ return MON_FEMALE;
+ case MON_RATIO_UNKNOWN:
+ return MON_GENDERLESS;
+ default:
+ if (ratio > (u8)pid)
+ return MON_FEMALE;
+ else
+ return MON_MALE;
+ }
+}
+
+u8 MonIsShiny(struct Pokemon * pokemon)
+{
+ return BoxMonIsShiny(&pokemon->box);
+}
+
+u8 BoxMonIsShiny(struct BoxPokemon * boxmon)
+{
+ u32 otid = GetBoxMonData(boxmon, MON_DATA_OTID, NULL);
+ u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ return CalcShininessByOtIdAndPersonality(otid, pid);
+}
+
+u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid)
+{
+ return SHINY_CHECK(otid, pid);
+}
+
+u32 GenerateShinyPersonality(u32 otid)
+{
+ int r4;
+ u16 r6;
+ u16 r5;
+ otid = (u32)((((otid & 0xFFFF0000) >> 16) ^ (otid & 0xFFFF)) >> 3u);
+ r6 = (u16)(rand_LC() & 7);
+ r5 = (u16)(rand_LC() & 7);
+ for (r4 = 0; r4 < 13; r4++)
+ {
+ if (MaskOfFlagNo(r4) & otid)
+ {
+ if (rand_LC() & 1)
+ r6 |= MaskOfFlagNo(r4 + 3);
+ else
+ r5 |= MaskOfFlagNo(r4 + 3);
+ }
+ else if (rand_LC() & 1)
+ {
+ r6 |= MaskOfFlagNo(r4 + 3);
+ r5 |= MaskOfFlagNo(r4 + 3);
+ }
+ }
+ return (u32)((r5 << 16) | r6);
+}
+
+void FUN_02068B68(struct SomeDrawPokemonStruct * spC, struct Pokemon * pokemon, u8 sp10)
+{
+ FUN_02068B70(spC, &pokemon->box, sp10);
+}
+
+void FUN_02068B70(struct SomeDrawPokemonStruct * spC, struct BoxPokemon * boxmon, u8 sp10)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL);
+ u8 gender = GetBoxMonGender(boxmon);
+ u8 shiny = BoxMonIsShiny(boxmon);
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ u8 forme;
+ if (species == SPECIES_EGG)
+ {
+ if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY)
+ forme = 1;
+ else
+ forme = 0;
+ }
+ else
+ forme = (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ FUN_02068C00(spC, species, gender, sp10, shiny, forme, personality);
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+void FUN_02068C00(struct SomeDrawPokemonStruct * spC, int species, u8 gender, u8 sp10, u8 shiny, u8 forme, u32 personality)
+{
+ spC->unk6 = 0;
+ spC->unk8 = 0;
+ spC->unkC = 0;
+ switch (species)
+ {
+ case SPECIES_BURMY:
+ if (forme > 2)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x48 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x92 + forme * 2);
+ break;
+ case SPECIES_WORMADAM:
+ if (forme > 2)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x4E + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x98 + forme * 2);
+ break;
+ case SPECIES_SHELLOS:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 + 0x54 + forme);
+ spC->unk4 = (u16)(shiny + 0x9E + forme * 2);
+ break;
+ case SPECIES_GASTRODON:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 + 0x58 + forme);
+ spC->unk4 = (u16)(shiny + 0xA2 + forme * 2);
+ break;
+ case SPECIES_CHERRIM:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 + 0x5C + forme);
+ spC->unk4 = (u16)(shiny * 2 + 0xA6 + forme);
+ break;
+ case SPECIES_ARCEUS:
+ if (forme > 17)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x60 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0xAA + forme * 2);
+ break;
+ case SPECIES_CASTFORM:
+ if (forme > 3)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 * 2 + 0x40 + forme);
+ spC->unk4 = (u16)(shiny * 4 + 0x8A + forme);
+ break;
+ case SPECIES_DEOXYS:
+ if (forme > 3)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x86);
+ break;
+ case SPECIES_UNOWN:
+ if (forme >= 28)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x8 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x88);
+ break;
+ case SPECIES_EGG:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(0x84 + forme);
+ spC->unk4 = (u16)(0xCE + forme);
+ break;
+ case SPECIES_MANAPHY_EGG:
+ spC->unk0 = 0x75;
+ spC->unk2 = 0x84;
+ spC->unk4 = 0xCE;
+ break;
+ default:
+ spC->unk0 = 0x4;
+ spC->unk2 = (u16)(species * 6 + sp10 + (gender == MON_FEMALE ? 0 : 1));
+ spC->unk4 = (u16)(shiny + (species * 6 + 4));
+ if (species == SPECIES_SPINDA && sp10 == 2)
+ {
+ spC->unk6 = SPECIES_SPINDA;
+ spC->unk8 = 0;
+ spC->unkC = personality;
+ }
+ break;
+ }
+}
+
+u8 FUN_02068E14(struct Pokemon * pokemon, u32 a1)
+{
+ return FUN_02068E1C(&pokemon->box, a1);
+}
+
+u8 FUN_02068E1C(struct BoxPokemon * boxmon, u32 a1)
+{
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL);
+ u8 gender = GetBoxMonGender(boxmon);
+ u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ u8 forme;
+ if (species == SPECIES_EGG)
+ {
+ if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY)
+ forme = 1;
+ else
+ forme = 0;
+ }
+ else
+ forme = (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ return FUN_02068E88(species, gender, a1, forme, pid);
+}
+
+u8 FUN_02068E88(int species, u8 gender, u32 a1, u8 forme, u32 pid)
+{
+#pragma unused(pid)
+ u8 ret;
+ s32 fileId;
+ enum NarcId narc;
+ switch (species)
+ {
+ case SPECIES_BURMY:
+ if (forme > 2)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x48 + forme * 2);
+ break;
+ case SPECIES_WORMADAM:
+ if (forme > 2)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x4E + forme * 2);
+ break;
+ case SPECIES_SHELLOS:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 + 0x54 + forme);
+ break;
+ case SPECIES_GASTRODON:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 + 0x58 + forme);
+ break;
+ case SPECIES_CHERRIM:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 + 0x5C + forme);
+ break;
+ case SPECIES_ARCEUS:
+ if (forme > 17)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x60 + 2 * forme);
+ break;
+ case SPECIES_CASTFORM:
+ if (forme > 3)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 * 2 + 0x40 + forme);
+ break;
+ case SPECIES_DEOXYS:
+ if (forme > 3)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + forme * 2);
+ break;
+ case SPECIES_UNOWN:
+ if (forme >= 28)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x8 + forme * 2);
+ break;
+ case SPECIES_EGG:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(0x84 + forme);
+ break;
+ case SPECIES_MANAPHY_EGG:
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = 0x84;
+ break;
+ default:
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT;
+ fileId = (s32)(4 * species + a1 + (gender != MON_FEMALE ? 1 : 0));
+ break;
+ }
+ ReadWholeNarcMemberByIdPair(&ret, narc, fileId);
+ return ret;
+}
+
+void FUN_02068FE0(struct SomeDrawPokemonStruct * a0, u16 a1, int a2)
+{
+ if (a2 == 2)
+ a0->unk0 = 60;
+ else
+ {
+ a0->unk0 = 6;
+ a1 = (u16)FUN_0206AA30(a1);
+ }
+ a0->unk2 = (u16)(a1 * 2);
+ a0->unk4 = (u16)(a1 * 2 + 1);
+ a0->unk6 = 0;
+ a0->unk8 = 0;
+ a0->unkC = 0;
+}
+
+void FUN_02069010(void * dest, int a1)
+{
+ struct Pokeanm buffer;
+ ReadFromNarcMemberByIdPair(&buffer, NARC_POKETOOL_POKEANM_POKEANM, 0, (u32)(28 * a1), 28);
+ MI_CpuCopy8(buffer.unk8, dest, 20);
+}
+
+void FUN_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6)
+{
+ struct UnkStruct_02069038 sp4;
+ ReadFromNarcMemberByIdPair(&sp4.anim, NARC_POKETOOL_POKEANM_POKEANM, 0, (u32)(a2 * 28), 28);
+ if (a3 == 2)
+ {
+ sp4.unk0 = sp4.anim.unk0[0].unk0;
+ sp4.unk2 = sp4.anim.unk0[0].unk1;
+ sp4.unk4 = (u8)a5;
+ }
+ else
+ {
+ a3 = FUN_02014C3C((u8)a4);
+ GF_ASSERT(a3 < 3);
+ sp4.unk0 = sp4.anim.unk0[a3 + 1].unk0;
+ sp4.unk2 = sp4.anim.unk0[a3 + 1].unk1;
+ sp4.unk4 = (u8)a5;
+ }
+ FUN_02014C54((int)a0, (int)a1, &sp4, (u8)a6);
+}
+
+void FUN_020690AC(struct SomeDrawPokemonStruct * a0, u32 a1)
+{
+ a0->unk0 = 60;
+ a0->unk2 = (u16)(a1 * 2);
+ a0->unk4 = (u16)(a1 * 2 + 1);
+ a0->unk6 = 0;
+ a0->unk8 = 0;
+ a0->unkC = 0;
+}
+
+u32 FUN_020690C4(void)
+{
+ return sizeof(struct Pokemon);
+}
+
+u32 FUN_020690C8(void)
+{
+ return sizeof(struct BoxPokemon);
+}
+
+u8 FUN_020690CC(struct Pokemon * pokemon)
+{
+ return FUN_020690D4(&pokemon->box);
+}
+
+u8 FUN_020690D4(struct BoxPokemon * boxmon)
+{
+ return (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+}
+
+struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon)
+{
+ return &pokemon->box;
+}
+
+BOOL FUN_020690E8(struct Pokemon * pokemon)
+{
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ u8 level = (u8)(GetMonData(pokemon, MON_DATA_LEVEL, NULL) + 1);
+ u32 exp = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL);
+ u32 growthrate = (u32)GetMonBaseStat(species, BASE_GROWTH_RATE);
+ u32 maxexp = GetExpByGrowthRateAndLevel((int)growthrate, 100);
+ if (exp > maxexp)
+ {
+ exp = maxexp;
+ SetMonData(pokemon, MON_DATA_EXPERIENCE, &exp);
+ }
+ if (level > 100)
+ return FALSE;
+ if (exp >= GetExpByGrowthRateAndLevel((int)growthrate, level))
+ {
+ SetMonData(pokemon, MON_DATA_LEVEL, &level);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u16 GetMonEvolution(struct PlayerParty * party, struct Pokemon * pokemon, u32 context, u32 usedItem, u32 * method_ret)
+{
+ u16 target = SPECIES_NONE;
+ u32 sp40;
+ u16 species;
+ u16 heldItem;
+ u32 personality;
+ int i;
+ u8 beauty;
+ u8 level;
+ u16 friendship;
+ u16 pid_hi;
+ struct Evolution * evoTable;
+ u8 r1;
+
+ species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ heldItem = (u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL);
+ personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL);
+ beauty = (u8)GetMonData(pokemon, MON_DATA_BEAUTY, NULL);
+ pid_hi = (u16)((personality & 0xFFFF0000) >> 16);
+ r1 = (u8)FUN_0206E7B8(heldItem, 1, 0);
+ if (species != SPECIES_KADABRA && r1 == 0x3F && context != 3)
+ return SPECIES_NONE;
+ if (method_ret == NULL)
+ method_ret = &sp40;
+ evoTable = AllocFromHeap(0, 7 * sizeof(struct Evolution));
+ LoadMonEvolutionTable(species, evoTable);
+ switch (context)
+ {
+ case 0:
+ level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ friendship = (u16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL);
+ for (i = 0; i < 7; i++)
+ {
+ switch (evoTable[i].method)
+ {
+ case EVO_NONE:
+ break;
+ case EVO_FRIENDSHIP:
+ if (friendship >= 220)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_FRIENDSHIP;
+ }
+ break;
+ case EVO_FRIENDSHIP_DAY:
+ if (IsNighttime() == 0 && friendship >= 220)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_FRIENDSHIP_DAY;
+ }
+ break;
+ case EVO_FRIENDSHIP_NIGHT:
+ if (IsNighttime() == 1 && friendship >= 220)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_FRIENDSHIP_NIGHT;
+ }
+ break;
+ case EVO_LEVEL:
+ if (evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL;
+ }
+ break;
+ case EVO_TRADE:
+ break;
+ case EVO_TRADE_ITEM:
+ break;
+ case EVO_STONE:
+ break;
+ case EVO_LEVEL_ATK_GT_DEF:
+ if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) > GetMonData(pokemon, MON_DATA_DEF, NULL))
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_ATK_GT_DEF;
+ }
+ break;
+ case EVO_LEVEL_ATK_EQ_DEF:
+ if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) == GetMonData(pokemon, MON_DATA_DEF, NULL))
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_ATK_EQ_DEF;
+ }
+ break;
+ case EVO_LEVEL_ATK_LT_DEF:
+ if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) < GetMonData(pokemon, MON_DATA_DEF, NULL))
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_ATK_LT_DEF;
+ }
+ break;
+ case EVO_LEVEL_PID_LO:
+ if (evoTable[i].param <= level && pid_hi % 10 < 5)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_PID_LO;
+ }
+ break;
+ case EVO_LEVEL_PID_HI:
+ if (evoTable[i].param <= level && pid_hi % 10 >= 5)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_PID_HI;
+ }
+ break;
+ case EVO_LEVEL_NINJASK:
+ if (evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_NINJASK;
+ }
+ break;
+ case EVO_LEVEL_SHEDINJA:
+ *method_ret = EVO_LEVEL_SHEDINJA;
+ break;
+ case EVO_BEAUTY:
+ if (evoTable[i].param <= beauty)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_BEAUTY;
+ }
+ break;
+ case EVO_STONE_MALE:
+ break;
+ case EVO_STONE_FEMALE:
+ break;
+ case EVO_ITEM_DAY:
+ if (IsNighttime() == 0 && evoTable[i].param == heldItem)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ITEM_DAY;
+ }
+ break;
+ case EVO_ITEM_NIGHT:
+ if (IsNighttime() == 1 && evoTable[i].param == heldItem)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ITEM_NIGHT;
+ }
+ break;
+ case EVO_HAS_MOVE:
+ if (MonHasMove(pokemon, evoTable[i].param) == TRUE)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_HAS_MOVE;
+ }
+ break;
+ case EVO_OTHER_PARTY_MON:
+ if (party != NULL && PartyHasMon(party, evoTable[i].param) == 1)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_OTHER_PARTY_MON;
+ }
+ break;
+ case EVO_LEVEL_MALE:
+ if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_MALE;
+ }
+ break;
+ case EVO_LEVEL_FEMALE:
+ if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_FEMALE;
+ }
+ break;
+ case EVO_CORONET:
+ if (usedItem == evoTable[i].method)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_CORONET;
+ }
+ break;
+ case EVO_ETERNA:
+ if (usedItem == evoTable[i].method)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ETERNA;
+ }
+ break;
+ case EVO_ROUTE217:
+ if (usedItem == evoTable[i].method)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ROUTE217;
+ }
+ break;
+ }
+ if (target != SPECIES_NONE)
+ break;
+ }
+ break;
+ case 1:
+ for (i = 0; i < 7; i++)
+ {
+ switch (evoTable[i].method)
+ {
+ case EVO_TRADE:
+ target = evoTable[i].target;
+ *method_ret = EVO_TRADE;
+ break;
+ case EVO_TRADE_ITEM:
+ if (heldItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_TRADE_ITEM;
+ }
+ break;
+ }
+ if (target != SPECIES_NONE)
+ break;
+ }
+ break;
+ case 2:
+ case 3:
+ for (i = 0; i < 7; i++)
+ {
+ if (evoTable[i].method == EVO_STONE && usedItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = 0;
+ break;
+ }
+ if (evoTable[i].method == EVO_STONE_MALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && usedItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = 0;
+ break;
+ }
+ if (evoTable[i].method == EVO_STONE_FEMALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && usedItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = 0;
+ break;
+ }
+ }
+ break;
+ }
+ FreeToHeap(evoTable);
+ return target;
+}
+
+u16 ReadFromPersonalPmsNarc(u16 species)
+{
+ u16 ret = SPECIES_NONE;
+ GF_ASSERT(species < SPECIES_EGG);
+ {
+ FSFile file;
+ FS_InitFile(&file);
+ FS_OpenFile(&file, "poketool/personal/pms.narc");
+ FS_SeekFile(&file, (s32)(species * sizeof(u16)), FS_SEEK_SET);
+ FS_ReadFile(&file, &ret, sizeof(u16));
+ FS_CloseFile(&file);
+ }
+ return ret;
+}
+
+u16 GetEggSpecies(u16 species)
+{
+ switch (species)
+ {
+ case SPECIES_SUDOWOODO:
+ case SPECIES_MARILL:
+ case SPECIES_MR_MIME:
+ case SPECIES_CHANSEY:
+ case SPECIES_SNORLAX:
+ case SPECIES_MANTINE:
+ case SPECIES_WOBBUFFET:
+ case SPECIES_ROSELIA:
+ case SPECIES_CHIMECHO:
+ return species;
+ default:
+ return ReadFromPersonalPmsNarc(species);
+ }
+}
+
+#define WOTBL_END 0xFFFF
+#define WOTBL_MOVE_MASK 0x01FF
+#define WOTBL_MOVE_SHIFT 0
+#define WOTBL_LVL_MASK 0xFE00
+#define WOTBL_LVL_SHIFT 9
+#define WOTBL_MOVE(x) ((u16)(((x) & WOTBL_MOVE_MASK) >> WOTBL_MOVE_SHIFT))
+#define WOTBL_LVL(x) ((u8)(((x) & WOTBL_LVL_MASK) >> WOTBL_LVL_SHIFT))
+
+void InitBoxMonMoveset(struct BoxPokemon * boxmon)
+{
+ BOOL decry;
+ u16 * wotbl;
+ int i;
+ u16 species;
+ u32 forme;
+ u8 level;
+ u16 move;
+ wotbl = AllocFromHeap(0, 22 * sizeof(u16));
+ decry = AcquireBoxMonLock(boxmon);
+ species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ forme = GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ level = (u8)CalcBoxMonLevel(boxmon);
+ LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl);
+ for (i = 0; wotbl[i] != WOTBL_END; i++)
+ {
+ if ((wotbl[i] & WOTBL_LVL_MASK) > (level << WOTBL_LVL_SHIFT))
+ break;
+ move = WOTBL_MOVE(wotbl[i]);
+ if (FUN_020696A8(boxmon, move) == 0xFFFF)
+ FUN_02069718(boxmon, move);
+ }
+ FreeToHeap(wotbl);
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+u32 FUN_02069698(struct Pokemon * pokemon, u16 move)
+{
+ return FUN_020696A8(FUN_020690E4(pokemon), move);
+}
+
+u32 FUN_020696A8(struct BoxPokemon * boxmon, u16 move)
+{
+ u32 ret = 0xFFFF;
+ int i;
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u16 cur_move;
+ for (i = 0; i < 4; i++)
+ {
+ cur_move = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL);
+ if (cur_move == MOVE_NONE)
+ {
+ FUN_020697D4(boxmon, move, (u8)i);
+ ret = move;
+ break;
+ }
+ if (cur_move == move)
+ {
+ ret = 0xFFFE;
+ break;
+ }
+ }
+ ReleaseBoxMonLock(boxmon, decry);
+ return ret;
+}
+
+void FUN_02069708(struct Pokemon * pokemon, u16 move)
+{
+ FUN_02069718(FUN_020690E4(pokemon), move);
+}
+
+void FUN_02069718(struct BoxPokemon * boxmon, u16 move)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ int i;
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppUp[4];
+
+ for (i = 0; i < 3; i++)
+ {
+ moves[i] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i + 1, NULL);
+ pp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + i + 1, NULL);
+ ppUp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + i + 1, NULL);
+ }
+
+ moves[3] = move;
+ pp[3] = (u8)FUN_0206AB18(move, 5);
+ ppUp[3] = 0;
+
+ for (i = 0; i < 4; i++)
+ {
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + i, &moves[i]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + i, &pp[i]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + i, &ppUp[i]);
+ }
+
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+void FUN_020697CC(struct Pokemon * pokemon, u16 move, u8 slot)
+{
+ FUN_020697D4(&pokemon->box, move, slot);
+}
+
+void FUN_020697D4(struct BoxPokemon * boxmon, u16 move, u8 slot)
+{
+ u8 ppUp;
+ u8 pp;
+
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot, &move);
+ ppUp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot, NULL);
+ pp = (u8)FUN_0206AB30(move, ppUp);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot, &pp);
+}
+
+u32 FUN_02069818(struct Pokemon * pokemon, u32 * r5, u16 * sp0)
+{
+ u32 ret = 0;
+ u16 * wotbl = AllocFromHeap(0, 22 * sizeof(u16));
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ u32 forme = GetMonData(pokemon, MON_DATA_FORME, NULL);
+ u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl);
+
+
+ if (wotbl[*r5] == 0xFFFF)
+ {
+ FreeToHeap(wotbl);
+ return 0;
+ }
+ while ((wotbl[*r5] & WOTBL_LVL_MASK) != (level << WOTBL_LVL_SHIFT))
+ {
+ (*r5)++;
+ if (wotbl[*r5] == 0xFFFF)
+ {
+ FreeToHeap(wotbl);
+ return 0;
+ }
+ }
+ if ((wotbl[*r5] & WOTBL_LVL_MASK) == (level << WOTBL_LVL_SHIFT))
+ {
+ *sp0 = WOTBL_MOVE(wotbl[*r5]);
+ (*r5)++;
+ ret = FUN_02069698(pokemon, *sp0);
+ }
+ FreeToHeap(wotbl);
+ return ret;
+}
+
+void FUN_020698E0(struct Pokemon * pokemon, int slot1, int slot2)
+{
+ FUN_020698E8(&pokemon->box, slot1, slot2);
+}
+
+void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2)
+{
+ u16 moves[2];
+ u8 pp[2];
+ u8 ppUp[2];
+
+ moves[0] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, NULL);
+ pp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot1, NULL);
+ ppUp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot1, NULL);
+ moves[1] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, NULL);
+ pp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot2, NULL);
+ ppUp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot2, NULL);
+
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, &moves[1]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot1, &pp[1]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot1, &ppUp[1]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, &moves[0]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot2, &pp[0]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot2, &ppUp[0]);
+}
+
+void FUN_020699A4(struct Pokemon * pokemon, u32 slot)
+{
+ u16 move;
+ u8 pp;
+ u8 ppUp;
+ for (; slot < 3; slot++)
+ {
+ move = (u16)GetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot + 1), NULL);
+ pp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1PP + slot + 1), NULL);
+ ppUp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1PPUP + slot + 1), NULL);
+ SetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot), &move);
+ SetMonData(pokemon, (int)(MON_DATA_MOVE1PP + slot), &pp);
+ SetMonData(pokemon, (int)(MON_DATA_MOVE1PPUP + slot), &ppUp);
+ }
+ move = MOVE_NONE;
+ pp = 0;
+ ppUp = 0;
+ SetMonData(pokemon, MON_DATA_MOVE1 + 3, &move);
+ SetMonData(pokemon, MON_DATA_MOVE1PP + 3, &pp);
+ SetMonData(pokemon, MON_DATA_MOVE1PPUP + 3, &ppUp);
+}
+
+BOOL MonHasMove(struct Pokemon * pokemon, u16 move)
+{
+ int i;
+ for (i = 0; i < 4; i++)
+ {
+ if (GetMonData(pokemon, MON_DATA_MOVE1 + i, NULL) == move)
+ break;
+ }
+ if (i != 4)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest)
+{
+ u32 sp0 = 0;
+ u8 sp4[12][2];
+ struct SealStruct * seals;
+ dest->box = *src;
+ if (dest->box.box_lock)
+ dest->box.party_lock = TRUE;
+ SetMonData(dest, MON_DATA_STATUS, &sp0);
+ SetMonData(dest, MON_DATA_HP, &sp0);
+ SetMonData(dest, MON_DATA_MAXHP, &sp0);
+ seals = CreateNewSealsObject(0);
+ SetMonData(dest, MON_DATA_SEAL_STRUCT, seals);
+ FreeToHeap(seals);
+ SetMonData(dest, MON_DATA_CAPSULE, &sp0);
+ MIi_CpuClearFast(0, sp4, sizeof(sp4));
+ SetMonData(dest, MON_DATA_SEAL_COORDS, sp4);
+ CalcMonLevelAndStats(dest);
+}
+
+u8 FUN_02069AEC(struct PlayerParty * party)
+{
+ int i;
+ int r7 = GetPartyCount(party);
+ u8 ret = 1;
+ u8 level;
+ for (i = 0; i < r7; i++)
+ {
+ struct Pokemon * pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE
+ && !GetMonData(pokemon, MON_DATA_IS_EGG, NULL))
+ {
+ level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ if (level > ret)
+ ret = level;
+ }
+ }
+ return ret;
+}
+
+u16 FUN_02069B40(u16 species)
+{
+ u16 ret;
+ ReadFromNarcMemberByIdPair(&ret, NARC_POKETOOL_POKEZUKAN, 0, species * sizeof(u16), sizeof(u16));
+ return ret;
+}
+
+u16 FUN_02069B60(u16 sinnoh_dex)
+{
+ u16 ret = SPECIES_NONE;
+ if (sinnoh_dex <= SINNOH_DEX_COUNT)
+ ReadFromNarcMemberByIdPair(&ret, NARC_POKETOOL_SHINZUKAN, 0, sinnoh_dex * sizeof(u16), sizeof(u16));
+ return ret;
+}
+
+void FUN_02069B88(struct Pokemon * src, struct Pokemon * dest)
+{
+ *dest = *src;
+}
+
+void FUN_02069BA0(struct Pokemon * src, struct BoxPokemon * dest)
+{
+ *dest = src->box;
+}
+
+void FUN_02069BB4(struct BoxPokemon * src, struct BoxPokemon * dest)
+{
+ *dest = *src;
+}
+
+s8 FUN_02069BC8(struct Pokemon * pokemon, int flavor)
+{
+ return FUN_02069BD0(&pokemon->box, flavor);
+}
+
+s8 FUN_02069BD0(struct BoxPokemon * boxmon, int flavor)
+{
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ return FUN_02069BE4(personality, flavor);
+}
+
+s8 FUN_02069BE4(u32 personality, int flavor)
+{
+ return UNK_020F7F16[GetNatureFromPersonality(personality)][flavor];
+}
+
+int FUN_02069BFC(u16 species, u32 forme, u16 * dest)
+{
+ int i;
+ u16 * wotbl = AllocFromHeap(0, 22 * sizeof(u16));
+ LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl);
+ for (i = 0; wotbl[i] != WOTBL_END; i++)
+ {
+ dest[i] = WOTBL_MOVE(wotbl[i]);
+ }
+ FreeToHeap(wotbl);
+ return i;
+}
+
+void FUN_02069C4C(struct PlayerParty * party)
+{
+ int count = GetPartyCount(party);
+ int idx;
+ struct Pokemon * pokemon;
+ u8 sp0;
+ switch (rand_LC())
+ {
+ case 0x4000:
+ case 0x8000:
+ case 0xC000:
+ do
+ {
+ idx = rand_LC() % count;
+ pokemon = GetPartyMonByIndex(party, idx);
+ } while (GetMonData(pokemon, MON_DATA_SPECIES, NULL) == SPECIES_NONE || GetMonData(pokemon, MON_DATA_IS_EGG, NULL));
+ if (!FUN_02069CF4(party, (u8)MaskOfFlagNo(idx)))
+ {
+ do
+ {
+ sp0 = (u8)rand_LC();
+ } while (!(sp0 & 7));
+ if (sp0 & 0xF0)
+ sp0 &= 7;
+ sp0 |= sp0 << 4;
+ sp0 &= 0xF3;
+ sp0++;
+ SetMonData(pokemon, MON_DATA_POKERUS, &sp0);
+ }
+ }
+}
+
+u8 FUN_02069CF4(struct PlayerParty * party, u8 mask)
+{
+ int i = 0;
+ u32 flag = 1;
+ u8 ret = 0;
+ struct Pokemon * pokemon;
+ if (mask != 0)
+ {
+ do
+ {
+ if (mask & 1)
+ {
+ pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_POKERUS, NULL))
+ ret |= flag;
+ }
+ i++;
+ flag <<= 1;
+ mask >>= 1;
+ }
+ while (mask != 0);
+ }
+ else
+ {
+ pokemon = GetPartyMonByIndex(party, 0);
+ if (GetMonData(pokemon, MON_DATA_POKERUS, NULL))
+ ret++;
+ }
+ return ret;
+}
+
+void FUN_02069D50(struct PlayerParty * party, int r5)
+{
+ int i;
+ u8 pokerus;
+ struct Pokemon * pokemon;
+ int count = GetPartyCount(party);
+ for (i = 0; i < count; i++)
+ {
+ pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE)
+ {
+ pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL);
+ if (pokerus & 0xF)
+ {
+ if ((pokerus & 0xF) < r5 || r5 > 4)
+ pokerus &= 0xF0;
+ else
+ pokerus -= r5;
+ if (pokerus == 0)
+ pokerus = 0x10; // immune
+ SetMonData(pokemon, MON_DATA_POKERUS, &pokerus);
+ }
+ }
+ }
+}
+
+void FUN_02069DC8(struct PlayerParty * party)
+{
+ int count = GetPartyCount(party);
+ int i;
+ struct Pokemon * pokemon;
+ u8 pokerus;
+ if ((rand_LC() % 3) == 0)
+ {
+ for (i = 0; i < count; i++)
+ {
+ pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE)
+ {
+ pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL);
+ if (pokerus & 0xF)
+ {
+ if (i != 0)
+ {
+ pokemon = GetPartyMonByIndex(party, i - 1);
+ if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0))
+ SetMonData(pokemon, MON_DATA_POKERUS, &pokerus);
+ }
+ if (i < count - 1)
+ {
+ pokemon = GetPartyMonByIndex(party, i + 1);
+ if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0))
+ {
+ SetMonData(pokemon, MON_DATA_POKERUS, &pokerus);
+ i++; // don't infect the rest of the party
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+BOOL FUN_02069E74(struct Pokemon * pokemon)
+{
+ return FUN_02069E7C(&pokemon->box);
+}
+
+BOOL FUN_02069E7C(struct BoxPokemon * boxmon)
+{
+ return !!(GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL) & 0xF);
+}
+
+BOOL FUN_02069E94(struct Pokemon * pokemon)
+{
+ return FUN_02069E9C(&pokemon->box);
+}
+
+BOOL FUN_02069E9C(struct BoxPokemon * boxmon)
+{
+ u8 pokerus = (u8)GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL);
+ if (pokerus & 0xF)
+ return FALSE;
+ if (pokerus & 0xF0)
+ return TRUE;
+ return FALSE;
+}
+
+void FUN_02069EC4(struct Pokemon * pokemon)
+{
+ FUN_02069ECC(&pokemon->box);
+}
+
+void FUN_02069ECC(struct BoxPokemon * boxmon)
+{
+ u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ u32 ability = GetBoxMonData(boxmon, MON_DATA_ABILITY, NULL);
+ u32 heldItem = GetBoxMonData(boxmon, MON_DATA_HELD_ITEM, NULL);
+ u32 forme;
+ if (species == SPECIES_ARCEUS && ability == ABILITY_MULTITYPE)
+ {
+ forme = GetArceusTypeByHeldItemEffect((u16)FUN_0206E7B8((u16)heldItem, 1, 0));
+ SetBoxMonData(boxmon, MON_DATA_FORME, &forme);
+ }
+}
+
+u32 GetArceusTypeByHeldItemEffect(u16 heldEffect)
+{
+ switch (heldEffect)
+ {
+ case 0x7D:
+ return TYPE_FIRE;
+ case 0x7E:
+ return TYPE_WATER;
+ case 0x7F:
+ return TYPE_ELECTRIC;
+ case 0x80:
+ return TYPE_GRASS;
+ case 0x81:
+ return TYPE_ICE;
+ case 0x82:
+ return TYPE_FIGHTING;
+ case 0x83:
+ return TYPE_POISON;
+ case 0x84:
+ return TYPE_GROUND;
+ case 0x85:
+ return TYPE_FLYING;
+ case 0x86:
+ return TYPE_PSYCHIC;
+ case 0x87:
+ return TYPE_BUG;
+ case 0x88:
+ return TYPE_ROCK;
+ case 0x89:
+ return TYPE_GHOST;
+ case 0x8A:
+ return TYPE_DRAGON;
+ case 0x8B:
+ return TYPE_DARK;
+ case 0x8C:
+ return TYPE_STEEL;
+ default:
+ return TYPE_NORMAL;
+ }
+}
+
+void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl)
+{
+ ReadWholeNarcMemberByIdPair(wotbl, NARC_POKETOOL_PERSONAL_WOTBL, ResolveMonForme(species, forme));
+}
+
+void FUN_02069FB0(u32 r7, u32 r5, u32 r4, u32 r6, u32 sp18, u32 sp1C, u32 sp20)
+{
+ if (r4 == SPECIES_CHATOT)
+ {
+ if (!FUN_02005F14((int)r5))
+ {
+ FUN_02005E80(1);
+ FUN_020056AC((int)r5, (int)r4, (int)r6, (int)sp18, (int)sp20);
+ }
+ else
+ {
+ if (sp1C)
+ FUN_02005E80(1);
+ FUN_02005E90((int)r7, 0, (int)sp18, (int)r6);
+ }
+ }
+ else
+ {
+ FUN_020056AC((int)r5, (int)r4, (int)r6, (int)sp18, (int)sp20);
+ }
+}
+
+void FUN_0206A014(struct Pokemon * pokemon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5)
+{
+ u32 hp;
+ FUN_0206A054(&pokemon->box, a1, pokeball, a3, encounterType, a5);
+ if (pokeball == ITEM_HEAL_BALL)
+ {
+ hp = GetMonData(pokemon, MON_DATA_MAXHP, NULL);
+ SetMonData(pokemon, MON_DATA_HP, &hp);
+ hp = 0;
+ SetMonData(pokemon, MON_DATA_STATUS, &hp);
+ }
+}
+
+void FUN_0206A054(struct BoxPokemon * boxmon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5)
+{
+ FUN_020808AC(boxmon, (int)a1, 0, (int)a3, (int)a5);
+ SetBoxMonData(boxmon, MON_DATA_GAME_VERSION, (void *)&gGameVersion);
+ SetBoxMonData(boxmon, MON_DATA_POKEBALL, &pokeball);
+ SetBoxMonData(boxmon, MON_DATA_ENCOUNTER_TYPE, &encounterType);
+}
+
+void FUN_0206A094(struct Pokemon * pokemon, u32 a1, u32 a2)
+{
+ u32 chance;
+ u16 species;
+ u16 forme;
+ u16 item1;
+ u16 item2;
+ if (!(a1 & 0x81)) {
+ chance = (u32)(rand_LC() % 100);
+ species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, 0);
+ forme = (u16)GetMonData(pokemon, MON_DATA_FORME, 0);
+ item1 = (u16)GetMonBaseStat_HandleFormeConversion(species, forme, BASE_ITEM_1);
+ item2 = (u16)GetMonBaseStat_HandleFormeConversion(species, forme, BASE_ITEM_2);
+ if (item1 == item2 && item1 != ITEM_NONE)
+ {
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1);
+ }
+ else
+ {
+ if (chance >= sItemOdds[a2][0])
+ {
+ if (chance < sItemOdds[a2][1])
+ {
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1);
+ }
+ else
+ {
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &item2);
+ }
+ }
+ }
+ }
+}
+
+BOOL FUN_0206A13C(struct Pokemon * pokemon, u32 a1)
+{
+ return FUN_0206A144(&pokemon->box, a1);
+}
+
+BOOL FUN_0206A144(struct BoxPokemon * boxmon, u32 a1)
+{
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL);
+ int forme = (int)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ return FUN_0206A16C(species, forme, a1);
+}
+
+BOOL FUN_0206A16C(u16 species, int forme, u32 a2)
+{
+ u32 r4;
+ enum BaseStat r2;
+ if (species == SPECIES_EGG)
+ return FALSE;
+ if (a2 < 32)
+ {
+ r4 = 1ul << a2;
+ r2 = BASE_UNKNOWN_29;
+ }
+ else if (a2 < 64)
+ {
+ r4 = 1ul << (a2 - 32);
+ r2 = BASE_UNKNOWN_30;
+ }
+ else if (a2 < 96)
+ {
+ r4 = 1ul << (a2 - 64);
+ r2 = BASE_UNKNOWN_31;
+ }
+ else
+ {
+ r4 = 1ul << (a2 - 96);
+ r2 = BASE_UNKNOWN_32;
+ }
+ return !!(GetMonBaseStat_HandleFormeConversion(species, forme, r2) & r4);
+}
+
+void FUN_0206A1C4(struct Pokemon * pokemon)
+{
+ FUN_0206A1CC(&pokemon->box);
+}
+
+void FUN_0206A1CC(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ int pid = (int)GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ int ability1 = (int)GetMonBaseStat(species, BASE_ABILITY_1);
+ int ability2 = (int)GetMonBaseStat(species, BASE_ABILITY_2);
+
+ if (ability2 != ABILITY_NONE)
+ {
+ if (pid & 1)
+ SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability2);
+ else
+ SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1);
+ }
+ else
+ SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1);
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+void FUN_0206A23C(struct Pokemon * r5, u32 personality)
+{
+ PokemonDataBlockA * r4;
+ PokemonDataBlockB * r6;
+ PokemonDataBlockC * r7;
+ PokemonDataBlockD * sp8;
+ PokemonDataBlockA * spC;
+ PokemonDataBlockB * sp10;
+ PokemonDataBlockC * sp14;
+ PokemonDataBlockD * sp18;
+ struct Pokemon * sp4;
+
+ sp4 = AllocMonZeroed(0);
+ FUN_02069B88(r5, sp4);
+ r4 = &GetSubstruct(&sp4->box, r5->box.pid, 0)->blockA;
+ r6 = &GetSubstruct(&sp4->box, r5->box.pid, 1)->blockB;
+ r7 = &GetSubstruct(&sp4->box, r5->box.pid, 2)->blockC;
+ sp8 = &GetSubstruct(&sp4->box, r5->box.pid, 3)->blockD;
+ spC = &GetSubstruct(&r5->box, personality, 0)->blockA;
+ sp10 = &GetSubstruct(&r5->box, personality, 1)->blockB;
+ sp14 = &GetSubstruct(&r5->box, personality, 2)->blockC;
+ sp18 = &GetSubstruct(&r5->box, personality, 3)->blockD;
+
+ DECRYPT_BOX(&sp4->box);
+ DECRYPT_PTY(r5);
+ DECRYPT_BOX(&r5->box);
+ r5->box.pid = personality;
+ *spC = *r4;
+ *sp10 = *r6;
+ *sp14 = *r7;
+ *sp18 = *sp8;
+ r5->box.checksum = CHECKSUM(&r5->box);
+ ENCRYPT_BOX(&r5->box);
+ ENCRYPT_PTY(r5);
+ FreeToHeap(sp4);
+}
+
+void LoadMonPersonal(int species, struct BaseStats * personal)
+{
+ ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, species);
+}
+
+void LoadMonBaseStats_HandleAlternateForme(int species, int forme, struct BaseStats * personal)
+{
+ ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, ResolveMonForme(species, forme));
+}
+
+void LoadMonEvolutionTable(u16 species, struct Evolution * evo)
+{
+ ReadWholeNarcMemberByIdPair(evo, NARC_POKETOOL_PERSONAL_EVO, species);
+}
+
+
+void MonEncryptSegment(u16 * data, u32 size, u32 seed) {
+ int i;
+ for (i = 0; i < size / 2; i++)
+ {
+ data[i] ^= MonEncryptionLCRNG(&seed);
+ }
+}
+
+void MonDecryptSegment(u16 * data, u32 size, u32 seed) {
+ MonEncryptSegment(data, size, seed);
+}
+
+u16 MonEncryptionLCRNG(u32 * seed)
+{
+ *seed = *seed * 1103515245 + 24691;
+ return (u16)(*seed >> 16);
+}
+
+u16 CalcMonChecksum(u16 * data, u32 size)
+{
+ int i;
+ u16 ret = 0;
+ for (i = 0; i < size / 2; i++)
+ {
+ ret += data[i];
+ }
+ return ret;
+}
+
+#define SUBSTRUCT_CASE(v1, v2, v3, v4) \
+{ \
+ PokemonDataBlock *substructs = boxMon->substructs; \
+ switch (substructType) \
+ { \
+ case 0: \
+ result = &substructs[v1]; \
+ break; \
+ case 1: \
+ result = &substructs[v2]; \
+ break; \
+ case 2: \
+ result = &substructs[v3]; \
+ break; \
+ case 3: \
+ result = &substructs[v4]; \
+ break; \
+ } \
+ \
+ break; \
+}
+
+PokemonDataBlock *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType)
+{
+ PokemonDataBlock *result;
+
+ switch ((personality & 0x3E000) >> 13)
+ {
+ case 0:
+ case 24:
+ SUBSTRUCT_CASE(0,1,2,3)
+ case 1:
+ case 25:
+ SUBSTRUCT_CASE(0,1,3,2)
+ case 2:
+ case 26:
+ SUBSTRUCT_CASE(0,2,1,3)
+ case 3:
+ case 27:
+ SUBSTRUCT_CASE(0,3,1,2)
+ case 4:
+ case 28:
+ SUBSTRUCT_CASE(0,2,3,1)
+ case 5:
+ case 29:
+ SUBSTRUCT_CASE(0,3,2,1)
+ case 6:
+ case 30:
+ SUBSTRUCT_CASE(1,0,2,3)
+ case 7:
+ case 31:
+ SUBSTRUCT_CASE(1,0,3,2)
+ case 8:
+ SUBSTRUCT_CASE(2,0,1,3)
+ case 9:
+ SUBSTRUCT_CASE(3,0,1,2)
+ case 10:
+ SUBSTRUCT_CASE(2,0,3,1)
+ case 11:
+ SUBSTRUCT_CASE(3,0,2,1)
+ case 12:
+ SUBSTRUCT_CASE(1,2,0,3)
+ case 13:
+ SUBSTRUCT_CASE(1,3,0,2)
+ case 14:
+ SUBSTRUCT_CASE(2,1,0,3)
+ case 15:
+ SUBSTRUCT_CASE(3,1,0,2)
+ case 16:
+ SUBSTRUCT_CASE(2,3,0,1)
+ case 17:
+ SUBSTRUCT_CASE(3,2,0,1)
+ case 18:
+ SUBSTRUCT_CASE(1,2,3,0)
+ case 19:
+ SUBSTRUCT_CASE(1,3,2,0)
+ case 20:
+ SUBSTRUCT_CASE(2,1,3,0)
+ case 21:
+ SUBSTRUCT_CASE(3,1,2,0)
+ case 22:
+ SUBSTRUCT_CASE(2,3,1,0)
+ case 23:
+ SUBSTRUCT_CASE(3,2,1,0)
+ }
+ return result;
+}
+
+int ResolveMonForme(int species, int forme)
+{
+ switch (species)
+ {
+ case SPECIES_DEOXYS:
+ if (forme != 0 && forme <= 3)
+ return SPECIES_DEOXYS_ATK + forme - 1;
+ break;
+ case SPECIES_WORMADAM:
+ if (forme != 0 && forme <= 2)
+ return SPECIES_WORMADAM_SANDY + forme - 1;
+ break;
+ }
+ return species;
+}
+
+u32 MaskOfFlagNo(int flagno)
+{
+ // This is completely inane.
+ int i;
+ u32 ret = 1;
+ GF_ASSERT(flagno < 32);
+ for (i = 0; i < flagno; i++)
+ ret <<= 1;
+ return ret;
+}
+
+int LowestFlagNo(u32 mask)
+{
+ int i;
+ u32 bit = 1;
+ for (i = 0; i < 32; i++)
+ {
+ if (mask & bit)
+ break;
+ bit <<= 1;
+ }
+ return i;
+}
+
+BOOL IsPokemonLegendaryOrMythical(u16 species)
+{
+ int i;
+ for (i = 0; i < NELEMS(sLegendaryMonsList); i++)
+ {
+ if (species == sLegendaryMonsList[i])
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u16 GetLegendaryMon(u32 idx)
+{
+ if (idx >= NELEMS(sLegendaryMonsList))
+ idx = 0;
+ return sLegendaryMonsList[idx];
+}
+
+BOOL FUN_0206A998(struct Pokemon * pokemon)
+{
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ return IsPokemonLegendaryOrMythical(species);
+}
+
+BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct SaveBlock2 * sb2, u32 heap_id)
+{
+ u32 myId = FUN_020239BC(sb2);
+ u32 otId = GetBoxMonData(boxmon, MON_DATA_OTID, NULL);
+ u32 myGender = FUN_020239CC(sb2);
+ u32 otGender = GetBoxMonData(boxmon, MON_DATA_MET_GENDER, NULL);
+ struct String * r7 = FUN_020239A0(sb2, heap_id);
+ struct String * r6 = FUN_020219F4(OT_NAME_LENGTH + 1, heap_id);
+ BOOL ret = FALSE;
+ GetBoxMonData(boxmon, MON_DATA_OT_NAME_2, r6);
+ if (myId == otId && myGender == otGender && FUN_02021CE0(r7, r6) == 0)
+ ret = TRUE;
+ FUN_02021A20(r6);
+ FUN_02021A20(r7);
+ return ret;
+}
+
+int FUN_0206AA30(int x)
+{
+ switch (x)
+ {
+ case 63:
+ return 2;
+ case 90:
+ case 91:
+ case 92:
+ case 93:
+ case 94:
+ return x - 87;
+ default:
+ if (FUN_0206AE00(x) == 1)
+ return 1;
+ else
+ return 0;
+ case 0:
+ case 1:
+ return x;
+ }
+}
+
+void FUN_0206AA84(struct Pokemon * pokemon)
+{
+ u8 sp0 = 0;
+ u8 sp1[12][2];
+ MIi_CpuClearFast(0, sp1, sizeof(sp1));
+ SetMonData(pokemon, MON_DATA_CAPSULE, &sp0);
+ SetMonData(pokemon, MON_DATA_SEAL_COORDS, sp1);
+}
+
+void FUN_0206AAB4(struct BoxPokemon * boxmon)
+{
+ int i;
+ u8 pp;
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ for (i = 0; i < 4; i++)
+ {
+ if (GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL) != MOVE_NONE)
+ {
+ pp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1MAXPP + i, NULL);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + i, &pp);
+ }
+ }
+ ReleaseBoxMonLock(boxmon, decry);
+}
diff --git a/arm9/src/string_util.c b/arm9/src/string_util.c
index e36f1a30..54ad61fc 100644
--- a/arm9/src/string_util.c
+++ b/arm9/src/string_util.c
@@ -1,8 +1,5 @@
#include "string_util.h"
-#define EOS 0xFFFF
-#define NON_DIGIT 0xE2
-
const u16 gDigitTable[] = {
0xA2,
0xA3,
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
new file mode 100644
index 00000000..f107e623
--- /dev/null
+++ b/include/constants/abilities.h
@@ -0,0 +1,129 @@
+#ifndef POKEDIAMOND_CONSTANTS_ABILITIES_H
+#define POKEDIAMOND_CONSTANTS_ABILITIES_H
+
+#define ABILITY_NONE 0
+#define ABILITY_STENCH 1
+#define ABILITY_DRIZZLE 2
+#define ABILITY_SPEED_BOOST 3
+#define ABILITY_BATTLE_ARMOR 4
+#define ABILITY_STURDY 5
+#define ABILITY_DAMP 6
+#define ABILITY_LIMBER 7
+#define ABILITY_SAND_VEIL 8
+#define ABILITY_STATIC 9
+#define ABILITY_VOLT_ABSORB 10
+#define ABILITY_WATER_ABSORB 11
+#define ABILITY_OBLIVIOUS 12
+#define ABILITY_CLOUD_NINE 13
+#define ABILITY_COMPOUND_EYES 14
+#define ABILITY_INSOMNIA 15
+#define ABILITY_COLOR_CHANGE 16
+#define ABILITY_IMMUNITY 17
+#define ABILITY_FLASH_FIRE 18
+#define ABILITY_SHIELD_DUST 19
+#define ABILITY_OWN_TEMPO 20
+#define ABILITY_SUCTION_CUPS 21
+#define ABILITY_INTIMIDATE 22
+#define ABILITY_SHADOW_TAG 23
+#define ABILITY_ROUGH_SKIN 24
+#define ABILITY_WONDER_GUARD 25
+#define ABILITY_LEVITATE 26
+#define ABILITY_EFFECT_SPORE 27
+#define ABILITY_SYNCHRONIZE 28
+#define ABILITY_CLEAR_BODY 29
+#define ABILITY_NATURAL_CURE 30
+#define ABILITY_LIGHTNING_ROD 31
+#define ABILITY_SERENE_GRACE 32
+#define ABILITY_SWIFT_SWIM 33
+#define ABILITY_CHLOROPHYLL 34
+#define ABILITY_ILLUMINATE 35
+#define ABILITY_TRACE 36
+#define ABILITY_HUGE_POWER 37
+#define ABILITY_POISON_POINT 38
+#define ABILITY_INNER_FOCUS 39
+#define ABILITY_MAGMA_ARMOR 40
+#define ABILITY_WATER_VEIL 41
+#define ABILITY_MAGNET_PULL 42
+#define ABILITY_SOUNDPROOF 43
+#define ABILITY_RAIN_DISH 44
+#define ABILITY_SAND_STREAM 45
+#define ABILITY_PRESSURE 46
+#define ABILITY_THICK_FAT 47
+#define ABILITY_EARLY_BIRD 48
+#define ABILITY_FLAME_BODY 49
+#define ABILITY_RUN_AWAY 50
+#define ABILITY_KEEN_EYE 51
+#define ABILITY_HYPER_CUTTER 52
+#define ABILITY_PICKUP 53
+#define ABILITY_TRUANT 54
+#define ABILITY_HUSTLE 55
+#define ABILITY_CUTE_CHARM 56
+#define ABILITY_PLUS 57
+#define ABILITY_MINUS 58
+#define ABILITY_FORECAST 59
+#define ABILITY_STICKY_HOLD 60
+#define ABILITY_SHED_SKIN 61
+#define ABILITY_GUTS 62
+#define ABILITY_MARVEL_SCALE 63
+#define ABILITY_LIQUID_OOZE 64
+#define ABILITY_OVERGROW 65
+#define ABILITY_BLAZE 66
+#define ABILITY_TORRENT 67
+#define ABILITY_SWARM 68
+#define ABILITY_ROCK_HEAD 69
+#define ABILITY_DROUGHT 70
+#define ABILITY_ARENA_TRAP 71
+#define ABILITY_VITAL_SPIRIT 72
+#define ABILITY_WHITE_SMOKE 73
+#define ABILITY_PURE_POWER 74
+#define ABILITY_SHELL_ARMOR 75
+#define ABILITY_AIR_LOCK 76
+#define ABILITY_TANGLED_FEET 77
+#define ABILITY_MOTOR_DRIVE 78
+#define ABILITY_RIVALRY 79
+#define ABILITY_STEADFAST 80
+#define ABILITY_SNOW_CLOAK 81
+#define ABILITY_GLUTTONY 82
+#define ABILITY_ANGER_POINT 83
+#define ABILITY_UNBURDEN 84
+#define ABILITY_HEATPROOF 85
+#define ABILITY_SIMPLE 86
+#define ABILITY_DRY_SKIN 87
+#define ABILITY_DOWNLOAD 88
+#define ABILITY_IRON_FIST 89
+#define ABILITY_POISON_HEAL 90
+#define ABILITY_ADAPTABILITY 91
+#define ABILITY_SKILL_LINK 92
+#define ABILITY_HYDRATION 93
+#define ABILITY_SOLAR_POWER 94
+#define ABILITY_QUICK_FEET 95
+#define ABILITY_NORMALIZE 96
+#define ABILITY_SNIPER 97
+#define ABILITY_MAGIC_GUARD 98
+#define ABILITY_NO_GUARD 99
+#define ABILITY_STALL 100
+#define ABILITY_TECHNICIAN 101
+#define ABILITY_LEAF_GUARD 102
+#define ABILITY_KLUTZ 103
+#define ABILITY_MOLD_BREAKER 104
+#define ABILITY_SUPER_LUCK 105
+#define ABILITY_AFTERMATH 106
+#define ABILITY_ANTICIPATION 107
+#define ABILITY_FOREWARN 108
+#define ABILITY_UNAWARE 109
+#define ABILITY_TINTED_LENS 110
+#define ABILITY_FILTER 111
+#define ABILITY_SLOW_START 112
+#define ABILITY_SCRAPPY 113
+#define ABILITY_STORM_DRAIN 114
+#define ABILITY_ICE_BODY 115
+#define ABILITY_SOLID_ROCK 116
+#define ABILITY_SNOW_WARNING 117
+#define ABILITY_HONEY_GATHER 118
+#define ABILITY_FRISK 119
+#define ABILITY_RECKLESS 120
+#define ABILITY_MULTITYPE 121
+#define ABILITY_FLOWER_GIFT 122
+#define ABILITY_BAD_DREAMS 123
+
+#endif //POKEDIAMOND_CONSTANTS_ABILITIES_H
diff --git a/include/constants/global.h b/include/constants/global.h
new file mode 100644
index 00000000..28d4b206
--- /dev/null
+++ b/include/constants/global.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_CONSTANTS_GLOBAL_H
+#define POKEDIAMOND_CONSTANTS_GLOBAL_H
+
+#define POKEMON_NAME_LENGTH 10
+#define OT_NAME_LENGTH 7
+
+#endif //POKEDIAMOND_CONSTANTS_GLOBAL_H
diff --git a/include/constants/items.h b/include/constants/items.h
new file mode 100644
index 00000000..98c3dd97
--- /dev/null
+++ b/include/constants/items.h
@@ -0,0 +1,448 @@
+#ifndef POKEDIAMOND_CONSTANTS_ITEMS_H
+#define POKEDIAMOND_CONSTANTS_ITEMS_H
+
+#define ITEM_NONE 0
+#define ITEM_MASTER_BALL 1
+#define ITEM_ULTRA_BALL 2
+#define ITEM_GREAT_BALL 3
+#define ITEM_POKE_BALL 4
+#define ITEM_SAFARI_BALL 5
+#define ITEM_NET_BALL 6
+#define ITEM_DIVE_BALL 7
+#define ITEM_NEST_BALL 8
+#define ITEM_REPEAT_BALL 9
+#define ITEM_TIMER_BALL 10
+#define ITEM_LUXURY_BALL 11
+#define ITEM_PREMIER_BALL 12
+#define ITEM_DUSK_BALL 13
+#define ITEM_HEAL_BALL 14
+#define ITEM_QUICK_BALL 15
+#define ITEM_CHERISH_BALL 16
+#define ITEM_POTION 17
+#define ITEM_ANTIDOTE 18
+#define ITEM_BURN_HEAL 19
+#define ITEM_ICE_HEAL 20
+#define ITEM_AWAKENING 21
+#define ITEM_PARLYZ_HEAL 22
+#define ITEM_FULL_RESTORE 23
+#define ITEM_MAX_POTION 24
+#define ITEM_HYPER_POTION 25
+#define ITEM_SUPER_POTION 26
+#define ITEM_FULL_HEAL 27
+#define ITEM_REVIVE 28
+#define ITEM_MAX_REVIVE 29
+#define ITEM_FRESH_WATER 30
+#define ITEM_SODA_POP 31
+#define ITEM_LEMONADE 32
+#define ITEM_MOOMOO_MILK 33
+#define ITEM_ENERGYPOWDER 34
+#define ITEM_ENERGY_ROOT 35
+#define ITEM_HEAL_POWDER 36
+#define ITEM_REVIVAL_HERB 37
+#define ITEM_ETHER 38
+#define ITEM_MAX_ETHER 39
+#define ITEM_ELIXIR 40
+#define ITEM_MAX_ELIXIR 41
+#define ITEM_LAVA_COOKIE 42
+#define ITEM_BERRY_JUICE 43
+#define ITEM_SACRED_ASH 44
+#define ITEM_HP_UP 45
+#define ITEM_PROTEIN 46
+#define ITEM_IRON 47
+#define ITEM_CARBOS 48
+#define ITEM_CALCIUM 49
+#define ITEM_RARE_CANDY 50
+#define ITEM_PP_UP 51
+#define ITEM_ZINC 52
+#define ITEM_PP_MAX 53
+#define ITEM_OLD_GATEAU 54
+#define ITEM_GUARD_SPEC_ 55
+#define ITEM_DIRE_HIT 56
+#define ITEM_X_ATTACK 57
+#define ITEM_X_DEFENSE 58
+#define ITEM_X_SPEED 59
+#define ITEM_X_ACCURACY 60
+#define ITEM_X_SPECIAL 61
+#define ITEM_X_SP__DEF 62
+#define ITEM_POKE_DOLL 63
+#define ITEM_FLUFFY_TAIL 64
+#define ITEM_BLUE_FLUTE 65
+#define ITEM_YELLOW_FLUTE 66
+#define ITEM_RED_FLUTE 67
+#define ITEM_BLACK_FLUTE 68
+#define ITEM_WHITE_FLUTE 69
+#define ITEM_SHOAL_SALT 70
+#define ITEM_SHOAL_SHELL 71
+#define ITEM_RED_SHARD 72
+#define ITEM_BLUE_SHARD 73
+#define ITEM_YELLOW_SHARD 74
+#define ITEM_GREEN_SHARD 75
+#define ITEM_SUPER_REPEL 76
+#define ITEM_MAX_REPEL 77
+#define ITEM_ESCAPE_ROPE 78
+#define ITEM_REPEL 79
+#define ITEM_SUN_STONE 80
+#define ITEM_MOON_STONE 81
+#define ITEM_FIRE_STONE 82
+#define ITEM_THUNDERSTONE 83
+#define ITEM_WATER_STONE 84
+#define ITEM_LEAF_STONE 85
+#define ITEM_TINYMUSHROOM 86
+#define ITEM_BIG_MUSHROOM 87
+#define ITEM_PEARL 88
+#define ITEM_BIG_PEARL 89
+#define ITEM_STARDUST 90
+#define ITEM_STAR_PIECE 91
+#define ITEM_NUGGET 92
+#define ITEM_HEART_SCALE 93
+#define ITEM_HONEY 94
+#define ITEM_GROWTH_MULCH 95
+#define ITEM_DAMP_MULCH 96
+#define ITEM_STABLE_MULCH 97
+#define ITEM_GOOEY_MULCH 98
+#define ITEM_ROOT_FOSSIL 99
+#define ITEM_CLAW_FOSSIL 100
+#define ITEM_HELIX_FOSSIL 101
+#define ITEM_DOME_FOSSIL 102
+#define ITEM_OLD_AMBER 103
+#define ITEM_ARMOR_FOSSIL 104
+#define ITEM_SKULL_FOSSIL 105
+#define ITEM_RARE_BONE 106
+#define ITEM_SHINY_STONE 107
+#define ITEM_DUSK_STONE 108
+#define ITEM_DAWN_STONE 109
+#define ITEM_OVAL_STONE 110
+#define ITEM_ODD_KEYSTONE 111
+
+#define ITEM_ADAMANT_ORB 135
+#define ITEM_LUSTROUS_ORB 136
+#define ITEM_GRASS_MAIL 137
+#define ITEM_FLAME_MAIL 138
+#define ITEM_BUBBLE_MAIL 139
+#define ITEM_BLOOM_MAIL 140
+#define ITEM_TUNNEL_MAIL 141
+#define ITEM_STEEL_MAIL 142
+#define ITEM_HEART_MAIL 143
+#define ITEM_SNOW_MAIL 144
+#define ITEM_SPACE_MAIL 145
+#define ITEM_AIR_MAIL 146
+#define ITEM_MOSAIC_MAIL 147
+#define ITEM_BRICK_MAIL 148
+#define ITEM_CHERI_BERRY 149
+#define ITEM_CHESTO_BERRY 150
+#define ITEM_PECHA_BERRY 151
+#define ITEM_RAWST_BERRY 152
+#define ITEM_ASPEAR_BERRY 153
+#define ITEM_LEPPA_BERRY 154
+#define ITEM_ORAN_BERRY 155
+#define ITEM_PERSIM_BERRY 156
+#define ITEM_LUM_BERRY 157
+#define ITEM_SITRUS_BERRY 158
+#define ITEM_FIGY_BERRY 159
+#define ITEM_WIKI_BERRY 160
+#define ITEM_MAGO_BERRY 161
+#define ITEM_AGUAV_BERRY 162
+#define ITEM_IAPAPA_BERRY 163
+#define ITEM_RAZZ_BERRY 164
+#define ITEM_BLUK_BERRY 165
+#define ITEM_NANAB_BERRY 166
+#define ITEM_WEPEAR_BERRY 167
+#define ITEM_PINAP_BERRY 168
+#define ITEM_POMEG_BERRY 169
+#define ITEM_KELPSY_BERRY 170
+#define ITEM_QUALOT_BERRY 171
+#define ITEM_HONDEW_BERRY 172
+#define ITEM_GREPA_BERRY 173
+#define ITEM_TAMATO_BERRY 174
+#define ITEM_CORNN_BERRY 175
+#define ITEM_MAGOST_BERRY 176
+#define ITEM_RABUTA_BERRY 177
+#define ITEM_NOMEL_BERRY 178
+#define ITEM_SPELON_BERRY 179
+#define ITEM_PAMTRE_BERRY 180
+#define ITEM_WATMEL_BERRY 181
+#define ITEM_DURIN_BERRY 182
+#define ITEM_BELUE_BERRY 183
+#define ITEM_OCCA_BERRY 184
+#define ITEM_PASSHO_BERRY 185
+#define ITEM_WACAN_BERRY 186
+#define ITEM_RINDO_BERRY 187
+#define ITEM_YACHE_BERRY 188
+#define ITEM_CHOPLE_BERRY 189
+#define ITEM_KEBIA_BERRY 190
+#define ITEM_SHUCA_BERRY 191
+#define ITEM_COBA_BERRY 192
+#define ITEM_PAYAPA_BERRY 193
+#define ITEM_TANGA_BERRY 194
+#define ITEM_CHARTI_BERRY 195
+#define ITEM_KASIB_BERRY 196
+#define ITEM_HABAN_BERRY 197
+#define ITEM_COLBUR_BERRY 198
+#define ITEM_BABIRI_BERRY 199
+#define ITEM_CHILAN_BERRY 200
+#define ITEM_LIECHI_BERRY 201
+#define ITEM_GANLON_BERRY 202
+#define ITEM_SALAC_BERRY 203
+#define ITEM_PETAYA_BERRY 204
+#define ITEM_APICOT_BERRY 205
+#define ITEM_LANSAT_BERRY 206
+#define ITEM_STARF_BERRY 207
+#define ITEM_ENIGMA_BERRY 208
+#define ITEM_MICLE_BERRY 209
+#define ITEM_CUSTAP_BERRY 210
+#define ITEM_JABOCA_BERRY 211
+#define ITEM_ROWAP_BERRY 212
+#define ITEM_BRIGHTPOWDER 213
+#define ITEM_WHITE_HERB 214
+#define ITEM_MACHO_BRACE 215
+#define ITEM_EXP__SHARE 216
+#define ITEM_QUICK_CLAW 217
+#define ITEM_SOOTHE_BELL 218
+#define ITEM_MENTAL_HERB 219
+#define ITEM_CHOICE_BAND 220
+#define ITEM_KINGS_ROCK 221
+#define ITEM_SILVERPOWDER 222
+#define ITEM_AMULET_COIN 223
+#define ITEM_CLEANSE_TAG 224
+#define ITEM_SOUL_DEW 225
+#define ITEM_DEEPSEATOOTH 226
+#define ITEM_DEEPSEASCALE 227
+#define ITEM_SMOKE_BALL 228
+#define ITEM_EVERSTONE 229
+#define ITEM_FOCUS_BAND 230
+#define ITEM_LUCKY_EGG 231
+#define ITEM_SCOPE_LENS 232
+#define ITEM_METAL_COAT 233
+#define ITEM_LEFTOVERS 234
+#define ITEM_DRAGON_SCALE 235
+#define ITEM_LIGHT_BALL 236
+#define ITEM_SOFT_SAND 237
+#define ITEM_HARD_STONE 238
+#define ITEM_MIRACLE_SEED 239
+#define ITEM_BLACKGLASSES 240
+#define ITEM_BLACK_BELT 241
+#define ITEM_MAGNET 242
+#define ITEM_MYSTIC_WATER 243
+#define ITEM_SHARP_BEAK 244
+#define ITEM_POISON_BARB 245
+#define ITEM_NEVERMELTICE 246
+#define ITEM_SPELL_TAG 247
+#define ITEM_TWISTEDSPOON 248
+#define ITEM_CHARCOAL 249
+#define ITEM_DRAGON_FANG 250
+#define ITEM_SILK_SCARF 251
+#define ITEM_UPGRADE 252
+#define ITEM_SHELL_BELL 253
+#define ITEM_SEA_INCENSE 254
+#define ITEM_LAX_INCENSE 255
+#define ITEM_LUCKY_PUNCH 256
+#define ITEM_METAL_POWDER 257
+#define ITEM_THICK_CLUB 258
+#define ITEM_STICK 259
+#define ITEM_RED_SCARF 260
+#define ITEM_BLUE_SCARF 261
+#define ITEM_PINK_SCARF 262
+#define ITEM_GREEN_SCARF 263
+#define ITEM_YELLOW_SCARF 264
+#define ITEM_WIDE_LENS 265
+#define ITEM_MUSCLE_BAND 266
+#define ITEM_WISE_GLASSES 267
+#define ITEM_EXPERT_BELT 268
+#define ITEM_LIGHT_CLAY 269
+#define ITEM_LIFE_ORB 270
+#define ITEM_POWER_HERB 271
+#define ITEM_TOXIC_ORB 272
+#define ITEM_FLAME_ORB 273
+#define ITEM_QUICK_POWDER 274
+#define ITEM_FOCUS_SASH 275
+#define ITEM_ZOOM_LENS 276
+#define ITEM_METRONOME 277
+#define ITEM_IRON_BALL 278
+#define ITEM_LAGGING_TAIL 279
+#define ITEM_DESTINY_KNOT 280
+#define ITEM_BLACK_SLUDGE 281
+#define ITEM_ICY_ROCK 282
+#define ITEM_SMOOTH_ROCK 283
+#define ITEM_HEAT_ROCK 284
+#define ITEM_DAMP_ROCK 285
+#define ITEM_GRIP_CLAW 286
+#define ITEM_CHOICE_SCARF 287
+#define ITEM_STICKY_BARB 288
+#define ITEM_POWER_BRACER 289
+#define ITEM_POWER_BELT 290
+#define ITEM_POWER_LENS 291
+#define ITEM_POWER_BAND 292
+#define ITEM_POWER_ANKLET 293
+#define ITEM_POWER_WEIGHT 294
+#define ITEM_SHED_SHELL 295
+#define ITEM_BIG_ROOT 296
+#define ITEM_CHOICE_SPECS 297
+#define ITEM_FLAME_PLATE 298
+#define ITEM_SPLASH_PLATE 299
+#define ITEM_ZAP_PLATE 300
+#define ITEM_MEADOW_PLATE 301
+#define ITEM_ICICLE_PLATE 302
+#define ITEM_FIST_PLATE 303
+#define ITEM_TOXIC_PLATE 304
+#define ITEM_EARTH_PLATE 305
+#define ITEM_SKY_PLATE 306
+#define ITEM_MIND_PLATE 307
+#define ITEM_INSECT_PLATE 308
+#define ITEM_STONE_PLATE 309
+#define ITEM_SPOOKY_PLATE 310
+#define ITEM_DRACO_PLATE 311
+#define ITEM_DREAD_PLATE 312
+#define ITEM_IRON_PLATE 313
+#define ITEM_ODD_INCENSE 314
+#define ITEM_ROCK_INCENSE 315
+#define ITEM_FULL_INCENSE 316
+#define ITEM_WAVE_INCENSE 317
+#define ITEM_ROSE_INCENSE 318
+#define ITEM_LUCK_INCENSE 319
+#define ITEM_PURE_INCENSE 320
+#define ITEM_PROTECTOR 321
+#define ITEM_ELECTIRIZER 322
+#define ITEM_MAGMARIZER 323
+#define ITEM_DUBIOUS_DISC 324
+#define ITEM_REAPER_CLOTH 325
+#define ITEM_RAZOR_CLAW 326
+#define ITEM_RAZOR_FANG 327
+#define ITEM_TM01 328
+#define ITEM_TM02 329
+#define ITEM_TM03 330
+#define ITEM_TM04 331
+#define ITEM_TM05 332
+#define ITEM_TM06 333
+#define ITEM_TM07 334
+#define ITEM_TM08 335
+#define ITEM_TM09 336
+#define ITEM_TM10 337
+#define ITEM_TM11 338
+#define ITEM_TM12 339
+#define ITEM_TM13 340
+#define ITEM_TM14 341
+#define ITEM_TM15 342
+#define ITEM_TM16 343
+#define ITEM_TM17 344
+#define ITEM_TM18 345
+#define ITEM_TM19 346
+#define ITEM_TM20 347
+#define ITEM_TM21 348
+#define ITEM_TM22 349
+#define ITEM_TM23 350
+#define ITEM_TM24 351
+#define ITEM_TM25 352
+#define ITEM_TM26 353
+#define ITEM_TM27 354
+#define ITEM_TM28 355
+#define ITEM_TM29 356
+#define ITEM_TM30 357
+#define ITEM_TM31 358
+#define ITEM_TM32 359
+#define ITEM_TM33 360
+#define ITEM_TM34 361
+#define ITEM_TM35 362
+#define ITEM_TM36 363
+#define ITEM_TM37 364
+#define ITEM_TM38 365
+#define ITEM_TM39 366
+#define ITEM_TM40 367
+#define ITEM_TM41 368
+#define ITEM_TM42 369
+#define ITEM_TM43 370
+#define ITEM_TM44 371
+#define ITEM_TM45 372
+#define ITEM_TM46 373
+#define ITEM_TM47 374
+#define ITEM_TM48 375
+#define ITEM_TM49 376
+#define ITEM_TM50 377
+#define ITEM_TM51 378
+#define ITEM_TM52 379
+#define ITEM_TM53 380
+#define ITEM_TM54 381
+#define ITEM_TM55 382
+#define ITEM_TM56 383
+#define ITEM_TM57 384
+#define ITEM_TM58 385
+#define ITEM_TM59 386
+#define ITEM_TM60 387
+#define ITEM_TM61 388
+#define ITEM_TM62 389
+#define ITEM_TM63 390
+#define ITEM_TM64 391
+#define ITEM_TM65 392
+#define ITEM_TM66 393
+#define ITEM_TM67 394
+#define ITEM_TM68 395
+#define ITEM_TM69 396
+#define ITEM_TM70 397
+#define ITEM_TM71 398
+#define ITEM_TM72 399
+#define ITEM_TM73 400
+#define ITEM_TM74 401
+#define ITEM_TM75 402
+#define ITEM_TM76 403
+#define ITEM_TM77 404
+#define ITEM_TM78 405
+#define ITEM_TM79 406
+#define ITEM_TM80 407
+#define ITEM_TM81 408
+#define ITEM_TM82 409
+#define ITEM_TM83 410
+#define ITEM_TM84 411
+#define ITEM_TM85 412
+#define ITEM_TM86 413
+#define ITEM_TM87 414
+#define ITEM_TM88 415
+#define ITEM_TM89 416
+#define ITEM_TM90 417
+#define ITEM_TM91 418
+#define ITEM_TM92 419
+#define ITEM_HM01 420
+#define ITEM_HM02 421
+#define ITEM_HM03 422
+#define ITEM_HM04 423
+#define ITEM_HM05 424
+#define ITEM_HM06 425
+#define ITEM_HM07 426
+#define ITEM_HM08 427
+#define ITEM_EXPLORER_KIT 428
+#define ITEM_LOOT_SACK 429
+#define ITEM_RULE_BOOK 430
+#define ITEM_POKE_RADAR 431
+#define ITEM_POINT_CARD 432
+#define ITEM_JOURNAL 433
+#define ITEM_SEAL_CASE 434
+#define ITEM_FASHION_CASE 435
+#define ITEM_SEAL_BAG 436
+#define ITEM_PAL_PAD 437
+#define ITEM_WORKS_KEY 438
+#define ITEM_OLD_CHARM 439
+#define ITEM_GALACTIC_KEY 440
+#define ITEM_RED_CHAIN 441
+#define ITEM_TOWN_MAP 442
+#define ITEM_VS__SEEKER 443
+#define ITEM_COIN_CASE 444
+#define ITEM_OLD_ROD 445
+#define ITEM_GOOD_ROD 446
+#define ITEM_SUPER_ROD 447
+#define ITEM_SPRAYDUCK 448
+#define ITEM_POFFIN_CASE 449
+#define ITEM_BICYCLE 450
+#define ITEM_SUITE_KEY 451
+#define ITEM_OAKS_LETTER 452
+#define ITEM_LUNAR_WING 453
+#define ITEM_MEMBER_CARD 454
+#define ITEM_AZURE_FLUTE 455
+#define ITEM_S_S__TICKET 456
+#define ITEM_CONTEST_PASS 457
+#define ITEM_MAGMA_STONE 458
+#define ITEM_PARCEL 459
+#define ITEM_COUPON_1 460
+#define ITEM_COUPON_2 461
+#define ITEM_COUPON_3 462
+#define ITEM_STORAGE_KEY 463
+#define ITEM_SECRETPOTION 464
+
+#endif //POKEDIAMOND_CONSTANTS_ITEMS_H
diff --git a/include/constants/moves.h b/include/constants/moves.h
new file mode 100644
index 00000000..e25c16c9
--- /dev/null
+++ b/include/constants/moves.h
@@ -0,0 +1,473 @@
+#ifndef POKEDIAMOND_CONSTANTS_MOVES_H
+#define POKEDIAMOND_CONSTANTS_MOVES_H
+
+#define MOVE_NONE 0
+#define MOVE_POUND 1
+#define MOVE_KARATE_CHOP 2
+#define MOVE_DOUBLE_SLAP 3
+#define MOVE_COMET_PUNCH 4
+#define MOVE_MEGA_PUNCH 5
+#define MOVE_PAY_DAY 6
+#define MOVE_FIRE_PUNCH 7
+#define MOVE_ICE_PUNCH 8
+#define MOVE_THUNDER_PUNCH 9
+#define MOVE_SCRATCH 10
+#define MOVE_VISE_GRIP 11
+#define MOVE_GUILLOTINE 12
+#define MOVE_RAZOR_WIND 13
+#define MOVE_SWORDS_DANCE 14
+#define MOVE_CUT 15
+#define MOVE_GUST 16
+#define MOVE_WING_ATTACK 17
+#define MOVE_WHIRLWIND 18
+#define MOVE_FLY 19
+#define MOVE_BIND 20
+#define MOVE_SLAM 21
+#define MOVE_VINE_WHIP 22
+#define MOVE_STOMP 23
+#define MOVE_DOUBLE_KICK 24
+#define MOVE_MEGA_KICK 25
+#define MOVE_JUMP_KICK 26
+#define MOVE_ROLLING_KICK 27
+#define MOVE_SAND_ATTACK 28
+#define MOVE_HEADBUTT 29
+#define MOVE_HORN_ATTACK 30
+#define MOVE_FURY_ATTACK 31
+#define MOVE_HORN_DRILL 32
+#define MOVE_TACKLE 33
+#define MOVE_BODY_SLAM 34
+#define MOVE_WRAP 35
+#define MOVE_TAKE_DOWN 36
+#define MOVE_THRASH 37
+#define MOVE_DOUBLE_EDGE 38
+#define MOVE_TAIL_WHIP 39
+#define MOVE_POISON_STING 40
+#define MOVE_TWINEEDLE 41
+#define MOVE_PIN_MISSILE 42
+#define MOVE_LEER 43
+#define MOVE_BITE 44
+#define MOVE_GROWL 45
+#define MOVE_ROAR 46
+#define MOVE_SING 47
+#define MOVE_SUPERSONIC 48
+#define MOVE_SONIC_BOOM 49
+#define MOVE_DISABLE 50
+#define MOVE_ACID 51
+#define MOVE_EMBER 52
+#define MOVE_FLAMETHROWER 53
+#define MOVE_MIST 54
+#define MOVE_WATER_GUN 55
+#define MOVE_HYDRO_PUMP 56
+#define MOVE_SURF 57
+#define MOVE_ICE_BEAM 58
+#define MOVE_BLIZZARD 59
+#define MOVE_PSYBEAM 60
+#define MOVE_BUBBLE_BEAM 61
+#define MOVE_AURORA_BEAM 62
+#define MOVE_HYPER_BEAM 63
+#define MOVE_PECK 64
+#define MOVE_DRILL_PECK 65
+#define MOVE_SUBMISSION 66
+#define MOVE_LOW_KICK 67
+#define MOVE_COUNTER 68
+#define MOVE_SEISMIC_TOSS 69
+#define MOVE_STRENGTH 70
+#define MOVE_ABSORB 71
+#define MOVE_MEGA_DRAIN 72
+#define MOVE_LEECH_SEED 73
+#define MOVE_GROWTH 74
+#define MOVE_RAZOR_LEAF 75
+#define MOVE_SOLAR_BEAM 76
+#define MOVE_POISON_POWDER 77
+#define MOVE_STUN_SPORE 78
+#define MOVE_SLEEP_POWDER 79
+#define MOVE_PETAL_DANCE 80
+#define MOVE_STRING_SHOT 81
+#define MOVE_DRAGON_RAGE 82
+#define MOVE_FIRE_SPIN 83
+#define MOVE_THUNDER_SHOCK 84
+#define MOVE_THUNDERBOLT 85
+#define MOVE_THUNDER_WAVE 86
+#define MOVE_THUNDER 87
+#define MOVE_ROCK_THROW 88
+#define MOVE_EARTHQUAKE 89
+#define MOVE_FISSURE 90
+#define MOVE_DIG 91
+#define MOVE_TOXIC 92
+#define MOVE_CONFUSION 93
+#define MOVE_PSYCHIC 94
+#define MOVE_HYPNOSIS 95
+#define MOVE_MEDITATE 96
+#define MOVE_AGILITY 97
+#define MOVE_QUICK_ATTACK 98
+#define MOVE_RAGE 99
+#define MOVE_TELEPORT 100
+#define MOVE_NIGHT_SHADE 101
+#define MOVE_MIMIC 102
+#define MOVE_SCREECH 103
+#define MOVE_DOUBLE_TEAM 104
+#define MOVE_RECOVER 105
+#define MOVE_HARDEN 106
+#define MOVE_MINIMIZE 107
+#define MOVE_SMOKESCREEN 108
+#define MOVE_CONFUSE_RAY 109
+#define MOVE_WITHDRAW 110
+#define MOVE_DEFENSE_CURL 111
+#define MOVE_BARRIER 112
+#define MOVE_LIGHT_SCREEN 113
+#define MOVE_HAZE 114
+#define MOVE_REFLECT 115
+#define MOVE_FOCUS_ENERGY 116
+#define MOVE_BIDE 117
+#define MOVE_METRONOME 118
+#define MOVE_MIRROR_MOVE 119
+#define MOVE_SELF_DESTRUCT 120
+#define MOVE_EGG_BOMB 121
+#define MOVE_LICK 122
+#define MOVE_SMOG 123
+#define MOVE_SLUDGE 124
+#define MOVE_BONE_CLUB 125
+#define MOVE_FIRE_BLAST 126
+#define MOVE_WATERFALL 127
+#define MOVE_CLAMP 128
+#define MOVE_SWIFT 129
+#define MOVE_SKULL_BASH 130
+#define MOVE_SPIKE_CANNON 131
+#define MOVE_CONSTRICT 132
+#define MOVE_AMNESIA 133
+#define MOVE_KINESIS 134
+#define MOVE_SOFT_BOILED 135
+#define MOVE_HIGH_JUMP_KICK 136
+#define MOVE_GLARE 137
+#define MOVE_DREAM_EATER 138
+#define MOVE_POISON_GAS 139
+#define MOVE_BARRAGE 140
+#define MOVE_LEECH_LIFE 141
+#define MOVE_LOVELY_KISS 142
+#define MOVE_SKY_ATTACK 143
+#define MOVE_TRANSFORM 144
+#define MOVE_BUBBLE 145
+#define MOVE_DIZZY_PUNCH 146
+#define MOVE_SPORE 147
+#define MOVE_FLASH 148
+#define MOVE_PSYWAVE 149
+#define MOVE_SPLASH 150
+#define MOVE_ACID_ARMOR 151
+#define MOVE_CRABHAMMER 152
+#define MOVE_EXPLOSION 153
+#define MOVE_FURY_SWIPES 154
+#define MOVE_BONEMERANG 155
+#define MOVE_REST 156
+#define MOVE_ROCK_SLIDE 157
+#define MOVE_HYPER_FANG 158
+#define MOVE_SHARPEN 159
+#define MOVE_CONVERSION 160
+#define MOVE_TRI_ATTACK 161
+#define MOVE_SUPER_FANG 162
+#define MOVE_SLASH 163
+#define MOVE_SUBSTITUTE 164
+#define MOVE_STRUGGLE 165
+#define MOVE_SKETCH 166
+#define MOVE_TRIPLE_KICK 167
+#define MOVE_THIEF 168
+#define MOVE_SPIDER_WEB 169
+#define MOVE_MIND_READER 170
+#define MOVE_NIGHTMARE 171
+#define MOVE_FLAME_WHEEL 172
+#define MOVE_SNORE 173
+#define MOVE_CURSE 174
+#define MOVE_FLAIL 175
+#define MOVE_CONVERSION_2 176
+#define MOVE_AEROBLAST 177
+#define MOVE_COTTON_SPORE 178
+#define MOVE_REVERSAL 179
+#define MOVE_SPITE 180
+#define MOVE_POWDER_SNOW 181
+#define MOVE_PROTECT 182
+#define MOVE_MACH_PUNCH 183
+#define MOVE_SCARY_FACE 184
+#define MOVE_FEINT_ATTACK 185
+#define MOVE_SWEET_KISS 186
+#define MOVE_BELLY_DRUM 187
+#define MOVE_SLUDGE_BOMB 188
+#define MOVE_MUD_SLAP 189
+#define MOVE_OCTAZOOKA 190
+#define MOVE_SPIKES 191
+#define MOVE_ZAP_CANNON 192
+#define MOVE_FORESIGHT 193
+#define MOVE_DESTINY_BOND 194
+#define MOVE_PERISH_SONG 195
+#define MOVE_ICY_WIND 196
+#define MOVE_DETECT 197
+#define MOVE_BONE_RUSH 198
+#define MOVE_LOCK_ON 199
+#define MOVE_OUTRAGE 200
+#define MOVE_SANDSTORM 201
+#define MOVE_GIGA_DRAIN 202
+#define MOVE_ENDURE 203
+#define MOVE_CHARM 204
+#define MOVE_ROLLOUT 205
+#define MOVE_FALSE_SWIPE 206
+#define MOVE_SWAGGER 207
+#define MOVE_MILK_DRINK 208
+#define MOVE_SPARK 209
+#define MOVE_FURY_CUTTER 210
+#define MOVE_STEEL_WING 211
+#define MOVE_MEAN_LOOK 212
+#define MOVE_ATTRACT 213
+#define MOVE_SLEEP_TALK 214
+#define MOVE_HEAL_BELL 215
+#define MOVE_RETURN 216
+#define MOVE_PRESENT 217
+#define MOVE_FRUSTRATION 218
+#define MOVE_SAFEGUARD 219
+#define MOVE_PAIN_SPLIT 220
+#define MOVE_SACRED_FIRE 221
+#define MOVE_MAGNITUDE 222
+#define MOVE_DYNAMIC_PUNCH 223
+#define MOVE_MEGAHORN 224
+#define MOVE_DRAGON_BREATH 225
+#define MOVE_BATON_PASS 226
+#define MOVE_ENCORE 227
+#define MOVE_PURSUIT 228
+#define MOVE_RAPID_SPIN 229
+#define MOVE_SWEET_SCENT 230
+#define MOVE_IRON_TAIL 231
+#define MOVE_METAL_CLAW 232
+#define MOVE_VITAL_THROW 233
+#define MOVE_MORNING_SUN 234
+#define MOVE_SYNTHESIS 235
+#define MOVE_MOONLIGHT 236
+#define MOVE_HIDDEN_POWER 237
+#define MOVE_CROSS_CHOP 238
+#define MOVE_TWISTER 239
+#define MOVE_RAIN_DANCE 240
+#define MOVE_SUNNY_DAY 241
+#define MOVE_CRUNCH 242
+#define MOVE_MIRROR_COAT 243
+#define MOVE_PSYCH_UP 244
+#define MOVE_EXTREME_SPEED 245
+#define MOVE_ANCIENT_POWER 246
+#define MOVE_SHADOW_BALL 247
+#define MOVE_FUTURE_SIGHT 248
+#define MOVE_ROCK_SMASH 249
+#define MOVE_WHIRLPOOL 250
+#define MOVE_BEAT_UP 251
+#define MOVE_FAKE_OUT 252
+#define MOVE_UPROAR 253
+#define MOVE_STOCKPILE 254
+#define MOVE_SPIT_UP 255
+#define MOVE_SWALLOW 256
+#define MOVE_HEAT_WAVE 257
+#define MOVE_HAIL 258
+#define MOVE_TORMENT 259
+#define MOVE_FLATTER 260
+#define MOVE_WILL_O_WISP 261
+#define MOVE_MEMENTO 262
+#define MOVE_FACADE 263
+#define MOVE_FOCUS_PUNCH 264
+#define MOVE_SMELLING_SALTS 265
+#define MOVE_FOLLOW_ME 266
+#define MOVE_NATURE_POWER 267
+#define MOVE_CHARGE 268
+#define MOVE_TAUNT 269
+#define MOVE_HELPING_HAND 270
+#define MOVE_TRICK 271
+#define MOVE_ROLE_PLAY 272
+#define MOVE_WISH 273
+#define MOVE_ASSIST 274
+#define MOVE_INGRAIN 275
+#define MOVE_SUPERPOWER 276
+#define MOVE_MAGIC_COAT 277
+#define MOVE_RECYCLE 278
+#define MOVE_REVENGE 279
+#define MOVE_BRICK_BREAK 280
+#define MOVE_YAWN 281
+#define MOVE_KNOCK_OFF 282
+#define MOVE_ENDEAVOR 283
+#define MOVE_ERUPTION 284
+#define MOVE_SKILL_SWAP 285
+#define MOVE_IMPRISON 286
+#define MOVE_REFRESH 287
+#define MOVE_GRUDGE 288
+#define MOVE_SNATCH 289
+#define MOVE_SECRET_POWER 290
+#define MOVE_DIVE 291
+#define MOVE_ARM_THRUST 292
+#define MOVE_CAMOUFLAGE 293
+#define MOVE_TAIL_GLOW 294
+#define MOVE_LUSTER_PURGE 295
+#define MOVE_MIST_BALL 296
+#define MOVE_FEATHER_DANCE 297
+#define MOVE_TEETER_DANCE 298
+#define MOVE_BLAZE_KICK 299
+#define MOVE_MUD_SPORT 300
+#define MOVE_ICE_BALL 301
+#define MOVE_NEEDLE_ARM 302
+#define MOVE_SLACK_OFF 303
+#define MOVE_HYPER_VOICE 304
+#define MOVE_POISON_FANG 305
+#define MOVE_CRUSH_CLAW 306
+#define MOVE_BLAST_BURN 307
+#define MOVE_HYDRO_CANNON 308
+#define MOVE_METEOR_MASH 309
+#define MOVE_ASTONISH 310
+#define MOVE_WEATHER_BALL 311
+#define MOVE_AROMATHERAPY 312
+#define MOVE_FAKE_TEARS 313
+#define MOVE_AIR_CUTTER 314
+#define MOVE_OVERHEAT 315
+#define MOVE_ODOR_SLEUTH 316
+#define MOVE_ROCK_TOMB 317
+#define MOVE_SILVER_WIND 318
+#define MOVE_METAL_SOUND 319
+#define MOVE_GRASS_WHISTLE 320
+#define MOVE_TICKLE 321
+#define MOVE_COSMIC_POWER 322
+#define MOVE_WATER_SPOUT 323
+#define MOVE_SIGNAL_BEAM 324
+#define MOVE_SHADOW_PUNCH 325
+#define MOVE_EXTRASENSORY 326
+#define MOVE_SKY_UPPERCUT 327
+#define MOVE_SAND_TOMB 328
+#define MOVE_SHEER_COLD 329
+#define MOVE_MUDDY_WATER 330
+#define MOVE_BULLET_SEED 331
+#define MOVE_AERIAL_ACE 332
+#define MOVE_ICICLE_SPEAR 333
+#define MOVE_IRON_DEFENSE 334
+#define MOVE_BLOCK 335
+#define MOVE_HOWL 336
+#define MOVE_DRAGON_CLAW 337
+#define MOVE_FRENZY_PLANT 338
+#define MOVE_BULK_UP 339
+#define MOVE_BOUNCE 340
+#define MOVE_MUD_SHOT 341
+#define MOVE_POISON_TAIL 342
+#define MOVE_COVET 343
+#define MOVE_VOLT_TACKLE 344
+#define MOVE_MAGICAL_LEAF 345
+#define MOVE_WATER_SPORT 346
+#define MOVE_CALM_MIND 347
+#define MOVE_LEAF_BLADE 348
+#define MOVE_DRAGON_DANCE 349
+#define MOVE_ROCK_BLAST 350
+#define MOVE_SHOCK_WAVE 351
+#define MOVE_WATER_PULSE 352
+#define MOVE_DOOM_DESIRE 353
+#define MOVE_PSYCHO_BOOST 354
+#define MOVE_ROOST 355
+#define MOVE_GRAVITY 356
+#define MOVE_MIRACLE_EYE 357
+#define MOVE_WAKE_UP_SLAP 358
+#define MOVE_HAMMER_ARM 359
+#define MOVE_GYRO_BALL 360
+#define MOVE_HEALING_WISH 361
+#define MOVE_BRINE 362
+#define MOVE_NATURAL_GIFT 363
+#define MOVE_FEINT 364
+#define MOVE_PLUCK 365
+#define MOVE_TAILWIND 366
+#define MOVE_ACUPRESSURE 367
+#define MOVE_METAL_BURST 368
+#define MOVE_U_TURN 369
+#define MOVE_CLOSE_COMBAT 370
+#define MOVE_PAYBACK 371
+#define MOVE_ASSURANCE 372
+#define MOVE_EMBARGO 373
+#define MOVE_FLING 374
+#define MOVE_PSYCHO_SHIFT 375
+#define MOVE_TRUMP_CARD 376
+#define MOVE_HEAL_BLOCK 377
+#define MOVE_WRING_OUT 378
+#define MOVE_POWER_TRICK 379
+#define MOVE_GASTRO_ACID 380
+#define MOVE_LUCKY_CHANT 381
+#define MOVE_ME_FIRST 382
+#define MOVE_COPYCAT 383
+#define MOVE_POWER_SWAP 384
+#define MOVE_GUARD_SWAP 385
+#define MOVE_PUNISHMENT 386
+#define MOVE_LAST_RESORT 387
+#define MOVE_WORRY_SEED 388
+#define MOVE_SUCKER_PUNCH 389
+#define MOVE_TOXIC_SPIKES 390
+#define MOVE_HEART_SWAP 391
+#define MOVE_AQUA_RING 392
+#define MOVE_MAGNET_RISE 393
+#define MOVE_FLARE_BLITZ 394
+#define MOVE_FORCE_PALM 395
+#define MOVE_AURA_SPHERE 396
+#define MOVE_ROCK_POLISH 397
+#define MOVE_POISON_JAB 398
+#define MOVE_DARK_PULSE 399
+#define MOVE_NIGHT_SLASH 400
+#define MOVE_AQUA_TAIL 401
+#define MOVE_SEED_BOMB 402
+#define MOVE_AIR_SLASH 403
+#define MOVE_X_SCISSOR 404
+#define MOVE_BUG_BUZZ 405
+#define MOVE_DRAGON_PULSE 406
+#define MOVE_DRAGON_RUSH 407
+#define MOVE_POWER_GEM 408
+#define MOVE_DRAIN_PUNCH 409
+#define MOVE_VACUUM_WAVE 410
+#define MOVE_FOCUS_BLAST 411
+#define MOVE_ENERGY_BALL 412
+#define MOVE_BRAVE_BIRD 413
+#define MOVE_EARTH_POWER 414
+#define MOVE_SWITCHEROO 415
+#define MOVE_GIGA_IMPACT 416
+#define MOVE_NASTY_PLOT 417
+#define MOVE_BULLET_PUNCH 418
+#define MOVE_AVALANCHE 419
+#define MOVE_ICE_SHARD 420
+#define MOVE_SHADOW_CLAW 421
+#define MOVE_THUNDER_FANG 422
+#define MOVE_ICE_FANG 423
+#define MOVE_FIRE_FANG 424
+#define MOVE_SHADOW_SNEAK 425
+#define MOVE_MUD_BOMB 426
+#define MOVE_PSYCHO_CUT 427
+#define MOVE_ZEN_HEADBUTT 428
+#define MOVE_MIRROR_SHOT 429
+#define MOVE_FLASH_CANNON 430
+#define MOVE_ROCK_CLIMB 431
+#define MOVE_DEFOG 432
+#define MOVE_TRICK_ROOM 433
+#define MOVE_DRACO_METEOR 434
+#define MOVE_DISCHARGE 435
+#define MOVE_LAVA_PLUME 436
+#define MOVE_LEAF_STORM 437
+#define MOVE_POWER_WHIP 438
+#define MOVE_ROCK_WRECKER 439
+#define MOVE_CROSS_POISON 440
+#define MOVE_GUNK_SHOT 441
+#define MOVE_IRON_HEAD 442
+#define MOVE_MAGNET_BOMB 443
+#define MOVE_STONE_EDGE 444
+#define MOVE_CAPTIVATE 445
+#define MOVE_STEALTH_ROCK 446
+#define MOVE_GRASS_KNOT 447
+#define MOVE_CHATTER 448
+#define MOVE_JUDGMENT 449
+#define MOVE_BUG_BITE 450
+#define MOVE_CHARGE_BEAM 451
+#define MOVE_WOOD_HAMMER 452
+#define MOVE_AQUA_JET 453
+#define MOVE_ATTACK_ORDER 454
+#define MOVE_DEFEND_ORDER 455
+#define MOVE_HEAL_ORDER 456
+#define MOVE_HEAD_SMASH 457
+#define MOVE_DOUBLE_HIT 458
+#define MOVE_ROAR_OF_TIME 459
+#define MOVE_SPACIAL_REND 460
+#define MOVE_LUNAR_DANCE 461
+#define MOVE_CRUSH_GRIP 462
+#define MOVE_MAGMA_STORM 463
+#define MOVE_DARK_VOID 464
+#define MOVE_SEED_FLARE 465
+#define MOVE_OMINOUS_WIND 466
+#define MOVE_SHADOW_FORCE 467
+
+#endif //POKEDIAMOND_CONSTANTS_MOVES_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
new file mode 100644
index 00000000..9accbad1
--- /dev/null
+++ b/include/constants/pokemon.h
@@ -0,0 +1,407 @@
+#ifndef POKEDIAMOND_CONSTANTS_POKEMON_H
+#define POKEDIAMOND_CONSTANTS_POKEMON_H
+
+
+// Pokemon types
+#define TYPE_NONE 255
+#define TYPE_NORMAL 0
+#define TYPE_FIGHTING 1
+#define TYPE_FLYING 2
+#define TYPE_POISON 3
+#define TYPE_GROUND 4
+#define TYPE_ROCK 5
+#define TYPE_BUG 6
+#define TYPE_GHOST 7
+#define TYPE_STEEL 8
+#define TYPE_MYSTERY 9
+#define TYPE_FIRE 10
+#define TYPE_WATER 11
+#define TYPE_GRASS 12
+#define TYPE_ELECTRIC 13
+#define TYPE_PSYCHIC 14
+#define TYPE_ICE 15
+#define TYPE_DRAGON 16
+#define TYPE_DARK 17
+#define NUMBER_OF_MON_TYPES 18
+
+// Pokemon egg groups
+#define EGG_GROUP_NONE 0
+#define EGG_GROUP_MONSTER 1
+#define EGG_GROUP_WATER_1 2
+#define EGG_GROUP_BUG 3
+#define EGG_GROUP_FLYING 4
+#define EGG_GROUP_FIELD 5
+#define EGG_GROUP_FAIRY 6
+#define EGG_GROUP_GRASS 7
+#define EGG_GROUP_HUMAN_LIKE 8
+#define EGG_GROUP_WATER_3 9
+#define EGG_GROUP_MINERAL 10
+#define EGG_GROUP_AMORPHOUS 11
+#define EGG_GROUP_WATER_2 12
+#define EGG_GROUP_DITTO 13
+#define EGG_GROUP_DRAGON 14
+#define EGG_GROUP_UNDISCOVERED 15
+
+#define EGG_GROUPS_PER_MON 2
+
+// Pokemon natures
+#define NATURE_HARDY 0
+#define NATURE_LONELY 1
+#define NATURE_BRAVE 2
+#define NATURE_ADAMANT 3
+#define NATURE_NAUGHTY 4
+#define NATURE_BOLD 5
+#define NATURE_DOCILE 6
+#define NATURE_RELAXED 7
+#define NATURE_IMPISH 8
+#define NATURE_LAX 9
+#define NATURE_TIMID 10
+#define NATURE_HASTY 11
+#define NATURE_SERIOUS 12
+#define NATURE_JOLLY 13
+#define NATURE_NAIVE 14
+#define NATURE_MODEST 15
+#define NATURE_MILD 16
+#define NATURE_QUIET 17
+#define NATURE_BASHFUL 18
+#define NATURE_RASH 19
+#define NATURE_CALM 20
+#define NATURE_GENTLE 21
+#define NATURE_SASSY 22
+#define NATURE_CAREFUL 23
+#define NATURE_QUIRKY 24
+
+// Pokemon Stats
+#define STAT_HP 0
+#define STAT_ATK 1
+#define STAT_DEF 2
+#define STAT_SPEED 3
+#define STAT_SPATK 4
+#define STAT_SPDEF 5
+#define STAT_ACC 6 // Only in battles.
+#define STAT_EVASION 7 // Only in battles.
+
+#define NUM_EV_STATS NUM_STATS - 1 // excludes HP
+#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion
+
+// Shiny odds
+#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
+
+
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_PARTY_LOCK 1
+#define MON_DATA_BOX_LOCK 2
+#define MON_DATA_CHECKSUM_FAILED 3
+#define MON_DATA_CHECKSUM 4
+#define MON_DATA_SPECIES 5
+#define MON_DATA_HELD_ITEM 6
+#define MON_DATA_OTID 7
+#define MON_DATA_EXPERIENCE 8
+#define MON_DATA_FRIENDSHIP 9
+#define MON_DATA_ABILITY 10
+#define MON_DATA_MARKINGS 11
+#define MON_DATA_GAME_LANGUAGE 12
+#define MON_DATA_HP_EV 13
+#define MON_DATA_ATK_EV 14
+#define MON_DATA_DEF_EV 15
+#define MON_DATA_SPEED_EV 16
+#define MON_DATA_SPATK_EV 17
+#define MON_DATA_SPDEF_EV 18
+#define MON_DATA_COOL 19
+#define MON_DATA_BEAUTY 20
+#define MON_DATA_CUTE 21
+#define MON_DATA_SMART 22
+#define MON_DATA_TOUGH 23
+#define MON_DATA_SHEEN 24
+#define MON_DATA_SINNOH_CHAMP_RIBBON 25
+#define MON_DATA_SINNOH_RIBBON_26 26
+#define MON_DATA_SINNOH_RIBBON_27 27
+#define MON_DATA_SINNOH_RIBBON_28 28
+#define MON_DATA_SINNOH_RIBBON_29 29
+#define MON_DATA_SINNOH_RIBBON_30 30
+#define MON_DATA_SINNOH_RIBBON_31 31
+#define MON_DATA_SINNOH_RIBBON_32 32
+#define MON_DATA_SINNOH_RIBBON_33 33
+#define MON_DATA_SINNOH_RIBBON_34 34
+#define MON_DATA_SINNOH_RIBBON_35 35
+#define MON_DATA_SINNOH_RIBBON_36 36
+#define MON_DATA_SINNOH_RIBBON_37 37
+#define MON_DATA_SINNOH_RIBBON_38 38
+#define MON_DATA_SINNOH_RIBBON_39 39
+#define MON_DATA_SINNOH_RIBBON_40 40
+#define MON_DATA_SINNOH_RIBBON_41 41
+#define MON_DATA_SINNOH_RIBBON_42 42
+#define MON_DATA_SINNOH_RIBBON_43 43
+#define MON_DATA_SINNOH_RIBBON_44 44
+#define MON_DATA_SINNOH_RIBBON_45 45
+#define MON_DATA_SINNOH_RIBBON_46 46
+#define MON_DATA_SINNOH_RIBBON_47 47
+#define MON_DATA_SINNOH_RIBBON_48 48
+#define MON_DATA_SINNOH_RIBBON_49 49
+#define MON_DATA_SINNOH_RIBBON_50 50
+#define MON_DATA_SINNOH_RIBBON_51 51
+#define MON_DATA_SINNOH_RIBBON_52 52
+#define MON_DATA_SINNOH_RIBBON_53 53
+#define MON_DATA_MOVE1 54
+#define MON_DATA_MOVE2 55
+#define MON_DATA_MOVE3 56
+#define MON_DATA_MOVE4 57
+#define MON_DATA_MOVE1PP 58
+#define MON_DATA_MOVE2PP 59
+#define MON_DATA_MOVE3PP 60
+#define MON_DATA_MOVE4PP 61
+#define MON_DATA_MOVE1PPUP 62
+#define MON_DATA_MOVE2PPUP 63
+#define MON_DATA_MOVE3PPUP 64
+#define MON_DATA_MOVE4PPUP 65
+#define MON_DATA_MOVE1MAXPP 66
+#define MON_DATA_MOVE2MAXPP 67
+#define MON_DATA_MOVE3MAXPP 68
+#define MON_DATA_MOVE4MAXPP 69
+#define MON_DATA_HP_IV 70
+#define MON_DATA_ATK_IV 71
+#define MON_DATA_DEF_IV 72
+#define MON_DATA_SPEED_IV 73
+#define MON_DATA_SPATK_IV 74
+#define MON_DATA_SPDEF_IV 75
+#define MON_DATA_IS_EGG 76
+#define MON_DATA_HAS_NICKNAME 77
+#define MON_DATA_COOL_RIBBON 78
+#define MON_DATA_HOENN_RIBBON_79 79
+#define MON_DATA_HOENN_RIBBON_80 80
+#define MON_DATA_HOENN_RIBBON_81 81
+#define MON_DATA_HOENN_RIBBON_82 82
+#define MON_DATA_HOENN_RIBBON_83 83
+#define MON_DATA_HOENN_RIBBON_84 84
+#define MON_DATA_HOENN_RIBBON_85 85
+#define MON_DATA_HOENN_RIBBON_86 86
+#define MON_DATA_HOENN_RIBBON_87 87
+#define MON_DATA_HOENN_RIBBON_88 88
+#define MON_DATA_HOENN_RIBBON_89 89
+#define MON_DATA_HOENN_RIBBON_90 90
+#define MON_DATA_HOENN_RIBBON_91 91
+#define MON_DATA_HOENN_RIBBON_92 92
+#define MON_DATA_HOENN_RIBBON_93 93
+#define MON_DATA_HOENN_RIBBON_94 94
+#define MON_DATA_HOENN_RIBBON_95 95
+#define MON_DATA_HOENN_RIBBON_96 96
+#define MON_DATA_HOENN_RIBBON_97 97
+#define MON_DATA_HOENN_RIBBON_98 98
+#define MON_DATA_HOENN_RIBBON_99 99
+#define MON_DATA_HOENN_RIBBON_100 100
+#define MON_DATA_HOENN_RIBBON_101 101
+#define MON_DATA_HOENN_RIBBON_102 102
+#define MON_DATA_HOENN_RIBBON_103 103
+#define MON_DATA_HOENN_RIBBON_104 104
+#define MON_DATA_HOENN_RIBBON_105 105
+#define MON_DATA_HOENN_RIBBON_106 106
+#define MON_DATA_HOENN_RIBBON_107 107
+#define MON_DATA_HOENN_RIBBON_108 108
+#define MON_DATA_HOENN_RIBBON_109 109
+#define MON_DATA_FATEFUL_ENCOUNTER 110
+#define MON_DATA_GENDER 111
+#define MON_DATA_FORME 112
+#define MON_DATA_RESERVED_113 113 // HGSS
+#define MON_DATA_RESERVED_114 114 // Plat
+#define MON_DATA_UNUSED_115 115
+#define MON_DATA_NICKNAME 116
+#define MON_DATA_NICKNAME_2 117
+#define MON_DATA_NICKNAME_3 118 // ???
+#define MON_DATA_NICKNAME_4 119 // ???
+#define MON_DATA_UNK_120 120
+#define MON_DATA_GAME_VERSION 121
+#define MON_DATA_SINNOH_RIBBON_122 122
+#define MON_DATA_SINNOH_RIBBON_123 123
+#define MON_DATA_SINNOH_RIBBON_124 124
+#define MON_DATA_SINNOH_RIBBON_125 125
+#define MON_DATA_SINNOH_RIBBON_126 126
+#define MON_DATA_SINNOH_RIBBON_127 127
+#define MON_DATA_SINNOH_RIBBON_128 128
+#define MON_DATA_SINNOH_RIBBON_129 129
+#define MON_DATA_SINNOH_RIBBON_130 130
+#define MON_DATA_SINNOH_RIBBON_131 131
+#define MON_DATA_SINNOH_RIBBON_132 132
+#define MON_DATA_SINNOH_RIBBON_133 133
+#define MON_DATA_SINNOH_RIBBON_134 134
+#define MON_DATA_SINNOH_RIBBON_135 135
+#define MON_DATA_SINNOH_RIBBON_136 136
+#define MON_DATA_SINNOH_RIBBON_137 137
+#define MON_DATA_SINNOH_RIBBON_138 138
+#define MON_DATA_SINNOH_RIBBON_139 139
+#define MON_DATA_SINNOH_RIBBON_140 140
+#define MON_DATA_SINNOH_RIBBON_141 141
+#define MON_DATA_SINNOH_RIBBON_142 142
+#define MON_DATA_OT_NAME 143
+#define MON_DATA_OT_NAME_2 144 // ???
+#define MON_DATA_EGG_MET_YEAR 145
+#define MON_DATA_EGG_MET_MONTH 146
+#define MON_DATA_EGG_MET_DAY 147
+#define MON_DATA_MET_YEAR 148
+#define MON_DATA_MET_MONTH 149
+#define MON_DATA_MET_DAY 150
+#define MON_DATA_EGG_MET_LOCATION 151
+#define MON_DATA_MET_LOCATION 152
+#define MON_DATA_POKERUS 153
+#define MON_DATA_POKEBALL 154
+#define MON_DATA_MET_LEVEL 155
+#define MON_DATA_MET_GENDER 156
+#define MON_DATA_ENCOUNTER_TYPE 157
+#define MON_DATA_RESERVED_158 158 // HGSS
+#define MON_DATA_STATUS 159
+#define MON_DATA_LEVEL 160
+#define MON_DATA_CAPSULE 161
+#define MON_DATA_HP 162
+#define MON_DATA_MAXHP 163
+#define MON_DATA_ATK 164
+#define MON_DATA_DEF 165
+#define MON_DATA_SPEED 166
+#define MON_DATA_SPATK 167
+#define MON_DATA_SPDEF 168
+#define MON_DATA_SEAL_STRUCT 169
+#define MON_DATA_SEAL_COORDS 170
+#define MON_DATA_SPECIES_EXISTS 171
+#define MON_DATA_SANITY_IS_EGG 172
+#define MON_DATA_SPECIES2 173
+#define MON_DATA_IVS_WORD 174
+#define MON_DATA_UNK_175 175
+#define MON_DATA_TYPE_1 176
+#define MON_DATA_TYPE_2 177
+#define MON_DATA_SPECIES_NAME 178
+
+#define MON_RATIO_MALE 0
+#define MON_RATIO_FEMALE 254
+#define MON_RATIO_UNKNOWN 255
+
+enum MonGender
+{
+ MON_MALE = 0,
+ MON_FEMALE = 1,
+ MON_GENDERLESS = 2
+};
+
+// TODO: Identify the rest of these
+enum BaseStat {
+ BASE_HP = 0,
+ BASE_ATK,
+ BASE_DEF,
+ BASE_SPEED,
+ BASE_SPATK,
+ BASE_SPDEF,
+ BASE_TYPE1,
+ BASE_TYPE2,
+ BASE_CATCH_RATE,
+ BASE_EXP_YIELD,
+ BASE_HP_YIELD,
+ BASE_ATK_YIELD,
+ BASE_DEF_YIELD,
+ BASE_SPEED_YIELD,
+ BASE_SPATK_YIELD,
+ BASE_SPDEF_YIELD,
+ BASE_ITEM_1,
+ BASE_ITEM_2,
+ BASE_GENDER_RATIO,
+ BASE_EGG_CYCLES,
+ BASE_FRIENDSHIP,
+ BASE_GROWTH_RATE,
+ BASE_EGG_GROUP_1,
+ GASE_EGG_GROUP_2,
+ BASE_ABILITY_1,
+ BASE_ABILITY_2,
+ BASE_GREAT_MARSH_RATE,
+ BASE_COLOR,
+ BASE_FLIP,
+ BASE_UNKNOWN_29,
+ BASE_UNKNOWN_30,
+ BASE_UNKNOWN_31,
+ BASE_UNKNOWN_32,
+};
+
+typedef enum {
+ EGG = 0,
+ EVENT = 0,
+ HATCHED = 0,
+ PAL_PARK = 0,
+ TALL_GRASS = 2,
+ DIALGA_GAME_EVENT = 4,
+ PALKIA_GAME_EVENT = 4,
+ CAVE = 5,
+ HALL_OF_ORIGIN = 5,
+ SURFING = 7,
+ FISHING = 7,
+ BUILDING = 9,
+ SAFARI_ZONE = 10,
+ STARTER = 12,
+ FOSSIL = 12,
+ GIFT_EEVEE = 12
+} EncounterType;
+
+typedef enum GameLanguage OriginLanguage;
+
+typedef enum {
+ ARCEUS_NORMAL = 0,
+ ARCEUS_FIST = 1,
+ ARCEUS_SKY = 2,
+ ARCEUS_TOXIC = 3,
+ ARCEUS_EARTH = 4,
+ ARCEUS_STONE = 5,
+ ARCEUS_INSECT = 6,
+ ARCEUS_SPOOKY = 7,
+ ARCEUS_IRON = 8,
+ ARCEUS_FLAME = 9,
+ ARCEUS_SPLASH = 10,
+ ARCEUS_MEADOW = 11,
+ ARCEUS_ZAP = 12,
+ ARCEUS_MIND = 13,
+ ARCEUS_ICICLE = 14,
+ ARCEUS_DRACO = 15,
+ ARCEUS_DREAD = 16,
+ BURMY_PLANT = 0,
+ BURMY_SANDY = 1,
+ BURMY_TRASH = 2,
+ DEOXYS_NORMAL = 0,
+ DEOXYS_ATTACK = 1,
+ DEOXYS_DEFENSE = 2,
+ DEOXYS_SPEED = 3,
+ GIRATINA_ALTERED = 0,
+ GIRATINA_ORIGIN = 1,
+ ROTOM_NORMAL = 0,
+ ROTOM_HEAT = 1,
+ ROTOM_WASH = 2,
+ ROTOM_FROST = 3,
+ ROTOM_FAN = 4,
+ ROTOM_MOW = 5,
+ SHAYMIN_LAND = 0,
+ SHAYMIN_SKY = 1,
+ SHELLOS_WEST = 0,
+ SHELLOS_EAST = 1,
+ UNOWN_A = 0,
+ UNOWN_B = 1,
+ UNOWN_C = 2,
+ UNOWN_D = 3,
+ UNOWN_E = 4,
+ UNOWN_F = 5,
+ UNOWN_G = 6,
+ UNOWN_H = 7,
+ UNOWN_I = 8,
+ UNOWN_J = 9,
+ UNOWN_K = 10,
+ UNOWN_L = 11,
+ UNOWN_M = 12,
+ UNOWN_N = 13,
+ UNOWN_O = 14,
+ UNOWN_P = 15,
+ UNOWN_Q = 16,
+ UNOWN_R = 17,
+ UNOWN_S = 18,
+ UNOWN_T = 19,
+ UNOWN_U = 20,
+ UNOWN_V = 21,
+ UNOWN_W = 22,
+ UNOWN_X = 23,
+ UNOWN_Y = 24,
+ UNOWN_Z = 25,
+ UNOWN_EXCLAMATION_MARK = 26,
+ UNOWN_QUESTION_MARK = 27
+} AlternateForms;
+
+#endif //POKEDIAMOND_CONSTANTS_POKEMON_H
diff --git a/include/constants/sinnoh_dex.h b/include/constants/sinnoh_dex.h
new file mode 100644
index 00000000..555ced8b
--- /dev/null
+++ b/include/constants/sinnoh_dex.h
@@ -0,0 +1,158 @@
+#ifndef POKEDIAMOND_CONSTANTS_SINNOH_DEX_H
+#define POKEDIAMOND_CONSTANTS_SINNOH_DEX_H
+
+#define SINNOH_DEX_ARCEUS 0
+#define SINNOH_DEX_TURTWIG 1
+#define SINNOH_DEX_GROTLE 2
+#define SINNOH_DEX_TORTERRA 3
+#define SINNOH_DEX_CHIMCHAR 4
+#define SINNOH_DEX_MONFERNO 5
+#define SINNOH_DEX_INFERNAPE 6
+#define SINNOH_DEX_PIPLUP 7
+#define SINNOH_DEX_PRINPLUP 8
+#define SINNOH_DEX_EMPOLEON 9
+#define SINNOH_DEX_STARLY 10
+#define SINNOH_DEX_STARAVIA 11
+#define SINNOH_DEX_STARAPTOR 12
+#define SINNOH_DEX_BIDOOF 13
+#define SINNOH_DEX_BIBAREL 14
+#define SINNOH_DEX_KRICKETOT 15
+#define SINNOH_DEX_KRICKETUNE 16
+#define SINNOH_DEX_SHINX 17
+#define SINNOH_DEX_LUXIO 18
+#define SINNOH_DEX_LUXRAY 19
+#define SINNOH_DEX_ABRA 20
+#define SINNOH_DEX_KADABRA 21
+#define SINNOH_DEX_ALAKAZAM 22
+#define SINNOH_DEX_MAGIKARP 23
+#define SINNOH_DEX_GYARADOS 24
+#define SINNOH_DEX_BUDEW 25
+#define SINNOH_DEX_ROSELIA 26
+#define SINNOH_DEX_ROSERADE 27
+#define SINNOH_DEX_ZUBAT 28
+#define SINNOH_DEX_GOLBAT 29
+#define SINNOH_DEX_CROBAT 30
+#define SINNOH_DEX_GEODUDE 31
+#define SINNOH_DEX_GRAVELER 32
+#define SINNOH_DEX_GOLEM 33
+#define SINNOH_DEX_ONIX 34
+#define SINNOH_DEX_STEELIX 35
+#define SINNOH_DEX_CRANIDOS 36
+#define SINNOH_DEX_RAMPARDOS 37
+#define SINNOH_DEX_SHIELDON 38
+#define SINNOH_DEX_BASTIODON 39
+#define SINNOH_DEX_MACHOP 40
+#define SINNOH_DEX_MACHOKE 41
+#define SINNOH_DEX_MACHAMP 42
+#define SINNOH_DEX_PSYDUCK 43
+#define SINNOH_DEX_GOLDUCK 44
+#define SINNOH_DEX_BURMY 45
+#define SINNOH_DEX_WORMADAM 46
+#define SINNOH_DEX_MOTHIM 47
+#define SINNOH_DEX_WURMPLE 48
+#define SINNOH_DEX_SILCOON 49
+#define SINNOH_DEX_BEAUTIFLY 50
+#define SINNOH_DEX_CASCOON 51
+#define SINNOH_DEX_DUSTOX 52
+#define SINNOH_DEX_COMBEE 53
+#define SINNOH_DEX_VESPIQUEN 54
+#define SINNOH_DEX_PACHIRISU 55
+#define SINNOH_DEX_BUIZEL 56
+#define SINNOH_DEX_FLOATZEL 57
+#define SINNOH_DEX_CHERUBI 58
+#define SINNOH_DEX_CHERRIM 59
+#define SINNOH_DEX_SHELLOS 60
+#define SINNOH_DEX_GASTRODON 61
+#define SINNOH_DEX_HERACROSS 62
+#define SINNOH_DEX_AIPOM 63
+#define SINNOH_DEX_AMBIPOM 64
+#define SINNOH_DEX_DRIFLOON 65
+#define SINNOH_DEX_DRIFBLIM 66
+#define SINNOH_DEX_BUNEARY 67
+#define SINNOH_DEX_LOPUNNY 68
+#define SINNOH_DEX_GASTLY 69
+#define SINNOH_DEX_HAUNTER 70
+#define SINNOH_DEX_GENGAR 71
+#define SINNOH_DEX_MISDREAVUS 72
+#define SINNOH_DEX_MISMAGIUS 73
+#define SINNOH_DEX_MURKROW 74
+#define SINNOH_DEX_HONCHKROW 75
+#define SINNOH_DEX_GLAMEOW 76
+#define SINNOH_DEX_PURUGLY 77
+#define SINNOH_DEX_GOLDEEN 78
+#define SINNOH_DEX_SEAKING 79
+#define SINNOH_DEX_BARBOACH 80
+#define SINNOH_DEX_WHISCASH 81
+#define SINNOH_DEX_CHINGLING 82
+#define SINNOH_DEX_CHIMECHO 83
+#define SINNOH_DEX_STUNKY 84
+#define SINNOH_DEX_SKUNTANK 85
+#define SINNOH_DEX_MEDITITE 86
+#define SINNOH_DEX_MEDICHAM 87
+#define SINNOH_DEX_BRONZOR 88
+#define SINNOH_DEX_BRONZONG 89
+#define SINNOH_DEX_PONYTA 90
+#define SINNOH_DEX_RAPIDASH 91
+#define SINNOH_DEX_BONSLY 92
+#define SINNOH_DEX_SUDOWOODO 93
+#define SINNOH_DEX_MIME_JR 94
+#define SINNOH_DEX_MR_MIME 95
+#define SINNOH_DEX_HAPPINY 96
+#define SINNOH_DEX_CHANSEY 97
+#define SINNOH_DEX_BLISSEY 98
+#define SINNOH_DEX_CLEFFA 99
+#define SINNOH_DEX_CLEFAIRY 100
+#define SINNOH_DEX_CLEFABLE 101
+#define SINNOH_DEX_CHATOT 102
+#define SINNOH_DEX_PICHU 103
+#define SINNOH_DEX_PIKACHU 104
+#define SINNOH_DEX_RAICHU 105
+#define SINNOH_DEX_HOOTHOOT 106
+#define SINNOH_DEX_NOCTOWL 107
+#define SINNOH_DEX_SPIRITOMB 108
+#define SINNOH_DEX_GIBLE 109
+#define SINNOH_DEX_GABITE 110
+#define SINNOH_DEX_GARCHOMP 111
+#define SINNOH_DEX_MUNCHLAX 112
+#define SINNOH_DEX_SNORLAX 113
+#define SINNOH_DEX_UNOWN 114
+#define SINNOH_DEX_RIOLU 115
+#define SINNOH_DEX_LUCARIO 116
+#define SINNOH_DEX_WOOPER 117
+#define SINNOH_DEX_QUAGSIRE 118
+#define SINNOH_DEX_WINGULL 119
+#define SINNOH_DEX_PELIPPER 120
+#define SINNOH_DEX_GIRAFARIG 121
+#define SINNOH_DEX_HIPPOPOTAS 122
+#define SINNOH_DEX_HIPPOWDON 123
+#define SINNOH_DEX_AZURILL 124
+#define SINNOH_DEX_MARILL 125
+#define SINNOH_DEX_AZUMARILL 126
+#define SINNOH_DEX_SKORUPI 127
+#define SINNOH_DEX_DRAPION 128
+#define SINNOH_DEX_CROAGUNK 129
+#define SINNOH_DEX_TOXICROAK 130
+#define SINNOH_DEX_CARNIVINE 131
+#define SINNOH_DEX_REMORAID 132
+#define SINNOH_DEX_OCTILLERY 133
+#define SINNOH_DEX_FINNEON 134
+#define SINNOH_DEX_LUMINEON 135
+#define SINNOH_DEX_TENTACOOL 136
+#define SINNOH_DEX_TENTACRUEL 137
+#define SINNOH_DEX_FEEBAS 138
+#define SINNOH_DEX_MILOTIC 139
+#define SINNOH_DEX_MANTYKE 140
+#define SINNOH_DEX_MANTINE 141
+#define SINNOH_DEX_SNOVER 142
+#define SINNOH_DEX_ABOMASNOW 143
+#define SINNOH_DEX_SNEASEL 144
+#define SINNOH_DEX_WEAVILE 145
+#define SINNOH_DEX_UXIE 146
+#define SINNOH_DEX_MESPRIT 147
+#define SINNOH_DEX_AZELF 148
+#define SINNOH_DEX_DIALGA 149
+#define SINNOH_DEX_PALKIA 150
+#define SINNOH_DEX_MANAPHY 151
+#define SINNOH_DEX_COUNT SINNOH_DEX_MANAPHY
+
+#endif //POKEDIAMOND_CONSTANTS_SINNOH_DEX_H
diff --git a/include/filesystem.h b/include/filesystem.h
index 37f73bb0..6b5a16d6 100644
--- a/include/filesystem.h
+++ b/include/filesystem.h
@@ -2,6 +2,7 @@
#define POKEDIAMOND_FILESYSTEM_H
#include "nitro/types.h"
+#include "FS_file.h"
typedef struct NARC
{
diff --git a/include/global.h b/include/global.h
index 2f31fa3d..2574c437 100644
--- a/include/global.h
+++ b/include/global.h
@@ -4,6 +4,9 @@
#include "config.h"
#include "function_target.h"
#include "nitro.h"
+#include "constants/global.h"
+
+#define NELEMS(a) (sizeof(a) / sizeof(*(a)))
enum GameVersion {
VERSION_SAPPHIRE = 1,
@@ -27,4 +30,9 @@ enum GameLanguage {
extern void ErrorHandling(void);
+#define GF_ASSERT(expr) do {if (!(expr)) ErrorHandling();} while (0)
+
+extern const enum GameLanguage gGameLanguage;
+extern const enum GameVersion gGameVersion;
+
#endif //GUARD_GLOBAL_H
diff --git a/include/math_util.h b/include/math_util.h
new file mode 100644
index 00000000..f7169956
--- /dev/null
+++ b/include/math_util.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_MATH_UTIL_H
+#define POKEDIAMOND_MATH_UTIL_H
+
+u16 rand_LC(void);
+
+#endif //POKEDIAMOND_MATH_UTIL_H
diff --git a/include/move_data.h b/include/move_data.h
new file mode 100644
index 00000000..8da864b0
--- /dev/null
+++ b/include/move_data.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_MOVE_DATA_H
+#define POKEDIAMOND_MOVE_DATA_H
+
+int FUN_0206AB30(u16 move, u8 ppUp);
+u32 FUN_0206AB18(u16 move, u32 attr);
+
+#endif //POKEDIAMOND_MOVE_DATA_H
diff --git a/include/party.h b/include/party.h
new file mode 100644
index 00000000..b6065a3f
--- /dev/null
+++ b/include/party.h
@@ -0,0 +1,19 @@
+#ifndef POKEDIAMOND_PARTY_H
+#define POKEDIAMOND_PARTY_H
+
+#include "pokemon.h"
+
+#define PARTY_SIZE 6
+
+struct PlayerParty
+{
+ u32 maxCount;
+ u32 curCount;
+ struct Pokemon mons[PARTY_SIZE];
+};
+
+BOOL PartyHasMon(struct PlayerParty * party_p, u16 species);
+int GetPartyCount(struct PlayerParty * party_p);
+struct Pokemon * GetPartyMonByIndex(struct PlayerParty * party_p, int idx);
+
+#endif //POKEDIAMOND_PARTY_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 68cc0d59..8e2eec3d 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -6,266 +6,76 @@
// Enums
#include "constants/species.h"
-
-#define MON_DATA_PERSONALITY 0
-#define MON_DATA_IS_ENCRYPTED 1
-#define MON_DATA_CONTROL_4_1 2
-#define MON_DATA_CONTROL_4_2 3
-#define MON_DATA_CHECKSUM 4
-#define MON_DATA_SPECIES 5
-#define MON_DATA_HELD_ITEM 6
-#define MON_DATA_OTID 7
-#define MON_DATA_EXPERIENCE 8
-#define MON_DATA_FRIENDSHIP 9
-#define MON_DATA_ABILITY 10
-#define MON_DATA_MARKINGS 11
-#define MON_DATA_GAME_LANGUAGE 12
-#define MON_DATA_HP_EV 13
-#define MON_DATA_ATK_EV 14
-#define MON_DATA_DEF_EV 15
-#define MON_DATA_SPEED_EV 16
-#define MON_DATA_SPATK_EV 17
-#define MON_DATA_SPDEF_EV 18
-#define MON_DATA_COOL 19
-#define MON_DATA_BEAUTY 20
-#define MON_DATA_CUTE 21
-#define MON_DATA_SMART 22
-#define MON_DATA_TOUGH 23
-#define MON_DATA_SHEEN 24
-#define MON_DATA_SINNOH_CHAMP_RIBBON 25
-// TODO: ribbon flags through 53
-#define MON_DATA_MOVE1 54
-#define MON_DATA_MOVE2 55
-#define MON_DATA_MOVE3 56
-#define MON_DATA_MOVE4 57
-#define MON_DATA_MOVE1PP 58
-#define MON_DATA_MOVE2PP 59
-#define MON_DATA_MOVE3PP 60
-#define MON_DATA_MOVE4PP 61
-#define MON_DATA_MOVE1PPUP 62
-#define MON_DATA_MOVE2PPUP 63
-#define MON_DATA_MOVE3PPUP 64
-#define MON_DATA_MOVE4PPUP 65
-#define MON_DATA_MOVE1MAXPP 66
-#define MON_DATA_MOVE2MAXPP 67
-#define MON_DATA_MOVE3MAXPP 68
-#define MON_DATA_MOVE4MAXPP 69
-#define MON_DATA_HP_IV 70
-#define MON_DATA_ATK_IV 71
-#define MON_DATA_DEF_IV 72
-#define MON_DATA_SPEED_IV 73
-#define MON_DATA_SPATK_IV 74
-#define MON_DATA_SPDEF_IV 75
-#define MON_DATA_IS_EGG 76
-#define MON_DATA_HAS_NICKNAME 77
-#define MON_DATA_COOL_RIBBON 78
-// TODO: ribbon flags through 109
-#define MON_DATA_FATEFUL_ENCOUNTER 110
-#define MON_DATA_GENDER 111
-#define MON_DATA_FORME 112
-#define MON_DATA_RESERVED_113 113 // HGSS
-#define MON_DATA_RESERVED_114 114 // Plat
-#define MON_DATA_UNUSED_115 115
-#define MON_DATA_NICKNAME 116
-#define MON_DATA_UNUSED_117 117
-#define MON_DATA_NICKNAME_2 118 // ???
-#define MON_DATA_NICKNAME_3 119 // ???
-#define MON_DATA_UNK_120 120
-#define MON_DATA_GAME_VERSION 121
-// TODO: ribbon flags 122-142
-#define MON_DATA_OT_NAME 143
-#define MON_DATA_OT_NAME_2 144 // ???
-#define MON_DATA_EGG_MET_YEAR 145
-#define MON_DATA_EGG_MET_MONTH 146
-#define MON_DATA_EGG_MET_DAY 147
-#define MON_DATA_MET_YEAR 148
-#define MON_DATA_MET_MONTH 149
-#define MON_DATA_MET_DAY 150
-#define MON_DATA_EGG_MET_LOCATION 151
-#define MON_DATA_MET_LOCATION 152
-#define MON_DATA_POKERUS 153
-#define MON_DATA_POKEBALL 154
-#define MON_DATA_MET_LEVEL 155
-#define MON_DATA_MET_GENDER 156
-#define MON_DATA_ENCOUNTER_TYPE 157
-#define MON_DATA_RESERVED_158 158 // HGSS
-#define MON_DATA_STATUS 159
-#define MON_DATA_LEVEL 160
-#define MON_DATA_CAPSULE 161
-#define MON_DATA_HP 162
-#define MON_DATA_MAXHP 163
-#define MON_DATA_ATK 164
-#define MON_DATA_DEF 165
-#define MON_DATA_SPEED 166
-#define MON_DATA_SPATK 167
-#define MON_DATA_SPDEF 168
-#define MON_DATA_SEAL_TYPES_MAYBE 169
-#define MON_DATA_SEAL_COORDS 170
-#define MON_DATA_SPECIES_EXISTS 171
-#define MON_DATA_SANITY_CHECK_172 172
-#define MON_DATA_SANITY_CHECK_173 173
-#define MON_DATA_IVS_WORD 174
-#define MON_DATA_IS_FEMALE 175
-#define MON_DATA_TYPE_1 176
-#define MON_DATA_TYPE_2 177
-#define MON_DATA_SPECIES_NAME 178
-
-// TODO: Identify the rest of these
-enum BaseStat {
- BASE_HP = 0,
- BASE_ATK,
- BASE_DEF,
- BASE_SPEED,
- BASE_SPATK,
- BASE_SPDEF,
- BASE_TYPE1,
- BASE_TYPE2,
- BASE_CATCH_RATE,
- BASE_EXP_YIELD,
- BASE_HP_YIELD,
- BASE_ATK_YIELD,
- BASE_DEF_YIELD,
- BASE_SPEED_YIELD,
- BASE_SPATK_YIELD,
- BASE_SPDEF_YIELD,
- BASE_ITEM_1 = 16,
- BASE_ITEM_2,
- BASE_GENDER_RATIO,
- BASE_EGG_CYCLES,
- BASE_FIRENDSHIP,
- BASE_GROWTH_RATE,
- BASE_EGG_GROUP_1,
- GASE_EGG_GROUP_2,
- BASE_ABILITY_1,
- BASE_ABILITY_2,
- BASE_GREAT_MARSH_RATE,
- BASE_COLOR,
- BASE_FLIP,
-};
+#include "seals.h"
+#include "constants/pokemon.h"
+#include "string16.h"
+#include "save_block_2.h"
struct BaseStats {
- u8 hp;
- u8 atk;
- u8 def;
- u8 speed;
- u8 spatk;
- u8 spdef;
- u8 types[2];
- u8 catchRate;
- u8 expYield;
- u16 hp_yield:2;
- u16 atk_yield:2;
- u16 def_yield:2;
- u16 speed_yield:2;
- u16 spatk_yield:2;
- u16 spdef_yield:2;
- u16 unkB_4:2;
- u16 padding_B_6:2;
- u16 item1;
- u16 item2;
- u8 genderRatio;
- u8 eggCycles;
- u8 friendship;
- u8 growthRate;
- u8 eggGroups[2];
- u8 abilities[2];
- u8 greatMarshRate;
- u8 color:7;
- u8 flip:1;
- u8 padding_1A[2];
- u32 unk1C;
- u32 unk20;
- u32 unk24;
- u32 unk28;
+ /* 0x00 */ u8 hp;
+ /* 0x01 */ u8 atk;
+ /* 0x02 */ u8 def;
+ /* 0x03 */ u8 speed;
+ /* 0x04 */ u8 spatk;
+ /* 0x05 */ u8 spdef;
+ /* 0x06 */ u8 types[2];
+ /* 0x08 */ u8 catchRate;
+ /* 0x09 */ u8 expYield;
+ /* 0x0A */ u16 hp_yield:2;
+ u16 atk_yield:2;
+ u16 def_yield:2;
+ u16 speed_yield:2;
+ /* 0x0B */ u16 spatk_yield:2;
+ u16 spdef_yield:2;
+ u16 padding_B_4:4;
+ /* 0x0C */ u16 item1;
+ /* 0x0E */ u16 item2;
+ /* 0x10 */ u8 genderRatio;
+ /* 0x11 */ u8 eggCycles;
+ /* 0x12 */ u8 friendship;
+ /* 0x13 */ u8 growthRate;
+ /* 0x14 */ u8 eggGroups[2];
+ /* 0x16 */ u8 abilities[2];
+ /* 0x18 */ u8 greatMarshRate;
+ /* 0x19 */ u8 color:7;
+ u8 flip:1;
+ u8 padding_1A[2];
+ /* 0x1C */ u32 unk1C;
+ /* 0x20 */ u32 unk20;
+ /* 0x24 */ u32 unk24;
+ /* 0x28 */ u32 unk28;
};
-typedef enum {
- EGG = 0,
- EVENT = 0,
- HATCHED = 0,
- PAL_PARK = 0,
- TALL_GRASS = 2,
- DIALGA_GAME_EVENT = 4,
- PALKIA_GAME_EVENT = 4,
- CAVE = 5,
- HALL_OF_ORIGIN = 5,
- SURFING = 7,
- FISHING = 7,
- BUILDING = 9,
- SAFARI_ZONE = 10,
- STARTER = 12,
- FOSSIL = 12,
- GIFT_EEVEE = 12
-} EncounterType;
-
-typedef enum GameLanguage OriginLanguage;
-
-typedef enum {
- ARCEUS_NORMAL = 0,
- ARCEUS_FIST = 8,
- ARCEUS_SKY = 16,
- ARCEUS_TOXIC = 24,
- ARCEUS_EARTH = 32,
- ARCEUS_STONE = 40,
- ARCEUS_INSECT = 48,
- ARCEUS_SPOOKY = 56,
- ARCEUS_IRON = 64,
- ARCEUS_FLAME = 72,
- ARCEUS_SPLASH = 80,
- ARCEUS_MEADOW = 88,
- ARCEUS_ZAP = 96,
- ARCEUS_MIND = 104,
- ARCEUS_ICICLE = 112,
- ARCEUS_DRACO = 120,
- ARCEUS_DREAD = 128,
- BURMY_PLANT = 0,
- BURMY_SANDY = 8,
- BURMY_TRASH = 16,
- DEOXYS_NORMAL = 0,
- DEOXYS_ATTACK = 8,
- DEOXYS_DEFENSE = 16,
- DEOXYS_SPEED = 24,
- GIRATINA_ALTERED = 0,
- GIRATINA_ORIGIN = 8,
- ROTOM_NORMAL = 0,
- ROTOM_HEAT = 8,
- ROTOM_WASH = 16,
- ROTOM_FROST = 24,
- ROTOM_FAN = 32,
- ROTOM_MOW = 40,
- SHAYMIN_LAND = 0,
- SHAYMIN_SKY = 8,
- SHELLOS_WEST = 0,
- SHELLOS_EAST = 8,
- UNOWN_A = 0,
- UNOWN_B = 8,
- UNOWN_C = 16,
- UNOWN_D = 24,
- UNOWN_E = 32,
- UNOWN_F = 40,
- UNOWN_G = 48,
- UNOWN_H = 56,
- UNOWN_I = 64,
- UNOWN_J = 72,
- UNOWN_K = 80,
- UNOWN_L = 88,
- UNOWN_M = 96,
- UNOWN_N = 104,
- UNOWN_O = 112,
- UNOWN_P = 120,
- UNOWN_Q = 128,
- UNOWN_R = 136,
- UNOWN_S = 144,
- UNOWN_T = 152,
- UNOWN_U = 160,
- UNOWN_V = 168,
- UNOWN_W = 176,
- UNOWN_X = 184,
- UNOWN_Y = 192,
- UNOWN_Z = 200,
- UNOWN_EXCLAMATION_MARK = 208,
- UNOWN_QUESTION_MARK = 216
-} AlternateForms;
+typedef enum EvoMethod
+{
+ EVO_NONE = 0,
+ EVO_FRIENDSHIP,
+ EVO_FRIENDSHIP_DAY,
+ EVO_FRIENDSHIP_NIGHT,
+ EVO_LEVEL,
+ EVO_TRADE,
+ EVO_TRADE_ITEM,
+ EVO_STONE,
+ EVO_LEVEL_ATK_GT_DEF,
+ EVO_LEVEL_ATK_EQ_DEF,
+ EVO_LEVEL_ATK_LT_DEF,
+ EVO_LEVEL_PID_LO,
+ EVO_LEVEL_PID_HI,
+ EVO_LEVEL_NINJASK,
+ EVO_LEVEL_SHEDINJA,
+ EVO_BEAUTY,
+ EVO_STONE_MALE,
+ EVO_STONE_FEMALE,
+ EVO_ITEM_DAY,
+ EVO_ITEM_NIGHT,
+ EVO_HAS_MOVE,
+ EVO_OTHER_PARTY_MON,
+ EVO_LEVEL_MALE,
+ EVO_LEVEL_FEMALE,
+ EVO_CORONET,
+ EVO_ETERNA,
+ EVO_ROUTE217,
+} EvoMethod;
// Structs
@@ -305,7 +115,7 @@ typedef struct {
/* 0x10 */ u32 hpIV:5, atkIV:5, defIV:5, spdIV:5, spatkIV:5, spdefIV:5, isEgg:1, isNicknamed:1;
// TODO: Finish HoennRibbonSet
/* 0x14 */ u32 ribbonFlags; // cool, ...
- /* 0x18 */ u8 fatefulEncounter:1, female:1, genderless:1, alternateForm:5;
+ /* 0x18 */ u8 fatefulEncounter:1, gender:2, alternateForm:5;
/* 0x19 */ u8 HGSS_shinyLeaves; // TODO: Turn into bitfield
/* 0x1A */ u16 Unused;
/* 0x1C */ u16 Platinum_EggLocation;
@@ -314,10 +124,10 @@ typedef struct {
typedef struct {
/* 0x00 */ u16 nickname[11];
- /* 0x1A */ u8 Unused;
- /* 0x1B */ u8 originGame;
+ /* 0x16 */ u8 Unused;
+ /* 0x17 */ u8 originGame;
// TODO: Finish SinnohRibbonSet2
- /* 0x1C */ u32 sinnohRibbons2; // cool, ...
+ /* 0x18 */ u64 sinnohRibbons2; // cool, ...
} PokemonDataBlockC;
typedef struct {
@@ -328,7 +138,8 @@ typedef struct {
/* 0x18 */ u16 DP_MetLocation;
/* 0x1A */ u8 pokerus;
/* 0x1B */ u8 pokeball;
- /* 0x1C */ u8 flags;
+ /* 0x1C */ u8 metLevel:7;
+ u8 metGender:1;
/* 0x1D */ u8 encounterType;
/* 0x1E */ u16 HGSS_Pokeball;
} PokemonDataBlockD;
@@ -341,26 +152,18 @@ typedef union {
} PokemonDataBlock;
struct BoxPokemon {
- /* 0x000 */ u32 personalityValue;
- /* 0x004 */ u16 no_encrypt:1;
- u16 control_4_1:1;
- u16 control_4_2:1;
+ /* 0x000 */ u32 pid;
+ /* 0x004 */ u16 party_lock:1;
+ u16 box_lock:1;
+ u16 checksum_fail:1;
u16 Unused:13; // Might be used for validity checks
/* 0x006 */ u16 checksum; // Stored checksum of pokemon
- /* 0x008 */ PokemonDataBlock box[4];
+ /* 0x008 */ PokemonDataBlock substructs[4];
};
struct PartyPokemon
{
- /* 0x000 */ struct BoxPokemon box;
- /* 0x088 */ u8 slp:3;
- u8 psn:1;
- u8 brn:1;
- u8 frz:1;
- u8 prz:1;
- u8 tox:1;
- /* 0x089 */ u8 unk89;
- /* 0x08A */ u8 filler8A[2];
+ /* 0x088 */ u32 status; // slp:3, psn:1, brn:1, frz:1, prz:1, tox:1, ...
/* 0x08C */ u8 level;
/* 0x08D */ u8 capsule;
/* 0x08E */ u16 hp;
@@ -370,7 +173,7 @@ struct PartyPokemon
/* 0x096 */ u16 speed;
/* 0x098 */ u16 spatk;
/* 0x09A */ u16 spdef;
- /* 0x09C */ u8 seal_something[0x38]; // a struct?
+ /* 0x09C */ struct SealStruct seal_something; // a struct?
/* 0x0D4 */ u8 sealCoords[0x18]; // u8 pairs?
};
@@ -379,11 +182,152 @@ struct Pokemon {
/* 0x088 */ struct PartyPokemon party;
}; // size: 0xEC
-int GetMonBaseStat_HandleFormeConversion(int species, int form, int stat_id);
-int GetMonBaseStat(int species, int stat_id);
-int GetMonExpByLevel(int species, int level);
-void LoadGrowthTable(int species, int * table);
-int GetExpByGrowthRateAndLevel(int rate, int level);
-int CalcLevelBySpeciesAndExp(int species, int experience);
+#include "party.h"
+
+struct SomeDrawPokemonStruct
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+ u8 unk8;
+ u8 filler_9[3];
+ u32 unkC;
+};
+
+struct PokeanmSub
+{
+ s8 unk0;
+ u8 unk1;
+};
+
+struct Pokeanm
+{
+ struct PokeanmSub unk0[4];
+ u8 unk8[20];
+};
+
+struct UnkStruct_02069038
+{
+ u16 unk0;
+ u16 unk2;
+ u8 unk4;
+ u8 padding;
+ struct Pokeanm anim;
+};
+
+struct Evolution
+{
+ u16 method;
+ u16 param;
+ u16 target;
+};
+
+void ZeroMonData(struct Pokemon * pokemon);
+void ZeroBoxMonData(struct BoxPokemon * boxmon);
+u32 SizeOfStructPokemon(void);
+struct Pokemon * AllocMonZeroed(u32 heap_id);
+BOOL AcquireMonLock(struct Pokemon * mon);
+BOOL ReleaseMonLock(struct Pokemon * mon, BOOL decrypt_result);
+BOOL AcquireBoxMonLock(struct BoxPokemon * mon);
+BOOL ReleaseBoxMonLock(struct BoxPokemon * mon, BOOL decrypt_result);
+void CreateMon(struct Pokemon * pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId);
+void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId);
+void CreateMonWithNature(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 nature);
+void CreateMonWithGenderNatureLetter(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter);
+u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature);
+void CreateMonWithFixedIVs(struct Pokemon * pokemon, int species, int level, int ivs, int personality);
+void CalcMonLevelAndStats(struct Pokemon * pokemon);
+void CalcMonStats(struct Pokemon * pokemon);
+#ifndef IN_POKEMON_C
+u32 GetMonData();
+u32 GetBoxMonData();
+#else
+u32 GetMonData(struct Pokemon * pokemon, int attr, void * ptr);
+u32 GetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr);
+#endif
+void SetMonData(struct Pokemon * pokemon, int attr, void * ptr);
+void SetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr);
+void AddMonData(struct Pokemon * pokemon, int attr, int amount);
+struct BaseStats * AllocAndLoadMonPersonal(int species, u32 heap_id);
+int GetPersonalAttr(struct BaseStats * baseStats, enum BaseStat attr);
+void FreeMonPersonal(struct BaseStats * personal);
+int GetMonBaseStat_HandleFormeConversion(int species, int form, enum BaseStat stat_id);
+int GetMonBaseStat(int species, enum BaseStat stat_id);
+u8 GetPercentProgressTowardsNextLevel(struct Pokemon * pokemon);
+u32 CalcMonExpToNextLevel(struct Pokemon * pokemon);
+u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon * pokemon);
+u32 GetMonExpBySpeciesAndLevel(int species, int level);
+void LoadGrowthTable(int growthRate, u32 * table);
+u32 GetExpByGrowthRateAndLevel(int rate, int level);
+int CalcMonLevel(struct Pokemon * pokemon);
+int CalcBoxMonLevel(struct BoxPokemon * boxmon);
+int CalcLevelBySpeciesAndExp(u16 species, u32 experience);
+int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 experience);
+u8 GetBoxMonNature(struct BoxPokemon * boxmon);
+u8 GetMonNature(struct Pokemon * mon);
+u8 GetNatureFromPersonality(u32 pid);
+void MonApplyFriendshipMod(struct Pokemon * pokemon, u32 kind, u32 location);
+u8 GetMonGender(struct Pokemon * pokemon);
+u8 GetBoxMonGender(struct BoxPokemon * boxmon);
+u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid);
+u8 MonIsShiny(struct Pokemon * pokemon);
+u32 GenerateShinyPersonality(u32 otid);
+void FUN_02068B70(struct SomeDrawPokemonStruct * spC, struct BoxPokemon * boxmon, u8 sp10);
+void FUN_02068C00(struct SomeDrawPokemonStruct * spC, int species, u8 gender, u8 sp10, u8 shiny, u8 forme, u32 personality);
+u8 FUN_02068E14(struct Pokemon * pokemon, u32 a1);
+u8 FUN_02068E1C(struct BoxPokemon * boxmon, u32 a1);
+u8 FUN_02068E88(int species, u8 gender, u32 a2, u8 forme, u32 pid);
+u32 GetArceusTypeByHeldItemEffect(u16 plate);
+int FUN_0206AA30(int a0);
+void FUN_02068B68(struct SomeDrawPokemonStruct * spC, struct Pokemon * pokemon, u8 sp10);
+void FUN_02068FE0(struct SomeDrawPokemonStruct * a0, u16 a1, int a2);
+void FUN_02069010(void * dest, int a1);
+void FUN_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6);
+void FUN_020690AC(struct SomeDrawPokemonStruct * a0, u32 a1);
+u32 FUN_020690C4(void);
+u32 FUN_020690C8(void);
+u8 FUN_020690CC(struct Pokemon * pokemon);
+struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon);
+u16 GetMonEvolution(struct PlayerParty * party, struct Pokemon * pokemon, u32 context, u32 usedItem, u32 * method_ret);
+u16 ReadFromPersonalPmsNarc(u16 species);
+u16 GetEggSpecies(u16 species);
+BOOL FUN_020690E8(struct Pokemon * pokemon);
+u32 FUN_02069698(struct Pokemon * pokemon, u16 move);
+void FUN_02069708(struct Pokemon * pokemon, u16 move);
+void FUN_02069718(struct BoxPokemon * boxmon, u16 move);
+void FUN_020697CC(struct Pokemon * pokemon, u16 move, u8 slot);
+u32 FUN_02069818(struct Pokemon * pokemon, u32 * r5, u16 * sp0);
+void FUN_020698E0(struct Pokemon * pokemon, int slot1, int slot2);
+void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2);
+void FUN_020699A4(struct Pokemon * pokemon, u32 slot);
+void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest);
+u8 FUN_02069AEC(struct PlayerParty * party);
+u16 FUN_02069B40(u16 species);
+u16 FUN_02069B60(u16 sinnoh_dex);
+void FUN_02069B88(struct Pokemon * src, struct Pokemon * dest);
+void FUN_02069BA0(struct Pokemon * src, struct BoxPokemon * dest);
+void FUN_02069BB4(struct BoxPokemon * src, struct BoxPokemon * dest);
+s8 FUN_02069BC8(struct Pokemon * pokemon, int flavor);
+int FUN_02069BFC(u16 species, u32 forme, u16 * dest);
+void FUN_02069C4C(struct PlayerParty * party);
+void FUN_02069D50(struct PlayerParty * party, int r5);
+void FUN_02069DC8(struct PlayerParty * party);
+BOOL FUN_02069E74(struct Pokemon * pokemon);
+BOOL FUN_02069E94(struct Pokemon * pokemon);
+void FUN_02069EC4(struct Pokemon * pokemon);
+void FUN_02069FB0(u32 r7, u32 r5, u32 r4, u32 r6, u32 sp18, u32 sp1C, u32 sp20);
+void FUN_0206A014(struct Pokemon * pokemon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5);
+void FUN_0206A094(struct Pokemon * pokemon, u32 a1, u32 a2);
+BOOL FUN_0206A13C(struct Pokemon * pokemon, u32 a1);
+void FUN_0206A1C4(struct Pokemon * pokemon);
+void FUN_0206A23C(struct Pokemon * r5, u32 personality);
+int LowestFlagNo(u32 mask);
+BOOL IsPokemonLegendaryOrMythical(u16 species);
+u16 GetLegendaryMon(u32 idx);
+BOOL FUN_0206A998(struct Pokemon * pokemon);
+BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct SaveBlock2 * sb2, u32 heap_id);
+void FUN_0206AA84(struct Pokemon * pokemon);
+void FUN_0206AAB4(struct BoxPokemon * boxmon);
#endif //POKEDIAMOND_POKEMON_H
diff --git a/include/proto.h b/include/proto.h
new file mode 100644
index 00000000..6f022d90
--- /dev/null
+++ b/include/proto.h
@@ -0,0 +1,23 @@
+#ifndef POKEDIAMOND_PROTO_H
+#define POKEDIAMOND_PROTO_H
+
+// For homeless function declarations
+
+#include "pokemon.h" // for struct definitions
+
+u16 * FUN_0200AA50(u16 species, u32 heap_id);
+void FUN_02021A74(u16 * dest, u16 * src);
+void FUN_02021A20(void * ptr);
+void FUN_02021E28(u16 * dest, u16 * src);
+void FUN_02021EF0(const u16 * src, u16 * dest, u32 count);
+u32 FUN_0206E7B8(u16 item, u32 a1, u32 a2);
+int FUN_02014C3C(u8);
+void FUN_02014C54(int, int, struct UnkStruct_02069038 *, u8);
+u32 IsNighttime(void); // is day or night
+int FUN_02005F14(int);
+void FUN_02005E80(int);
+void FUN_02005E90(int, int, int, int);
+void FUN_020056AC(int, int, int, int, int);
+void FUN_020808AC(struct BoxPokemon *, int, int, int, int);
+
+#endif //POKEDIAMOND_PROTO_H
diff --git a/include/save_block_2.h b/include/save_block_2.h
new file mode 100644
index 00000000..38e11de4
--- /dev/null
+++ b/include/save_block_2.h
@@ -0,0 +1,18 @@
+#ifndef POKEDIAMOND_SAVE_BLOCK_2_H
+#define POKEDIAMOND_SAVE_BLOCK_2_H
+
+struct SaveBlock2
+{
+ u16 playerName[OT_NAME_LENGTH + 1];
+ u32 playerId;
+ u8 filler_14[4];
+ u8 gender;
+ u8 padding[3];
+ // TODO: finish this struct
+};
+
+struct String * FUN_020239A0(struct SaveBlock2 *, u32 heap_id);
+u32 FUN_020239BC(struct SaveBlock2 *);
+u32 FUN_020239CC(struct SaveBlock2 *);
+
+#endif //POKEDIAMOND_SAVE_BLOCK_2_H
diff --git a/include/seals.h b/include/seals.h
new file mode 100644
index 00000000..8fda23b9
--- /dev/null
+++ b/include/seals.h
@@ -0,0 +1,15 @@
+#ifndef POKEDIAMOND_SEALS_H
+#define POKEDIAMOND_SEALS_H
+
+struct SealStruct
+{
+ // TODO: define
+ u8 filler_00[0x38];
+};
+
+struct SealStruct * CreateNewSealsObject(u32 heap_id);
+
+void CopySealsObject(const struct SealStruct *, struct SealStruct *);
+void FUN_02029C74(const u8 *, u8 *);
+
+#endif //POKEDIAMOND_SEALS_H
diff --git a/include/string16.h b/include/string16.h
new file mode 100644
index 00000000..7092c641
--- /dev/null
+++ b/include/string16.h
@@ -0,0 +1,17 @@
+#ifndef POKEDIAMOND_STRING16_H
+#define POKEDIAMOND_STRING16_H
+
+struct String
+{
+ u16 len;
+ u16 pos;
+ u32 magic;
+ u16 unk8;
+ u16 data[1];
+};
+
+struct String * FUN_020219F4(u32 count, u32 heap_id);
+int FUN_02021CE0(struct String *, struct String *);
+int FUN_0206AE00(int x);
+
+#endif //POKEDIAMOND_STRING16_H
diff --git a/include/string_util.h b/include/string_util.h
index 53d4e5f4..e9079229 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -7,6 +7,9 @@
#include "global.h"
+#define EOS 0xFFFF
+#define NON_DIGIT 0xE2
+
enum PrintingMode {
NORMAL,
PAD_SPACE,
diff --git a/include/text.h b/include/text.h
new file mode 100644
index 00000000..cec36a30
--- /dev/null
+++ b/include/text.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_TEXT_H
+#define POKEDIAMOND_TEXT_H
+
+void GetSpeciesName(u16 species, u32 heap_id, u16 * dest);
+
+#endif //POKEDIAMOND_TEXT_H