summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--asm/daycare.s2903
-rw-r--r--asm/egg_hatch.s1786
-rw-r--r--asm/rom_804373C.s (renamed from asm/rom_80412B0.s)4671
-rw-r--r--ld_script.txt4
5 files changed, 4694 insertions, 4673 deletions
diff --git a/Makefile b/Makefile
index 01a1c9d70..6a897e6f1 100644
--- a/Makefile
+++ b/Makefile
@@ -58,7 +58,8 @@ asm/mystery_event_menu.o asm/save_failed_screen.o asm/rom_81473B8.o \
asm/berry_tag_screen.o asm/lottery_corner.o \
asm/battle_ai.o asm/trader.o asm/trainer_card.o asm/save_menu_util.o \
asm/rom_8094928.o asm/mori_debug_menu.o asm/trainer_see.o asm/rom_8080874.o \
-asm/battle_setup.o asm/cable_club.o asm/rom_80412B0.o
+asm/battle_setup.o asm/cable_club.o asm/daycare.o asm/egg_hatch.o \
+asm/rom_804373C.o
DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
data/event_scripts.o data/battle_anim_scripts.o \
diff --git a/asm/daycare.s b/asm/daycare.s
new file mode 100644
index 000000000..ff3fa5464
--- /dev/null
+++ b/asm/daycare.s
@@ -0,0 +1,2903 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start pokemon_get_nick
+pokemon_get_nick: @ 80412B0
+ push {r4,lr}
+ sub sp, 0x14
+ adds r4, r1, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy10
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_get_nick
+
+ thumb_func_start pokemon_get_nick_
+pokemon_get_nick_: @ 80412D0
+ push {r4,lr}
+ sub sp, 0x14
+ adds r4, r1, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetBoxMonData
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy10
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_get_nick_
+
+ thumb_func_start daycare_count_pokemon
+daycare_count_pokemon: @ 80412F0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ movs r4, 0
+_080412F8:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r6, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08041310
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08041310:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _080412F8
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end daycare_count_pokemon
+
+ thumb_func_start sub_8041324
+sub_8041324: @ 8041324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ mov r10, r1
+ movs r7, 0
+ movs r5, 0
+ mov r6, r10
+ adds r6, 0x74
+ movs r0, 0x1
+ mov r8, r0
+_0804133E:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _0804136E
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetBoxMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0804136E
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ b _08041374
+_0804136E:
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ mov r1, r8
+_08041374:
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _0804133E
+ mov r0, r10
+ str r7, [r0, 0x70]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041324
+
+ thumb_func_start daycare_empty_slot
+daycare_empty_slot: @ 8041394
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0804139A:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r5, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080413B2
+ lsls r0, r4, 24
+ asrs r0, 24
+ b _080413C0
+_080413B2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0804139A
+ movs r0, 0x1
+ negs r0, r0
+_080413C0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end daycare_empty_slot
+
+ thumb_func_start sub_80413C8
+sub_80413C8: @ 80413C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ mov r8, r1
+ mov r0, r8
+ bl daycare_empty_slot
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r9, r4
+ adds r0, r7, 0
+ bl sub_80A2B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804144A
+ lsls r0, r4, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ subs r4, r0
+ lsls r4, 3
+ adds r5, r4, 0
+ adds r5, 0xA0
+ add r5, r8
+ adds r6, r5, 0
+ adds r6, 0x24
+ ldr r1, _08041490 @ =gSaveBlock2
+ adds r0, r6, 0
+ bl StringCopy
+ adds r0, r6, 0
+ movs r1, 0xFC
+ bl sub_814A518
+ adds r6, 0x8
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl pokemon_get_nick
+ adds r0, r7, 0
+ movs r1, 0x40
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ add r4, r8
+ ldr r2, _08041494 @ =gSaveBlock1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r4, 0xA0
+ ldr r0, _08041498 @ =0x00002b4c
+ adds r1, r0
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ adds r0, r7, 0
+ bl sub_80A2DF8
+_0804144A:
+ mov r2, r9
+ lsls r4, r2, 24
+ asrs r4, 24
+ lsls r5, r4, 2
+ adds r4, r5, r4
+ lsls r4, 4
+ add r4, r8
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r0, r4, 0
+ bl pokemon_restore_pp
+ movs r0, 0x88
+ lsls r0, 1
+ add r0, r8
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r7, 0
+ bl ZeroMonData
+ bl party_compaction
+ bl CalculatePlayerPartyCount
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041490: .4byte gSaveBlock2
+_08041494: .4byte gSaveBlock1
+_08041498: .4byte 0x00002b4c
+ thumb_func_end sub_80413C8
+
+ thumb_func_start daycare_send
+daycare_send: @ 804149C
+ push {lr}
+ ldr r0, _080414B4 @ =gUnknown_03005CE0
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080414B8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080414BC @ =gSaveBlock1 + 0x2F9C
+ bl sub_80413C8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080414B4: .4byte gUnknown_03005CE0
+_080414B8: .4byte gPlayerParty
+_080414BC: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end daycare_send
+
+ thumb_func_start sub_80414C0
+sub_80414C0: @ 80414C0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r4, 0x50
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08041516
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ adds r6, r0, 0
+ cmp r6, 0
+ bne _08041516
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r0, r4, 0
+ bl ZeroBoxMonData
+ adds r0, r5, 0
+ adds r0, 0xA0
+ adds r4, 0x88
+ adds r1, r4, 0
+ movs r2, 0x38
+ bl memcpy
+ movs r0, 0x88
+ lsls r0, 1
+ adds r2, r5, r0
+ adds r0, 0x4
+ adds r1, r5, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ str r6, [r1]
+ adds r0, r4, 0
+ bl sub_80417F4
+_08041516:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80414C0
+
+ thumb_func_start sub_804151C
+sub_804151C: @ 804151C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldr r7, _08041538 @ =0x0000ffff
+_08041524:
+ adds r0, r4, 0
+ bl sub_8040300
+ lsls r0, 24
+ cmp r0, 0
+ beq _08041560
+ movs r6, 0x1
+ adds r5, 0x1
+ b _0804154C
+ .align 2, 0
+_08041538: .4byte 0x0000ffff
+_0804153C:
+ movs r6, 0
+ cmp r0, r7
+ bne _0804154C
+ ldr r0, _0804156C @ =word_2024E82
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ bl DeleteFirstMoveAndGiveMoveToMon
+_0804154C:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0804153C
+ cmp r5, 0x63
+ ble _08041524
+_08041560:
+ adds r0, r4, 0
+ bl CalculateMonStats
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804156C: .4byte word_2024E82
+ thumb_func_end sub_804151C
+
+ thumb_func_start sub_8041570
+sub_8041570: @ 8041570
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x68
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r7, r4, 2
+ adds r0, r7, r4
+ lsls r0, 4
+ adds r6, r5, r0
+ ldr r1, _08041640 @ =gStringVar1
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_803B4B4
+ mov r0, sp
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _080415D8
+ mov r0, sp
+ movs r1, 0x19
+ bl GetMonData
+ movs r2, 0x88
+ lsls r2, 1
+ adds r1, r5, r2
+ adds r1, r7
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [sp, 0x64]
+ add r2, sp, 0x64
+ mov r0, sp
+ movs r1, 0x19
+ bl SetMonData
+ mov r0, sp
+ bl sub_804151C
+_080415D8:
+ ldr r0, _08041644 @ =gPlayerParty
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r1, r0
+ mov r8, r1
+ mov r0, r8
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r1, r0, 3
+ adds r0, r5, r1
+ adds r0, 0xC0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08041610
+ adds r4, r1, 0
+ adds r4, 0xA0
+ adds r4, r5, r4
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80A2D88
+ adds r0, r4, 0
+ bl sub_80417F4
+_08041610:
+ bl party_compaction
+ adds r0, r6, 0
+ bl ZeroBoxMonData
+ movs r2, 0x88
+ lsls r2, 1
+ adds r0, r5, r2
+ adds r0, r7
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r5, 0
+ bl sub_80414C0
+ bl CalculatePlayerPartyCount
+ mov r0, r9
+ add sp, 0x68
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041640: .4byte gStringVar1
+_08041644: .4byte gPlayerParty
+ thumb_func_end sub_8041570
+
+ thumb_func_start sub_8041648
+sub_8041648: @ 8041648
+ push {lr}
+ ldr r0, _0804165C @ =gSaveBlock1 + 0x2F9C
+ ldr r1, _08041660 @ =gUnknown_0202E8CC
+ ldrb r1, [r1]
+ bl sub_8041570
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804165C: .4byte gSaveBlock1 + 0x2F9C
+_08041660: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8041648
+
+ thumb_func_start sub_8041664
+sub_8041664: @ 8041664
+ push {r4,r5,lr}
+ sub sp, 0x54
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetBoxMonData
+ adds r0, r5
+ str r0, [sp, 0x50]
+ add r2, sp, 0x50
+ mov r0, sp
+ movs r1, 0x19
+ bl SetBoxMonData
+ mov r0, sp
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x54
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8041664
+
+ thumb_func_start sub_80416A0
+sub_80416A0: @ 80416A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ mov r8, r0
+ add r4, r8
+ lsls r4, 4
+ adds r4, r5, r4
+ adds r0, r4, 0
+ bl GetLevelFromBoxMonExp
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x88
+ lsls r0, 1
+ adds r5, r0
+ add r5, r8
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl sub_8041664
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80416A0
+
+ thumb_func_start sub_80416E8
+sub_80416E8: @ 80416E8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_80416A0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r6, r0
+ ldr r1, _08041720 @ =gStringVar1
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ ldr r0, _08041724 @ =gStringVar2
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041720: .4byte gStringVar1
+_08041724: .4byte gStringVar2
+ thumb_func_end sub_80416E8
+
+ thumb_func_start sub_8041728
+sub_8041728: @ 8041728
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_80416A0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r6, r0
+ ldr r1, _08041768 @ =gStringVar1
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ adds r4, 0x64
+ ldr r0, _0804176C @ =gStringVar2
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041768: .4byte gStringVar1
+_0804176C: .4byte gStringVar2
+ thumb_func_end sub_8041728
+
+ thumb_func_start sub_8041770
+sub_8041770: @ 8041770
+ push {lr}
+ ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C
+ ldr r1, _08041788 @ =gUnknown_0202E8CC
+ ldrb r1, [r1]
+ bl sub_8041728
+ ldr r1, _0804178C @ =gUnknown_0202E8CE
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041784: .4byte gSaveBlock1 + 0x2F9C
+_08041788: .4byte gUnknown_0202E8CC
+_0804178C: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_8041770
+
+ thumb_func_start sub_8041790
+sub_8041790: @ 8041790
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080417AC @ =gSaveBlock1
+ ldr r1, _080417B0 @ =0x000030ac
+ adds r3, r2, r1
+ ldr r1, [r3]
+ adds r1, r0
+ str r1, [r3]
+ ldr r1, _080417B4 @ =0x000030b0
+ adds r2, r1
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r2]
+ bx lr
+ .align 2, 0
+_080417AC: .4byte gSaveBlock1
+_080417B0: .4byte 0x000030ac
+_080417B4: .4byte 0x000030b0
+ thumb_func_end sub_8041790
+
+ thumb_func_start sub_80417B8
+sub_80417B8: @ 80417B8
+ push {r4,r5,lr}
+ ldr r5, _080417D8 @ =gUnknown_0202E8CC
+ ldrh r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ ldr r4, _080417DC @ =gSaveBlock1 + 0x2F9C
+ adds r0, r4
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080417E0
+ movs r0, 0
+ b _080417EC
+ .align 2, 0
+_080417D8: .4byte gUnknown_0202E8CC
+_080417DC: .4byte gSaveBlock1 + 0x2F9C
+_080417E0:
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80416E8
+ lsls r0, 24
+ lsrs r0, 24
+_080417EC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80417B8
+
+ thumb_func_start sub_80417F4
+sub_80417F4: @ 80417F4
+ push {lr}
+ movs r3, 0
+ movs r2, 0x7
+ adds r1, r0, 0
+ adds r1, 0x2B
+_080417FE:
+ strb r3, [r1]
+ subs r1, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080417FE
+ adds r2, r0, 0
+ adds r2, 0x2C
+ movs r3, 0
+ adds r1, r0, 0
+ adds r1, 0x36
+_08041812:
+ strb r3, [r1]
+ subs r1, 0x1
+ cmp r1, r2
+ bge _08041812
+ bl sub_80A2B40
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80417F4
+
+ thumb_func_start unref_sub_8041824
+unref_sub_8041824: @ 8041824
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+_0804182A:
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 4
+ adds r0, r6, r0
+ bl ZeroBoxMonData
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r6, r1
+ adds r0, r4
+ movs r4, 0
+ str r4, [r0]
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 3
+ adds r0, 0xA0
+ adds r0, r6, r0
+ bl sub_80417F4
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _0804182A
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r0, r6, r2
+ movs r1, 0
+ strh r4, [r0]
+ adds r2, 0x2
+ adds r0, r6, r2
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8041824
+
+ thumb_func_start sub_8041870
+sub_8041870: @ 8041870
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _0804189C @ =gEvolutionTable
+ mov r12, r0
+_08041882:
+ movs r7, 0
+ movs r6, 0x1
+ movs r4, 0x80
+ lsls r4, 9
+ movs r5, 0x28
+ mov r3, r12
+ adds r3, 0x28
+_08041890:
+ movs r1, 0
+ ldrh r0, [r3, 0x4]
+ cmp r0, r2
+ bne _080418A0
+ lsrs r2, r4, 16
+ b _080418CC
+ .align 2, 0
+_0804189C: .4byte gEvolutionTable
+_080418A0:
+ adds r1, 0x1
+ cmp r1, 0x4
+ bgt _080418B6
+ lsls r0, r1, 3
+ adds r0, r5
+ add r0, r12
+ ldrh r0, [r0, 0x4]
+ cmp r0, r2
+ bne _080418A0
+ lsrs r2, r4, 16
+ movs r7, 0x1
+_080418B6:
+ cmp r7, 0
+ bne _080418CC
+ movs r0, 0x80
+ lsls r0, 9
+ adds r4, r0
+ adds r5, 0x28
+ adds r3, 0x28
+ adds r6, 0x1
+ ldr r0, _080418EC @ =0x0000019b
+ cmp r6, r0
+ ble _08041890
+_080418CC:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ beq _080418DE
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x4
+ ble _08041882
+_080418DE:
+ adds r0, r2, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080418EC: .4byte 0x0000019b
+ thumb_func_end sub_8041870
+
+ thumb_func_start sub_80418F0
+sub_80418F0: @ 80418F0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08041918 @ =0x0000fffe
+ bl __umodsi3
+ adds r0, 0x1
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r4, r1
+ strh r0, [r4]
+ movs r0, 0x86
+ bl FlagSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041918: .4byte 0x0000fffe
+ thumb_func_end sub_80418F0
+
+ thumb_func_start sub_804191C
+sub_804191C: @ 804191C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r4, r2
+ orrs r1, r0
+ strh r1, [r4]
+ movs r0, 0x86
+ bl FlagSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804191C
+
+ thumb_func_start sub_8041940
+sub_8041940: @ 8041940
+ push {lr}
+ ldr r0, _0804194C @ =gSaveBlock1 + 0x2F9C
+ bl sub_80418F0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804194C: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sub_8041940
+
+ thumb_func_start sub_8041950
+sub_8041950: @ 8041950
+ push {lr}
+ ldr r0, _0804195C @ =gSaveBlock1 + 0x2F9C
+ bl sub_804191C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804195C: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sub_8041950
+
+ thumb_func_start sub_8041960
+sub_8041960: @ 8041960
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r1, r4, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r2, 0
+_08041972:
+ mov r1, sp
+ adds r0, r1, r2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x5
+ ble _08041972
+ movs r3, 0
+ movs r2, 0
+_08041986:
+ mov r1, sp
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ beq _08041998
+ adds r0, r4, r3
+ strb r1, [r0]
+ adds r3, 0x1
+_08041998:
+ adds r2, 0x1
+ cmp r2, 0x5
+ ble _08041986
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041960
+
+ thumb_func_start sub_80419A8
+sub_80419A8: @ 80419A8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r9, r0
+ mov r8, r1
+ movs r5, 0
+ add r1, sp, 0x4
+ add r7, sp, 0xC
+ adds r2, r1, 0
+_080419BE:
+ adds r0, r2, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080419BE
+ movs r5, 0
+ adds r6, r1, 0
+_080419D0:
+ bl Random
+ mov r1, sp
+ adds r4, r1, r5
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ subs r1, r5
+ bl __modsi3
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ bl sub_8041960
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080419D0
+ movs r5, 0
+ movs r4, 0x1
+_08041A00:
+ bl Random
+ adds r1, r7, r5
+ lsls r0, 16
+ lsrs r0, 16
+ ands r0, r4
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08041A00
+ movs r5, 0
+_08041A1A:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08041B02
+ lsls r0, 2
+ ldr r1, _08041A30 @ =_08041A34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08041A30: .4byte _08041A34
+ .align 2, 0
+_08041A34:
+ .4byte _08041A4C
+ .4byte _08041A6C
+ .4byte _08041A88
+ .4byte _08041AA4
+ .4byte _08041AC0
+ .4byte _08041AE2
+_08041A4C:
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x27
+ bl GetBoxMonData
+ add r2, sp, 0x10
+ strb r0, [r2]
+ mov r0, r9
+ movs r1, 0x27
+ bl SetMonData
+ b _08041B02
+_08041A6C:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x28
+ bl GetBoxMonData
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x28
+ b _08041ADA
+_08041A88:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x29
+ bl GetBoxMonData
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x29
+ b _08041ADA
+_08041AA4:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x2A
+ bl GetBoxMonData
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x2A
+ b _08041ADA
+_08041AC0:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x2B
+ bl GetBoxMonData
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x2B
+_08041ADA:
+ adds r2, r4, 0
+ bl SetMonData
+ b _08041B02
+_08041AE2:
+ add r4, sp, 0x10
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0x2C
+ bl GetBoxMonData
+ strb r0, [r4]
+ mov r0, r9
+ movs r1, 0x2C
+ adds r2, r4, 0
+ bl SetMonData
+_08041B02:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08041A1A
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80419A8
+
+ thumb_func_start pokemon_get_eggmoves
+pokemon_get_eggmoves: @ 8041B1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ movs r6, 0
+ movs r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r5, _08041B44 @ =gEggMoves
+ ldrh r1, [r5]
+ ldr r7, _08041B48 @ =0x00004e20
+ adds r0, r3, r7
+ cmp r1, r0
+ bne _08041B4C
+ movs r4, 0x1
+ b _08041B6E
+ .align 2, 0
+_08041B44: .4byte gEggMoves
+_08041B48: .4byte 0x00004e20
+_08041B4C:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _08041BB8 @ =0x00000471
+ ldr r5, _08041BBC @ =gEggMoves
+ cmp r2, r0
+ bhi _08041B6E
+ lsls r0, r2, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r7, _08041BC0 @ =0x00004e20
+ adds r0, r3, r7
+ cmp r1, r0
+ bne _08041B4C
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08041B6E:
+ movs r2, 0
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r1, _08041BC0 @ =0x00004e20
+ cmp r0, r1
+ bhi _08041BAA
+ adds r7, r5, 0
+ adds r3, r1, 0
+_08041B80:
+ lsls r1, r2, 1
+ add r1, r8
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9
+ bhi _08041BAA
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, r3
+ bls _08041B80
+_08041BAA:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041BB8: .4byte 0x00000471
+_08041BBC: .4byte gEggMoves
+_08041BC0: .4byte 0x00004e20
+ thumb_func_end pokemon_get_eggmoves
+
+ thumb_func_start daycare_build_child_moveset
+daycare_build_child_moveset: @ 8041BC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ mov r10, r1
+ mov r9, r2
+ movs r0, 0
+ str r0, [sp]
+ movs r6, 0
+ ldr r5, _08041CC8 @ =gUnknown_03000500
+ movs r2, 0
+ ldr r4, _08041CCC @ =gUnknown_030004D8
+ ldr r3, _08041CD0 @ =gUnknown_030004E0
+_08041BE4:
+ lsls r1, r6, 1
+ adds r0, r1, r5
+ strh r2, [r0]
+ adds r0, r1, r4
+ strh r2, [r0]
+ adds r1, r3
+ strh r2, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08041BE4
+ movs r6, 0
+ ldr r2, _08041CD4 @ =gUnknown_030004E8
+ movs r1, 0
+_08041C02:
+ lsls r0, r6, 1
+ adds r0, r2
+ strh r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x9
+ bls _08041C02
+ movs r6, 0
+ ldr r2, _08041CD8 @ =gUnknown_03000470
+ movs r1, 0
+_08041C18:
+ lsls r0, r6, 1
+ adds r0, r2
+ strh r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x31
+ bls _08041C18
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08041CD8 @ =gUnknown_03000470
+ bl sub_804051C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r6, 0
+ ldr r1, _08041CCC @ =gUnknown_030004D8
+ mov r8, r1
+_08041C46:
+ adds r5, r6, 0
+ adds r5, 0xD
+ mov r0, r10
+ adds r1, r5, 0
+ bl GetBoxMonData
+ lsls r4, r6, 1
+ mov r2, r8
+ adds r1, r4, r2
+ strh r0, [r1]
+ mov r0, r9
+ adds r1, r5, 0
+ bl GetBoxMonData
+ ldr r1, _08041CC8 @ =gUnknown_03000500
+ adds r4, r1
+ strh r0, [r4]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08041C46
+ ldr r1, _08041CD4 @ =gUnknown_030004E8
+ adds r0, r7, 0
+ bl pokemon_get_eggmoves
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r6, 0
+_08041C82:
+ ldr r0, _08041CCC @ =gUnknown_030004D8
+ lsls r1, r6, 1
+ adds r2, r1, r0
+ ldrh r1, [r2]
+ mov r9, r0
+ cmp r1, 0
+ beq _08041CF8
+ movs r5, 0
+ cmp r5, r8
+ bcs _08041CEA
+ adds r4, r2, 0
+ ldr r2, _08041CDC @ =0x0000ffff
+_08041C9A:
+ ldr r0, _08041CD4 @ =gUnknown_030004E8
+ lsls r1, r5, 1
+ adds r1, r0
+ ldrh r0, [r4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08041CE0
+ adds r1, r0, 0
+ adds r0, r7, 0
+ str r2, [sp, 0x8]
+ bl GiveMoveToMon
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ bne _08041CEA
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl DeleteFirstMoveAndGiveMoveToMon
+ b _08041CEA
+ .align 2, 0
+_08041CC8: .4byte gUnknown_03000500
+_08041CCC: .4byte gUnknown_030004D8
+_08041CD0: .4byte gUnknown_030004E0
+_08041CD4: .4byte gUnknown_030004E8
+_08041CD8: .4byte gUnknown_03000470
+_08041CDC: .4byte 0x0000ffff
+_08041CE0:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _08041C9A
+_08041CEA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, _08041E14 @ =gUnknown_030004D8
+ mov r9, r3
+ cmp r6, 0x3
+ bls _08041C82
+_08041CF8:
+ movs r6, 0
+_08041CFA:
+ lsls r0, r6, 1
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ adds r2, r0, 0
+ adds r6, 0x1
+ mov r8, r6
+ cmp r1, 0
+ beq _08041D5C
+ movs r5, 0
+ ldr r0, _08041E14 @ =gUnknown_030004D8
+ adds r4, r2, r0
+ ldr r6, _08041E18 @ =0x0000ffff
+ mov r9, r0
+_08041D16:
+ ldr r3, _08041E1C @ =0x00000121
+ adds r0, r5, r3
+ lsls r0, 16
+ lsrs r0, 16
+ bl ItemIdToBattleMoveId
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bne _08041D52
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ bl sub_8040374
+ cmp r0, 0
+ beq _08041D52
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl GiveMoveToMon
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bne _08041D52
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl DeleteFirstMoveAndGiveMoveToMon
+_08041D52:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x39
+ bls _08041D16
+_08041D5C:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08041CFA
+ movs r6, 0
+ mov r2, r9
+ ldrh r0, [r2]
+ ldr r3, _08041E20 @ =gUnknown_030004E0
+ mov r10, r3
+ cmp r0, 0
+ beq _08041DC6
+ mov r4, r9
+ ldr r0, _08041E24 @ =gUnknown_03000500
+ mov r9, r0
+ mov r12, r10
+_08041D7C:
+ movs r5, 0
+ lsls r2, r6, 1
+ adds r6, 0x1
+ mov r8, r6
+ adds r3, r2, r4
+_08041D86:
+ lsls r0, r5, 1
+ add r0, r9
+ ldrh r2, [r3]
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08041DA8
+ cmp r1, 0
+ beq _08041DA8
+ ldr r1, [sp]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 1
+ add r1, r12
+ strh r2, [r1]
+_08041DA8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _08041D86
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bhi _08041DC6
+ lsls r0, r6, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08041D7C
+_08041DC6:
+ movs r6, 0
+ mov r2, r10
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08041E50
+_08041DD0:
+ movs r5, 0
+ adds r3, r6, 0x1
+ mov r8, r3
+ ldr r0, [sp, 0x4]
+ cmp r5, r0
+ bcs _08041E38
+ ldr r2, _08041E18 @ =0x0000ffff
+_08041DDE:
+ ldr r1, _08041E28 @ =gUnknown_03000470
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08041E2C
+ lsls r0, r6, 1
+ mov r3, r10
+ adds r4, r0, r3
+ ldrh r0, [r4]
+ cmp r0, r1
+ bne _08041E2C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ str r2, [sp, 0x8]
+ bl GiveMoveToMon
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ bne _08041E38
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ bl DeleteFirstMoveAndGiveMoveToMon
+ b _08041E38
+ .align 2, 0
+_08041E14: .4byte gUnknown_030004D8
+_08041E18: .4byte 0x0000ffff
+_08041E1C: .4byte 0x00000121
+_08041E20: .4byte gUnknown_030004E0
+_08041E24: .4byte gUnknown_03000500
+_08041E28: .4byte gUnknown_03000470
+_08041E2C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, [sp, 0x4]
+ cmp r5, r0
+ bcc _08041DDE
+_08041E38:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bhi _08041E50
+ ldr r0, _08041E60 @ =gUnknown_030004E0
+ lsls r1, r6, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ mov r10, r0
+ cmp r1, 0
+ bne _08041DD0
+_08041E50:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041E60: .4byte gUnknown_030004E0
+ thumb_func_end daycare_build_child_moveset
+
+ thumb_func_start sub_8041E64
+sub_8041E64: @ 8041E64
+ adds r3, r0, 0
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0]
+ movs r1, 0x8D
+ lsls r1, 1
+ adds r0, r3, r1
+ strb r2, [r0]
+ bx lr
+ thumb_func_end sub_8041E64
+
+ thumb_func_start sub_8041E7C
+sub_8041E7C: @ 8041E7C
+ push {lr}
+ ldr r0, _08041E88 @ =gSaveBlock1 + 0x2F9C
+ bl sub_8041E64
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041E88: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sub_8041E7C
+
+ thumb_func_start incense_effects
+incense_effects: @ 8041E8C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrh r1, [r4]
+ movs r7, 0xB4
+ lsls r7, 1
+ cmp r1, r7
+ beq _08041EA4
+ movs r0, 0xAF
+ lsls r0, 1
+ cmp r1, r0
+ bne _08041EE6
+_08041EA4:
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r5, 0
+ adds r0, 0x50
+ movs r1, 0xC
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _08041ED0
+ cmp r6, 0xDD
+ beq _08041ED0
+ cmp r2, 0xDD
+ beq _08041ED0
+ movs r0, 0xCA
+ strh r0, [r4]
+_08041ED0:
+ ldrh r1, [r4]
+ movs r0, 0xAF
+ lsls r0, 1
+ cmp r1, r0
+ bne _08041EE6
+ cmp r6, 0xDC
+ beq _08041EE6
+ cmp r2, 0xDC
+ beq _08041EE6
+ movs r0, 0xB7
+ strh r0, [r4]
+_08041EE6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end incense_effects
+
+ thumb_func_start sub_8041EEC
+sub_8041EEC: @ 8041EEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r6, r1, 0
+ movs r4, 0
+ movs r7, 0x1
+_08041EFC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ mov r1, r8
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ lsls r1, r4, 1
+ add r1, sp
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x84
+ bne _08041F26
+ adds r0, r4, 0
+ eors r0, r7
+ strb r0, [r6]
+ strb r4, [r6, 0x1]
+ b _08041F3C
+_08041F26:
+ adds r0, r5, 0
+ bl GetBoxMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFE
+ bne _08041F3C
+ strb r4, [r6]
+ adds r0, r4, 0
+ eors r0, r7
+ strb r0, [r6, 0x1]
+_08041F3C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08041EFC
+ ldrb r0, [r6]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ bl sub_8041870
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bne _08041F6E
+ movs r0, 0x8C
+ lsls r0, 1
+ add r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08041F6E
+ movs r4, 0x20
+_08041F6E:
+ ldr r0, _08041FC0 @ =0x00000183
+ cmp r4, r0
+ bne _08041F88
+ subs r0, 0x6B
+ add r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08041F88
+ movs r4, 0xC1
+ lsls r4, 1
+_08041F88:
+ ldrb r0, [r6, 0x1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x84
+ bne _08041FB2
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ add r0, r8
+ bl GetBoxMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFE
+ beq _08041FB2
+ ldrb r1, [r6, 0x1]
+ ldrb r0, [r6]
+ strb r0, [r6, 0x1]
+ strb r1, [r6]
+_08041FB2:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08041FC0: .4byte 0x00000183
+ thumb_func_end sub_8041EEC
+
+ thumb_func_start sub_8041FC4
+sub_8041FC4: @ 8041FC4
+ push {r4-r6,lr}
+ sub sp, 0x6C
+ adds r5, r0, 0
+ add r6, sp, 0x64
+ adds r1, r6, 0
+ bl sub_8041EEC
+ add r4, sp, 0x68
+ strh r0, [r4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl incense_effects
+ ldrh r1, [r4]
+ mov r0, sp
+ adds r2, r5, 0
+ bl sub_80420FC
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80419A8
+ ldrb r0, [r6, 0x1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 4
+ adds r1, r5, r1
+ ldrb r0, [r6]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 4
+ adds r2, r5, r2
+ mov r0, sp
+ bl daycare_build_child_moveset
+ mov r2, sp
+ adds r2, 0x6A
+ movs r0, 0x1
+ strb r0, [r2]
+ mov r0, sp
+ movs r1, 0x2D
+ bl SetMonData
+ ldr r0, _08042040 @ =gPlayerParty
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r1
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ bl party_compaction
+ bl CalculatePlayerPartyCount
+ adds r0, r5, 0
+ bl sub_8041E64
+ add sp, 0x6C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042040: .4byte gPlayerParty
+ thumb_func_end sub_8041FC4
+
+ thumb_func_start sub_8042044
+sub_8042044: @ 8042044
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ adds r7, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 24
+ lsrs r6, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r1, r5, 0
+ movs r2, 0x5
+ movs r3, 0x20
+ bl CreateMon
+ movs r0, 0x12
+ add r0, sp
+ mov r8, r0
+ strb r4, [r0]
+ movs r1, 0x4
+ add r0, sp, 0x10
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x13
+ movs r0, 0x1
+ mov r9, r0
+ mov r0, r9
+ strb r0, [r4]
+ adds r0, r7, 0
+ movs r1, 0x26
+ add r2, sp, 0x10
+ bl SetMonData
+ ldr r2, _080420F4 @ =gUnknown_08209AD4
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl SetMonData
+ lsls r2, r5, 3
+ subs r2, r5
+ lsls r2, 2
+ ldr r0, _080420F8 @ =gBaseStats + 0x11 @ egg cycles offset
+ adds r2, r0
+ adds r0, r7, 0
+ movs r1, 0x20
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0x24
+ mov r2, r8
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl SetMonData
+ cmp r6, 0
+ beq _080420D6
+ add r2, sp, 0x14
+ movs r0, 0xFD
+ strb r0, [r2]
+ adds r0, r7, 0
+ movs r1, 0x23
+ bl SetMonData
+_080420D6:
+ mov r2, sp
+ adds r2, 0x15
+ mov r0, r9
+ strb r0, [r2]
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl SetMonData
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080420F4: .4byte gUnknown_08209AD4
+_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset
+ thumb_func_end sub_8042044
+
+ thumb_func_start sub_80420FC
+sub_80420FC: @ 80420FC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ bl Random
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r4, r1
+ ldrh r1, [r4]
+ lsls r0, 16
+ orrs r1, r0
+ movs r0, 0x1
+ mov r8, r0
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x5
+ movs r3, 0x20
+ bl CreateMon
+ movs r1, 0x12
+ add r1, sp
+ mov r9, r1
+ strb r4, [r1]
+ movs r1, 0x4
+ add r0, sp, 0x10
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x13
+ mov r0, r8
+ strb r0, [r4]
+ adds r0, r6, 0
+ movs r1, 0x26
+ add r2, sp, 0x10
+ bl SetMonData
+ ldr r2, _08042198 @ =gUnknown_08209AD4
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl SetMonData
+ lsls r2, r5, 3
+ subs r2, r5
+ lsls r2, 2
+ ldr r0, _0804219C @ =gBaseStats + 0x11 @ egg cycles offset
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x20
+ bl SetMonData
+ adds r0, r6, 0
+ movs r1, 0x24
+ mov r2, r9
+ bl SetMonData
+ adds r0, r6, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl SetMonData
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042198: .4byte gUnknown_08209AD4
+_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset
+ thumb_func_end sub_80420FC
+
+ thumb_func_start sp0B8_daycare
+sp0B8_daycare: @ 80421A0
+ push {lr}
+ ldr r0, _080421AC @ =gSaveBlock1 + 0x2F9C
+ bl sub_8041FC4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080421AC: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sp0B8_daycare
+
+ thumb_func_start sub_80421B0
+sub_80421B0: @ 80421B0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r7, r0, 0
+ movs r2, 0
+ movs r6, 0
+ adds r5, r7, 0
+_080421BC:
+ lsls r4, r6, 2
+ adds r0, r5, 0
+ movs r1, 0x5
+ str r2, [sp, 0x4]
+ bl GetBoxMonData
+ ldr r2, [sp, 0x4]
+ cmp r0, 0
+ beq _080421DE
+ movs r0, 0x88
+ lsls r0, 1
+ adds r1, r7, r0
+ adds r1, r4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ adds r2, 0x1
+_080421DE:
+ adds r5, 0x50
+ adds r6, 0x1
+ cmp r6, 0x1
+ bls _080421BC
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08042226
+ cmp r2, 0x2
+ bne _08042226
+ subs r1, 0x4
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08042226
+ adds r0, r7, 0
+ bl daycare_relationship_score
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08042240 @ =0x0000ffff
+ bl __udivsi3
+ cmp r4, r0
+ bls _08042226
+ bl sub_8041940
+_08042226:
+ movs r0, 0x8D
+ lsls r0, 1
+ adds r1, r7, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08042290
+ movs r6, 0
+ b _08042288
+ .align 2, 0
+_08042240: .4byte 0x0000ffff
+_08042244:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08042270 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08042286
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ str r0, [sp]
+ cmp r0, 0
+ bne _08042278
+ ldr r0, _08042274 @ =gUnknown_0202E8CC
+ strh r6, [r0]
+ movs r0, 0x1
+ b _08042292
+ .align 2, 0
+_08042270: .4byte gPlayerParty
+_08042274: .4byte gUnknown_0202E8CC
+_08042278:
+ subs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x20
+ mov r2, sp
+ bl SetMonData
+_08042286:
+ adds r6, 0x1
+_08042288:
+ ldr r0, _0804229C @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _08042244
+_08042290:
+ movs r0, 0
+_08042292:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804229C: .4byte gPlayerPartyCount
+ thumb_func_end sub_80421B0
+
+ thumb_func_start sub_80422A0
+sub_80422A0: @ 80422A0
+ push {lr}
+ ldr r0, _080422B0 @ =gSaveBlock1 + 0x2F9C
+ bl sub_80421B0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080422B0: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sub_80422A0
+
+ thumb_func_start sub_80422B4
+sub_80422B4: @ 80422B4
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ thumb_func_end sub_80422B4
+
+ thumb_func_start sub_80422C4
+sub_80422C4: @ 80422C4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080422FC
+ ldr r1, _0804231C @ =gStringVar1
+ adds r0, r6, 0
+ bl pokemon_get_nick_
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetBoxMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08042320 @ =gStringVar3
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r2, r5, 0
+ bl GetBoxMonData
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl ConvertInternationalString
+_080422FC:
+ adds r4, r6, 0
+ adds r4, 0x50
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08042314
+ ldr r1, _08042324 @ =gStringVar2
+ adds r0, r4, 0
+ bl pokemon_get_nick_
+_08042314:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804231C: .4byte gStringVar1
+_08042320: .4byte gStringVar3
+_08042324: .4byte gStringVar2
+ thumb_func_end sub_80422C4
+
+ thumb_func_start sub_8042328
+sub_8042328: @ 8042328
+ push {r4-r6,lr}
+ ldr r6, _08042354 @ =gUnknown_03005CE0
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08042358 @ =gPlayerParty
+ adds r0, r4
+ ldr r1, _0804235C @ =gStringVar1
+ bl pokemon_get_nick_
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xB
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042354: .4byte gUnknown_03005CE0
+_08042358: .4byte gPlayerParty
+_0804235C: .4byte gStringVar1
+ thumb_func_end sub_8042328
+
+ thumb_func_start sp0B5_daycare
+sp0B5_daycare: @ 8042360
+ push {lr}
+ ldr r0, _0804236C @ =gSaveBlock1 + 0x2F9C
+ bl sub_80422C4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804236C: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end sp0B5_daycare
+
+ thumb_func_start sp0B6_daycare
+sp0B6_daycare: @ 8042370
+ push {r4,lr}
+ ldr r4, _08042384 @ =gSaveBlock1 + 0x2F9C
+ adds r0, r4, 0
+ bl sub_80422B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042388
+ movs r0, 0x1
+ b _080423A0
+ .align 2, 0
+_08042384: .4byte gSaveBlock1 + 0x2F9C
+_08042388:
+ adds r0, r4, 0
+ bl daycare_count_pokemon
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0804239A
+ movs r0, 0
+ b _080423A0
+_0804239A:
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_080423A0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sp0B6_daycare
+
+ thumb_func_start sub_80423A8
+sub_80423A8: @ 80423A8
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ movs r4, 0
+ adds r1, r0, 0
+_080423B0:
+ movs r3, 0
+ ldrh r0, [r1]
+ adds r2, r5, 0
+_080423B6:
+ ldrh r6, [r2]
+ cmp r0, r6
+ bne _080423C0
+ movs r0, 0x1
+ b _080423D2
+_080423C0:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x1
+ ble _080423B6
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _080423B0
+ movs r0, 0
+_080423D2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80423A8
+
+ thumb_func_start daycare_relationship_score
+daycare_relationship_score: @ 80423D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ movs r1, 0
+ mov r8, r1
+ mov r2, sp
+ adds r2, 0x8
+ str r2, [sp, 0x1C]
+ add r1, sp, 0xC
+ mov r10, r1
+ adds r2, 0xC
+ str r2, [sp, 0x20]
+ mov r1, sp
+ adds r1, 0x2
+ ldr r2, _08042488 @ =gBaseStats
+ mov r9, r2
+ ldr r5, [sp, 0x1C]
+ adds r7, r1, 0
+ mov r6, sp
+ ldr r1, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r2, r10
+ str r2, [sp, 0x28]
+ adds r4, r0, 0
+_0804240E:
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetBoxMonData
+ ldr r1, [sp, 0x28]
+ stm r1!, {r0}
+ str r1, [sp, 0x28]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ ldrh r0, [r5]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x24]
+ stm r2!, {r0}
+ str r2, [sp, 0x24]
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x14]
+ strh r0, [r6]
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x15]
+ strh r0, [r7]
+ adds r5, 0x2
+ adds r7, 0x4
+ adds r6, 0x4
+ adds r4, 0x50
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x1
+ bls _0804240E
+ mov r0, sp
+ ldrh r1, [r0]
+ cmp r1, 0xF
+ beq _08042484
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0xF
+ beq _08042484
+ cmp r1, 0xD
+ bne _0804248C
+ cmp r0, 0xD
+ bne _08042490
+_08042484:
+ movs r0, 0
+ b _080424E4
+ .align 2, 0
+_08042488: .4byte gBaseStats
+_0804248C:
+ cmp r0, 0xD
+ bne _0804249C
+_08042490:
+ ldr r1, [sp, 0xC]
+ mov r2, r10
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ beq _080424DE
+ b _080424E2
+_0804249C:
+ ldr r0, [sp, 0x14]
+ ldr r2, [sp, 0x20]
+ ldr r1, [r2, 0x4]
+ cmp r0, r1
+ beq _08042484
+ cmp r0, 0xFF
+ beq _08042484
+ cmp r1, 0xFF
+ beq _08042484
+ add r1, sp, 0x4
+ mov r0, sp
+ bl sub_80423A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042484
+ ldr r0, [sp, 0x1C]
+ ldrh r1, [r0, 0x2]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _080424D4
+ ldr r1, [sp, 0xC]
+ mov r2, r10
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ beq _080424E2
+ movs r0, 0x46
+ b _080424E4
+_080424D4:
+ ldr r1, [sp, 0xC]
+ mov r2, r10
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ bne _080424E2
+_080424DE:
+ movs r0, 0x14
+ b _080424E4
+_080424E2:
+ movs r0, 0x32
+_080424E4:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end daycare_relationship_score
+
+ thumb_func_start daycare_relationship_score_from_savegame
+daycare_relationship_score_from_savegame: @ 80424F4
+ push {lr}
+ ldr r0, _08042504 @ =gSaveBlock1 + 0x2F9C
+ bl daycare_relationship_score
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042504: .4byte gSaveBlock1 + 0x2F9C
+ thumb_func_end daycare_relationship_score_from_savegame
+
+ thumb_func_start sp0B9_daycare_relationship_comment
+sp0B9_daycare_relationship_comment: @ 8042508
+ push {lr}
+ bl daycare_relationship_score_from_savegame
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ movs r1, 0
+ cmp r0, 0
+ bne _0804251C
+ movs r1, 0x3
+_0804251C:
+ cmp r0, 0x14
+ bne _08042522
+ movs r1, 0x2
+_08042522:
+ cmp r0, 0x32
+ bne _08042528
+ movs r1, 0x1
+_08042528:
+ cmp r2, 0x46
+ bne _0804252E
+ movs r1, 0
+_0804252E:
+ ldr r0, _08042540 @ =gStringVar4
+ ldr r2, _08042544 @ =gUnknown_08209AC4
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042540: .4byte gStringVar4
+_08042544: .4byte gUnknown_08209AC4
+ thumb_func_end sp0B9_daycare_relationship_comment
+
+ thumb_func_start NameHasGenderSymbol
+NameHasGenderSymbol: @ 8042548
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r2, sp
+ mov r1, sp
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ strb r0, [r2]
+ movs r3, 0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _0804258C
+_08042564:
+ adds r1, r4, r3
+ ldrb r0, [r1]
+ cmp r0, 0xB5
+ bne _08042572
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+_08042572:
+ ldrb r0, [r1]
+ cmp r0, 0xB6
+ bne _0804257E
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ strb r0, [r2, 0x1]
+_0804257E:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08042564
+_0804258C:
+ cmp r5, 0
+ bne _080425A0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080425A0
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080425B4
+_080425A0:
+ cmp r5, 0xFE
+ bne _080425B8
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080425B8
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080425B8
+_080425B4:
+ movs r0, 0x1
+ b _080425BA
+_080425B8:
+ movs r0, 0
+_080425BA:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end NameHasGenderSymbol
+
+ thumb_func_start AppendGenderSymbol
+AppendGenderSymbol: @ 80425C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080425E4
+ movs r1, 0
+ bl NameHasGenderSymbol
+ lsls r0, 24
+ cmp r0, 0
+ bne _08042600
+ ldr r1, _080425E0 @ =gOtherText_MaleSymbol3
+ b _08042602
+ .align 2, 0
+_080425E0: .4byte gOtherText_MaleSymbol3
+_080425E4:
+ cmp r1, 0xFE
+ bne _08042600
+ adds r0, r4, 0
+ movs r1, 0xFE
+ bl NameHasGenderSymbol
+ lsls r0, 24
+ cmp r0, 0
+ bne _08042600
+ ldr r1, _080425FC @ =gOtherText_FemaleSymbol3
+ b _08042602
+ .align 2, 0
+_080425FC: .4byte gOtherText_FemaleSymbol3
+_08042600:
+ ldr r1, _08042610 @ =gOtherText_GenderlessSymbol
+_08042602:
+ adds r0, r4, 0
+ bl StringAppend
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042610: .4byte gOtherText_GenderlessSymbol
+ thumb_func_end AppendGenderSymbol
+
+ thumb_func_start MonAppendGenderSymbol
+MonAppendGenderSymbol: @ 8042614
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ bl GetBoxMonGender
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl AppendGenderSymbol
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end MonAppendGenderSymbol
+
+ thumb_func_start DaycareLevelMenuGetText
+DaycareLevelMenuGetText: @ 8042630
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x28
+ mov r8, r0
+ adds r7, r1, 0
+ movs r0, 0xFF
+ strb r0, [r7]
+ movs r6, 0
+ add r0, sp, 0x14
+ mov r9, r0
+_08042648:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r4, r0, 4
+ add r4, r8
+ lsls r0, 2
+ mov r1, sp
+ adds r5, r1, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl pokemon_get_nick_
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MonAppendGenderSymbol
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bls _08042648
+ adds r0, r7, 0
+ mov r1, sp
+ bl StringCopy
+ ldr r4, _080426A8 @ =gOtherText_NewLine2
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringAppend
+ adds r0, r7, 0
+ mov r1, r9
+ bl StringAppend
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringAppend
+ ldr r1, _080426AC @ =gOtherText_CancelAndLv
+ adds r0, r7, 0
+ bl StringAppend
+ add sp, 0x28
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080426A8: .4byte gOtherText_NewLine2
+_080426AC: .4byte gOtherText_CancelAndLv
+ thumb_func_end DaycareLevelMenuGetText
+
+ thumb_func_start DaycareLevelMenuGetLevelText
+DaycareLevelMenuGetLevelText: @ 80426B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r5, 0
+ movs r0, 0xFC
+ mov r8, r0
+ movs r7, 0x14
+_080426C6:
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 4
+ adds r0, r6, r0
+ movs r3, 0x88
+ lsls r3, 1
+ adds r1, r6, r3
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8041664
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x34
+ strb r0, [r4]
+ mov r0, r8
+ strb r0, [r4, 0x1]
+ strb r7, [r4, 0x2]
+ movs r0, 0x6
+ strb r0, [r4, 0x3]
+ adds r0, r4, 0x4
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, r0, 0
+ mov r3, r8
+ strb r3, [r4]
+ strb r7, [r4, 0x1]
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ adds r0, r4, 0x3
+ ldr r1, _08042728 @ =gOtherText_NewLine2
+ bl StringCopy
+ adds r4, r0, 0
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _080426C6
+ movs r0, 0xFF
+ strb r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042728: .4byte gOtherText_NewLine2
+ thumb_func_end DaycareLevelMenuGetLevelText
+
+ thumb_func_start DaycareLevelMenuProcessKeyInput
+DaycareLevelMenuProcessKeyInput: @ 804272C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _08042760 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08042768
+ ldr r0, _08042764 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08042816
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ b _0804278A
+ .align 2, 0
+_08042760: .4byte gMain
+_08042764: .4byte gTasks
+_08042768:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804279C
+ ldr r0, _08042798 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ beq _08042816
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+_0804278A:
+ bl MoveMenuCursor
+ movs r0, 0x5
+ bl PlaySE
+ b _08042816
+ .align 2, 0
+_08042798: .4byte gTasks
+_0804279C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080427E8
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r3, _080427DC @ =gUnknown_03005CE0
+ ldr r2, _080427E0 @ =gScriptResult
+ ldr r1, _080427E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strh r0, [r2]
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+ movs r0, 0xF
+ movs r1, 0x6
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ bl EnableBothScriptContexts
+ b _08042816
+ .align 2, 0
+_080427DC: .4byte gUnknown_03005CE0
+_080427E0: .4byte gScriptResult
+_080427E4: .4byte gTasks
+_080427E8:
+ movs r4, 0x2
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08042816
+ bl sub_8072DEC
+ ldr r0, _0804281C @ =gUnknown_03005CE0
+ ldr r1, _08042820 @ =gScriptResult
+ strh r4, [r1]
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ movs r0, 0xF
+ movs r1, 0x6
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ bl EnableBothScriptContexts
+_08042816:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804281C: .4byte gUnknown_03005CE0
+_08042820: .4byte gScriptResult
+ thumb_func_end DaycareLevelMenuProcessKeyInput
+
+ thumb_func_start ShowDaycareLevelMenu
+ShowDaycareLevelMenu: @ 8042824
+ push {r4,lr}
+ sub sp, 0x6C
+ movs r0, 0xF
+ movs r1, 0x6
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ ldr r4, _08042880 @ =gSaveBlock1 + 0x2F9C
+ adds r0, r4, 0
+ add r1, sp, 0x8
+ bl DaycareLevelMenuGetText
+ add r0, sp, 0x8
+ movs r1, 0x10
+ movs r2, 0x7
+ bl MenuPrint
+ adds r0, r4, 0
+ add r1, sp, 0x8
+ bl DaycareLevelMenuGetLevelText
+ add r0, sp, 0x8
+ movs r1, 0xCE
+ movs r2, 0x38
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x7
+ movs r3, 0x3
+ bl InitMenu
+ ldr r0, _08042884 @ =sub_804272C
+ movs r1, 0x3
+ bl CreateTask
+ add sp, 0x6C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042880: .4byte gSaveBlock1 + 0x2F9C
+_08042884: .4byte DaycareLevelMenuProcessKeyInput
+ thumb_func_end ShowDaycareLevelMenu
+
+ thumb_func_start ChooseSendDaycareMon
+ChooseSendDaycareMon: @ 8042888
+ push {lr}
+ movs r0, 0x6
+ movs r1, 0
+ bl OpenPartyMenu
+ ldr r1, _0804289C @ =gMain
+ ldr r0, _080428A0 @ =c2_exit_to_overworld_2_switch
+ str r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804289C: .4byte gMain
+_080428A0: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end ChooseSendDaycareMon
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
new file mode 100644
index 000000000..ae27d6e31
--- /dev/null
+++ b/asm/egg_hatch.s
@@ -0,0 +1,1786 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start CreatedHatchedMon
+CreatedHatchedMon: @ 80428A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x48
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r4, 0
+ add r7, sp, 0x18
+ mov r0, sp
+ adds r0, 0x31
+ str r0, [sp, 0x38]
+ mov r1, sp
+ adds r1, 0x32
+ str r1, [sp, 0x3C]
+ add r0, sp, 0x30
+ mov r9, r0
+ adds r1, 0x1
+ str r1, [sp, 0x40]
+ mov r0, sp
+ adds r0, 0x34
+ str r0, [sp, 0x44]
+_080428DE:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl GetMonData
+ lsls r1, r4, 1
+ add r1, sp
+ adds r1, 0x10
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080428DE
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetMonData
+ mov r8, r0
+ movs r4, 0
+_08042906:
+ adds r1, r4, 0
+ adds r1, 0x27
+ adds r0, r6, 0
+ bl GetMonData
+ lsls r1, r4, 2
+ adds r1, r7, r1
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08042906
+ adds r0, r6, 0
+ movs r1, 0x25
+ bl GetMonData
+ ldr r1, [sp, 0x38]
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x8
+ bl GetMonData
+ ldr r1, [sp, 0x3C]
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x22
+ bl GetMonData
+ str r0, [sp, 0x34]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ mov r1, r10
+ movs r2, 0x5
+ movs r3, 0x20
+ bl CreateMon
+ movs r4, 0
+_0804295E:
+ adds r1, r4, 0
+ adds r1, 0xD
+ lsls r0, r4, 1
+ mov r2, sp
+ adds r2, r0
+ adds r2, 0x10
+ adds r0, r5, 0
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0804295E
+ movs r4, 0
+_0804297C:
+ adds r1, r4, 0
+ adds r1, 0x27
+ lsls r2, r4, 2
+ adds r2, r7, r2
+ adds r0, r5, 0
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0804297C
+ movs r0, 0x2
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x3
+ mov r2, r9
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x25
+ ldr r2, [sp, 0x38]
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x8
+ ldr r2, [sp, 0x3C]
+ bl SetMonData
+ movs r0, 0x78
+ ldr r1, [sp, 0x40]
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x40]
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x22
+ ldr r2, [sp, 0x44]
+ bl SetMonData
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x48
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end CreatedHatchedMon
+
+ thumb_func_start AddHatchedMonToParty
+AddHatchedMonToParty: @ 80429EC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r5, r0, 0
+ muls r5, r1
+ ldr r0, _08042A9C @ =gPlayerParty
+ adds r5, r0
+ ldr r1, _08042AA0 @ =gEnemyParty
+ adds r0, r5, 0
+ bl CreatedHatchedMon
+ add r2, sp, 0xC
+ movs r6, 0
+ strb r6, [r2]
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetSpeciesName
+ adds r0, r5, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8090D90
+ ldr r1, _08042AA4 @ =gStringVar1
+ adds r0, r5, 0
+ bl pokemon_get_nick
+ mov r2, sp
+ adds r2, 0xE
+ movs r0, 0x4
+ strh r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x26
+ bl SetMonData
+ add r2, sp, 0x10
+ strh r6, [r2]
+ adds r0, r5, 0
+ movs r1, 0x24
+ bl SetMonData
+ bl sav1_map_get_name
+ mov r2, sp
+ adds r2, 0x12
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x23
+ bl SetMonData
+ adds r0, r5, 0
+ bl sub_8040B1C
+ adds r0, r5, 0
+ bl CalculateMonStats
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042A9C: .4byte gPlayerParty
+_08042AA0: .4byte gEnemyParty
+_08042AA4: .4byte gStringVar1
+ thumb_func_end AddHatchedMonToParty
+
+ thumb_func_start ScriptHatchMon
+ScriptHatchMon: @ 8042AA8
+ push {lr}
+ ldr r0, _08042AB8 @ =gUnknown_0202E8CC
+ ldrb r0, [r0]
+ bl AddHatchedMonToParty
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042AB8: .4byte gUnknown_0202E8CC
+ thumb_func_end ScriptHatchMon
+
+ thumb_func_start sub_8042ABC
+sub_8042ABC: @ 8042ABC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r5, r0
+ mov r1, sp
+ bl pokemon_get_nick_
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r1, r0, 3
+ adds r0, r5, r1
+ adds r0, 0xC0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08042B40
+ adds r0, r1, 0
+ adds r0, 0xA0
+ adds r5, r0
+ adds r6, r5, 0
+ adds r6, 0x2C
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _08042B08
+ ldr r0, _08042B30 @ =gSaveBlock2
+ adds r1, r5, 0
+ adds r1, 0x24
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _08042B40
+_08042B08:
+ ldr r0, _08042B34 @ =gStringVar1
+ mov r1, sp
+ bl StringCopy
+ ldr r4, _08042B38 @ =gStringVar2
+ adds r1, r5, 0
+ adds r1, 0x24
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, _08042B3C @ =gStringVar3
+ adds r1, r6, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_814A568
+ movs r0, 0x1
+ b _08042B42
+ .align 2, 0
+_08042B30: .4byte gSaveBlock2
+_08042B34: .4byte gStringVar1
+_08042B38: .4byte gStringVar2
+_08042B3C: .4byte gStringVar3
+_08042B40:
+ movs r0, 0
+_08042B42:
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042ABC
+
+ thumb_func_start sub_8042B4C
+sub_8042B4C: @ 8042B4C
+ push {lr}
+ ldr r0, _08042B60 @ =gSaveBlock1 + 0x2F9C
+ ldr r1, _08042B64 @ =gUnknown_0202E8CC
+ ldrb r1, [r1]
+ bl sub_8042ABC
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042B60: .4byte gSaveBlock1 + 0x2F9C
+_08042B64: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8042B4C
+
+ thumb_func_start EggHatchCreateMonSprite
+EggHatchCreateMonSprite: @ 8042B68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r1, r2, 24
+ adds r2, r1, 0
+ movs r5, 0
+ mov r9, r5
+ movs r7, 0
+ cmp r3, 0
+ bne _08042B96
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08042BB0 @ =gPlayerParty
+ adds r7, r1, r0
+ movs r5, 0x1
+_08042B96:
+ cmp r3, 0x1
+ bne _08042BA6
+ movs r0, 0x64
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _08042BB0 @ =gPlayerParty
+ adds r7, r1, r0
+ movs r5, 0x3
+_08042BA6:
+ cmp r6, 0
+ beq _08042BB4
+ cmp r6, 0x1
+ beq _08042C14
+ b _08042C50
+ .align 2, 0
+_08042BB0: .4byte gPlayerParty
+_08042BB4:
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetMonData
+ mov r8, r0
+ lsls r0, r5, 3
+ ldr r1, _08042C04 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08042C08 @ =gMonFrontPicCoords
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r3, _08042C0C @ =0x02000000
+ ldr r6, _08042C10 @ =gUnknown_081FAF4C
+ lsls r4, 1
+ adds r4, 0x1
+ lsls r4, 2
+ adds r4, r6
+ ldr r4, [r4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ mov r4, r8
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r7, 0
+ bl sub_8040990
+ bl LoadCompressedObjectPalette
+ b _08042C50
+ .align 2, 0
+_08042C04: .4byte gMonFrontPicTable
+_08042C08: .4byte gMonFrontPicCoords
+_08042C0C: .4byte 0x02000000
+_08042C10: .4byte gUnknown_081FAF4C
+_08042C14:
+ adds r0, r7, 0
+ bl sub_8040990
+ ldrh r0, [r0, 0x4]
+ adds r1, r5, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08042C60 @ =gUnknown_02024E8C
+ movs r1, 0x78
+ movs r2, 0x46
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _08042C64 @ =gSprites
+ lsls r1, r0, 4
+ add r1, r9
+ lsls r1, 2
+ adds r2, r1, r4
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r2]
+ adds r4, 0x1C
+ adds r1, r4
+ ldr r0, _08042C68 @ =SpriteCallbackDummy
+ str r0, [r1]
+_08042C50:
+ mov r0, r9
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042C60: .4byte gUnknown_02024E8C
+_08042C64: .4byte gSprites
+_08042C68: .4byte SpriteCallbackDummy
+ thumb_func_end EggHatchCreateMonSprite
+
+ thumb_func_start VBlankCB_EggHatch
+VBlankCB_EggHatch: @ 8042C6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end VBlankCB_EggHatch
+
+ thumb_func_start EggHatch
+EggHatch: @ 8042C80
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _08042CA8 @ =sub_8042CAC
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042CA8: .4byte Task_EggHatch
+ thumb_func_end EggHatch
+
+ thumb_func_start Task_EggHatch
+Task_EggHatch: @ 8042CAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08042CD8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08042CD0
+ ldr r0, _08042CDC @ =sub_8042CE8
+ bl SetMainCallback2
+ ldr r1, _08042CE0 @ =gUnknown_0300485C
+ ldr r0, _08042CE4 @ =sub_8080990
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_08042CD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042CD8: .4byte gPaletteFade
+_08042CDC: .4byte CB2_EggHatch_0
+_08042CE0: .4byte gUnknown_0300485C
+_08042CE4: .4byte sub_8080990
+ thumb_func_end Task_EggHatch
+
+ thumb_func_start CB2_EggHatch_0
+CB2_EggHatch_0: @ 8042CE8
+ push {r4-r7,lr}
+ ldr r0, _08042D04 @ =gMain
+ ldr r1, _08042D08 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _08042CF8
+ b _08042F6E
+_08042CF8:
+ lsls r0, 2
+ ldr r1, _08042D0C @ =_08042D10
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08042D04: .4byte gMain
+_08042D08: .4byte 0x0000043c
+_08042D0C: .4byte _08042D10
+ .align 2, 0
+_08042D10:
+ .4byte _08042D34
+ .4byte _08042D90
+ .4byte _08042DC4
+ .4byte _08042E20
+ .4byte _08042E40
+ .4byte _08042E74
+ .4byte _08042E88
+ .4byte _08042EB0
+ .4byte _08042F40
+_08042D34:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08042D74 @ =gUnknown_0300481C
+ ldr r0, _08042D78 @ =0x02018000
+ str r0, [r1]
+ ldr r1, _08042D7C @ =gUnknown_0202E8CC
+ ldrh r1, [r1]
+ strb r1, [r0, 0x4]
+ adds r0, 0x3A
+ strb r2, [r0]
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _08042D80 @ =sub_8042C6C
+ bl SetVBlankCallback
+ ldr r1, _08042D84 @ =gMain
+ ldr r2, _08042D88 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl GetCurrentMapMusic
+ ldr r1, _08042D8C @ =gUnknown_0202E8CE
+ strh r0, [r1]
+ b _08042F6E
+ .align 2, 0
+_08042D74: .4byte gUnknown_0300481C
+_08042D78: .4byte 0x02018000
+_08042D7C: .4byte gUnknown_0202E8CC
+_08042D80: .4byte VBlankCB_EggHatch
+_08042D84: .4byte gMain
+_08042D88: .4byte 0x0000043c
+_08042D8C: .4byte gUnknown_0202E8CE
+_08042D90:
+ ldr r5, _08042DBC @ =gWindowConfig_81E6F84
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ ldr r4, _08042DC0 @ =gUnknown_0300481C
+ ldr r0, [r4]
+ adds r0, 0x8
+ adds r1, r5, 0
+ bl InitWindowFromConfig
+ movs r0, 0x14
+ bl SetTextWindowBaseTileNum
+ ldr r1, [r4]
+ adds r1, 0x38
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl LoadTextWindowGraphics
+ b _08042F04
+ .align 2, 0
+_08042DBC: .4byte gWindowConfig_81E6F84
+_08042DC0: .4byte gUnknown_0300481C
+_08042DC4:
+ ldr r0, _08042DFC @ =gUnknown_08D00000
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _08042E00 @ =gUnknown_08D00524
+ ldr r4, _08042E04 @ =0x02000000
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r4, 0
+ bl CpuSet
+ ldr r1, _08042E08 @ =0x040000d4
+ str r4, [r1]
+ ldr r0, _08042E0C @ =0x06002800
+ str r0, [r1, 0x4]
+ ldr r0, _08042E10 @ =0x80000280
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, _08042E14 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _08042E18 @ =gMain
+ ldr r2, _08042E1C @ =0x0000043c
+ adds r1, r2
+ b _08042F0A
+ .align 2, 0
+_08042DFC: .4byte gUnknown_08D00000
+_08042E00: .4byte gUnknown_08D00524
+_08042E04: .4byte 0x02000000
+_08042E08: .4byte 0x040000d4
+_08042E0C: .4byte 0x06002800
+_08042E10: .4byte 0x80000280
+_08042E14: .4byte gUnknown_08D004E0
+_08042E18: .4byte gMain
+_08042E1C: .4byte 0x0000043c
+_08042E20:
+ ldr r0, _08042E34 @ =gUnknown_0820A3B0
+ bl LoadSpriteSheet
+ ldr r0, _08042E38 @ =gUnknown_0820A3B8
+ bl LoadSpriteSheet
+ ldr r0, _08042E3C @ =gUnknown_0820A3C0
+ bl LoadSpritePalette
+ b _08042F04
+ .align 2, 0
+_08042E34: .4byte gUnknown_0820A3B0
+_08042E38: .4byte gUnknown_0820A3B8
+_08042E3C: .4byte gUnknown_0820A3C0
+_08042E40:
+ ldr r0, _08042E64 @ =gSpriteTemplate_820A3C8
+ movs r1, 0x78
+ movs r2, 0x4B
+ movs r3, 0x5
+ bl CreateSprite
+ ldr r2, _08042E68 @ =gUnknown_0300481C
+ ldr r1, [r2]
+ strb r0, [r1]
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ bl AddHatchedMonToParty
+ ldr r1, _08042E6C @ =gMain
+ ldr r2, _08042E70 @ =0x0000043c
+ adds r1, r2
+ b _08042F0A
+ .align 2, 0
+_08042E64: .4byte gSpriteTemplate_820A3C8
+_08042E68: .4byte gUnknown_0300481C
+_08042E6C: .4byte gMain
+_08042E70: .4byte 0x0000043c
+_08042E74:
+ ldr r0, _08042E84 @ =gUnknown_0300481C
+ ldr r0, [r0]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0
+ movs r1, 0
+ bl EggHatchCreateMonSprite
+ b _08042F04
+ .align 2, 0
+_08042E84: .4byte gUnknown_0300481C
+_08042E88:
+ ldr r4, _08042EA4 @ =gUnknown_0300481C
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ bl EggHatchCreateMonSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x1]
+ ldr r1, _08042EA8 @ =gMain
+ ldr r2, _08042EAC @ =0x0000043c
+ adds r1, r2
+ b _08042F0A
+ .align 2, 0
+_08042EA4: .4byte gUnknown_0300481C
+_08042EA8: .4byte gMain
+_08042EAC: .4byte 0x0000043c
+_08042EB0:
+ ldr r0, _08042F14 @ =REG_BG2CNT
+ ldr r2, _08042F18 @ =0x00004c06
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _08042F1C @ =gUnknown_0820C9F8
+ movs r1, 0x10
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r3, _08042F20 @ =gUnknown_0820CA98
+ ldr r4, _08042F24 @ =0x06004000
+ movs r5, 0x98
+ lsls r5, 5
+ ldr r1, _08042F28 @ =0x040000d4
+ ldr r6, _08042F2C @ =0x80000800
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_08042ED6:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08042ED6
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _08042F30 @ =gUnknown_0820F798
+ ldr r2, _08042F34 @ =0x06006000
+ ldr r0, _08042F28 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08042F2C @ =0x80000800
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+_08042F04:
+ ldr r1, _08042F38 @ =gMain
+ ldr r0, _08042F3C @ =0x0000043c
+ adds r1, r0
+_08042F0A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08042F6E
+ .align 2, 0
+_08042F14: .4byte REG_BG2CNT
+_08042F18: .4byte 0x00004c06
+_08042F1C: .4byte gUnknown_0820C9F8
+_08042F20: .4byte gUnknown_0820CA98
+_08042F24: .4byte 0x06004000
+_08042F28: .4byte 0x040000d4
+_08042F2C: .4byte 0x80000800
+_08042F30: .4byte gUnknown_0820F798
+_08042F34: .4byte 0x06006000
+_08042F38: .4byte gMain
+_08042F3C: .4byte 0x0000043c
+_08042F40:
+ ldr r1, _08042F74 @ =REG_BG1CNT
+ ldr r2, _08042F78 @ =0x00000501
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08042F7C @ =REG_BG0HOFS
+ movs r4, 0
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r0, _08042F80 @ =sub_804300C
+ bl SetMainCallback2
+ ldr r0, _08042F84 @ =gUnknown_0300481C
+ ldr r0, [r0]
+ strb r4, [r0, 0x2]
+_08042F6E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042F74: .4byte REG_BG1CNT
+_08042F78: .4byte 0x00000501
+_08042F7C: .4byte REG_BG0HOFS
+_08042F80: .4byte CB2_EggHatch_1
+_08042F84: .4byte gUnknown_0300481C
+ thumb_func_end CB2_EggHatch_0
+
+ thumb_func_start EggHatchSetMonNickname
+EggHatchSetMonNickname: @ 8042F88
+ push {lr}
+ ldr r0, _08042FA8 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08042FAC @ =gPlayerParty
+ adds r0, r1
+ ldr r2, _08042FB0 @ =gStringVar3
+ movs r1, 0x2
+ bl SetMonData
+ ldr r0, _08042FB4 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042FA8: .4byte gUnknown_0202E8CC
+_08042FAC: .4byte gPlayerParty
+_08042FB0: .4byte gStringVar3
+_08042FB4: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end EggHatchSetMonNickname
+
+ thumb_func_start Task_EggHatchPlayBGM
+Task_EggHatchPlayBGM: @ 8042FB8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08043004 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08042FD4
+ bl StopMapMusic
+_08042FD4:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08042FE4
+ movs r0, 0xBC
+ lsls r0, 1
+ bl PlayBGM
+_08042FE4:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ ble _08042FF8
+ ldr r0, _08043008 @ =0x00000179
+ bl PlayBGM
+ adds r0, r5, 0
+ bl DestroyTask
+_08042FF8:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043004: .4byte gTasks
+_08043008: .4byte 0x00000179
+ thumb_func_end Task_EggHatchPlayBGM
+
+ thumb_func_start CB2_EggHatch_1
+CB2_EggHatch_1: @ 804300C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r1, _08043030 @ =gUnknown_0300481C
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x2]
+ adds r5, r1, 0
+ cmp r0, 0xB
+ bls _08043026
+ b _080432BA
+_08043026:
+ lsls r0, 2
+ ldr r1, _08043034 @ =_08043038
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08043030: .4byte gUnknown_0300481C
+_08043034: .4byte _08043038
+ .align 2, 0
+_08043038:
+ .4byte _08043068
+ .4byte _080430A0
+ .4byte _080430C0
+ .4byte _080430F8
+ .4byte _08043124
+ .4byte _08043164
+ .4byte _08043172
+ .4byte _08043180
+ .4byte _080431B8
+ .4byte _080431DA
+ .4byte _08043288
+ .4byte _080432A8
+_08043068:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08043098 @ =gUnknown_0300481C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r0, _0804309C @ =c3_080472E4
+ movs r1, 0x5
+ bl CreateTask
+ b _080432BA
+ .align 2, 0
+_08043098: .4byte gUnknown_0300481C
+_0804309C: .4byte Task_EggHatchPlayBGM
+_080430A0:
+ ldr r0, _080430BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080430B2
+ b _080432BA
+_080430B2:
+ ldr r0, [r5]
+ strb r1, [r0, 0x3]
+ ldr r1, [r5]
+ b _0804329C
+ .align 2, 0
+_080430BC: .4byte gPaletteFade
+_080430C0:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bhi _080430D2
+ b _080432BA
+_080430D2:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r2, _080430F0 @ =gSprites
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080430F4 @ =sub_80432E4
+ str r1, [r0]
+ b _080432BA
+ .align 2, 0
+_080430F0: .4byte gSprites
+_080430F4: .4byte SpriteCB_Egg_0
+_080430F8:
+ ldr r2, _0804311C @ =gSprites
+ ldr r3, [r5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08043120 @ =SpriteCallbackDummy
+ cmp r1, r0
+ beq _08043112
+ b _080432BA
+_08043112:
+ ldrb r0, [r3, 0x2]
+ adds r0, 0x1
+ strb r0, [r3, 0x2]
+ b _080432BA
+ .align 2, 0
+_0804311C: .4byte gSprites
+_08043120: .4byte SpriteCallbackDummy
+_08043124:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08043150 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08043154 @ =gStringVar1
+ bl pokemon_get_nick
+ ldr r4, _08043158 @ =gStringVar4
+ ldr r1, _0804315C @ =gOtherText_HatchedFromEgg
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ bl EggHatchPrintMessage2
+ ldr r0, _08043160 @ =0x00000173
+ bl PlayFanfare
+ ldr r1, [r5]
+ b _0804329C
+ .align 2, 0
+_08043150: .4byte gPlayerParty
+_08043154: .4byte gStringVar1
+_08043158: .4byte gStringVar4
+_0804315C: .4byte gOtherText_HatchedFromEgg
+_08043160: .4byte 0x00000173
+_08043164:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ bne _08043170
+ b _080432BA
+_08043170:
+ b _08043298
+_08043172:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804317E
+ b _080432BA
+_0804317E:
+ b _08043298
+_08043180:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080431A8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080431AC @ =gStringVar1
+ bl pokemon_get_nick
+ ldr r4, _080431B0 @ =gStringVar4
+ ldr r1, _080431B4 @ =gOtherText_NickHatchPrompt
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ bl EggHatchPrintMessage1
+ ldr r1, [r5]
+ b _0804329C
+ .align 2, 0
+_080431A8: .4byte gPlayerParty
+_080431AC: .4byte gStringVar1
+_080431B0: .4byte gStringVar4
+_080431B4: .4byte gOtherText_NickHatchPrompt
+_080431B8:
+ bl EggHatchUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _080432BA
+ movs r0, 0x16
+ movs r1, 0x8
+ movs r2, 0x1B
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ movs r0, 0x16
+ movs r1, 0x8
+ movs r2, 0x4
+ bl InitYesNoMenu
+ b _08043298
+_080431DA:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ movs r1, 0x2
+ negs r1, r1
+ cmp r0, r1
+ beq _080432BA
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08043298
+ cmp r1, 0x1
+ beq _08043298
+ ldr r0, _08043278 @ =gUnknown_0300481C
+ mov r9, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r6, _0804327C @ =gPlayerParty
+ adds r0, r6
+ ldr r1, _08043280 @ =gStringVar3
+ mov r10, r1
+ bl pokemon_get_nick
+ mov r2, r9
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r2, r9
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ bl GetMonGender
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r2, r9
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, _08043284 @ =sub_8042F88
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ mov r1, r10
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl DoNamingScreen
+ b _080432BA
+ .align 2, 0
+_08043278: .4byte gUnknown_0300481C
+_0804327C: .4byte gPlayerParty
+_08043280: .4byte gStringVar3
+_08043284: .4byte EggHatchSetMonNickname
+_08043288:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_08043298:
+ ldr r0, _080432A4 @ =gUnknown_0300481C
+ ldr r1, [r0]
+_0804329C:
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ b _080432BA
+ .align 2, 0
+_080432A4: .4byte gUnknown_0300481C
+_080432A8:
+ ldr r0, _080432DC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080432BA
+ ldr r0, _080432E0 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+_080432BA:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080432DC: .4byte gPaletteFade
+_080432E0: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end CB2_EggHatch_1
+
+ thumb_func_start SpriteCB_Egg_0
+SpriteCB_Egg_0: @ 80432E4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _08043304
+ ldr r0, _08043300 @ =sub_804333C
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ b _08043334
+ .align 2, 0
+_08043300: .4byte SpriteCB_Egg_1
+_08043304:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _08043334
+ movs r0, 0x17
+ bl PlaySE
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ bl CreateRandomEggShardSprite
+_08043334:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_Egg_0
+
+ thumb_func_start SpriteCB_Egg_1
+SpriteCB_Egg_1: @ 804333C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _08043398
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _0804336C
+ ldr r0, _08043368 @ =sub_80433A0
+ str r0, [r4, 0x1C]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ b _08043398
+ .align 2, 0
+_08043368: .4byte SpriteCB_Egg_2
+_0804336C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _08043398
+ movs r0, 0x17
+ bl PlaySE
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_08043398:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_Egg_1
+
+ thumb_func_start SpriteCB_Egg_2
+SpriteCB_Egg_2: @ 80433A0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _0804345A
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x26
+ ble _08043418
+ ldr r0, _08043404 @ =sub_8043460
+ str r0, [r4, 0x1C]
+ strh r6, [r4, 0x2E]
+ ldr r5, _08043408 @ =gUnknown_0300481C
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0804340C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ ldr r4, _08043410 @ =gSprites
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r6, [r1, 0x24]
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08043414 @ =gMonFrontPicCoords
+ lsrs r0, 14
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x26]
+ b _0804345A
+ .align 2, 0
+_08043404: .4byte SpriteCB_Egg_3
+_08043408: .4byte gUnknown_0300481C
+_0804340C: .4byte gPlayerParty
+_08043410: .4byte gSprites
+_08043414: .4byte gMonFrontPicCoords
+_08043418:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _0804344C
+ movs r0, 0x17
+ bl PlaySE
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ bl CreateRandomEggShardSprite
+ bl CreateRandomEggShardSprite
+_0804344C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ bne _0804345A
+ movs r0, 0x17
+ bl PlaySE
+_0804345A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_Egg_2
+
+ thumb_func_start SpriteCB_Egg_3
+SpriteCB_Egg_3: @ 8043460
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _0804347A
+ ldr r0, _08043480 @ =sub_8043484
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+_0804347A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043480: .4byte SpriteCB_Egg_4
+ thumb_func_end SpriteCB_Egg_3
+
+ thumb_func_start SpriteCB_Egg_4
+SpriteCB_Egg_4: @ 8043484
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080434A4
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, _080434F8 @ =0x0000ffff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_080434A4:
+ ldrh r0, [r5, 0x2E]
+ cmp r0, 0x3
+ bhi _080434C0
+ movs r4, 0
+_080434AC:
+ bl CreateRandomEggShardSprite
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080434AC
+_080434C0:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ ldr r0, _080434FC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080434EE
+ movs r0, 0x71
+ bl PlaySE
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08043500 @ =sub_8043504
+ str r0, [r5, 0x1C]
+ strh r4, [r5, 0x2E]
+_080434EE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080434F8: .4byte 0x0000ffff
+_080434FC: .4byte gPaletteFade
+_08043500: .4byte SpriteCB_Egg_5
+ thumb_func_end SpriteCB_Egg_4
+
+ thumb_func_start SpriteCB_Egg_5
+SpriteCB_Egg_5: @ 8043504
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08043540
+ ldr r4, _08043594 @ =gSprites
+ ldr r3, _08043598 @ =gUnknown_0300481C
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08043540:
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x8
+ bne _0804355A
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, _0804359C @ =0x0000ffff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_0804355A:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x9
+ bgt _08043578
+ ldr r2, _08043594 @ =gSprites
+ ldr r0, _08043598 @ =gUnknown_0300481C
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_08043578:
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x28
+ ble _08043586
+ ldr r0, _080435A0 @ =SpriteCallbackDummy
+ str r0, [r5, 0x1C]
+_08043586:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043594: .4byte gSprites
+_08043598: .4byte gUnknown_0300481C
+_0804359C: .4byte 0x0000ffff
+_080435A0: .4byte SpriteCallbackDummy
+ thumb_func_end SpriteCB_Egg_5
+
+ thumb_func_start SpriteCB_EggShard
+SpriteCB_EggShard: @ 80435A4
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ ldrh r3, [r2, 0x38]
+ adds r0, r1, r3
+ strh r0, [r2, 0x38]
+ movs r4, 0x36
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bge _080435C2
+ adds r0, 0xFF
+_080435C2:
+ asrs r0, 8
+ strh r0, [r2, 0x24]
+ movs r3, 0x38
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _080435D0
+ adds r0, 0xFF
+_080435D0:
+ asrs r0, 8
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r3, r1, r0
+ strh r3, [r2, 0x32]
+ movs r4, 0x22
+ ldrsh r1, [r2, r4]
+ movs r4, 0x26
+ ldrsh r0, [r2, r4]
+ adds r0, r1, r0
+ adds r1, 0x14
+ cmp r0, r1
+ ble _080435F6
+ lsls r0, r3, 16
+ cmp r0, 0
+ ble _080435F6
+ adds r0, r2, 0
+ bl DestroySprite
+_080435F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_EggShard
+
+ thumb_func_start CreateRandomEggShardSprite
+CreateRandomEggShardSprite: @ 80435FC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r3, _0804364C @ =gEggShardVelocities
+ ldr r0, _08043650 @ =gUnknown_0300481C
+ ldr r4, [r0]
+ adds r4, 0x3A
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r1, r0, r3
+ ldrh r6, [r1]
+ adds r3, 0x2
+ adds r0, r3
+ ldrh r5, [r0]
+ adds r2, 0x1
+ strb r2, [r4]
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsls r6, 16
+ asrs r6, 16
+ lsls r5, 16
+ asrs r5, 16
+ movs r0, 0x64
+ str r0, [sp]
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ movs r0, 0x78
+ movs r1, 0x3C
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl CreateEggShardSprite
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804364C: .4byte gEggShardVelocities
+_08043650: .4byte gUnknown_0300481C
+ thumb_func_end CreateRandomEggShardSprite
+
+ thumb_func_start CreateEggShardSprite
+CreateEggShardSprite: @ 8043654
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r0, [sp, 0x1C]
+ mov r9, r0
+ ldr r1, [sp, 0x20]
+ mov r10, r1
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r1, r9
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080436CC @ =gSpriteTemplate_820A418
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x4
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080436D0 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r6, [r0, 0x30]
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ mov r1, r9
+ strh r1, [r0, 0x34]
+ mov r1, r10
+ bl StartSpriteAnim
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080436CC: .4byte gSpriteTemplate_820A418
+_080436D0: .4byte gSprites
+ thumb_func_end CreateEggShardSprite
+
+ thumb_func_start EggHatchPrintMessage1
+EggHatchPrintMessage1: @ 80436D4
+ push {lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ ldr r0, _080436F8 @ =gUnknown_0300481C
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r2, 0x38
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x3
+ bl sub_8002EB0
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080436F8: .4byte gUnknown_0300481C
+ thumb_func_end EggHatchPrintMessage1
+
+ thumb_func_start EggHatchPrintMessage2
+EggHatchPrintMessage2: @ 80436FC
+ push {lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ ldr r0, _08043720 @ =gUnknown_0300481C
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r2, 0x38
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043720: .4byte gUnknown_0300481C
+ thumb_func_end EggHatchPrintMessage2
+
+ thumb_func_start EggHatchUpdateWindowText
+EggHatchUpdateWindowText: @ 8043724
+ push {lr}
+ ldr r0, _08043738 @ =gUnknown_0300481C
+ ldr r0, [r0]
+ adds r0, 0x8
+ bl sub_80035AC
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043738: .4byte gUnknown_0300481C
+ thumb_func_end EggHatchUpdateWindowText
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_80412B0.s b/asm/rom_804373C.s
index 0b3087ace..bea90f6ca 100644
--- a/asm/rom_80412B0.s
+++ b/asm/rom_804373C.s
@@ -6,4677 +6,6 @@
.text
- thumb_func_start pokemon_get_nick
-pokemon_get_nick: @ 80412B0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick
-
- thumb_func_start pokemon_get_nick_
-pokemon_get_nick_: @ 80412D0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetBoxMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick_
-
- thumb_func_start daycare_count_pokemon
-daycare_count_pokemon: @ 80412F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_080412F8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041310
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08041310:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080412F8
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end daycare_count_pokemon
-
- thumb_func_start sub_8041324
-sub_8041324: @ 8041324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- mov r10, r1
- movs r7, 0
- movs r5, 0
- mov r6, r10
- adds r6, 0x74
- movs r0, 0x1
- mov r8, r0
-_0804133E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _0804136E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0xC
- bl GetBoxMonData
- adds r1, r0, 0
- cmp r1, 0
- bne _0804136E
- lsls r0, r5, 1
- adds r0, r6, r0
- b _08041374
-_0804136E:
- lsls r0, r5, 1
- adds r0, r6, r0
- mov r1, r8
-_08041374:
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804133E
- mov r0, r10
- str r7, [r0, 0x70]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8041324
-
- thumb_func_start daycare_empty_slot
-daycare_empty_slot: @ 8041394
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0804139A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080413B2
- lsls r0, r4, 24
- asrs r0, 24
- b _080413C0
-_080413B2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0804139A
- movs r0, 0x1
- negs r0, r0
-_080413C0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end daycare_empty_slot
-
- thumb_func_start sub_80413C8
-sub_80413C8: @ 80413C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- mov r8, r1
- mov r0, r8
- bl daycare_empty_slot
- lsls r0, 24
- lsrs r4, r0, 24
- mov r9, r4
- adds r0, r7, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _0804144A
- lsls r0, r4, 24
- asrs r0, 24
- lsls r4, r0, 3
- subs r4, r0
- lsls r4, 3
- adds r5, r4, 0
- adds r5, 0xA0
- add r5, r8
- adds r6, r5, 0
- adds r6, 0x24
- ldr r1, _08041490 @ =gSaveBlock2
- adds r0, r6, 0
- bl StringCopy
- adds r0, r6, 0
- movs r1, 0xFC
- bl sub_814A518
- adds r6, 0x8
- adds r0, r7, 0
- adds r1, r6, 0
- bl pokemon_get_nick
- adds r0, r7, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- add r4, r8
- ldr r2, _08041494 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r4, 0xA0
- ldr r0, _08041498 @ =0x00002b4c
- adds r1, r0
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r7, 0
- bl sub_80A2DF8
-_0804144A:
- mov r2, r9
- lsls r4, r2, 24
- asrs r4, 24
- lsls r5, r4, 2
- adds r4, r5, r4
- lsls r4, 4
- add r4, r8
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl pokemon_restore_pp
- movs r0, 0x88
- lsls r0, 1
- add r0, r8
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- adds r0, r7, 0
- bl ZeroMonData
- bl party_compaction
- bl CalculatePlayerPartyCount
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041490: .4byte gSaveBlock2
-_08041494: .4byte gSaveBlock1
-_08041498: .4byte 0x00002b4c
- thumb_func_end sub_80413C8
-
- thumb_func_start daycare_send
-daycare_send: @ 804149C
- push {lr}
- ldr r0, _080414B4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080414B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080414BC @ =gSaveBlock1 + 0x2F9C
- bl sub_80413C8
- pop {r0}
- bx r0
- .align 2, 0
-_080414B4: .4byte gUnknown_03005CE0
-_080414B8: .4byte gPlayerParty
-_080414BC: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end daycare_send
-
- thumb_func_start sub_80414C0
-sub_80414C0: @ 80414C0
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041516
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r6, r0, 0
- cmp r6, 0
- bne _08041516
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl ZeroBoxMonData
- adds r0, r5, 0
- adds r0, 0xA0
- adds r4, 0x88
- adds r1, r4, 0
- movs r2, 0x38
- bl memcpy
- movs r0, 0x88
- lsls r0, 1
- adds r2, r5, r0
- adds r0, 0x4
- adds r1, r5, r0
- ldr r0, [r1]
- str r0, [r2]
- str r6, [r1]
- adds r0, r4, 0
- bl sub_80417F4
-_08041516:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80414C0
-
- thumb_func_start sub_804151C
-sub_804151C: @ 804151C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
- ldr r7, _08041538 @ =0x0000ffff
-_08041524:
- adds r0, r4, 0
- bl sub_8040300
- lsls r0, 24
- cmp r0, 0
- beq _08041560
- movs r6, 0x1
- adds r5, 0x1
- b _0804154C
- .align 2, 0
-_08041538: .4byte 0x0000ffff
-_0804153C:
- movs r6, 0
- cmp r0, r7
- bne _0804154C
- ldr r0, _0804156C @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_0804154C:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0804153C
- cmp r5, 0x63
- ble _08041524
-_08041560:
- adds r0, r4, 0
- bl CalculateMonStats
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804156C: .4byte word_2024E82
- thumb_func_end sub_804151C
-
- thumb_func_start sub_8041570
-sub_8041570: @ 8041570
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x68
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r7, r4, 2
- adds r0, r7, r4
- lsls r0, 4
- adds r6, r5, r0
- ldr r1, _08041640 @ =gStringVar1
- adds r0, r6, 0
- bl pokemon_get_nick_
- adds r0, r6, 0
- movs r1, 0xB
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r6, 0
- mov r1, sp
- bl sub_803B4B4
- mov r0, sp
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080415D8
- mov r0, sp
- movs r1, 0x19
- bl GetMonData
- movs r2, 0x88
- lsls r2, 1
- adds r1, r5, r2
- adds r1, r7
- ldr r1, [r1]
- adds r0, r1
- str r0, [sp, 0x64]
- add r2, sp, 0x64
- mov r0, sp
- movs r1, 0x19
- bl SetMonData
- mov r0, sp
- bl sub_804151C
-_080415D8:
- ldr r0, _08041644 @ =gPlayerParty
- movs r1, 0xFA
- lsls r1, 1
- adds r1, r0
- mov r8, r1
- mov r0, r8
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- lsls r0, r4, 3
- subs r0, r4
- lsls r1, r0, 3
- adds r0, r5, r1
- adds r0, 0xC0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08041610
- adds r4, r1, 0
- adds r4, 0xA0
- adds r4, r5, r4
- mov r0, r8
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80417F4
-_08041610:
- bl party_compaction
- adds r0, r6, 0
- bl ZeroBoxMonData
- movs r2, 0x88
- lsls r2, 1
- adds r0, r5, r2
- adds r0, r7
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl sub_80414C0
- bl CalculatePlayerPartyCount
- mov r0, r9
- add sp, 0x68
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041640: .4byte gStringVar1
-_08041644: .4byte gPlayerParty
- thumb_func_end sub_8041570
-
- thumb_func_start sub_8041648
-sub_8041648: @ 8041648
- push {lr}
- ldr r0, _0804165C @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08041660 @ =gUnknown_0202E8CC
- ldrb r1, [r1]
- bl sub_8041570
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0804165C: .4byte gSaveBlock1 + 0x2F9C
-_08041660: .4byte gUnknown_0202E8CC
- thumb_func_end sub_8041648
-
- thumb_func_start sub_8041664
-sub_8041664: @ 8041664
- push {r4,r5,lr}
- sub sp, 0x54
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x19
- bl GetBoxMonData
- adds r0, r5
- str r0, [sp, 0x50]
- add r2, sp, 0x50
- mov r0, sp
- movs r1, 0x19
- bl SetBoxMonData
- mov r0, sp
- bl GetLevelFromBoxMonExp
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x54
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8041664
-
- thumb_func_start sub_80416A0
-sub_80416A0: @ 80416A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- lsls r0, r4, 2
- mov r8, r0
- add r4, r8
- lsls r4, 4
- adds r4, r5, r4
- adds r0, r4, 0
- bl GetLevelFromBoxMonExp
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x88
- lsls r0, 1
- adds r5, r0
- add r5, r8
- ldr r1, [r5]
- adds r0, r4, 0
- bl sub_8041664
- lsls r0, 24
- lsrs r0, 24
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80416A0
-
- thumb_func_start sub_80416E8
-sub_80416E8: @ 80416E8
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041720 @ =gStringVar1
- adds r0, r6, 0
- bl pokemon_get_nick_
- ldr r0, _08041724 @ =gStringVar2
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041720: .4byte gStringVar1
-_08041724: .4byte gStringVar2
- thumb_func_end sub_80416E8
-
- thumb_func_start sub_8041728
-sub_8041728: @ 8041728
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041768 @ =gStringVar1
- adds r0, r6, 0
- bl pokemon_get_nick_
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- adds r4, 0x64
- ldr r0, _0804176C @ =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041768: .4byte gStringVar1
-_0804176C: .4byte gStringVar2
- thumb_func_end sub_8041728
-
- thumb_func_start sub_8041770
-sub_8041770: @ 8041770
- push {lr}
- ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08041788 @ =gUnknown_0202E8CC
- ldrb r1, [r1]
- bl sub_8041728
- ldr r1, _0804178C @ =gUnknown_0202E8CE
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08041784: .4byte gSaveBlock1 + 0x2F9C
-_08041788: .4byte gUnknown_0202E8CC
-_0804178C: .4byte gUnknown_0202E8CE
- thumb_func_end sub_8041770
-
- thumb_func_start sub_8041790
-sub_8041790: @ 8041790
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080417AC @ =gSaveBlock1
- ldr r1, _080417B0 @ =0x000030ac
- adds r3, r2, r1
- ldr r1, [r3]
- adds r1, r0
- str r1, [r3]
- ldr r1, _080417B4 @ =0x000030b0
- adds r2, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
- bx lr
- .align 2, 0
-_080417AC: .4byte gSaveBlock1
-_080417B0: .4byte 0x000030ac
-_080417B4: .4byte 0x000030b0
- thumb_func_end sub_8041790
-
- thumb_func_start sub_80417B8
-sub_80417B8: @ 80417B8
- push {r4,r5,lr}
- ldr r5, _080417D8 @ =gUnknown_0202E8CC
- ldrh r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- ldr r4, _080417DC @ =gSaveBlock1 + 0x2F9C
- adds r0, r4
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080417E0
- movs r0, 0
- b _080417EC
- .align 2, 0
-_080417D8: .4byte gUnknown_0202E8CC
-_080417DC: .4byte gSaveBlock1 + 0x2F9C
-_080417E0:
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80416E8
- lsls r0, 24
- lsrs r0, 24
-_080417EC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80417B8
-
- thumb_func_start sub_80417F4
-sub_80417F4: @ 80417F4
- push {lr}
- movs r3, 0
- movs r2, 0x7
- adds r1, r0, 0
- adds r1, 0x2B
-_080417FE:
- strb r3, [r1]
- subs r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080417FE
- adds r2, r0, 0
- adds r2, 0x2C
- movs r3, 0
- adds r1, r0, 0
- adds r1, 0x36
-_08041812:
- strb r3, [r1]
- subs r1, 0x1
- cmp r1, r2
- bge _08041812
- bl sub_80A2B40
- pop {r0}
- bx r0
- thumb_func_end sub_80417F4
-
- thumb_func_start unref_sub_8041824
-unref_sub_8041824: @ 8041824
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
-_0804182A:
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- bl ZeroBoxMonData
- movs r1, 0x88
- lsls r1, 1
- adds r0, r6, r1
- adds r0, r4
- movs r4, 0
- str r4, [r0]
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 3
- adds r0, 0xA0
- adds r0, r6, r0
- bl sub_80417F4
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804182A
- movs r2, 0x8C
- lsls r2, 1
- adds r0, r6, r2
- movs r1, 0
- strh r4, [r0]
- adds r2, 0x2
- adds r0, r6, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8041824
-
- thumb_func_start sub_8041870
-sub_8041870: @ 8041870
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- mov r8, r0
- ldr r0, _0804189C @ =gEvolutionTable
- mov r12, r0
-_08041882:
- movs r7, 0
- movs r6, 0x1
- movs r4, 0x80
- lsls r4, 9
- movs r5, 0x28
- mov r3, r12
- adds r3, 0x28
-_08041890:
- movs r1, 0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- b _080418CC
- .align 2, 0
-_0804189C: .4byte gEvolutionTable
-_080418A0:
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080418B6
- lsls r0, r1, 3
- adds r0, r5
- add r0, r12
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- movs r7, 0x1
-_080418B6:
- cmp r7, 0
- bne _080418CC
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x28
- adds r3, 0x28
- adds r6, 0x1
- ldr r0, _080418EC @ =0x0000019b
- cmp r6, r0
- ble _08041890
-_080418CC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- beq _080418DE
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x4
- ble _08041882
-_080418DE:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080418EC: .4byte 0x0000019b
- thumb_func_end sub_8041870
-
- thumb_func_start sub_80418F0
-sub_80418F0: @ 80418F0
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041918 @ =0x0000fffe
- bl __umodsi3
- adds r0, 0x1
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08041918: .4byte 0x0000fffe
- thumb_func_end sub_80418F0
-
- thumb_func_start sub_804191C
-sub_804191C: @ 804191C
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- movs r2, 0x8C
- lsls r2, 1
- adds r4, r2
- orrs r1, r0
- strh r1, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804191C
-
- thumb_func_start sub_8041940
-sub_8041940: @ 8041940
- push {lr}
- ldr r0, _0804194C @ =gSaveBlock1 + 0x2F9C
- bl sub_80418F0
- pop {r0}
- bx r0
- .align 2, 0
-_0804194C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041940
-
- thumb_func_start sub_8041950
-sub_8041950: @ 8041950
- push {lr}
- ldr r0, _0804195C @ =gSaveBlock1 + 0x2F9C
- bl sub_804191C
- pop {r0}
- bx r0
- .align 2, 0
-_0804195C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041950
-
- thumb_func_start sub_8041960
-sub_8041960: @ 8041960
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
-_08041972:
- mov r1, sp
- adds r0, r1, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041972
- movs r3, 0
- movs r2, 0
-_08041986:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08041998
- adds r0, r4, r3
- strb r1, [r0]
- adds r3, 0x1
-_08041998:
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041986
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8041960
-
- thumb_func_start sub_80419A8
-sub_80419A8: @ 80419A8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r0
- mov r8, r1
- movs r5, 0
- add r1, sp, 0x4
- add r7, sp, 0xC
- adds r2, r1, 0
-_080419BE:
- adds r0, r2, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080419BE
- movs r5, 0
- adds r6, r1, 0
-_080419D0:
- bl Random
- mov r1, sp
- adds r4, r1, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- subs r1, r5
- bl __modsi3
- adds r0, r6, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl sub_8041960
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080419D0
- movs r5, 0
- movs r4, 0x1
-_08041A00:
- bl Random
- adds r1, r7, r5
- lsls r0, 16
- lsrs r0, 16
- ands r0, r4
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A00
- movs r5, 0
-_08041A1A:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08041B02
- lsls r0, 2
- ldr r1, _08041A30 @ =_08041A34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08041A30: .4byte _08041A34
- .align 2, 0
-_08041A34:
- .4byte _08041A4C
- .4byte _08041A6C
- .4byte _08041A88
- .4byte _08041AA4
- .4byte _08041AC0
- .4byte _08041AE2
-_08041A4C:
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x27
- bl GetBoxMonData
- add r2, sp, 0x10
- strb r0, [r2]
- mov r0, r9
- movs r1, 0x27
- bl SetMonData
- b _08041B02
-_08041A6C:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x28
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x28
- b _08041ADA
-_08041A88:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x29
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x29
- b _08041ADA
-_08041AA4:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2A
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2A
- b _08041ADA
-_08041AC0:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2B
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2B
-_08041ADA:
- adds r2, r4, 0
- bl SetMonData
- b _08041B02
-_08041AE2:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2C
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2C
- adds r2, r4, 0
- bl SetMonData
-_08041B02:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A1A
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80419A8
-
- thumb_func_start pokemon_get_eggmoves
-pokemon_get_eggmoves: @ 8041B1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- movs r6, 0
- movs r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _08041B44 @ =gEggMoves
- ldrh r1, [r5]
- ldr r7, _08041B48 @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- movs r4, 0x1
- b _08041B6E
- .align 2, 0
-_08041B44: .4byte gEggMoves
-_08041B48: .4byte 0x00004e20
-_08041B4C:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08041BB8 @ =0x00000471
- ldr r5, _08041BBC @ =gEggMoves
- cmp r2, r0
- bhi _08041B6E
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r7, _08041BC0 @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08041B6E:
- movs r2, 0
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, _08041BC0 @ =0x00004e20
- cmp r0, r1
- bhi _08041BAA
- adds r7, r5, 0
- adds r3, r1, 0
-_08041B80:
- lsls r1, r2, 1
- add r1, r8
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bhi _08041BAA
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r3
- bls _08041B80
-_08041BAA:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041BB8: .4byte 0x00000471
-_08041BBC: .4byte gEggMoves
-_08041BC0: .4byte 0x00004e20
- thumb_func_end pokemon_get_eggmoves
-
- thumb_func_start daycare_build_child_moveset
-daycare_build_child_moveset: @ 8041BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- mov r10, r1
- mov r9, r2
- movs r0, 0
- str r0, [sp]
- movs r6, 0
- ldr r5, _08041CC8 @ =gUnknown_03000500
- movs r2, 0
- ldr r4, _08041CCC @ =gUnknown_030004D8
- ldr r3, _08041CD0 @ =gUnknown_030004E0
-_08041BE4:
- lsls r1, r6, 1
- adds r0, r1, r5
- strh r2, [r0]
- adds r0, r1, r4
- strh r2, [r0]
- adds r1, r3
- strh r2, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041BE4
- movs r6, 0
- ldr r2, _08041CD4 @ =gUnknown_030004E8
- movs r1, 0
-_08041C02:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _08041C02
- movs r6, 0
- ldr r2, _08041CD8 @ =gUnknown_03000470
- movs r1, 0
-_08041C18:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x31
- bls _08041C18
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041CD8 @ =gUnknown_03000470
- bl sub_804051C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r6, 0
- ldr r1, _08041CCC @ =gUnknown_030004D8
- mov r8, r1
-_08041C46:
- adds r5, r6, 0
- adds r5, 0xD
- mov r0, r10
- adds r1, r5, 0
- bl GetBoxMonData
- lsls r4, r6, 1
- mov r2, r8
- adds r1, r4, r2
- strh r0, [r1]
- mov r0, r9
- adds r1, r5, 0
- bl GetBoxMonData
- ldr r1, _08041CC8 @ =gUnknown_03000500
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041C46
- ldr r1, _08041CD4 @ =gUnknown_030004E8
- adds r0, r7, 0
- bl pokemon_get_eggmoves
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
-_08041C82:
- ldr r0, _08041CCC @ =gUnknown_030004D8
- lsls r1, r6, 1
- adds r2, r1, r0
- ldrh r1, [r2]
- mov r9, r0
- cmp r1, 0
- beq _08041CF8
- movs r5, 0
- cmp r5, r8
- bcs _08041CEA
- adds r4, r2, 0
- ldr r2, _08041CDC @ =0x0000ffff
-_08041C9A:
- ldr r0, _08041CD4 @ =gUnknown_030004E8
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r4]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08041CE0
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041CEA
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08041CEA
- .align 2, 0
-_08041CC8: .4byte gUnknown_03000500
-_08041CCC: .4byte gUnknown_030004D8
-_08041CD0: .4byte gUnknown_030004E0
-_08041CD4: .4byte gUnknown_030004E8
-_08041CD8: .4byte gUnknown_03000470
-_08041CDC: .4byte 0x0000ffff
-_08041CE0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _08041C9A
-_08041CEA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _08041E14 @ =gUnknown_030004D8
- mov r9, r3
- cmp r6, 0x3
- bls _08041C82
-_08041CF8:
- movs r6, 0
-_08041CFA:
- lsls r0, r6, 1
- mov r2, r9
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r2, r0, 0
- adds r6, 0x1
- mov r8, r6
- cmp r1, 0
- beq _08041D5C
- movs r5, 0
- ldr r0, _08041E14 @ =gUnknown_030004D8
- adds r4, r2, r0
- ldr r6, _08041E18 @ =0x0000ffff
- mov r9, r0
-_08041D16:
- ldr r3, _08041E1C @ =0x00000121
- adds r0, r5, r3
- lsls r0, 16
- lsrs r0, 16
- bl ItemIdToBattleMoveId
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bne _08041D52
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl sub_8040374
- cmp r0, 0
- beq _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bne _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_08041D52:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x39
- bls _08041D16
-_08041D5C:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041CFA
- movs r6, 0
- mov r2, r9
- ldrh r0, [r2]
- ldr r3, _08041E20 @ =gUnknown_030004E0
- mov r10, r3
- cmp r0, 0
- beq _08041DC6
- mov r4, r9
- ldr r0, _08041E24 @ =gUnknown_03000500
- mov r9, r0
- mov r12, r10
-_08041D7C:
- movs r5, 0
- lsls r2, r6, 1
- adds r6, 0x1
- mov r8, r6
- adds r3, r2, r4
-_08041D86:
- lsls r0, r5, 1
- add r0, r9
- ldrh r2, [r3]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bne _08041DA8
- cmp r1, 0
- beq _08041DA8
- ldr r1, [sp]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 1
- add r1, r12
- strh r2, [r1]
-_08041DA8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _08041D86
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041DC6
- lsls r0, r6, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _08041D7C
-_08041DC6:
- movs r6, 0
- mov r2, r10
- ldrh r0, [r2]
- cmp r0, 0
- beq _08041E50
-_08041DD0:
- movs r5, 0
- adds r3, r6, 0x1
- mov r8, r3
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcs _08041E38
- ldr r2, _08041E18 @ =0x0000ffff
-_08041DDE:
- ldr r1, _08041E28 @ =gUnknown_03000470
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08041E2C
- lsls r0, r6, 1
- mov r3, r10
- adds r4, r0, r3
- ldrh r0, [r4]
- cmp r0, r1
- bne _08041E2C
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041E38
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08041E38
- .align 2, 0
-_08041E14: .4byte gUnknown_030004D8
-_08041E18: .4byte 0x0000ffff
-_08041E1C: .4byte 0x00000121
-_08041E20: .4byte gUnknown_030004E0
-_08041E24: .4byte gUnknown_03000500
-_08041E28: .4byte gUnknown_03000470
-_08041E2C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcc _08041DDE
-_08041E38:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041E50
- ldr r0, _08041E60 @ =gUnknown_030004E0
- lsls r1, r6, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r10, r0
- cmp r1, 0
- bne _08041DD0
-_08041E50:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041E60: .4byte gUnknown_030004E0
- thumb_func_end daycare_build_child_moveset
-
- thumb_func_start sub_8041E64
-sub_8041E64: @ 8041E64
- adds r3, r0, 0
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r3, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r3, r1
- strb r2, [r0]
- bx lr
- thumb_func_end sub_8041E64
-
- thumb_func_start sub_8041E7C
-sub_8041E7C: @ 8041E7C
- push {lr}
- ldr r0, _08041E88 @ =gSaveBlock1 + 0x2F9C
- bl sub_8041E64
- pop {r0}
- bx r0
- .align 2, 0
-_08041E88: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041E7C
-
- thumb_func_start incense_effects
-incense_effects: @ 8041E8C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrh r1, [r4]
- movs r7, 0xB4
- lsls r7, 1
- cmp r1, r7
- beq _08041EA4
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
-_08041EA4:
- adds r0, r5, 0
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r0, 0x50
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4]
- cmp r0, r7
- bne _08041ED0
- cmp r6, 0xDD
- beq _08041ED0
- cmp r2, 0xDD
- beq _08041ED0
- movs r0, 0xCA
- strh r0, [r4]
-_08041ED0:
- ldrh r1, [r4]
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
- cmp r6, 0xDC
- beq _08041EE6
- cmp r2, 0xDC
- beq _08041EE6
- movs r0, 0xB7
- strh r0, [r4]
-_08041EE6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end incense_effects
-
- thumb_func_start sub_8041EEC
-sub_8041EEC: @ 8041EEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- movs r4, 0
- movs r7, 0x1
-_08041EFC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- lsls r1, r4, 1
- add r1, sp
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bne _08041F26
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6]
- strb r4, [r6, 0x1]
- b _08041F3C
-_08041F26:
- adds r0, r5, 0
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- bne _08041F3C
- strb r4, [r6]
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6, 0x1]
-_08041F3C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08041EFC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- bl sub_8041870
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bne _08041F6E
- movs r0, 0x8C
- lsls r0, 1
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F6E
- movs r4, 0x20
-_08041F6E:
- ldr r0, _08041FC0 @ =0x00000183
- cmp r4, r0
- bne _08041F88
- subs r0, 0x6B
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F88
- movs r4, 0xC1
- lsls r4, 1
-_08041F88:
- ldrb r0, [r6, 0x1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r0, 0x84
- bne _08041FB2
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- beq _08041FB2
- ldrb r1, [r6, 0x1]
- ldrb r0, [r6]
- strb r0, [r6, 0x1]
- strb r1, [r6]
-_08041FB2:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041FC0: .4byte 0x00000183
- thumb_func_end sub_8041EEC
-
- thumb_func_start sub_8041FC4
-sub_8041FC4: @ 8041FC4
- push {r4-r6,lr}
- sub sp, 0x6C
- adds r5, r0, 0
- add r6, sp, 0x64
- adds r1, r6, 0
- bl sub_8041EEC
- add r4, sp, 0x68
- strh r0, [r4]
- adds r0, r4, 0
- adds r1, r5, 0
- bl incense_effects
- ldrh r1, [r4]
- mov r0, sp
- adds r2, r5, 0
- bl sub_80420FC
- mov r0, sp
- adds r1, r5, 0
- bl sub_80419A8
- ldrb r0, [r6, 0x1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 4
- adds r1, r5, r1
- ldrb r0, [r6]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 4
- adds r2, r5, r2
- mov r0, sp
- bl daycare_build_child_moveset
- mov r2, sp
- adds r2, 0x6A
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- ldr r0, _08042040 @ =gPlayerParty
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- bl party_compaction
- bl CalculatePlayerPartyCount
- adds r0, r5, 0
- bl sub_8041E64
- add sp, 0x6C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042040: .4byte gPlayerParty
- thumb_func_end sub_8041FC4
-
- thumb_func_start sub_8042044
-sub_8042044: @ 8042044
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r7, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r0, 0x12
- add r0, sp
- mov r8, r0
- strb r4, [r0]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- movs r0, 0x1
- mov r9, r0
- mov r0, r9
- strb r0, [r4]
- adds r0, r7, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _080420F4 @ =gUnknown_08209AD4
- adds r0, r7, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _080420F8 @ =gBaseStats + 0x11 @ egg cycles offset
- adds r2, r0
- adds r0, r7, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x24
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- cmp r6, 0
- beq _080420D6
- add r2, sp, 0x14
- movs r0, 0xFD
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x23
- bl SetMonData
-_080420D6:
- mov r2, sp
- adds r2, 0x15
- mov r0, r9
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x2D
- bl SetMonData
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080420F4: .4byte gUnknown_08209AD4
-_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_8042044
-
- thumb_func_start sub_80420FC
-sub_80420FC: @ 80420FC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- bl Random
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- ldrh r1, [r4]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x1
- mov r8, r0
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x12
- add r1, sp
- mov r9, r1
- strb r4, [r1]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- mov r0, r8
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _08042198 @ =gUnknown_08209AD4
- adds r0, r6, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _0804219C @ =gBaseStats + 0x11 @ egg cycles offset
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x24
- mov r2, r9
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042198: .4byte gUnknown_08209AD4
-_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_80420FC
-
- thumb_func_start sp0B8_daycare
-sp0B8_daycare: @ 80421A0
- push {lr}
- ldr r0, _080421AC @ =gSaveBlock1 + 0x2F9C
- bl sub_8041FC4
- pop {r0}
- bx r0
- .align 2, 0
-_080421AC: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sp0B8_daycare
-
- thumb_func_start sub_80421B0
-sub_80421B0: @ 80421B0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r7, r0, 0
- movs r2, 0
- movs r6, 0
- adds r5, r7, 0
-_080421BC:
- lsls r4, r6, 2
- adds r0, r5, 0
- movs r1, 0x5
- str r2, [sp, 0x4]
- bl GetBoxMonData
- ldr r2, [sp, 0x4]
- cmp r0, 0
- beq _080421DE
- movs r0, 0x88
- lsls r0, 1
- adds r1, r7, r0
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- adds r2, 0x1
-_080421DE:
- adds r5, 0x50
- adds r6, 0x1
- cmp r6, 0x1
- bls _080421BC
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08042226
- cmp r2, 0x2
- bne _08042226
- subs r1, 0x4
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042226
- adds r0, r7, 0
- bl daycare_relationship_score
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08042240 @ =0x0000ffff
- bl __udivsi3
- cmp r4, r0
- bls _08042226
- bl sub_8041940
-_08042226:
- movs r0, 0x8D
- lsls r0, 1
- adds r1, r7, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08042290
- movs r6, 0
- b _08042288
- .align 2, 0
-_08042240: .4byte 0x0000ffff
-_08042244:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08042270 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08042286
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- bne _08042278
- ldr r0, _08042274 @ =gUnknown_0202E8CC
- strh r6, [r0]
- movs r0, 0x1
- b _08042292
- .align 2, 0
-_08042270: .4byte gPlayerParty
-_08042274: .4byte gUnknown_0202E8CC
-_08042278:
- subs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_08042286:
- adds r6, 0x1
-_08042288:
- ldr r0, _0804229C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08042244
-_08042290:
- movs r0, 0
-_08042292:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804229C: .4byte gPlayerPartyCount
- thumb_func_end sub_80421B0
-
- thumb_func_start sub_80422A0
-sub_80422A0: @ 80422A0
- push {lr}
- ldr r0, _080422B0 @ =gSaveBlock1 + 0x2F9C
- bl sub_80421B0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080422B0: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_80422A0
-
- thumb_func_start sub_80422B4
-sub_80422B4: @ 80422B4
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- ldrh r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- thumb_func_end sub_80422B4
-
- thumb_func_start sub_80422C4
-sub_80422C4: @ 80422C4
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _080422FC
- ldr r1, _0804231C @ =gStringVar1
- adds r0, r6, 0
- bl pokemon_get_nick_
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08042320 @ =gStringVar3
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r5, 0
- bl GetBoxMonData
- adds r0, r5, 0
- adds r1, r4, 0
- bl ConvertInternationalString
-_080422FC:
- adds r4, r6, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08042314
- ldr r1, _08042324 @ =gStringVar2
- adds r0, r4, 0
- bl pokemon_get_nick_
-_08042314:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804231C: .4byte gStringVar1
-_08042320: .4byte gStringVar3
-_08042324: .4byte gStringVar2
- thumb_func_end sub_80422C4
-
- thumb_func_start sub_8042328
-sub_8042328: @ 8042328
- push {r4-r6,lr}
- ldr r6, _08042354 @ =gUnknown_03005CE0
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08042358 @ =gPlayerParty
- adds r0, r4
- ldr r1, _0804235C @ =gStringVar1
- bl pokemon_get_nick_
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08042354: .4byte gUnknown_03005CE0
-_08042358: .4byte gPlayerParty
-_0804235C: .4byte gStringVar1
- thumb_func_end sub_8042328
-
- thumb_func_start sp0B5_daycare
-sp0B5_daycare: @ 8042360
- push {lr}
- ldr r0, _0804236C @ =gSaveBlock1 + 0x2F9C
- bl sub_80422C4
- pop {r0}
- bx r0
- .align 2, 0
-_0804236C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sp0B5_daycare
-
- thumb_func_start sp0B6_daycare
-sp0B6_daycare: @ 8042370
- push {r4,lr}
- ldr r4, _08042384 @ =gSaveBlock1 + 0x2F9C
- adds r0, r4, 0
- bl sub_80422B4
- lsls r0, 24
- cmp r0, 0
- beq _08042388
- movs r0, 0x1
- b _080423A0
- .align 2, 0
-_08042384: .4byte gSaveBlock1 + 0x2F9C
-_08042388:
- adds r0, r4, 0
- bl daycare_count_pokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0804239A
- movs r0, 0
- b _080423A0
-_0804239A:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080423A0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sp0B6_daycare
-
- thumb_func_start sub_80423A8
-sub_80423A8: @ 80423A8
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r4, 0
- adds r1, r0, 0
-_080423B0:
- movs r3, 0
- ldrh r0, [r1]
- adds r2, r5, 0
-_080423B6:
- ldrh r6, [r2]
- cmp r0, r6
- bne _080423C0
- movs r0, 0x1
- b _080423D2
-_080423C0:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x1
- ble _080423B6
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x1
- ble _080423B0
- movs r0, 0
-_080423D2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80423A8
-
- thumb_func_start daycare_relationship_score
-daycare_relationship_score: @ 80423D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r1, 0
- mov r8, r1
- mov r2, sp
- adds r2, 0x8
- str r2, [sp, 0x1C]
- add r1, sp, 0xC
- mov r10, r1
- adds r2, 0xC
- str r2, [sp, 0x20]
- mov r1, sp
- adds r1, 0x2
- ldr r2, _08042488 @ =gBaseStats
- mov r9, r2
- ldr r5, [sp, 0x1C]
- adds r7, r1, 0
- mov r6, sp
- ldr r1, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r2, r10
- str r2, [sp, 0x28]
- adds r4, r0, 0
-_0804240E:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBoxMonData
- ldr r1, [sp, 0x28]
- stm r1!, {r0}
- str r1, [sp, 0x28]
- adds r0, r4, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldrh r0, [r5]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x24]
- stm r2!, {r0}
- str r2, [sp, 0x24]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x14]
- strh r0, [r6]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x15]
- strh r0, [r7]
- adds r5, 0x2
- adds r7, 0x4
- adds r6, 0x4
- adds r4, 0x50
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x1
- bls _0804240E
- mov r0, sp
- ldrh r1, [r0]
- cmp r1, 0xF
- beq _08042484
- ldrh r0, [r0, 0x4]
- cmp r0, 0xF
- beq _08042484
- cmp r1, 0xD
- bne _0804248C
- cmp r0, 0xD
- bne _08042490
-_08042484:
- movs r0, 0
- b _080424E4
- .align 2, 0
-_08042488: .4byte gBaseStats
-_0804248C:
- cmp r0, 0xD
- bne _0804249C
-_08042490:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424DE
- b _080424E2
-_0804249C:
- ldr r0, [sp, 0x14]
- ldr r2, [sp, 0x20]
- ldr r1, [r2, 0x4]
- cmp r0, r1
- beq _08042484
- cmp r0, 0xFF
- beq _08042484
- cmp r1, 0xFF
- beq _08042484
- add r1, sp, 0x4
- mov r0, sp
- bl sub_80423A8
- lsls r0, 24
- cmp r0, 0
- beq _08042484
- ldr r0, [sp, 0x1C]
- ldrh r1, [r0, 0x2]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080424D4
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424E2
- movs r0, 0x46
- b _080424E4
-_080424D4:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bne _080424E2
-_080424DE:
- movs r0, 0x14
- b _080424E4
-_080424E2:
- movs r0, 0x32
-_080424E4:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end daycare_relationship_score
-
- thumb_func_start daycare_relationship_score_from_savegame
-daycare_relationship_score_from_savegame: @ 80424F4
- push {lr}
- ldr r0, _08042504 @ =gSaveBlock1 + 0x2F9C
- bl daycare_relationship_score
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08042504: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end daycare_relationship_score_from_savegame
-
- thumb_func_start sp0B9_daycare_relationship_comment
-sp0B9_daycare_relationship_comment: @ 8042508
- push {lr}
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- movs r1, 0
- cmp r0, 0
- bne _0804251C
- movs r1, 0x3
-_0804251C:
- cmp r0, 0x14
- bne _08042522
- movs r1, 0x2
-_08042522:
- cmp r0, 0x32
- bne _08042528
- movs r1, 0x1
-_08042528:
- cmp r2, 0x46
- bne _0804252E
- movs r1, 0
-_0804252E:
- ldr r0, _08042540 @ =gStringVar4
- ldr r2, _08042544 @ =gUnknown_08209AC4
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_08042540: .4byte gStringVar4
-_08042544: .4byte gUnknown_08209AC4
- thumb_func_end sp0B9_daycare_relationship_comment
-
- thumb_func_start NameHasGenderSymbol
-NameHasGenderSymbol: @ 8042548
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r2, sp
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x1]
- strb r0, [r2]
- movs r3, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0804258C
-_08042564:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0xB5
- bne _08042572
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_08042572:
- ldrb r0, [r1]
- cmp r0, 0xB6
- bne _0804257E
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- strb r0, [r2, 0x1]
-_0804257E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042564
-_0804258C:
- cmp r5, 0
- bne _080425A0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _080425A0
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B4
-_080425A0:
- cmp r5, 0xFE
- bne _080425B8
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B8
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _080425B8
-_080425B4:
- movs r0, 0x1
- b _080425BA
-_080425B8:
- movs r0, 0
-_080425BA:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end NameHasGenderSymbol
-
- thumb_func_start AppendGenderSymbol
-AppendGenderSymbol: @ 80425C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080425E4
- movs r1, 0
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425E0 @ =gOtherText_MaleSymbol3
- b _08042602
- .align 2, 0
-_080425E0: .4byte gOtherText_MaleSymbol3
-_080425E4:
- cmp r1, 0xFE
- bne _08042600
- adds r0, r4, 0
- movs r1, 0xFE
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425FC @ =gOtherText_FemaleSymbol3
- b _08042602
- .align 2, 0
-_080425FC: .4byte gOtherText_FemaleSymbol3
-_08042600:
- ldr r1, _08042610 @ =gOtherText_GenderlessSymbol
-_08042602:
- adds r0, r4, 0
- bl StringAppend
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08042610: .4byte gOtherText_GenderlessSymbol
- thumb_func_end AppendGenderSymbol
-
- thumb_func_start MonAppendGenderSymbol
-MonAppendGenderSymbol: @ 8042614
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- bl GetBoxMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl AppendGenderSymbol
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MonAppendGenderSymbol
-
- thumb_func_start DaycareLevelMenuGetText
-DaycareLevelMenuGetText: @ 8042630
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- mov r8, r0
- adds r7, r1, 0
- movs r0, 0xFF
- strb r0, [r7]
- movs r6, 0
- add r0, sp, 0x14
- mov r9, r0
-_08042648:
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 4
- add r4, r8
- lsls r0, 2
- mov r1, sp
- adds r5, r1, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl pokemon_get_nick_
- adds r0, r5, 0
- adds r1, r4, 0
- bl MonAppendGenderSymbol
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _08042648
- adds r0, r7, 0
- mov r1, sp
- bl StringCopy
- ldr r4, _080426A8 @ =gOtherText_NewLine2
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- adds r0, r7, 0
- mov r1, r9
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- ldr r1, _080426AC @ =gOtherText_CancelAndLv
- adds r0, r7, 0
- bl StringAppend
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080426A8: .4byte gOtherText_NewLine2
-_080426AC: .4byte gOtherText_CancelAndLv
- thumb_func_end DaycareLevelMenuGetText
-
- thumb_func_start DaycareLevelMenuGetLevelText
-DaycareLevelMenuGetLevelText: @ 80426B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r5, 0
- movs r0, 0xFC
- mov r8, r0
- movs r7, 0x14
-_080426C6:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 4
- adds r0, r6, r0
- movs r3, 0x88
- lsls r3, 1
- adds r1, r6, r3
- adds r1, r2
- ldr r1, [r1]
- bl sub_8041664
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- mov r0, r8
- strb r0, [r4, 0x1]
- strb r7, [r4, 0x2]
- movs r0, 0x6
- strb r0, [r4, 0x3]
- adds r0, r4, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, r0, 0
- mov r3, r8
- strb r3, [r4]
- strb r7, [r4, 0x1]
- movs r0, 0
- strb r0, [r4, 0x2]
- adds r0, r4, 0x3
- ldr r1, _08042728 @ =gOtherText_NewLine2
- bl StringCopy
- adds r4, r0, 0
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _080426C6
- movs r0, 0xFF
- strb r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042728: .4byte gOtherText_NewLine2
- thumb_func_end DaycareLevelMenuGetLevelText
-
- thumb_func_start DaycareLevelMenuProcessKeyInput
-DaycareLevelMenuProcessKeyInput: @ 804272C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08042760 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042768
- ldr r0, _08042764 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08042816
- subs r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- negs r0, r0
- b _0804278A
- .align 2, 0
-_08042760: .4byte gMain
-_08042764: .4byte gTasks
-_08042768:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804279C
- ldr r0, _08042798 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- beq _08042816
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
-_0804278A:
- bl MoveMenuCursor
- movs r0, 0x5
- bl PlaySE
- b _08042816
- .align 2, 0
-_08042798: .4byte gTasks
-_0804279C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080427E8
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r3, _080427DC @ =gUnknown_03005CE0
- ldr r2, _080427E0 @ =gScriptResult
- ldr r1, _080427E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strh r0, [r2]
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
- b _08042816
- .align 2, 0
-_080427DC: .4byte gUnknown_03005CE0
-_080427E0: .4byte gScriptResult
-_080427E4: .4byte gTasks
-_080427E8:
- movs r4, 0x2
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08042816
- bl sub_8072DEC
- ldr r0, _0804281C @ =gUnknown_03005CE0
- ldr r1, _08042820 @ =gScriptResult
- strh r4, [r1]
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08042816:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804281C: .4byte gUnknown_03005CE0
-_08042820: .4byte gScriptResult
- thumb_func_end DaycareLevelMenuProcessKeyInput
-
- thumb_func_start ShowDaycareLevelMenu
-ShowDaycareLevelMenu: @ 8042824
- push {r4,lr}
- sub sp, 0x6C
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r4, _08042880 @ =gSaveBlock1 + 0x2F9C
- adds r0, r4, 0
- add r1, sp, 0x8
- bl DaycareLevelMenuGetText
- add r0, sp, 0x8
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- adds r0, r4, 0
- add r1, sp, 0x8
- bl DaycareLevelMenuGetLevelText
- add r0, sp, 0x8
- movs r1, 0xCE
- movs r2, 0x38
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x7
- movs r3, 0x3
- bl InitMenu
- ldr r0, _08042884 @ =sub_804272C
- movs r1, 0x3
- bl CreateTask
- add sp, 0x6C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08042880: .4byte gSaveBlock1 + 0x2F9C
-_08042884: .4byte DaycareLevelMenuProcessKeyInput
- thumb_func_end ShowDaycareLevelMenu
-
- thumb_func_start ChooseSendDaycareMon
-ChooseSendDaycareMon: @ 8042888
- push {lr}
- movs r0, 0x6
- movs r1, 0
- bl OpenPartyMenu
- ldr r1, _0804289C @ =gMain
- ldr r0, _080428A0 @ =c2_exit_to_overworld_2_switch
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0804289C: .4byte gMain
-_080428A0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end ChooseSendDaycareMon
-
- thumb_func_start CreatedHatchedMon
-CreatedHatchedMon: @ 80428A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x48
- adds r6, r0, 0
- adds r5, r1, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r4, 0
- add r7, sp, 0x18
- mov r0, sp
- adds r0, 0x31
- str r0, [sp, 0x38]
- mov r1, sp
- adds r1, 0x32
- str r1, [sp, 0x3C]
- add r0, sp, 0x30
- mov r9, r0
- adds r1, 0x1
- str r1, [sp, 0x40]
- mov r0, sp
- adds r0, 0x34
- str r0, [sp, 0x44]
-_080428DE:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- lsls r1, r4, 1
- add r1, sp
- adds r1, 0x10
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080428DE
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- movs r4, 0
-_08042906:
- adds r1, r4, 0
- adds r1, 0x27
- adds r0, r6, 0
- bl GetMonData
- lsls r1, r4, 2
- adds r1, r7, r1
- str r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08042906
- adds r0, r6, 0
- movs r1, 0x25
- bl GetMonData
- ldr r1, [sp, 0x38]
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x8
- bl GetMonData
- ldr r1, [sp, 0x3C]
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x22
- bl GetMonData
- str r0, [sp, 0x34]
- movs r0, 0x1
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r1, r10
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r4, 0
-_0804295E:
- adds r1, r4, 0
- adds r1, 0xD
- lsls r0, r4, 1
- mov r2, sp
- adds r2, r0
- adds r2, 0x10
- adds r0, r5, 0
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0804295E
- movs r4, 0
-_0804297C:
- adds r1, r4, 0
- adds r1, 0x27
- lsls r2, r4, 2
- adds r2, r7, r2
- adds r0, r5, 0
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0804297C
- movs r0, 0x2
- mov r1, r9
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x25
- ldr r2, [sp, 0x38]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x8
- ldr r2, [sp, 0x3C]
- bl SetMonData
- movs r0, 0x78
- ldr r1, [sp, 0x40]
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x20
- ldr r2, [sp, 0x40]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x22
- ldr r2, [sp, 0x44]
- bl SetMonData
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- add sp, 0x48
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreatedHatchedMon
-
- thumb_func_start AddHatchedMonToParty
-AddHatchedMonToParty: @ 80429EC
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r0, _08042A9C @ =gPlayerParty
- adds r5, r0
- ldr r1, _08042AA0 @ =gEnemyParty
- adds r0, r5, 0
- bl CreatedHatchedMon
- add r2, sp, 0xC
- movs r6, 0
- strb r6, [r2]
- adds r0, r5, 0
- movs r1, 0x2D
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- adds r1, r4, 0
- bl GetSpeciesName
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8090D90
- ldr r1, _08042AA4 @ =gStringVar1
- adds r0, r5, 0
- bl pokemon_get_nick
- mov r2, sp
- adds r2, 0xE
- movs r0, 0x4
- strh r0, [r2]
- adds r0, r5, 0
- movs r1, 0x26
- bl SetMonData
- add r2, sp, 0x10
- strh r6, [r2]
- adds r0, r5, 0
- movs r1, 0x24
- bl SetMonData
- bl sav1_map_get_name
- mov r2, sp
- adds r2, 0x12
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x23
- bl SetMonData
- adds r0, r5, 0
- bl sub_8040B1C
- adds r0, r5, 0
- bl CalculateMonStats
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042A9C: .4byte gPlayerParty
-_08042AA0: .4byte gEnemyParty
-_08042AA4: .4byte gStringVar1
- thumb_func_end AddHatchedMonToParty
-
- thumb_func_start ScriptHatchMon
-ScriptHatchMon: @ 8042AA8
- push {lr}
- ldr r0, _08042AB8 @ =gUnknown_0202E8CC
- ldrb r0, [r0]
- bl AddHatchedMonToParty
- pop {r0}
- bx r0
- .align 2, 0
-_08042AB8: .4byte gUnknown_0202E8CC
- thumb_func_end ScriptHatchMon
-
- thumb_func_start sub_8042ABC
-sub_8042ABC: @ 8042ABC
- push {r4-r6,lr}
- sub sp, 0x20
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r5, r0
- mov r1, sp
- bl pokemon_get_nick_
- lsls r0, r4, 3
- subs r0, r4
- lsls r1, r0, 3
- adds r0, r5, r1
- adds r0, 0xC0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08042B40
- adds r0, r1, 0
- adds r0, 0xA0
- adds r5, r0
- adds r6, r5, 0
- adds r6, 0x2C
- mov r0, sp
- adds r1, r6, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _08042B08
- ldr r0, _08042B30 @ =gSaveBlock2
- adds r1, r5, 0
- adds r1, 0x24
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _08042B40
-_08042B08:
- ldr r0, _08042B34 @ =gStringVar1
- mov r1, sp
- bl StringCopy
- ldr r4, _08042B38 @ =gStringVar2
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _08042B3C @ =gStringVar3
- adds r1, r6, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- movs r0, 0x1
- b _08042B42
- .align 2, 0
-_08042B30: .4byte gSaveBlock2
-_08042B34: .4byte gStringVar1
-_08042B38: .4byte gStringVar2
-_08042B3C: .4byte gStringVar3
-_08042B40:
- movs r0, 0
-_08042B42:
- add sp, 0x20
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8042ABC
-
- thumb_func_start sub_8042B4C
-sub_8042B4C: @ 8042B4C
- push {lr}
- ldr r0, _08042B60 @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08042B64 @ =gUnknown_0202E8CC
- ldrb r1, [r1]
- bl sub_8042ABC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08042B60: .4byte gSaveBlock1 + 0x2F9C
-_08042B64: .4byte gUnknown_0202E8CC
- thumb_func_end sub_8042B4C
-
- thumb_func_start EggHatchCreateMonSprite
-EggHatchCreateMonSprite: @ 8042B68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r1, r2, 24
- adds r2, r1, 0
- movs r5, 0
- mov r9, r5
- movs r7, 0
- cmp r3, 0
- bne _08042B96
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08042BB0 @ =gPlayerParty
- adds r7, r1, r0
- movs r5, 0x1
-_08042B96:
- cmp r3, 0x1
- bne _08042BA6
- movs r0, 0x64
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _08042BB0 @ =gPlayerParty
- adds r7, r1, r0
- movs r5, 0x3
-_08042BA6:
- cmp r6, 0
- beq _08042BB4
- cmp r6, 0x1
- beq _08042C14
- b _08042C50
- .align 2, 0
-_08042BB0: .4byte gPlayerParty
-_08042BB4:
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- lsls r0, r5, 3
- ldr r1, _08042C04 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08042C08 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _08042C0C @ =0x02000000
- ldr r6, _08042C10 @ =gUnknown_081FAF4C
- lsls r4, 1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r6
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r4, r8
- str r4, [sp, 0x8]
- bl sub_800D334
- adds r0, r7, 0
- bl sub_8040990
- bl LoadCompressedObjectPalette
- b _08042C50
- .align 2, 0
-_08042C04: .4byte gMonFrontPicTable
-_08042C08: .4byte gMonFrontPicCoords
-_08042C0C: .4byte 0x02000000
-_08042C10: .4byte gUnknown_081FAF4C
-_08042C14:
- adds r0, r7, 0
- bl sub_8040990
- ldrh r0, [r0, 0x4]
- adds r1, r5, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08042C60 @ =gUnknown_02024E8C
- movs r1, 0x78
- movs r2, 0x46
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _08042C64 @ =gSprites
- lsls r1, r0, 4
- add r1, r9
- lsls r1, 2
- adds r2, r1, r4
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r2]
- adds r4, 0x1C
- adds r1, r4
- ldr r0, _08042C68 @ =SpriteCallbackDummy
- str r0, [r1]
-_08042C50:
- mov r0, r9
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08042C60: .4byte gUnknown_02024E8C
-_08042C64: .4byte gSprites
-_08042C68: .4byte SpriteCallbackDummy
- thumb_func_end EggHatchCreateMonSprite
-
- thumb_func_start VBlankCB_EggHatch
-VBlankCB_EggHatch: @ 8042C6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_EggHatch
-
- thumb_func_start EggHatch
-EggHatch: @ 8042C80
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08042CA8 @ =sub_8042CAC
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08042CA8: .4byte Task_EggHatch
- thumb_func_end EggHatch
-
- thumb_func_start Task_EggHatch
-Task_EggHatch: @ 8042CAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08042CD8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08042CD0
- ldr r0, _08042CDC @ =sub_8042CE8
- bl SetMainCallback2
- ldr r1, _08042CE0 @ =gUnknown_0300485C
- ldr r0, _08042CE4 @ =sub_8080990
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_08042CD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08042CD8: .4byte gPaletteFade
-_08042CDC: .4byte CB2_EggHatch_0
-_08042CE0: .4byte gUnknown_0300485C
-_08042CE4: .4byte sub_8080990
- thumb_func_end Task_EggHatch
-
- thumb_func_start CB2_EggHatch_0
-CB2_EggHatch_0: @ 8042CE8
- push {r4-r7,lr}
- ldr r0, _08042D04 @ =gMain
- ldr r1, _08042D08 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08042CF8
- b _08042F6E
-_08042CF8:
- lsls r0, 2
- ldr r1, _08042D0C @ =_08042D10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042D04: .4byte gMain
-_08042D08: .4byte 0x0000043c
-_08042D0C: .4byte _08042D10
- .align 2, 0
-_08042D10:
- .4byte _08042D34
- .4byte _08042D90
- .4byte _08042DC4
- .4byte _08042E20
- .4byte _08042E40
- .4byte _08042E74
- .4byte _08042E88
- .4byte _08042EB0
- .4byte _08042F40
-_08042D34:
- movs r0, 0x80
- lsls r0, 19
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08042D74 @ =gUnknown_0300481C
- ldr r0, _08042D78 @ =0x02018000
- str r0, [r1]
- ldr r1, _08042D7C @ =gUnknown_0202E8CC
- ldrh r1, [r1]
- strb r1, [r0, 0x4]
- adds r0, 0x3A
- strb r2, [r0]
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _08042D80 @ =sub_8042C6C
- bl SetVBlankCallback
- ldr r1, _08042D84 @ =gMain
- ldr r2, _08042D88 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl GetCurrentMapMusic
- ldr r1, _08042D8C @ =gUnknown_0202E8CE
- strh r0, [r1]
- b _08042F6E
- .align 2, 0
-_08042D74: .4byte gUnknown_0300481C
-_08042D78: .4byte 0x02018000
-_08042D7C: .4byte gUnknown_0202E8CC
-_08042D80: .4byte VBlankCB_EggHatch
-_08042D84: .4byte gMain
-_08042D88: .4byte 0x0000043c
-_08042D8C: .4byte gUnknown_0202E8CE
-_08042D90:
- ldr r5, _08042DBC @ =gWindowConfig_81E6F84
- adds r0, r5, 0
- bl SetUpWindowConfig
- ldr r4, _08042DC0 @ =gUnknown_0300481C
- ldr r0, [r4]
- adds r0, 0x8
- adds r1, r5, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl SetTextWindowBaseTileNum
- ldr r1, [r4]
- adds r1, 0x38
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x8
- bl LoadTextWindowGraphics
- b _08042F04
- .align 2, 0
-_08042DBC: .4byte gWindowConfig_81E6F84
-_08042DC0: .4byte gUnknown_0300481C
-_08042DC4:
- ldr r0, _08042DFC @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _08042E00 @ =gUnknown_08D00524
- ldr r4, _08042E04 @ =0x02000000
- movs r2, 0x80
- lsls r2, 4
- adds r1, r4, 0
- bl CpuSet
- ldr r1, _08042E08 @ =0x040000d4
- str r4, [r1]
- ldr r0, _08042E0C @ =0x06002800
- str r0, [r1, 0x4]
- ldr r0, _08042E10 @ =0x80000280
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, _08042E14 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _08042E18 @ =gMain
- ldr r2, _08042E1C @ =0x0000043c
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042DFC: .4byte gUnknown_08D00000
-_08042E00: .4byte gUnknown_08D00524
-_08042E04: .4byte 0x02000000
-_08042E08: .4byte 0x040000d4
-_08042E0C: .4byte 0x06002800
-_08042E10: .4byte 0x80000280
-_08042E14: .4byte gUnknown_08D004E0
-_08042E18: .4byte gMain
-_08042E1C: .4byte 0x0000043c
-_08042E20:
- ldr r0, _08042E34 @ =gUnknown_0820A3B0
- bl LoadSpriteSheet
- ldr r0, _08042E38 @ =gUnknown_0820A3B8
- bl LoadSpriteSheet
- ldr r0, _08042E3C @ =gUnknown_0820A3C0
- bl LoadSpritePalette
- b _08042F04
- .align 2, 0
-_08042E34: .4byte gUnknown_0820A3B0
-_08042E38: .4byte gUnknown_0820A3B8
-_08042E3C: .4byte gUnknown_0820A3C0
-_08042E40:
- ldr r0, _08042E64 @ =gSpriteTemplate_820A3C8
- movs r1, 0x78
- movs r2, 0x4B
- movs r3, 0x5
- bl CreateSprite
- ldr r2, _08042E68 @ =gUnknown_0300481C
- ldr r1, [r2]
- strb r0, [r1]
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- bl AddHatchedMonToParty
- ldr r1, _08042E6C @ =gMain
- ldr r2, _08042E70 @ =0x0000043c
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042E64: .4byte gSpriteTemplate_820A3C8
-_08042E68: .4byte gUnknown_0300481C
-_08042E6C: .4byte gMain
-_08042E70: .4byte 0x0000043c
-_08042E74:
- ldr r0, _08042E84 @ =gUnknown_0300481C
- ldr r0, [r0]
- ldrb r2, [r0, 0x4]
- movs r0, 0
- movs r1, 0
- bl EggHatchCreateMonSprite
- b _08042F04
- .align 2, 0
-_08042E84: .4byte gUnknown_0300481C
-_08042E88:
- ldr r4, _08042EA4 @ =gUnknown_0300481C
- ldr r0, [r4]
- ldrb r2, [r0, 0x4]
- movs r0, 0
- movs r1, 0x1
- bl EggHatchCreateMonSprite
- ldr r1, [r4]
- strb r0, [r1, 0x1]
- ldr r1, _08042EA8 @ =gMain
- ldr r2, _08042EAC @ =0x0000043c
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042EA4: .4byte gUnknown_0300481C
-_08042EA8: .4byte gMain
-_08042EAC: .4byte 0x0000043c
-_08042EB0:
- ldr r0, _08042F14 @ =REG_BG2CNT
- ldr r2, _08042F18 @ =0x00004c06
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08042F1C @ =gUnknown_0820C9F8
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r3, _08042F20 @ =gUnknown_0820CA98
- ldr r4, _08042F24 @ =0x06004000
- movs r5, 0x98
- lsls r5, 5
- ldr r1, _08042F28 @ =0x040000d4
- ldr r6, _08042F2C @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08042ED6:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08042ED6
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08042F30 @ =gUnknown_0820F798
- ldr r2, _08042F34 @ =0x06006000
- ldr r0, _08042F28 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08042F2C @ =0x80000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
-_08042F04:
- ldr r1, _08042F38 @ =gMain
- ldr r0, _08042F3C @ =0x0000043c
- adds r1, r0
-_08042F0A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08042F6E
- .align 2, 0
-_08042F14: .4byte REG_BG2CNT
-_08042F18: .4byte 0x00004c06
-_08042F1C: .4byte gUnknown_0820C9F8
-_08042F20: .4byte gUnknown_0820CA98
-_08042F24: .4byte 0x06004000
-_08042F28: .4byte 0x040000d4
-_08042F2C: .4byte 0x80000800
-_08042F30: .4byte gUnknown_0820F798
-_08042F34: .4byte 0x06006000
-_08042F38: .4byte gMain
-_08042F3C: .4byte 0x0000043c
-_08042F40:
- ldr r1, _08042F74 @ =REG_BG1CNT
- ldr r2, _08042F78 @ =0x00000501
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08042F7C @ =REG_BG0HOFS
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _08042F80 @ =sub_804300C
- bl SetMainCallback2
- ldr r0, _08042F84 @ =gUnknown_0300481C
- ldr r0, [r0]
- strb r4, [r0, 0x2]
-_08042F6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042F74: .4byte REG_BG1CNT
-_08042F78: .4byte 0x00000501
-_08042F7C: .4byte REG_BG0HOFS
-_08042F80: .4byte CB2_EggHatch_1
-_08042F84: .4byte gUnknown_0300481C
- thumb_func_end CB2_EggHatch_0
-
- thumb_func_start EggHatchSetMonNickname
-EggHatchSetMonNickname: @ 8042F88
- push {lr}
- ldr r0, _08042FA8 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08042FAC @ =gPlayerParty
- adds r0, r1
- ldr r2, _08042FB0 @ =gStringVar3
- movs r1, 0x2
- bl SetMonData
- ldr r0, _08042FB4 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08042FA8: .4byte gUnknown_0202E8CC
-_08042FAC: .4byte gPlayerParty
-_08042FB0: .4byte gStringVar3
-_08042FB4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end EggHatchSetMonNickname
-
- thumb_func_start Task_EggHatchPlayBGM
-Task_EggHatchPlayBGM: @ 8042FB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08043004 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08042FD4
- bl StopMapMusic
-_08042FD4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08042FE4
- movs r0, 0xBC
- lsls r0, 1
- bl PlayBGM
-_08042FE4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- ble _08042FF8
- ldr r0, _08043008 @ =0x00000179
- bl PlayBGM
- adds r0, r5, 0
- bl DestroyTask
-_08042FF8:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043004: .4byte gTasks
-_08043008: .4byte 0x00000179
- thumb_func_end Task_EggHatchPlayBGM
-
- thumb_func_start CB2_EggHatch_1
-CB2_EggHatch_1: @ 804300C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r1, _08043030 @ =gUnknown_0300481C
- ldr r0, [r1]
- ldrb r0, [r0, 0x2]
- adds r5, r1, 0
- cmp r0, 0xB
- bls _08043026
- b _080432BA
-_08043026:
- lsls r0, 2
- ldr r1, _08043034 @ =_08043038
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08043030: .4byte gUnknown_0300481C
-_08043034: .4byte _08043038
- .align 2, 0
-_08043038:
- .4byte _08043068
- .4byte _080430A0
- .4byte _080430C0
- .4byte _080430F8
- .4byte _08043124
- .4byte _08043164
- .4byte _08043172
- .4byte _08043180
- .4byte _080431B8
- .4byte _080431DA
- .4byte _08043288
- .4byte _080432A8
-_08043068:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08043098 @ =gUnknown_0300481C
- ldr r1, [r0]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r0, _0804309C @ =c3_080472E4
- movs r1, 0x5
- bl CreateTask
- b _080432BA
- .align 2, 0
-_08043098: .4byte gUnknown_0300481C
-_0804309C: .4byte Task_EggHatchPlayBGM
-_080430A0:
- ldr r0, _080430BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080430B2
- b _080432BA
-_080430B2:
- ldr r0, [r5]
- strb r1, [r0, 0x3]
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_080430BC: .4byte gPaletteFade
-_080430C0:
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bhi _080430D2
- b _080432BA
-_080430D2:
- ldr r1, [r5]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r2, _080430F0 @ =gSprites
- ldr r0, [r5]
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080430F4 @ =sub_80432E4
- str r1, [r0]
- b _080432BA
- .align 2, 0
-_080430F0: .4byte gSprites
-_080430F4: .4byte SpriteCB_Egg_0
-_080430F8:
- ldr r2, _0804311C @ =gSprites
- ldr r3, [r5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08043120 @ =SpriteCallbackDummy
- cmp r1, r0
- beq _08043112
- b _080432BA
-_08043112:
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
- b _080432BA
- .align 2, 0
-_0804311C: .4byte gSprites
-_08043120: .4byte SpriteCallbackDummy
-_08043124:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08043150 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08043154 @ =gStringVar1
- bl pokemon_get_nick
- ldr r4, _08043158 @ =gStringVar4
- ldr r1, _0804315C @ =gOtherText_HatchedFromEgg
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl EggHatchPrintMessage2
- ldr r0, _08043160 @ =0x00000173
- bl PlayFanfare
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_08043150: .4byte gPlayerParty
-_08043154: .4byte gStringVar1
-_08043158: .4byte gStringVar4
-_0804315C: .4byte gOtherText_HatchedFromEgg
-_08043160: .4byte 0x00000173
-_08043164:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- bne _08043170
- b _080432BA
-_08043170:
- b _08043298
-_08043172:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- bne _0804317E
- b _080432BA
-_0804317E:
- b _08043298
-_08043180:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080431A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080431AC @ =gStringVar1
- bl pokemon_get_nick
- ldr r4, _080431B0 @ =gStringVar4
- ldr r1, _080431B4 @ =gOtherText_NickHatchPrompt
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl EggHatchPrintMessage1
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_080431A8: .4byte gPlayerParty
-_080431AC: .4byte gStringVar1
-_080431B0: .4byte gStringVar4
-_080431B4: .4byte gOtherText_NickHatchPrompt
-_080431B8:
- bl EggHatchUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _080432BA
- movs r0, 0x16
- movs r1, 0x8
- movs r2, 0x1B
- movs r3, 0xD
- bl MenuDrawTextWindow
- movs r0, 0x16
- movs r1, 0x8
- movs r2, 0x4
- bl InitYesNoMenu
- b _08043298
-_080431DA:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- movs r1, 0x2
- negs r1, r1
- cmp r0, r1
- beq _080432BA
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08043298
- cmp r1, 0x1
- beq _08043298
- ldr r0, _08043278 @ =gUnknown_0300481C
- mov r9, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r6, _0804327C @ =gPlayerParty
- adds r0, r6
- ldr r1, _08043280 @ =gStringVar3
- mov r10, r1
- bl pokemon_get_nick
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _08043284 @ =sub_8042F88
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- b _080432BA
- .align 2, 0
-_08043278: .4byte gUnknown_0300481C
-_0804327C: .4byte gPlayerParty
-_08043280: .4byte gStringVar3
-_08043284: .4byte EggHatchSetMonNickname
-_08043288:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08043298:
- ldr r0, _080432A4 @ =gUnknown_0300481C
- ldr r1, [r0]
-_0804329C:
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- b _080432BA
- .align 2, 0
-_080432A4: .4byte gUnknown_0300481C
-_080432A8:
- ldr r0, _080432DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080432BA
- ldr r0, _080432E0 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
-_080432BA:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080432DC: .4byte gPaletteFade
-_080432E0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end CB2_EggHatch_1
-
- thumb_func_start SpriteCB_Egg_0
-SpriteCB_Egg_0: @ 80432E4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08043304
- ldr r0, _08043300 @ =sub_804333C
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x2E]
- b _08043334
- .align 2, 0
-_08043300: .4byte SpriteCB_Egg_1
-_08043304:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08043334
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- bl CreateRandomEggShardSprite
-_08043334:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_0
-
- thumb_func_start SpriteCB_Egg_1
-SpriteCB_Egg_1: @ 804333C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _08043398
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0804336C
- ldr r0, _08043368 @ =sub_80433A0
- str r0, [r4, 0x1C]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x32]
- b _08043398
- .align 2, 0
-_08043368: .4byte SpriteCB_Egg_2
-_0804336C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08043398
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_08043398:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_1
-
- thumb_func_start SpriteCB_Egg_2
-SpriteCB_Egg_2: @ 80433A0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _0804345A
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x26
- ble _08043418
- ldr r0, _08043404 @ =sub_8043460
- str r0, [r4, 0x1C]
- strh r6, [r4, 0x2E]
- ldr r5, _08043408 @ =gUnknown_0300481C
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804340C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- ldr r4, _08043410 @ =gSprites
- ldr r3, [r5]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r6, [r1, 0x24]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08043414 @ =gMonFrontPicCoords
- lsrs r0, 14
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x26]
- b _0804345A
- .align 2, 0
-_08043404: .4byte SpriteCB_Egg_3
-_08043408: .4byte gUnknown_0300481C
-_0804340C: .4byte gPlayerParty
-_08043410: .4byte gSprites
-_08043414: .4byte gMonFrontPicCoords
-_08043418:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _0804344C
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- bl CreateRandomEggShardSprite
- bl CreateRandomEggShardSprite
-_0804344C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- bne _0804345A
- movs r0, 0x17
- bl PlaySE
-_0804345A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_2
-
- thumb_func_start SpriteCB_Egg_3
-SpriteCB_Egg_3: @ 8043460
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _0804347A
- ldr r0, _08043480 @ =sub_8043484
- str r0, [r1, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x2E]
-_0804347A:
- pop {r0}
- bx r0
- .align 2, 0
-_08043480: .4byte SpriteCB_Egg_4
- thumb_func_end SpriteCB_Egg_3
-
- thumb_func_start SpriteCB_Egg_4
-SpriteCB_Egg_4: @ 8043484
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080434A4
- movs r1, 0x1
- negs r1, r1
- ldr r0, _080434F8 @ =0x0000ffff
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080434A4:
- ldrh r0, [r5, 0x2E]
- cmp r0, 0x3
- bhi _080434C0
- movs r4, 0
-_080434AC:
- bl CreateRandomEggShardSprite
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080434AC
-_080434C0:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- ldr r0, _080434FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080434EE
- movs r0, 0x71
- bl PlaySE
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08043500 @ =sub_8043504
- str r0, [r5, 0x1C]
- strh r4, [r5, 0x2E]
-_080434EE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080434F8: .4byte 0x0000ffff
-_080434FC: .4byte gPaletteFade
-_08043500: .4byte SpriteCB_Egg_5
- thumb_func_end SpriteCB_Egg_4
-
- thumb_func_start SpriteCB_Egg_5
-SpriteCB_Egg_5: @ 8043504
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08043540
- ldr r4, _08043594 @ =gSprites
- ldr r3, _08043598 @ =gUnknown_0300481C
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08043540:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x8
- bne _0804355A
- movs r1, 0x1
- negs r1, r1
- ldr r0, _0804359C @ =0x0000ffff
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0804355A:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x9
- bgt _08043578
- ldr r2, _08043594 @ =gSprites
- ldr r0, _08043598 @ =gUnknown_0300481C
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_08043578:
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x28
- ble _08043586
- ldr r0, _080435A0 @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
-_08043586:
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043594: .4byte gSprites
-_08043598: .4byte gUnknown_0300481C
-_0804359C: .4byte 0x0000ffff
-_080435A0: .4byte SpriteCallbackDummy
- thumb_func_end SpriteCB_Egg_5
-
- thumb_func_start SpriteCB_EggShard
-SpriteCB_EggShard: @ 80435A4
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- ldrh r3, [r2, 0x38]
- adds r0, r1, r3
- strh r0, [r2, 0x38]
- movs r4, 0x36
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bge _080435C2
- adds r0, 0xFF
-_080435C2:
- asrs r0, 8
- strh r0, [r2, 0x24]
- movs r3, 0x38
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _080435D0
- adds r0, 0xFF
-_080435D0:
- asrs r0, 8
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r3, r1, r0
- strh r3, [r2, 0x32]
- movs r4, 0x22
- ldrsh r1, [r2, r4]
- movs r4, 0x26
- ldrsh r0, [r2, r4]
- adds r0, r1, r0
- adds r1, 0x14
- cmp r0, r1
- ble _080435F6
- lsls r0, r3, 16
- cmp r0, 0
- ble _080435F6
- adds r0, r2, 0
- bl DestroySprite
-_080435F6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_EggShard
-
- thumb_func_start CreateRandomEggShardSprite
-CreateRandomEggShardSprite: @ 80435FC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r3, _0804364C @ =gEggShardVelocities
- ldr r0, _08043650 @ =gUnknown_0300481C
- ldr r4, [r0]
- adds r4, 0x3A
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r1, r0, r3
- ldrh r6, [r1]
- adds r3, 0x2
- adds r0, r3
- ldrh r5, [r0]
- adds r2, 0x1
- strb r2, [r4]
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- movs r0, 0x64
- str r0, [sp]
- lsrs r1, 16
- str r1, [sp, 0x4]
- movs r0, 0x78
- movs r1, 0x3C
- adds r2, r6, 0
- adds r3, r5, 0
- bl CreateEggShardSprite
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804364C: .4byte gEggShardVelocities
-_08043650: .4byte gUnknown_0300481C
- thumb_func_end CreateRandomEggShardSprite
-
- thumb_func_start CreateEggShardSprite
-CreateEggShardSprite: @ 8043654
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x1C]
- mov r9, r0
- ldr r1, [sp, 0x20]
- mov r10, r1
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r1, r9
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080436CC @ =gSpriteTemplate_820A418
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080436D0 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x30]
- mov r1, r8
- strh r1, [r0, 0x32]
- mov r1, r9
- strh r1, [r0, 0x34]
- mov r1, r10
- bl StartSpriteAnim
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080436CC: .4byte gSpriteTemplate_820A418
-_080436D0: .4byte gSprites
- thumb_func_end CreateEggShardSprite
-
- thumb_func_start EggHatchPrintMessage1
-EggHatchPrintMessage1: @ 80436D4
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- ldr r0, _080436F8 @ =gUnknown_0300481C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x8
- adds r2, 0x38
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x3
- bl sub_8002EB0
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080436F8: .4byte gUnknown_0300481C
- thumb_func_end EggHatchPrintMessage1
-
- thumb_func_start EggHatchPrintMessage2
-EggHatchPrintMessage2: @ 80436FC
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- ldr r0, _08043720 @ =gUnknown_0300481C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x8
- adds r2, 0x38
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08043720: .4byte gUnknown_0300481C
- thumb_func_end EggHatchPrintMessage2
-
- thumb_func_start EggHatchUpdateWindowText
-EggHatchUpdateWindowText: @ 8043724
- push {lr}
- ldr r0, _08043738 @ =gUnknown_0300481C
- ldr r0, [r0]
- adds r0, 0x8
- bl sub_80035AC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08043738: .4byte gUnknown_0300481C
- thumb_func_end EggHatchUpdateWindowText
-
thumb_func_start sub_804373C
sub_804373C: @ 804373C
movs r0, 0x9
diff --git a/ld_script.txt b/ld_script.txt
index 86fea4041..c5de0551e 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -55,7 +55,9 @@ SECTIONS {
src/rng.o(.text);
asm/rom_8040EB4.o(.text);
src/blend_palette.o(.text);
- asm/rom_80412B0.o(.text);
+ asm/daycare.o(.text);
+ asm/egg_hatch.o(.text);
+ asm/rom_804373C.o(.text);
src/play_time.o(.text);
src/new_game.o(.text);
src/rom4.o(.text);