summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf4
-rw-r--r--arm9/asm/pokemon.s9049
-rw-r--r--arm9/asm/pokemon_s.s4490
-rw-r--r--arm9/asm/scrcmd.s30
-rw-r--r--arm9/asm/scrcmd_12.s66
-rw-r--r--arm9/asm/scrcmd_18.s114
-rw-r--r--arm9/asm/scrcmd_4.s2
-rw-r--r--arm9/asm/scrcmd_5.s10
-rw-r--r--arm9/asm/unk_0200AA80.s8
-rw-r--r--arm9/asm/unk_02023C40.s34
-rw-r--r--arm9/asm/unk_02025658.s36
-rw-r--r--arm9/asm/unk_02026CD0.s18
-rw-r--r--arm9/asm/unk_0202B034.s28
-rw-r--r--arm9/asm/unk_0202BE98.s6
-rw-r--r--arm9/asm/unk_0202C144.s4
-rw-r--r--arm9/asm/unk_02035068.s2
-rw-r--r--arm9/asm/unk_020377F0.s8
-rw-r--r--arm9/asm/unk_0204653C.s12
-rw-r--r--arm9/asm/unk_02047500.s2
-rw-r--r--arm9/asm/unk_020476CC.s10
-rw-r--r--arm9/asm/unk_0204A01C.s36
-rw-r--r--arm9/asm/unk_0204B9EC.s6
-rw-r--r--arm9/asm/unk_0204BE14.s2
-rw-r--r--arm9/asm/unk_02050E48.s2
-rw-r--r--arm9/asm/unk_02054C14.s4
-rw-r--r--arm9/asm/unk_020603B0.s6
-rw-r--r--arm9/asm/unk_02060CCC.s20
-rw-r--r--arm9/asm/unk_020653EC.s2
-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_0206B8A4.s6
-rw-r--r--arm9/asm/unk_0206BB5C.s16
-rw-r--r--arm9/asm/unk_0206C700.s50
-rw-r--r--arm9/asm/unk_0206E5B4.s730
-rw-r--r--arm9/asm/unk_0206F3FC.s72
-rw-r--r--arm9/asm/unk_02072548.s12
-rw-r--r--arm9/asm/unk_02073710.s2
-rw-r--r--arm9/asm/unk_02073DA8.s6
-rw-r--r--arm9/asm/unk_0207550C.s72
-rw-r--r--arm9/asm/unk_02079C70.s104
-rw-r--r--arm9/asm/unk_0207FD00.s162
-rw-r--r--arm9/asm/unk_02080C38.s20
-rw-r--r--arm9/asm/unk_020828BC.s20
-rw-r--r--arm9/asm/unk_020842DC.s128
-rw-r--r--arm9/asm/unk_020854E0.s26
-rw-r--r--arm9/asm/unk_020859C0.s6
-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.s10
-rw-r--r--arm9/asm/unk_02088DD8.s8
-rw-r--r--arm9/global.inc64
-rw-r--r--arm9/lib/include/MI_memory.h2
-rw-r--r--arm9/modules/05/asm/module_05.s296
-rw-r--r--arm9/modules/06/asm/module_06.s192
-rw-r--r--arm9/modules/07/asm/module_07.s24
-rw-r--r--arm9/modules/08/asm/module_08.s6
-rw-r--r--arm9/modules/09/asm/module_09.s68
-rw-r--r--arm9/modules/11/asm/module_11.s562
-rw-r--r--arm9/modules/12/asm/module_12.s88
-rw-r--r--arm9/modules/14/asm/module_14.s150
-rw-r--r--arm9/modules/16/asm/module_16.s154
-rw-r--r--arm9/modules/17/asm/module_17.s2
-rw-r--r--arm9/modules/27/asm/module_27.s18
-rw-r--r--arm9/modules/28/asm/module_28.s8
-rw-r--r--arm9/modules/35/asm/module_35.s10
-rw-r--r--arm9/modules/39/asm/module_39.s4
-rw-r--r--arm9/modules/56/asm/module_56.s8
-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.s32
-rw-r--r--arm9/modules/70/asm/module_70.s2
-rw-r--r--arm9/modules/71/asm/module_71.s38
-rw-r--r--arm9/modules/76/asm/module_76.s10
-rw-r--r--arm9/modules/80/asm/module_80.s90
-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.c2118
-rw-r--r--arm9/src/string_util.c3
-rw-r--r--include/constants/abilities.h129
-rw-r--r--include/constants/items.h448
-rw-r--r--include/filesystem.h1
-rw-r--r--include/global.h5
-rw-r--r--include/math_util.h6
-rw-r--r--include/move_data.h6
-rw-r--r--include/pokemon.h384
-rw-r--r--include/proto.h14
-rw-r--r--include/seals.h15
-rw-r--r--include/string_util.h3
-rw-r--r--include/text.h6
92 files changed, 9621 insertions, 11082 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 9fb4de49..d4544ed6 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -362,6 +362,7 @@ SECTIONS {
unk_020653EC.o (.text)
unk_02066840.o (.text)
pokemon.o (.text)
+ pokemon_s.o (.text)
unk_0206AB04.o (.text)
unk_0206ABC4.o (.text)
unk_0206B16C.o (.text)
@@ -690,6 +691,7 @@ SECTIONS {
unk_02064CA8.o (.rodata)
unk_020653EC.o (.rodata)
pokemon.o (.rodata)
+ pokemon_s.o (.rodata)
unk_0206ABC4.o (.rodata)
unk_0206B688.o (.rodata)
unk_0206BF90.o (.rodata)
@@ -796,6 +798,7 @@ SECTIONS {
unk_0205F7A0.o (.data)
unk_02060CCC.o (.data)
pokemon.o (.data)
+ pokemon_s.o (.data)
unk_02073710.o (.data)
unk_020772F0.o (.data)
unk_0207C328.o (.data)
@@ -888,6 +891,7 @@ SECTIONS {
unk_020520AC.o (.bss)
unk_02052EE8.o (.bss)
pokemon.o (.bss)
+ pokemon_s.o (.bss)
unk_020772F0.o (.bss)
unk_020893E0.o (.bss)
unk_0208A998.o (.bss)
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/pokemon_s.s b/arm9/asm/pokemon_s.s
new file mode 100644
index 00000000..82548f30
--- /dev/null
+++ b/arm9/asm/pokemon_s.s
@@ -0,0 +1,4490 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .include "constants/species.h"
+
+ .extern gGameLanguage
+ .extern gGameVersion
+ .extern sItemOdds
+ .extern sFriendshipModTable
+ .extern sLegendaryMonsList
+ .extern UNK_020F7F16
+ .extern sNatureStatMods
+
+ .section .data
+
+ .global __local_str_poketool_personal_pms_narc
+__local_str_poketool_personal_pms_narc: ; 0x02105FC8
+ .asciz "poketool/personal/pms.narc"
+
+ .text
+
+ .extern LoadGrowthTable
+ .extern GetExpByGrowthRateAndLevel
+
+ .extern BoxMonIsShiny
+
+ thumb_func_start GenerateShinyPersonality
+GenerateShinyPersonality: ; 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 AcquireBoxMonLock
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0xad
+ mov r2, #0x0
+ bl GetBoxMonData
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ bl GetBoxMonGender
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ bl BoxMonIsShiny
+ mov r1, #0x0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl GetBoxMonData
+ 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 GetBoxMonData
+ ldr r1, _02068BFC ; =SPECIES_MANAPHY
+ 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 GetBoxMonData
+ 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 ReleaseBoxMonLock
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_02068BF8: .word SPECIES_EGG
+_02068BFC: .word SPECIES_MANAPHY
+
+ 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 ; =SPECIES_CHERRIM
+ cmp r0, r1
+ bgt _02068C68
+ bge _02068D1E
+ add r6, r1, #0x0
+ sub r6, #SPECIES_CHERRIM-SPECIES_CASTFORM
+ cmp r0, r6
+ bgt _02068C36
+ sub r1, #SPECIES_CHERRIM-SPECIES_CASTFORM
+ cmp r0, r1
+ blt _02068C2E
+ b _02068D58
+_02068C2E:
+ cmp r0, #SPECIES_UNOWN
+ bne _02068C34
+ b _02068D90
+_02068C34:
+ b _02068DD4
+_02068C36:
+ add r6, r1, #0x0
+ sub r6, #SPECIES_CHERRIM-SPECIES_DEOXYS
+ cmp r0, r6
+ bgt _02068C48
+ sub r1, #SPECIES_CHERRIM-SPECIES_DEOXYS
+ cmp r0, r1
+ bne _02068C46
+ b _02068D76
+_02068C46:
+ b _02068DD4
+_02068C48:
+ add r6, r1, #0x0
+ sub r6, #SPECIES_CHERRIM-SPECIES_WORMADAM
+ cmp r0, r6
+ bgt _02068C66
+ add r6, r1, #0x0
+ sub r6, #SPECIES_CHERRIM-SPECIES_BURMY
+ cmp r0, r6
+ blt _02068C66
+ add r6, r1, #0x0
+ sub r6, #SPECIES_CHERRIM-SPECIES_BURMY
+ cmp r0, r6
+ beq _02068CAA
+ sub r1, #SPECIES_CHERRIM-SPECIES_WORMADAM
+ cmp r0, r1
+ beq _02068CC8
+_02068C66:
+ b _02068DD4
+_02068C68:
+ add r6, r1, #0x0
+ add r6, #SPECIES_ARCEUS-SPECIES_CHERRIM
+ cmp r0, r6
+ bgt _02068C8E
+ add r6, r1, #0x0
+ add r6, #SPECIES_ARCEUS-SPECIES_CHERRIM
+ cmp r0, r6
+ bge _02068D3A
+ add r6, r1, #SPECIES_GASTRODON-SPECIES_CHERRIM
+ cmp r0, r6
+ bgt _02068C8C
+ add r6, r1, #SPECIES_SHELLOS-SPECIES_CHERRIM
+ cmp r0, r6
+ blt _02068C8C
+ beq _02068CE6
+ add r1, r1, #SPECIES_GASTRODON-SPECIES_CHERRIM
+ cmp r0, r1
+ beq _02068D02
+_02068C8C:
+ b _02068DD4
+_02068C8E:
+ add r6, r1, #0x0
+ add r6, #SPECIES_EGG-SPECIES_CHERRIM
+ cmp r0, r6
+ bgt _02068CA0
+ add r1, #SPECIES_EGG-SPECIES_CHERRIM
+ cmp r0, r1
+ bne _02068C9E
+ b _02068DAC
+_02068C9E:
+ b _02068DD4
+_02068CA0:
+ add r1, #SPECIES_MANAPHY_EGG-SPECIES_CHERRIM
+ 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 ; =SPECIES_SPINDA
+ 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 SPECIES_CHERRIM
+_02068E10: .word SPECIES_SPINDA
+
+ 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 GetBoxMonData
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ bl GetBoxMonGender
+ mov r1, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl GetBoxMonData
+ 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 GetBoxMonData
+ ldr r1, _02068E84 ; =SPECIES_MANAPHY
+ 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 GetBoxMonData
+ 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 ; =SPECIES_CHERRIM
+ 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 SPECIES_CHERRIM
+
+ 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 GetBoxMonData
+ 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 GetMonData
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl GetMonData
+ add r1, r0, #0x1
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ mov r2, #0x0
+ bl GetMonData
+ 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 SetMonData
+_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 SetMonData
+ 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 GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x2c]
+ add r0, r7, #0x0
+ mov r1, #0x6
+ add r2, r6, #0x0
+ bl GetMonData
+ 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 GetMonData
+ str r0, [sp, #0x30]
+ add r0, r7, #0x0
+ mov r1, #0x14
+ add r2, r6, #0x0
+ bl GetMonData
+ 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 GetMonData
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ add r0, r7, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl GetMonData
+ 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 GetMonData
+ str r0, [sp, #0x34]
+ add r0, r7, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl GetMonData
+ 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 GetMonData
+ str r0, [sp, #0x38]
+ add r0, r7, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl GetMonData
+ 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 GetMonData
+ str r0, [sp, #0x3c]
+ add r0, r7, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl GetMonData
+ 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 GetMonData
+ 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 GetMonData
+ 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 GetMonData
+ 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 GetMonData
+ 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 AcquireBoxMonLock
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl GetBoxMonData
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl GetBoxMonData
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl CalcBoxMonLevel
+ 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 ReleaseBoxMonLock
+ 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 AcquireBoxMonLock
+ 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 GetBoxMonData
+ 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 ReleaseBoxMonLock
+ 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 AcquireBoxMonLock
+ 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 GetBoxMonData
+ ldr r1, [sp, #0x4]
+ mov r2, #0x0
+ strh r0, [r1, #0x0]
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3b
+ bl GetBoxMonData
+ add r1, r4, #0x0
+ strb r0, [r7, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x3f
+ mov r2, #0x0
+ bl GetBoxMonData
+ 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 SetBoxMonData
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, r7, #0x0
+ bl SetBoxMonData
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ add r2, r6, #0x0
+ bl SetBoxMonData
+ 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 ReleaseBoxMonLock
+ 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 SetBoxMonData
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl GetBoxMonData
+ 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 SetBoxMonData
+ 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 GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl GetMonData
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl GetMonData
+ 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 GetBoxMonData
+ add r1, sp, #0x0
+ strh r0, [r1, #0x4]
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ mov r2, #0x0
+ bl GetBoxMonData
+ add r1, sp, #0x0
+ strb r0, [r1, #0x2]
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl GetBoxMonData
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl GetBoxMonData
+ add r1, sp, #0x0
+ strh r0, [r1, #0x6]
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ mov r2, #0x0
+ bl GetBoxMonData
+ add r1, sp, #0x0
+ strb r0, [r1, #0x3]
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl GetBoxMonData
+ 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 SetBoxMonData
+ add r1, r4, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, #0x3
+ bl SetBoxMonData
+ add r4, #0x3e
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, #0x1
+ bl SetBoxMonData
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ add r2, sp, #0x4
+ bl SetBoxMonData
+ add r1, r6, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, #0x2
+ bl SetBoxMonData
+ add r6, #0x3e
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, sp, #0x0
+ bl SetBoxMonData
+ 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 GetMonData
+ add r1, r4, #0x0
+ strh r0, [r6, #0x2]
+ add r0, r5, #0x0
+ add r1, #0x3b
+ mov r2, #0x0
+ bl GetMonData
+ add r1, r4, #0x0
+ strb r0, [r6, #0x1]
+ add r0, r5, #0x0
+ add r1, #0x3f
+ mov r2, #0x0
+ bl GetMonData
+ add r1, r4, #0x0
+ add r2, sp, #0x0
+ strb r0, [r6, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x36
+ add r2, #0x2
+ bl SetMonData
+ add r1, r4, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, #0x1
+ bl SetMonData
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ add r2, sp, #0x0
+ bl SetMonData
+ 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 SetMonData
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x3d
+ add r2, #0x1
+ bl SetMonData
+ add r0, r5, #0x0
+ mov r1, #0x41
+ add r2, sp, #0x0
+ bl SetMonData
+ 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 GetMonData
+ 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 SetMonData
+ add r0, r4, #0x0
+ mov r1, #0xa2
+ add r2, sp, #0x0
+ bl SetMonData
+ add r0, r4, #0x0
+ mov r1, #0xa3
+ add r2, sp, #0x0
+ bl SetMonData
+ mov r0, #0x0
+ bl CreateNewSealsObject
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xa9
+ add r2, r5, #0x0
+ bl SetMonData
+ add r0, r5, #0x0
+ bl FreeToHeap
+ add r0, r4, #0x0
+ mov r1, #0xa1
+ add r2, sp, #0x0
+ bl SetMonData
+ 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 SetMonData
+ add r0, r4, #0x0
+ bl CalcMonLevelAndStats
+ 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 GetMonData
+ cmp r0, #0x0
+ beq _02069B36
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl GetMonData
+ cmp r0, #0x0
+ bne _02069B36
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl GetMonData
+ 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 GetBoxMonData
+ 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 GetMonData
+ cmp r0, #0x0
+ beq _02069C70
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl GetMonData
+ 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 SetMonData
+_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 GetMonData
+ 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 GetMonData
+ 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 GetMonData
+ cmp r0, #0x0
+ beq _02069DBA
+ add r0, r7, #0x0
+ mov r1, #0x99
+ mov r2, #0x0
+ bl GetMonData
+ 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 SetMonData
+_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 GetMonData
+ cmp r0, #0x0
+ beq _02069E6A
+ add r0, r6, #0x0
+ mov r1, #0x99
+ mov r2, #0x0
+ bl GetMonData
+ 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 GetMonData
+ mov r1, #0xf0
+ tst r0, r1
+ bne _02069E40
+ add r0, r6, #0x0
+ mov r1, #0x99
+ add r2, sp, #0x4
+ bl SetMonData
+_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 GetMonData
+ mov r1, #0xf0
+ tst r0, r1
+ bne _02069E6A
+ add r0, r6, #0x0
+ mov r1, #0x99
+ add r2, sp, #0x4
+ bl SetMonData
+ 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 GetBoxMonData
+ 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 GetBoxMonData
+ 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 GetBoxMonData
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa
+ mov r2, #0x0
+ bl GetBoxMonData
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl GetBoxMonData
+ 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 SetBoxMonData
+_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 GetMonData
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ add r2, sp, #0x8
+ bl SetMonData
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x9f
+ add r2, sp, #0x8
+ bl SetMonData
+_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 SetBoxMonData
+ add r0, r4, #0x0
+ mov r1, #0x9a
+ add r2, sp, #0x18
+ bl SetBoxMonData
+ add r0, r4, #0x0
+ mov r1, #0x9d
+ add r2, sp, #0x20
+ bl SetBoxMonData
+ 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 GetMonData
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl GetMonData
+ 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 SetMonData
+ 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 SetMonData
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0206A126:
+ add r0, r5, #0x0
+ mov r1, #0x6
+ bl SetMonData
+_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 GetBoxMonData
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl GetBoxMonData
+ 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 AcquireBoxMonLock
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl GetBoxMonData
+ mov r1, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl GetBoxMonData
+ 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 SetBoxMonData
+ b _0206A230
+_0206A21A:
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x4
+ bl SetBoxMonData
+ b _0206A230
+_0206A226:
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x4
+ bl SetBoxMonData
+_0206A230:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl ReleaseBoxMonLock
+ 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 GetMonData
+ 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 GetBoxMonData
+ 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 GetBoxMonData
+ 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 GetBoxMonData
+ 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 SetMonData
+ add r2, sp, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xaa
+ add r2, #0x1
+ bl SetMonData
+ 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 AcquireBoxMonLock
+ 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 GetBoxMonData
+ cmp r0, #0x0
+ beq _0206AAF0
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x42
+ mov r2, #0x0
+ bl GetBoxMonData
+ add r1, r4, #0x0
+ strb r0, [r6, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, sp, #0x4
+ bl SetBoxMonData
+_0206AAF0:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _0206AAC6
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ReleaseBoxMonLock
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index 275875f4..aee5d3ff 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -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
@@ -5530,7 +5530,7 @@ FUN_0203C520: ; 0x0203C520
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
@@ -10085,32 +10085,32 @@ FUN_0203E9CC: ; 0x0203E9CC
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]
@@ -10196,7 +10196,7 @@ FUN_0203EAB0: ; 0x0203EAB0
bl FUN_0206B9B0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r5, #0x0
@@ -10720,16 +10720,16 @@ _0203EF18:
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
@@ -10786,12 +10786,12 @@ _0203EFA2:
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..3c0ac2f0 100644
--- a/arm9/asm/scrcmd_12.s
+++ b/arm9/asm/scrcmd_12.s
@@ -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..4b248a90 100644
--- a/arm9/asm/scrcmd_18.s
+++ b/arm9/asm/scrcmd_18.s
@@ -95,13 +95,13 @@ FUN_0204434C: ; 0x0204434C
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
@@ -141,7 +141,7 @@ FUN_020443A8: ; 0x020443A8
bl FUN_0206B9B0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r7, #0x0
@@ -294,7 +294,7 @@ FUN_020444F4: ; 0x020444F4
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:
@@ -375,31 +375,31 @@ _020445E4:
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:
@@ -493,13 +493,13 @@ _020446EA:
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
@@ -549,13 +549,13 @@ FUN_02044730: ; 0x02044730
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
@@ -601,7 +601,7 @@ _020447D2:
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}
@@ -655,11 +655,11 @@ _02044848:
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
@@ -707,7 +707,7 @@ FUN_0204488C: ; 0x0204488C
bl FUN_0206B9B0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -748,7 +748,7 @@ FUN_020448D4: ; 0x020448D4
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}
@@ -838,7 +838,7 @@ FUN_020449A4: ; 0x020449A4
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}
@@ -894,7 +894,7 @@ FUN_02044A0C: ; 0x02044A0C
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}
@@ -956,12 +956,12 @@ FUN_02044A94: ; 0x02044A94
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}
@@ -1016,7 +1016,7 @@ _02044B5A:
bl FUN_0206B9B0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044B74
add r4, r4, #0x1
@@ -1072,13 +1072,13 @@ _02044BC8:
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
@@ -1128,13 +1128,13 @@ _02044C44:
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
@@ -1181,7 +1181,7 @@ _02044CB6:
bl FUN_0206B9B0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044CD0
add r4, r4, #0x1
@@ -1226,7 +1226,7 @@ _02044D12:
bl FUN_0206B9B0
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044D32
ldr r0, [sp, #0x0]
@@ -1272,7 +1272,7 @@ FUN_02044D44: ; 0x02044D44
bl FUN_0206B9B0
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -1305,7 +1305,7 @@ FUN_02044D8C: ; 0x02044D8C
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
@@ -1424,7 +1424,7 @@ FUN_02044E78: ; 0x02044E78
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}
@@ -1457,7 +1457,7 @@ FUN_02044ED8: ; 0x02044ED8
bl FUN_0206B9B0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -1484,7 +1484,7 @@ FUN_02044F20: ; 0x02044F20
strh r2, [r1, #0x0]
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
pop {r3-r5, pc}
@@ -1527,13 +1527,13 @@ _02044F9E:
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]
@@ -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
@@ -1653,7 +1653,7 @@ _020450A6:
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]
@@ -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}
@@ -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}
@@ -1821,13 +1821,13 @@ _02045212:
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_4.s b/arm9/asm/scrcmd_4.s
index 7310f545..ad51e8aa 100644
--- a/arm9/asm/scrcmd_4.s
+++ b/arm9/asm/scrcmd_4.s
@@ -947,7 +947,7 @@ FUN_02040E4C: ; 0x02040E4C
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..0a13ac22 100644
--- a/arm9/asm/scrcmd_5.s
+++ b/arm9/asm/scrcmd_5.s
@@ -91,13 +91,13 @@ _0204123C:
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/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_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..b18eca9c 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
@@ -120,19 +120,19 @@ _0202572A:
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
@@ -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..1f26f48a 100644
--- a/arm9/asm/unk_0202B034.s
+++ b/arm9/asm/unk_0202B034.s
@@ -79,65 +79,65 @@ _0202B0BA:
add r1, r7, #0x0
bl FUN_0206B9B0
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..3b0e21b2 100644
--- a/arm9/asm/unk_02035068.s
+++ b/arm9/asm/unk_02035068.s
@@ -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
diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s
index 1b513296..0c8fe8c6 100644
--- a/arm9/asm/unk_020377F0.s
+++ b/arm9/asm/unk_020377F0.s
@@ -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]
@@ -1910,7 +1910,7 @@ _02038590:
ldr r2, [r4, #0xc]
mov r1, #0x75
add r2, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
pop {r3-r5, pc}
_020385A8:
ldr r0, [r5, #0xc]
@@ -1977,13 +1977,13 @@ _02038620:
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..cc6edb17 100644
--- a/arm9/asm/unk_0204653C.s
+++ b/arm9/asm/unk_0204653C.s
@@ -1714,7 +1714,7 @@ _0204732A:
bl FUN_0206B9B0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
mov r0, #0x0
bl FUN_0206BB48
@@ -1761,7 +1761,7 @@ _02047390:
bl FUN_0206B9B0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
mov r0, #0x0
bl FUN_0206BB48
@@ -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]
@@ -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..619b8594 100644
--- a/arm9/asm/unk_020476CC.s
+++ b/arm9/asm/unk_020476CC.s
@@ -667,7 +667,7 @@ _02047C40:
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
diff --git a/arm9/asm/unk_0204A01C.s b/arm9/asm/unk_0204A01C.s
index 83324f37..5ea5d8c5 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
@@ -155,31 +155,31 @@ _0204A14A:
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:
@@ -265,7 +265,7 @@ _0204A21C:
mov r1, #0x4c
mov r2, #0x0
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A236
add r0, r7, #0x0
@@ -314,13 +314,13 @@ _0204A272:
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
@@ -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_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..08d3b46d 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -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..a2114d7c 100644
--- a/arm9/asm/unk_02054C14.s
+++ b/arm9/asm/unk_02054C14.s
@@ -302,7 +302,7 @@ _02054E02:
bl FUN_0206B9B0
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02054E1E
add r0, r4, #0x0
@@ -338,7 +338,7 @@ _02054E4A:
bl FUN_0206B9B0
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_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_020653EC.s b/arm9/asm/unk_020653EC.s
index 2aea9e30..cc2e0ae8 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]
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_0206B8A4.s b/arm9/asm/unk_0206B8A4.s
index 6938e252..aa6b8a28 100644
--- a/arm9/asm/unk_0206B8A4.s
+++ b/arm9/asm/unk_0206B8A4.s
@@ -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:
@@ -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/unk_0206BB5C.s b/arm9/asm/unk_0206BB5C.s
index 70465dd6..29d28032 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
@@ -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]
@@ -427,12 +427,12 @@ _0206BE72:
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..270bcd79 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
@@ -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..984a657d 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -1681,7 +1681,7 @@ _020700BC:
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
@@ -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
@@ -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
@@ -5249,7 +5249,7 @@ _02071D14:
add r2, sp, #0x0
str r1, [sp, #0x0]
mov r1, #0xa2
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
pop {r3-r7, pc}
_02071D30:
@@ -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
diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s
index 8c630d8e..8b491bc6 100644
--- a/arm9/asm/unk_02072548.s
+++ b/arm9/asm/unk_02072548.s
@@ -1987,37 +1987,37 @@ FUN_020734C0: ; 0x020734C0
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..b7a572da 100644
--- a/arm9/asm/unk_02073710.s
+++ b/arm9/asm/unk_02073710.s
@@ -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..94f4426e 100644
--- a/arm9/asm/unk_02073DA8.s
+++ b/arm9/asm/unk_02073DA8.s
@@ -244,7 +244,7 @@ _02073F66:
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
@@ -631,7 +631,7 @@ FUN_020742A8: ; 0x020742A8
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
@@ -2386,7 +2386,7 @@ FUN_02075118: ; 0x02075118
bl FUN_0206B9B0
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..ca869d5a 100644
--- a/arm9/asm/unk_0207550C.s
+++ b/arm9/asm/unk_0207550C.s
@@ -1049,49 +1049,49 @@ FUN_02075DC0: ; 0x02075DC0
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
@@ -1247,7 +1247,7 @@ FUN_02075F60: ; 0x02075F60
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]
@@ -1375,7 +1375,7 @@ FUN_020760A0: ; 0x020760A0
bl FUN_0206B9B0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02076134 ; =0x00000B25
add r4, r0, #0x0
ldrb r2, [r5, r1]
@@ -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]
@@ -1649,7 +1649,7 @@ _020762DC:
bl FUN_0206B9B0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, _020763E0 ; =0x00000B25
add r5, r0, #0x0
ldr r0, _02076400 ; =0x00000706
@@ -1786,38 +1786,38 @@ FUN_0207640C: ; 0x0207640C
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
@@ -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]
@@ -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
@@ -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}
@@ -3142,7 +3142,7 @@ FUN_02076FB0: ; 0x02076FB0
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
@@ -3379,7 +3379,7 @@ _0207716A:
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..8b972fcc 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
@@ -3173,13 +3173,13 @@ _0207B58E:
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
@@ -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..bf8c6901 100644
--- a/arm9/asm/unk_02080C38.s
+++ b/arm9/asm/unk_02080C38.s
@@ -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..fa59f95c 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
@@ -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
@@ -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
@@ -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}
@@ -1800,24 +1800,24 @@ _02085154:
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..8eb483b3 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
@@ -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..835e4fea 100644
--- a/arm9/asm/unk_02087D00.s
+++ b/arm9/asm/unk_02087D00.s
@@ -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..c033aa3e 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -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
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..ea4a9191 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -3290,7 +3290,7 @@ _021D8FF6:
bl FUN_0206B9B0
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]
@@ -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
@@ -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
@@ -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
@@ -44691,7 +44691,7 @@ _021ED1A2:
bl FUN_0206B9B0
add r1, r7, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021ED1D6
add r0, r5, #0
@@ -44699,7 +44699,7 @@ _021ED1A2:
bl FUN_0206B9B0
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]
@@ -45027,19 +45027,19 @@ _021ED430:
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
@@ -45090,13 +45090,13 @@ _021ED4AC:
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
@@ -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
@@ -58279,7 +58279,7 @@ MOD05_021F3A18: ; 0x021F3A18
mov r1, #5
mov r2, #0
str r0, [sp]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r0, [sp]
@@ -58444,7 +58444,7 @@ MOD05_021F3B7C: ; 0x021F3B7C
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
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 2f478ef3..a857283f 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -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:
@@ -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
@@ -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
@@ -19758,19 +19758,19 @@ _02243312:
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
@@ -20287,12 +20287,12 @@ _02243726:
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
@@ -20338,12 +20338,12 @@ _0224379C:
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
@@ -21457,13 +21457,13 @@ _02243FFA:
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
@@ -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
@@ -22157,22 +22157,22 @@ _022445A6:
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
@@ -22348,7 +22348,7 @@ _0224471C:
bl FUN_0206B9B0
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]
@@ -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]
@@ -31018,7 +31018,7 @@ MOD06_0224891C: ; 0x0224891C
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..5f048017 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -2333,13 +2333,13 @@ _0221312A:
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
@@ -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
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..26c682ce 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]
@@ -2441,7 +2441,7 @@ _022131E2:
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]
@@ -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]
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index dd2316a4..f8a593a1 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -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
@@ -2024,19 +2024,19 @@ _0222E76C:
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:
@@ -2129,19 +2129,19 @@ _0222E848:
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:
@@ -2255,38 +2255,38 @@ _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:
@@ -2355,19 +2355,19 @@ _0222EA22:
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:
@@ -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:
@@ -2582,19 +2582,19 @@ _0222EBF6:
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:
@@ -2707,38 +2707,38 @@ _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:
@@ -2810,19 +2810,19 @@ _0222EDD2:
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:
@@ -2865,7 +2865,7 @@ _0222EE3E:
add r2, r4, #0
mov r1, #0x8f
add r2, #0xf4
- bl GetMonDataEncrypted
+ bl GetMonData
_0222EE5A:
ldr r1, [r4, #0x2c]
mov r0, #1
@@ -2898,7 +2898,7 @@ _0222EE8C:
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
@@ -2920,7 +2920,7 @@ _0222EEBC:
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
@@ -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
@@ -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
@@ -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
@@ -18484,19 +18484,19 @@ _02236794:
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
@@ -18537,19 +18537,19 @@ _022367EA:
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
@@ -25362,20 +25362,20 @@ _02239E2A:
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
@@ -25411,19 +25411,19 @@ _02239E90:
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]
@@ -25458,20 +25458,20 @@ _02239EF8:
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
@@ -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
@@ -27992,7 +27992,7 @@ MOD11_0223B2DC: ; 0x0223B2DC
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
@@ -41623,20 +41623,20 @@ _02241DFE:
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]
@@ -41710,20 +41710,20 @@ _02241EB4:
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
@@ -41915,20 +41915,20 @@ _02242056:
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
@@ -41995,20 +41995,20 @@ _022420FE:
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
@@ -42030,19 +42030,19 @@ _0224214A:
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]
@@ -42099,20 +42099,20 @@ _022421DC:
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
@@ -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
@@ -48649,7 +48649,7 @@ _022453A4:
bl FUN_0206B9B0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022453BA
add r6, r6, #1
@@ -48706,7 +48706,7 @@ _02245418:
bl FUN_0206B9B0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224542E
add r6, r6, #1
@@ -52136,19 +52136,19 @@ _02246E76:
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
@@ -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
@@ -65596,13 +65596,13 @@ _0224D466:
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,7 +65622,7 @@ _0224D4A8:
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_0224D4B4:
add r0, r6, #0
@@ -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]
@@ -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]
@@ -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]
@@ -81287,7 +81287,7 @@ _0225523A:
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
@@ -81388,7 +81388,7 @@ _02255304:
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
@@ -81464,7 +81464,7 @@ _022553A0:
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
@@ -81530,7 +81530,7 @@ _02255428:
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
@@ -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]
@@ -84470,7 +84470,7 @@ _02256A80:
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
@@ -84535,7 +84535,7 @@ _02256B02:
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
@@ -84611,7 +84611,7 @@ _02256B9A:
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
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..0b764ed1 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -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
@@ -4713,25 +4713,25 @@ _021D9B9E:
add r1, r6, #0
bl FUN_0206B9B0
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
@@ -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}
@@ -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]
@@ -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
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 3191e90c..dfa30774 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]
@@ -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
@@ -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
@@ -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]
@@ -62876,19 +62876,19 @@ _021F4AA8:
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
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..ee9a4bd1 100644
--- a/arm9/modules/27/asm/module_27.s
+++ b/arm9/modules/27/asm/module_27.s
@@ -305,7 +305,7 @@ _02254A62:
add r1, r6, #0
bl FUN_0206B9B0
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..e4a0b678 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -86,18 +86,18 @@ _022548D6:
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..863492a4 100644
--- a/arm9/modules/39/asm/module_39.s
+++ b/arm9/modules/39/asm/module_39.s
@@ -85,12 +85,12 @@ _022548CC:
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..a4bf2048 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -225,13 +225,13 @@ _02211FA2:
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
@@ -2005,13 +2005,13 @@ _02212E52:
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..32eb8847 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -64,7 +64,7 @@ _0222D63A:
bl FUN_0206B9B0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222D65E
ldr r0, [r4, #4]
@@ -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
@@ -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..e9d79012 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -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
@@ -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
@@ -2697,7 +2697,7 @@ MOD71_0222EC5C: ; 0x0222EC5C
bl FUN_0206B9B0
mov r1, #0x76
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0
mov r1, #0
bl FUN_02019620
@@ -2731,7 +2731,7 @@ _0222ECB6:
bl FUN_0206B9B0
mov r1, #0x4d
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ECCE
mov r0, #2
@@ -2932,7 +2932,7 @@ _0222EE14:
bl FUN_0206B9B0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
mov r0, #1
@@ -2978,7 +2978,7 @@ _0222EEA6:
bl FUN_0206B9B0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, #0x20
lsl r0, r0, #0x10
lsl r4, r5, #4
@@ -6338,7 +6338,7 @@ MOD71_022309E8: ; 0x022309E8
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
@@ -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
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..8b553253 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -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
@@ -9979,7 +9979,7 @@ _022325CE:
bl FUN_0206B9B0
mov r1, #0xa1
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022325FE
mov r0, #0xe
@@ -10219,7 +10219,7 @@ _022327CE:
bl FUN_0206B9B0
mov r1, #0xa1
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022327FE
mov r0, #0xb
@@ -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
@@ -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
@@ -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]
@@ -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]
@@ -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
@@ -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
@@ -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]
@@ -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
@@ -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
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..58030ee1
--- /dev/null
+++ b/arm9/src/pokemon.c
@@ -0,0 +1,2118 @@
+#include "global.h"
+#define IN_POKEMON_C
+#include "proto.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"
+
+#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 LoadMonPersonal(int species, struct BaseStats * personal);
+
+int ResolveMonForme(int species, int forme);
+void MonEncryptSegment(void * datap, u32 size, u32 key);
+void MonDecryptSegment(void * datap, u32 size, u32 key);
+u16 MonEncryptionLCRNG(u32 * seed);
+u16 CalcMonChecksum(void * datap, u32 size);
+void InitBoxMonMoveset(struct BoxPokemon * boxmon);
+PokemonDataBlock * GetSubstruct(struct BoxPokemon * boxmon, u32 personality, u32 which_struct);
+void LoadMonBaseStats_HandleAlternateForme(u32 species, u32 forme, struct BaseStats * baseStats);
+
+#define ENCRY_ARGS_PTY(mon) &(mon)->party, sizeof((mon)->party), (mon)->box.pid
+#define ENCRY_ARGS_BOX(boxmon) &(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((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(&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 = 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 = 4;
+ 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 = GetMonBaseStat(species, BASE_ABILITY_1);
+ iv = 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 = 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), newAtk, 1);
+ SetMonData(pokemon, MON_DATA_ATK, &newAtk);
+
+ newDef = (baseStats->def * 2 + defIv + defEv / 4) * level / 100 + 5;
+ newDef = ModifyStatByNature(GetMonNature(pokemon), newDef, 2);
+ SetMonData(pokemon, MON_DATA_DEF, &newDef);
+
+ newSpeed = (baseStats->speed * 2 + speedIv + speedEv / 4) * level / 100 + 5;
+ newSpeed = ModifyStatByNature(GetMonNature(pokemon), newSpeed, 3);
+ SetMonData(pokemon, MON_DATA_SPEED, &newSpeed);
+
+ newSpatk = (baseStats->spatk * 2 + spatkIv + spatkEv / 4) * level / 100 + 5;
+ newSpatk = ModifyStatByNature(GetMonNature(pokemon), newSpatk, 4);
+ SetMonData(pokemon, MON_DATA_SPATK, &newSpatk);
+
+ newSpdef = (baseStats->spdef * 2 + spdefIv + spdefEv / 4) * level / 100 + 5;
+ newSpdef = ModifyStatByNature(GetMonNature(pokemon), 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 = 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 = 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 = GetArceusTypeByPlate(FUN_0206E7B8(blockA->heldItem, 1, 0));
+ else
+ {
+ ret = GetMonBaseStat_HandleFormeConversion(blockA->species, blockB->alternateForm, 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;
+ u8 iv;
+
+ 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 = 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] = 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 = baseStats->unk1C;
+ break;
+ case BASE_UNKNOWN_30:
+ ret = baseStats->unk20;
+ break;
+ case BASE_UNKNOWN_31:
+ ret = baseStats->unk24;
+ break;
+ case BASE_UNKNOWN_32:
+ ret = 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 = GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ u8 level = 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 100 * (cur - lo) / (hi - lo);
+}
+
+u32 CalcMonExpToNextLevel(struct Pokemon * pokemon)
+{
+ return CalcBoxMonExpToNextLevel(&pokemon->box);
+}
+
+u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon)
+{
+ u16 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ u16 level = 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 = GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ int level = 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 = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ int exp = GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL);
+ ReleaseBoxMonLock(boxmon, decry);
+ return CalcLevelBySpeciesAndExp(species, 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)
+{
+ 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 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)(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)(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 = GetMonData(pokemon, MON_DATA_SPECIES2, NULL);
+ if (species == SPECIES_NONE || species == SPECIES_EGG)
+ return;
+
+ effect = FUN_0206E7B8(GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL), 1, 0);
+ r4 = 0;
+ friendship = 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 = 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 = 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)
+{
+ u8 ratio = 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);
+}
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/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/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..35d0c3aa 100644
--- a/include/global.h
+++ b/include/global.h
@@ -27,4 +27,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..975bcf8d
--- /dev/null
+++ b/include/move_data.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_MOVE_DATA_H
+#define POKEDIAMOND_MOVE_DATA_H
+
+int FUN_0206AB30(u16 move, u8 ppUp);
+
+#endif //POKEDIAMOND_MOVE_DATA_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 68cc0d59..db15ac14 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -6,11 +6,12 @@
// Enums
#include "constants/species.h"
+#include "seals.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_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
@@ -33,7 +34,34 @@
#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_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
@@ -59,7 +87,37 @@
#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_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
@@ -67,12 +125,32 @@
#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_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
-// TODO: ribbon flags 122-142
+#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
@@ -99,17 +177,31 @@
#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_STRUCT 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_SANITY_IS_EGG 172
+#define MON_DATA_SPECIES2 173
#define MON_DATA_IVS_WORD 174
-#define MON_DATA_IS_FEMALE 175
+#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
+
+#define POKEMON_NAME_LENGTH 10
+#define OT_NAME_LENGTH 7
+
+enum MonGender
+{
+ MON_MALE = 0,
+ MON_FEMALE = 1,
+ MON_GENDERLESS = 2
+};
+
// TODO: Identify the rest of these
enum BaseStat {
BASE_HP = 0,
@@ -128,11 +220,11 @@ enum BaseStat {
BASE_SPEED_YIELD,
BASE_SPATK_YIELD,
BASE_SPDEF_YIELD,
- BASE_ITEM_1 = 16,
+ BASE_ITEM_1,
BASE_ITEM_2,
BASE_GENDER_RATIO,
BASE_EGG_CYCLES,
- BASE_FIRENDSHIP,
+ BASE_FRIENDSHIP,
BASE_GROWTH_RATE,
BASE_EGG_GROUP_1,
GASE_EGG_GROUP_2,
@@ -141,42 +233,45 @@ enum BaseStat {
BASE_GREAT_MARSH_RATE,
BASE_COLOR,
BASE_FLIP,
+ BASE_UNKNOWN_29,
+ BASE_UNKNOWN_30,
+ BASE_UNKNOWN_31,
+ BASE_UNKNOWN_32,
};
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 {
@@ -202,69 +297,69 @@ 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,
+ 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 = 8,
- BURMY_TRASH = 16,
+ BURMY_SANDY = 1,
+ BURMY_TRASH = 2,
DEOXYS_NORMAL = 0,
- DEOXYS_ATTACK = 8,
- DEOXYS_DEFENSE = 16,
- DEOXYS_SPEED = 24,
+ DEOXYS_ATTACK = 1,
+ DEOXYS_DEFENSE = 2,
+ DEOXYS_SPEED = 3,
GIRATINA_ALTERED = 0,
- GIRATINA_ORIGIN = 8,
+ GIRATINA_ORIGIN = 1,
ROTOM_NORMAL = 0,
- ROTOM_HEAT = 8,
- ROTOM_WASH = 16,
- ROTOM_FROST = 24,
- ROTOM_FAN = 32,
- ROTOM_MOW = 40,
+ ROTOM_HEAT = 1,
+ ROTOM_WASH = 2,
+ ROTOM_FROST = 3,
+ ROTOM_FAN = 4,
+ ROTOM_MOW = 5,
SHAYMIN_LAND = 0,
- SHAYMIN_SKY = 8,
+ SHAYMIN_SKY = 1,
SHELLOS_WEST = 0,
- SHELLOS_EAST = 8,
+ SHELLOS_EAST = 1,
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
+ 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;
// Structs
@@ -305,7 +400,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 +409,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 +423,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 +437,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 +458,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 +467,47 @@ 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);
+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 GetMonBaseStat_HandleFormeConversion(int species, int form, enum BaseStat stat_id);
+int GetMonBaseStat(int species, enum BaseStat stat_id);
+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);
+u8 GetBoxMonGender(struct BoxPokemon * boxmon);
+u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid);
#endif //POKEDIAMOND_POKEMON_H
diff --git a/include/proto.h b/include/proto.h
new file mode 100644
index 00000000..c8f50d33
--- /dev/null
+++ b/include/proto.h
@@ -0,0 +1,14 @@
+#ifndef POKEDIAMOND_PROTO_H
+#define POKEDIAMOND_PROTO_H
+
+// For homeless function declarations
+
+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);
+u32 GetArceusTypeByPlate(u16 plate);
+
+#endif //POKEDIAMOND_PROTO_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/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