pokeemerald-jp/asm/egg_hatch.s
2019-09-27 01:42:56 -04:00

1901 lines
32 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start CreatedHatchedMon
CreatedHatchedMon: @ 0x08070D68
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x50
adds r5, r0, #0
adds r6, r1, #0
movs r1, #0xb
bl GetMonData
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #0x3c]
movs r4, #0
add r7, sp, #0x18
add r0, sp, #0x30
mov sb, r0
movs r1, #0x31
add r1, sp
mov sl, r1
mov r0, sp
adds r0, #0x32
str r0, [sp, #0x40]
mov r1, sp
adds r1, #0x34
str r1, [sp, #0x48]
adds r0, #1
str r0, [sp, #0x44]
adds r1, #4
str r1, [sp, #0x4c]
_08070DA6:
adds r1, r4, #0
adds r1, #0xd
adds r0, r5, #0
bl GetMonData
lsls r1, r4, #1
add r1, sp
adds r1, #0x10
strh r0, [r1]
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #3
bls _08070DA6
adds r0, r5, #0
movs r1, #0
bl GetMonData
mov r8, r0
movs r4, #0
_08070DCE:
adds r1, r4, #0
adds r1, #0x27
adds r0, r5, #0
bl GetMonData
lsls r1, r4, #2
adds r1, r7, r1
str r0, [r1]
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #5
bls _08070DCE
adds r0, r5, #0
movs r1, #3
bl GetMonData
mov r1, sb
strb r0, [r1]
adds r0, r5, #0
movs r1, #0x25
bl GetMonData
mov r1, sl
strb r0, [r1]
adds r0, r5, #0
movs r1, #8
bl GetMonData
ldr r1, [sp, #0x40]
strb r0, [r1]
adds r0, r5, #0
movs r1, #0x22
bl GetMonData
str r0, [sp, #0x38]
adds r0, r5, #0
movs r1, #0x50
bl GetMonData
ldr r1, [sp, #0x48]
strb r0, [r1]
movs r0, #1
str r0, [sp]
mov r0, r8
str r0, [sp, #4]
movs r0, #0
str r0, [sp, #8]
str r0, [sp, #0xc]
adds r0, r6, #0
ldr r1, [sp, #0x3c]
movs r2, #5
movs r3, #0x20
bl CreateMon
movs r4, #0
_08070E3E:
adds r1, r4, #0
adds r1, #0xd
lsls r0, r4, #1
mov r2, sp
adds r2, r2, r0
adds r2, #0x10
adds r0, r6, #0
bl SetMonData
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #3
bls _08070E3E
movs r4, #0
_08070E5C:
adds r1, r4, #0
adds r1, #0x27
lsls r2, r4, #2
adds r2, r7, r2
adds r0, r6, #0
bl SetMonData
adds r0, r4, #1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #5
bls _08070E5C
adds r0, r6, #0
movs r1, #3
mov r2, sb
bl SetMonData
adds r0, r6, #0
movs r1, #0x25
mov r2, sl
bl SetMonData
adds r0, r6, #0
movs r1, #8
ldr r2, [sp, #0x40]
bl SetMonData
movs r0, #0x78
ldr r1, [sp, #0x44]
strb r0, [r1]
adds r0, r6, #0
movs r1, #0x20
ldr r2, [sp, #0x44]
bl SetMonData
adds r0, r6, #0
movs r1, #0x22
ldr r2, [sp, #0x4c]
bl SetMonData
adds r0, r6, #0
movs r1, #0x50
ldr r2, [sp, #0x48]
bl SetMonData
adds r0, r5, #0
adds r1, r6, #0
movs r2, #0x64
bl memcpy
add sp, #0x50
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_end CreatedHatchedMon
thumb_func_start AddHatchedMonToParty
AddHatchedMonToParty: @ 0x08070ED0
push {r4, r5, lr}
sub sp, #0x14
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
add r4, sp, #0xc
movs r1, #0x46
strb r1, [r4]
movs r1, #0x64
adds r5, r0, #0
muls r5, r1, r5
ldr r0, _08070F84
adds r5, r5, r0
ldr r1, _08070F88
adds r0, r5, #0
bl CreatedHatchedMon
adds r0, r5, #0
movs r1, #0x2d
adds r2, r4, #0
bl SetMonData
adds r0, r5, #0
movs r1, #0xb
bl GetMonData
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
mov r0, sp
adds r1, r4, #0
bl GetSpeciesName
adds r0, r5, #0
movs r1, #2
mov r2, sp
bl SetMonData
adds r0, r4, #0
bl HoennToNationalOrder
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r4, #0
movs r1, #2
bl GetSetPokedexFlag
adds r0, r4, #0
movs r1, #3
bl GetSetPokedexFlag
ldr r1, _08070F8C
adds r0, r5, #0
bl GetBoxMonNick
mov r2, sp
adds r2, #0xe
movs r0, #4
strh r0, [r2]
adds r0, r5, #0
movs r1, #0x26
bl SetMonData
add r2, sp, #0x10
movs r0, #0
strh r0, [r2]
adds r0, r5, #0
movs r1, #0x24
bl SetMonData
bl GetCurrentRegionMapSectionId
mov r2, sp
adds r2, #0x12
strb r0, [r2]
adds r0, r5, #0
movs r1, #0x23
bl SetMonData
adds r0, r5, #0
bl GiveMonInitialMoveset
adds r0, r5, #0
bl CalculateMonStats
add sp, #0x14
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08070F84: .4byte 0x02024190
_08070F88: .4byte 0x020243E8
_08070F8C: .4byte 0x02021C40
thumb_func_end AddHatchedMonToParty
thumb_func_start ScriptHatchMon
ScriptHatchMon: @ 0x08070F90
push {lr}
ldr r0, _08070FA0
ldrb r0, [r0]
bl AddHatchedMonToParty
pop {r0}
bx r0
.align 2, 0
_08070FA0: .4byte 0x02037280
thumb_func_end ScriptHatchMon
thumb_func_start sub_08070FA4
sub_08070FA4: @ 0x08070FA4
push {r4, r5, lr}
sub sp, #0x20
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r2, #0x8c
muls r1, r2, r1
adds r4, r0, r1
adds r0, r4, #0
mov r1, sp
bl GetMonNick
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
cmp r0, #0
beq _08071010
adds r5, r4, #0
adds r5, #0x7c
mov r0, sp
adds r1, r5, #0
bl StringCompare
adds r4, #0x74
cmp r0, #0
bne _08070FE4
ldr r0, _08071000
ldr r0, [r0]
adds r1, r4, #0
bl StringCompare
cmp r0, #0
beq _08071010
_08070FE4:
ldr r0, _08071004
mov r1, sp
bl StringCopy
ldr r0, _08071008
adds r1, r4, #0
bl StringCopy
ldr r0, _0807100C
adds r1, r5, #0
bl StringCopy
movs r0, #1
b _08071012
.align 2, 0
_08071000: .4byte 0x03005AF0
_08071004: .4byte 0x02021C40
_08071008: .4byte 0x02021C54
_0807100C: .4byte 0x02021C68
_08071010:
movs r0, #0
_08071012:
add sp, #0x20
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_end sub_08070FA4
thumb_func_start sub_0807101C
sub_0807101C: @ 0x0807101C
push {lr}
ldr r0, _08071038
ldr r0, [r0]
ldr r1, _0807103C
adds r0, r0, r1
ldr r1, _08071040
ldrb r1, [r1]
bl sub_08070FA4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
pop {r1}
bx r1
.align 2, 0
_08071038: .4byte 0x03005AEC
_0807103C: .4byte 0x00003030
_08071040: .4byte 0x02037280
thumb_func_end sub_0807101C
thumb_func_start EggHatchCreateMonSprite
EggHatchCreateMonSprite: @ 0x08071044
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, r3
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
mov r8, r3
lsls r1, r1, #0x18
lsrs r6, r1, #0x18
lsls r2, r2, #0x18
lsrs r1, r2, #0x18
adds r2, r1, #0
movs r4, #0
movs r7, #0
movs r5, #0
cmp r3, #0
bne _08071072
movs r0, #0x64
muls r1, r0, r1
ldr r0, _0807108C
adds r5, r1, r0
movs r4, #1
_08071072:
cmp r3, #1
bne _08071082
movs r0, #0x64
adds r1, r2, #0
muls r1, r0, r1
ldr r0, _0807108C
adds r5, r1, r0
movs r4, #3
_08071082:
cmp r6, #0
beq _08071090
cmp r6, #1
beq _080710E0
b _0807111A
.align 2, 0
_0807108C: .4byte 0x02024190
_08071090:
adds r0, r5, #0
movs r1, #0xb
bl GetMonData
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r5, #0
movs r1, #0
bl GetMonData
adds r3, r0, #0
lsls r0, r4, #3
ldr r1, _080710D8
adds r0, r0, r1
ldr r1, _080710DC
ldr r2, [r1]
mov r6, r8
lsls r1, r6, #1
adds r1, #1
lsls r1, r1, #2
adds r2, #4
adds r2, r2, r1
ldr r1, [r2]
adds r2, r4, #0
bl HandleLoadSpecialPokePic_DontHandleDeoxys
adds r0, r5, #0
bl GetMonSpritePalStruct
bl LoadCompressedSpritePalette
mov r0, sb
strh r4, [r0]
b _0807111A
.align 2, 0
_080710D8: .4byte 0x082DDA1C
_080710DC: .4byte 0x02024178
_080710E0:
adds r0, r5, #0
bl GetMonSpritePalStruct
ldrh r0, [r0, #4]
adds r1, r4, #0
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _08071128
movs r1, #0x78
movs r2, #0x4b
movs r3, #6
bl CreateSprite
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r4, _0807112C
lsls r1, r7, #4
adds r1, r1, r7
lsls r1, r1, #2
adds r2, r1, r4
adds r2, #0x3e
ldrb r0, [r2]
movs r3, #4
orrs r0, r3
strb r0, [r2]
adds r4, #0x1c
adds r1, r1, r4
ldr r0, _08071130
str r0, [r1]
_0807111A:
adds r0, r7, #0
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_08071128: .4byte 0x02024640
_0807112C: .4byte 0x020205AC
_08071130: .4byte 0x08007141
thumb_func_end EggHatchCreateMonSprite
thumb_func_start VBlankCB_EggHatch
VBlankCB_EggHatch: @ 0x08071134
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
.align 2, 0
thumb_func_end VBlankCB_EggHatch
thumb_func_start EggHatch
EggHatch: @ 0x08071148
push {lr}
bl ScriptContext2_Enable
ldr r0, _08071164
movs r1, #0xa
bl CreateTask
movs r0, #1
movs r1, #0
bl FadeScreen
pop {r0}
bx r0
.align 2, 0
_08071164: .4byte 0x08071169
thumb_func_end EggHatch
thumb_func_start Task_EggHatch
Task_EggHatch: @ 0x08071168
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r0, _08071198
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08071190
bl CleanupOverworldWindowsAndTilemaps
ldr r0, _0807119C
bl SetMainCallback2
ldr r1, _080711A0
ldr r0, _080711A4
str r0, [r1]
adds r0, r4, #0
bl DestroyTask
_08071190:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08071198: .4byte 0x02037C74
_0807119C: .4byte 0x080711A9
_080711A0: .4byte 0x03005B0C
_080711A4: .4byte 0x080AEA65
thumb_func_end Task_EggHatch
thumb_func_start CB2_EggHatch_0
CB2_EggHatch_0: @ 0x080711A8
push {r4, lr}
sub sp, #4
ldr r0, _080711C8
movs r1, #0x87
lsls r1, r1, #3
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #8
bls _080711BC
b _080713DA
_080711BC:
lsls r0, r0, #2
ldr r1, _080711CC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080711C8: .4byte 0x03002360
_080711CC: .4byte 0x080711D0
_080711D0: @ jump table
.4byte _080711F4 @ case 0
.4byte _080712C0 @ case 1
.4byte _080712D8 @ case 2
.4byte _08071308 @ case 3
.4byte _08071328 @ case 4
.4byte _08071340 @ case 5
.4byte _08071358 @ case 6
.4byte _08071374 @ case 7
.4byte _080713CC @ case 8
_080711F4:
movs r0, #0
movs r1, #0
bl SetGpuReg
ldr r4, _080712AC
movs r0, #0x14
bl Alloc
str r0, [r4]
bl AllocateMonSpritesGfx
ldr r2, [r4]
ldr r0, _080712B0
ldrh r0, [r0]
movs r1, #0
strb r0, [r2, #4]
ldr r0, [r4]
strb r1, [r0, #7]
ldr r0, _080712B4
bl SetVBlankCallback
bl GetCurrentMapMusic
ldr r1, _080712B8
strh r0, [r1]
bl reset_temp_tile_data_buffers
movs r0, #0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080712BC
movs r0, #0
movs r2, #2
bl InitBgsFromTemplates
movs r0, #1
movs r1, #0
movs r2, #0
bl ChangeBgX
movs r0, #1
movs r1, #0
movs r2, #0
bl ChangeBgY
movs r0, #0
movs r1, #0
movs r2, #0
bl ChangeBgX
movs r0, #0
movs r1, #0
movs r2, #0
bl ChangeBgY
movs r0, #1
movs r1, #7
movs r2, #2
bl SetBgAttribute
movs r0, #0x80
lsls r0, r0, #5
bl Alloc
adds r1, r0, #0
movs r0, #1
bl SetBgTilemapBuffer
movs r0, #0x80
lsls r0, r0, #6
bl Alloc
adds r1, r0, #0
movs r0, #0
bl SetBgTilemapBuffer
bl DeactivateAllTextPrinters
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetSpriteData
bl ResetTasks
bl ScanlineEffect_Stop
bl m4aSoundVSyncOn
b _080713AA
.align 2, 0
_080712AC: .4byte 0x03000DE0
_080712B0: .4byte 0x02037280
_080712B4: .4byte 0x08071135
_080712B8: .4byte 0x02037282
_080712BC: .4byte 0x082FCA5C
_080712C0:
ldr r0, _080712D0
bl InitWindows
ldr r0, _080712D4
ldr r1, [r0]
movs r0, #0
strb r0, [r1, #8]
b _080713AA
.align 2, 0
_080712D0: .4byte 0x082FCA64
_080712D4: .4byte 0x03000DE0
_080712D8:
movs r1, #0x8c
lsls r1, r1, #0x14
movs r0, #0
str r0, [sp]
movs r2, #0
movs r3, #0
bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _08071300
movs r0, #0
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
ldr r0, _08071304
movs r1, #0
movs r2, #0x20
bl LoadCompressedPalette
b _080713AA
.align 2, 0
_08071300: .4byte 0x08C00530
_08071304: .4byte 0x08C004EC
_08071308:
ldr r0, _0807131C
bl LoadSpriteSheet
ldr r0, _08071320
bl LoadSpriteSheet
ldr r0, _08071324
bl LoadSpritePalette
b _080713AA
.align 2, 0
_0807131C: .4byte 0x082FC9DC
_08071320: .4byte 0x082FC9E4
_08071324: .4byte 0x082FC9EC
_08071328:
movs r0, #0
bl CopyBgTilemapBufferToVram
ldr r0, _0807133C
ldr r0, [r0]
ldrb r0, [r0, #4]
bl AddHatchedMonToParty
b _080713AA
.align 2, 0
_0807133C: .4byte 0x03000DE0
_08071340:
ldr r0, _08071354
ldr r3, [r0]
ldrb r2, [r3, #4]
adds r3, #0xc
movs r0, #0
movs r1, #0
bl EggHatchCreateMonSprite
b _080713AA
.align 2, 0
_08071354: .4byte 0x03000DE0
_08071358:
ldr r4, _08071370
ldr r3, [r4]
ldrb r2, [r3, #4]
adds r3, #0xc
movs r0, #0
movs r1, #1
bl EggHatchCreateMonSprite
ldr r1, [r4]
strb r0, [r1, #1]
b _080713AA
.align 2, 0
_08071370: .4byte 0x03000DE0
_08071374:
movs r1, #0x82
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _080713BC
movs r1, #0x10
movs r2, #0xa0
bl LoadPalette
ldr r1, _080713C0
movs r2, #0x98
lsls r2, r2, #5
movs r0, #1
movs r3, #0
bl LoadBgTiles
ldr r1, _080713C4
movs r2, #0x80
lsls r2, r2, #5
movs r0, #1
movs r3, #0
bl CopyToBgTilemapBuffer
movs r0, #1
bl CopyBgTilemapBufferToVram
_080713AA:
ldr r1, _080713C8
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _080713DA
.align 2, 0
_080713BC: .4byte 0x08305D24
_080713C0: .4byte 0x08305D84
_080713C4: .4byte 0x08304D04
_080713C8: .4byte 0x03002360
_080713CC:
ldr r0, _080713F8
bl SetMainCallback2
ldr r0, _080713FC
ldr r1, [r0]
movs r0, #0
strb r0, [r1, #2]
_080713DA:
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080713F8: .4byte 0x08071499
_080713FC: .4byte 0x03000DE0
thumb_func_end CB2_EggHatch_0
thumb_func_start EggHatchSetMonNickname
EggHatchSetMonNickname: @ 0x08071400
push {lr}
ldr r0, _0807142C
ldrh r1, [r0]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _08071430
adds r0, r0, r1
ldr r2, _08071434
movs r1, #2
bl SetMonData
bl FreeMonSpritesGfx
ldr r0, _08071438
ldr r0, [r0]
bl Free
ldr r0, _0807143C
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0807142C: .4byte 0x02037280
_08071430: .4byte 0x02024190
_08071434: .4byte 0x02021C68
_08071438: .4byte 0x03000DE0
_0807143C: .4byte 0x08085A31
thumb_func_end EggHatchSetMonNickname
thumb_func_start Task_EggHatchPlayBGM
Task_EggHatchPlayBGM: @ 0x08071440
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r1, _08071490
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r4, r0, r1
movs r1, #8
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08071460
bl StopMapMusic
bl PlayRainStoppingSoundEffect
_08071460:
movs r1, #8
ldrsh r0, [r4, r1]
cmp r0, #1
bne _08071470
movs r0, #0xbc
lsls r0, r0, #1
bl PlayBGM
_08071470:
movs r1, #8
ldrsh r0, [r4, r1]
cmp r0, #0x3c
ble _08071484
ldr r0, _08071494
bl PlayBGM
adds r0, r5, #0
bl DestroyTask
_08071484:
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08071490: .4byte 0x03005B60
_08071494: .4byte 0x00000179
thumb_func_end Task_EggHatchPlayBGM
thumb_func_start CB2_EggHatch_1
CB2_EggHatch_1: @ 0x08071498
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0xc
ldr r1, _080714BC
ldr r0, [r1]
ldrb r0, [r0, #2]
adds r5, r1, #0
cmp r0, #0xc
bls _080714B0
b _08071816
_080714B0:
lsls r0, r0, #2
ldr r1, _080714C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080714BC: .4byte 0x03000DE0
_080714C0: .4byte 0x080714C4
_080714C4: @ jump table
.4byte _080714F8 @ case 0
.4byte _08071544 @ case 1
.4byte _0807156C @ case 2
.4byte _080715A4 @ case 3
.4byte _080715FC @ case 4
.4byte _08071628 @ case 5
.4byte _0807168C @ case 6
.4byte _0807169A @ case 7
.4byte _080716A8 @ case 8
.4byte _080716EC @ case 9
.4byte _0807172C @ case 10
.4byte _080717C4 @ case 11
.4byte _080717E4 @ case 12
_080714F8:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r0, _08071538
movs r1, #0x78
movs r2, #0x4b
movs r3, #5
bl CreateSprite
ldr r4, _0807153C
ldr r1, [r4]
strb r0, [r1]
movs r0, #0
bl ShowBg
movs r0, #1
bl ShowBg
ldr r1, [r4]
ldrb r0, [r1, #2]
adds r0, #1
strb r0, [r1, #2]
ldr r0, _08071540
movs r1, #5
bl CreateTask
b _08071816
.align 2, 0
_08071538: .4byte 0x082FC9F4
_0807153C: .4byte 0x03000DE0
_08071540: .4byte 0x08071441
_08071544:
ldr r0, _08071568
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
beq _08071556
b _08071816
_08071556:
ldr r0, [r5]
ldrb r0, [r0, #8]
movs r1, #0
bl FillWindowPixelBuffer
ldr r0, [r5]
strb r4, [r0, #3]
ldr r1, [r5]
b _080717D8
.align 2, 0
_08071568: .4byte 0x02037C74
_0807156C:
ldr r1, [r5]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1e
bhi _0807157E
b _08071816
_0807157E:
ldr r1, [r5]
ldrb r0, [r1, #2]
adds r0, #1
strb r0, [r1, #2]
ldr r2, _0807159C
ldr r0, [r5]
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, _080715A0
str r1, [r0]
b _08071816
.align 2, 0
_0807159C: .4byte 0x020205AC
_080715A0: .4byte 0x08071845
_080715A4:
ldr r4, _080715F0
ldr r2, [r5]
ldrb r1, [r2]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _080715F4
cmp r1, r0
beq _080715C0
b _08071816
_080715C0:
ldrb r1, [r2, #4]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _080715F8
adds r0, r0, r1
movs r1, #0xb
bl GetMonData
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
ldr r0, [r5]
ldrb r1, [r0, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r1, r7, #0
movs r2, #0
movs r3, #1
bl DoMonFrontSpriteAnimation
ldr r1, [r5]
b _080717D8
.align 2, 0
_080715F0: .4byte 0x020205AC
_080715F4: .4byte 0x08007141
_080715F8: .4byte 0x02024190
_080715FC:
ldr r2, _08071620
ldr r3, [r5]
ldrb r1, [r3, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _08071624
cmp r1, r0
beq _08071616
b _08071816
_08071616:
ldrb r0, [r3, #2]
adds r0, #1
strb r0, [r3, #2]
b _08071816
.align 2, 0
_08071620: .4byte 0x020205AC
_08071624: .4byte 0x08007141
_08071628:
ldr r0, [r5]
ldrb r1, [r0, #4]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _08071678
adds r0, r0, r1
ldr r1, _0807167C
bl GetBoxMonNick
ldr r4, _08071680
ldr r1, _08071684
adds r0, r4, #0
bl StringExpandPlaceholders
ldr r0, [r5]
ldrb r0, [r0, #8]
movs r1, #0xff
str r1, [sp]
adds r1, r4, #0
movs r2, #0
movs r3, #3
bl EggHatchPrintMessage
ldr r0, _08071688
bl PlayFanfare
ldr r1, [r5]
ldrb r0, [r1, #2]
adds r0, #1
strb r0, [r1, #2]
ldr r0, [r5]
ldrb r0, [r0, #8]
bl PutWindowTilemap
ldr r0, [r5]
ldrb r0, [r0, #8]
movs r1, #3
bl CopyWindowToVram
b _08071816
.align 2, 0
_08071678: .4byte 0x02024190
_0807167C: .4byte 0x02021C40
_08071680: .4byte 0x02021C7C
_08071684: .4byte 0x085CC874
_08071688: .4byte 0x00000173
_0807168C:
bl IsFanfareTaskInactive
lsls r0, r0, #0x18
cmp r0, #0
bne _08071698
b _08071816
_08071698:
b _080717D4
_0807169A:
bl IsFanfareTaskInactive
lsls r0, r0, #0x18
cmp r0, #0
bne _080716A6
b _08071816
_080716A6:
b _080717D4
_080716A8:
ldr r0, [r5]
ldrb r1, [r0, #4]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _080716DC
adds r0, r0, r1
ldr r1, _080716E0
bl GetBoxMonNick
ldr r4, _080716E4
ldr r1, _080716E8
adds r0, r4, #0
bl StringExpandPlaceholders
ldr r0, [r5]
ldrb r0, [r0, #8]
movs r1, #1
str r1, [sp]
adds r1, r4, #0
movs r2, #0
movs r3, #2
bl EggHatchPrintMessage
ldr r1, [r5]
b _080717D8
.align 2, 0
_080716DC: .4byte 0x02024190
_080716E0: .4byte 0x02021C40
_080716E4: .4byte 0x02021C7C
_080716E8: .4byte 0x085CC888
_080716EC:
ldr r0, [r5]
ldrb r0, [r0, #8]
bl IsTextPrinterActive
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
cmp r6, #0
beq _080716FE
b _08071816
_080716FE:
ldr r0, [r5]
ldrb r0, [r0, #8]
movs r4, #0xa0
lsls r4, r4, #1
adds r1, r4, #0
movs r2, #0xe0
bl LoadUserWindowBorderGfx
ldr r0, _08071728
str r4, [sp]
movs r1, #0xe
str r1, [sp, #4]
str r6, [sp, #8]
movs r1, #1
movs r2, #2
movs r3, #2
bl sub_08198C08
ldr r1, [r5]
b _080717D8
.align 2, 0
_08071728: .4byte 0x082FCA74
_0807172C:
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r1, r0, #0x18
cmp r1, #0
beq _0807174C
cmp r1, #0
bgt _08071746
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _080717D4
b _08071816
_08071746:
cmp r1, #1
beq _080717D4
b _08071816
_0807174C:
ldr r0, _080717B4
mov r8, r0
ldr r0, [r0]
ldrb r0, [r0, #4]
movs r6, #0x64
muls r0, r6, r0
ldr r5, _080717B8
adds r0, r0, r5
ldr r1, _080717BC
mov sb, r1
bl GetBoxMonNick
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, #4]
muls r0, r6, r0
adds r0, r0, r5
movs r1, #0xb
bl GetMonData
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, #4]
muls r0, r6, r0
adds r0, r0, r5
bl GetMonGender
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, #4]
muls r0, r6, r0
adds r0, r0, r5
movs r1, #0
movs r2, #0
bl GetMonData
str r0, [sp]
ldr r0, _080717C0
str r0, [sp, #4]
movs r0, #3
mov r1, sb
adds r2, r7, #0
adds r3, r4, #0
bl DoNamingScreen
b _08071816
.align 2, 0
_080717B4: .4byte 0x03000DE0
_080717B8: .4byte 0x02024190
_080717BC: .4byte 0x02021C68
_080717C0: .4byte 0x08071401
_080717C4:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
_080717D4:
ldr r0, _080717E0
ldr r1, [r0]
_080717D8:
ldrb r0, [r1, #2]
adds r0, #1
strb r0, [r1, #2]
b _08071816
.align 2, 0
_080717E0: .4byte 0x03000DE0
_080717E4:
ldr r0, _08071838
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08071816
bl FreeMonSpritesGfx
ldr r4, _0807183C
ldr r0, [r4]
ldrb r0, [r0, #8]
bl RemoveWindow
movs r0, #0
bl UnsetBgTilemapBuffer
movs r0, #1
bl UnsetBgTilemapBuffer
ldr r0, [r4]
bl Free
ldr r0, _08071840
bl SetMainCallback2
_08071816:
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, #0xc
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08071838: .4byte 0x02037C74
_0807183C: .4byte 0x03000DE0
_08071840: .4byte 0x08085A31
thumb_func_end CB2_EggHatch_1
thumb_func_start SpriteCB_Egg_0
SpriteCB_Egg_0: @ 0x08071844
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
ble _08071864
ldr r0, _08071860
str r0, [r4, #0x1c]
movs r0, #0
strh r0, [r4, #0x2e]
b _08071894
.align 2, 0
_08071860: .4byte 0x0807189D
_08071864:
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, #1
bl Sin
strh r0, [r4, #0x24]
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0xf
bne _08071894
movs r0, #0x17
bl PlaySE
adds r0, r4, #0
movs r1, #1
bl StartSpriteAnim
bl CreateRandomEggShardSprite
_08071894:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end SpriteCB_Egg_0
thumb_func_start SpriteCB_Egg_1
SpriteCB_Egg_1: @ 0x0807189C
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x32]
adds r0, #1
movs r1, #0
strh r0, [r4, #0x32]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1e
ble _080718F8
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x14
ble _080718CC
ldr r0, _080718C8
str r0, [r4, #0x1c]
strh r1, [r4, #0x2e]
strh r1, [r4, #0x32]
b _080718F8
.align 2, 0
_080718C8: .4byte 0x08071901
_080718CC:
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, #2
bl Sin
strh r0, [r4, #0x24]
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0xf
bne _080718F8
movs r0, #0x17
bl PlaySE
adds r0, r4, #0
movs r1, #2
bl StartSpriteAnim
_080718F8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
thumb_func_end SpriteCB_Egg_1
thumb_func_start SpriteCB_Egg_2
SpriteCB_Egg_2: @ 0x08071900
push {r4, r5, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x32]
adds r0, #1
movs r5, #0
strh r0, [r4, #0x32]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1e
ble _080719AE
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x26
ble _0807196C
ldr r0, _0807195C
str r0, [r4, #0x1c]
strh r5, [r4, #0x2e]
ldr r4, _08071960
ldr r0, [r4]
ldrb r1, [r0, #4]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _08071964
adds r0, r0, r1
movs r1, #0xb
bl GetMonData
ldr r3, _08071968
ldr r2, [r4]
ldrb r1, [r2, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
strh r5, [r0, #0x24]
ldrb r1, [r2, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
strh r5, [r0, #0x26]
b _080719AE
.align 2, 0
_0807195C: .4byte 0x080719B5
_08071960: .4byte 0x03000DE0
_08071964: .4byte 0x02024190
_08071968: .4byte 0x020205AC
_0807196C:
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, #2
bl Sin
strh r0, [r4, #0x24]
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0xf
bne _080719A0
movs r0, #0x17
bl PlaySE
adds r0, r4, #0
movs r1, #2
bl StartSpriteAnim
bl CreateRandomEggShardSprite
bl CreateRandomEggShardSprite
_080719A0:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0x1e
bne _080719AE
movs r0, #0x17
bl PlaySE
_080719AE:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end SpriteCB_Egg_2
thumb_func_start SpriteCB_Egg_3
SpriteCB_Egg_3: @ 0x080719B4
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #0x2e]
adds r0, #1
strh r0, [r1, #0x2e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x32
ble _080719CE
ldr r0, _080719D4
str r0, [r1, #0x1c]
movs r0, #0
strh r0, [r1, #0x2e]
_080719CE:
pop {r0}
bx r0
.align 2, 0
_080719D4: .4byte 0x080719D9
thumb_func_end SpriteCB_Egg_3
thumb_func_start SpriteCB_Egg_4
SpriteCB_Egg_4: @ 0x080719D8
push {r4, r5, lr}
sub sp, #4
adds r5, r0, #0
movs r1, #0x2e
ldrsh r0, [r5, r1]
cmp r0, #0
bne _080719F8
movs r1, #1
rsbs r1, r1, #0
ldr r0, _08071A4C
str r0, [sp]
adds r0, r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
_080719F8:
ldrh r0, [r5, #0x2e]
cmp r0, #3
bhi _08071A14
movs r4, #0
_08071A00:
bl CreateRandomEggShardSprite
lsls r0, r4, #0x10
movs r1, #0x80
lsls r1, r1, #9
adds r0, r0, r1
lsrs r4, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #3
ble _08071A00
_08071A14:
ldrh r0, [r5, #0x2e]
adds r0, #1
strh r0, [r5, #0x2e]
ldr r0, _08071A50
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _08071A42
movs r0, #0x71
bl PlaySE
adds r2, r5, #0
adds r2, #0x3e
ldrb r0, [r2]
movs r1, #4
orrs r0, r1
strb r0, [r2]
ldr r0, _08071A54
str r0, [r5, #0x1c]
strh r4, [r5, #0x2e]
_08071A42:
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08071A4C: .4byte 0x0000FFFF
_08071A50: .4byte 0x02037C74
_08071A54: .4byte 0x08071A59
thumb_func_end SpriteCB_Egg_4
thumb_func_start SpriteCB_Egg_5
SpriteCB_Egg_5: @ 0x08071A58
push {r4, r5, lr}
sub sp, #4
adds r5, r0, #0
movs r1, #0x2e
ldrsh r0, [r5, r1]
cmp r0, #0
bne _08071A94
ldr r4, _08071AE8
ldr r3, _08071AEC
ldr r0, [r3]
ldrb r1, [r0, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
ldr r0, [r3]
ldrb r1, [r0, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #1
bl StartSpriteAffineAnim
_08071A94:
movs r2, #0x2e
ldrsh r0, [r5, r2]
cmp r0, #8
bne _08071AAE
movs r1, #1
rsbs r1, r1, #0
ldr r0, _08071AF0
str r0, [sp]
adds r0, r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
_08071AAE:
movs r1, #0x2e
ldrsh r0, [r5, r1]
cmp r0, #9
bgt _08071ACC
ldr r2, _08071AE8
ldr r0, _08071AEC
ldr r0, [r0]
ldrb r1, [r0, #1]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0, #0x22]
subs r1, #1
strh r1, [r0, #0x22]
_08071ACC:
ldrh r1, [r5, #0x2e]
movs r2, #0x2e
ldrsh r0, [r5, r2]
cmp r0, #0x28
ble _08071ADA
ldr r0, _08071AF4
str r0, [r5, #0x1c]
_08071ADA:
adds r0, r1, #1
strh r0, [r5, #0x2e]
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_08071AE8: .4byte 0x020205AC
_08071AEC: .4byte 0x03000DE0
_08071AF0: .4byte 0x0000FFFF
_08071AF4: .4byte 0x08007141
thumb_func_end SpriteCB_Egg_5
thumb_func_start SpriteCB_EggShard
SpriteCB_EggShard: @ 0x08071AF8
push {r4, lr}
adds r2, r0, #0
ldrh r0, [r2, #0x30]
ldrh r1, [r2, #0x36]
adds r0, 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 _08071B16
adds r0, #0xff
_08071B16:
asrs r0, r0, #8
strh r0, [r2, #0x24]
movs r3, #0x38
ldrsh r0, [r2, r3]
cmp r0, #0
bge _08071B24
adds r0, #0xff
_08071B24:
asrs r0, 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 _08071B4A
lsls r0, r3, #0x10
cmp r0, #0
ble _08071B4A
adds r0, r2, #0
bl DestroySprite
_08071B4A:
pop {r4}
pop {r0}
bx r0
thumb_func_end SpriteCB_EggShard
thumb_func_start CreateRandomEggShardSprite
CreateRandomEggShardSprite: @ 0x08071B50
push {r4, r5, r6, lr}
sub sp, #8
ldr r2, _08071B9C
ldr r0, _08071BA0
ldr r6, [r0]
ldrb r3, [r6, #7]
lsls r0, r3, #2
adds r1, r0, r2
ldrh r5, [r1]
adds r2, #2
adds r0, r0, r2
ldrh r4, [r0]
adds r3, #1
strb r3, [r6, #7]
bl Random
lsls r0, r0, #0x10
movs r1, #0xc0
lsls r1, r1, #0xa
ands r1, r0
lsls r5, r5, #0x10
asrs r5, r5, #0x10
lsls r4, r4, #0x10
asrs r4, r4, #0x10
movs r0, #0x64
str r0, [sp]
lsrs r1, r1, #0x10
str r1, [sp, #4]
movs r0, #0x78
movs r1, #0x3c
adds r2, r5, #0
adds r3, r4, #0
bl CreateEggShardSprite
add sp, #8
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08071B9C: .4byte 0x082FCA7C
_08071BA0: .4byte 0x03000DE0
thumb_func_end CreateRandomEggShardSprite
thumb_func_start CreateEggShardSprite
CreateEggShardSprite: @ 0x08071BA4
push {r4, r5, r6, lr}
mov r6, sl
mov r5, sb
mov r4, r8
push {r4, r5, r6}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
mov r8, r3
ldr r0, [sp, #0x1c]
mov sb, r0
ldr r1, [sp, #0x20]
mov sl, r1
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r6, r6, #0x10
lsrs r6, r6, #0x10
mov r0, r8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
mov r1, sb
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sb, r1
mov r0, sl
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov sl, r0
ldr r0, _08071C1C
adds r1, r4, #0
adds r2, r5, #0
movs r3, #4
bl CreateSprite
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
ldr r2, _08071C20
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
strh r6, [r0, #0x30]
mov r1, r8
strh r1, [r0, #0x32]
mov r1, sb
strh r1, [r0, #0x34]
mov r1, sl
bl StartSpriteAnim
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08071C1C: .4byte 0x082FCA44
_08071C20: .4byte 0x020205AC
thumb_func_end CreateEggShardSprite
thumb_func_start EggHatchPrintMessage
EggHatchPrintMessage: @ 0x08071C24
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
sub sp, #0x14
adds r5, r0, #0
mov sb, r1
adds r6, r2, #0
mov r8, r3
ldr r4, [sp, #0x2c]
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
mov r0, r8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r5, #0
movs r1, #0xff
bl FillWindowPixelBuffer
ldr r3, _08071C98
ldr r0, [r3]
movs r2, #0
strb r2, [r0, #0xe]
ldr r1, [r3]
movs r0, #5
strb r0, [r1, #0xf]
ldr r1, [r3]
movs r0, #6
strb r0, [r1, #0x10]
str r2, [sp]
str r2, [sp, #4]
ldr r0, [r3]
adds r0, #0xe
str r0, [sp, #8]
lsls r4, r4, #0x18
asrs r4, r4, #0x18
str r4, [sp, #0xc]
mov r0, sb
str r0, [sp, #0x10]
adds r0, r5, #0
movs r1, #1
adds r2, r6, #0
mov r3, r8
bl AddTextPrinterParameterized4
add sp, #0x14
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08071C98: .4byte 0x03000DE0
thumb_func_end EggHatchPrintMessage
thumb_func_start GetEggStepsToSubtract
GetEggStepsToSubtract: @ 0x08071C9C
push {r4, r5, r6, lr}
bl CalculatePlayerPartyCount
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
movs r5, #0
cmp r5, r6
bhs _08071CE6
_08071CAC:
movs r0, #0x64
adds r1, r5, #0
muls r1, r0, r1
ldr r0, _08071CD8
adds r4, r1, r0
adds r0, r4, #0
movs r1, #6
bl GetMonData
cmp r0, #0
bne _08071CDC
adds r0, r4, #0
bl GetMonAbility
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x28
beq _08071CD4
cmp r0, #0x31
bne _08071CDC
_08071CD4:
movs r0, #2
b _08071CE8
.align 2, 0
_08071CD8: .4byte 0x02024190
_08071CDC:
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, r6
blo _08071CAC
_08071CE6:
movs r0, #1
_08071CE8:
pop {r4, r5, r6}
pop {r1}
bx r1
.align 2, 0
thumb_func_end GetEggStepsToSubtract
thumb_func_start sub_08071CF0
sub_08071CF0: @ 0x08071CF0
push {r4, lr}
bl CountStorageNonEggMons
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
movs r0, #6
bl CountPartyAliveNonEggMonsExcept
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r4, r4, r0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r4, #0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_08071CF0