.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start GetMonNick GetMonNick: @ 80453C0 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 GetMonNick thumb_func_start GetBoxMonNick GetBoxMonNick: @ 80453E0 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 GetBoxMonNick thumb_func_start CountPokemonInDaycare CountPokemonInDaycare: @ 8045400 push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 movs r4, 0 _08045408: movs r0, 0x8C muls r0, r4 adds r0, r6, r0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _0804541E adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0804541E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _08045408 adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end CountPokemonInDaycare thumb_func_start InitDaycareMailRecordMixing InitDaycareMailRecordMixing: @ 8045430 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 _0804544A: movs r0, 0x8C muls r0, r5 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _08045478 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 _08045478 lsls r0, r5, 1 adds r0, r6, r0 b _0804547E _08045478: lsls r0, r5, 1 adds r0, r6, r0 mov r1, r8 _0804547E: strh r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _0804544A 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 InitDaycareMailRecordMixing thumb_func_start Daycare_FindEmptySpot Daycare_FindEmptySpot: @ 804549C push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _080454A2: movs r0, 0x8C muls r0, r4 adds r0, r5, r0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 bne _080454B8 lsls r0, r4, 24 asrs r0, 24 b _080454C6 _080454B8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _080454A2 movs r0, 0x1 negs r0, r0 _080454C6: pop {r4,r5} pop {r1} bx r1 thumb_func_end Daycare_FindEmptySpot thumb_func_start StorePokemonInDaycare StorePokemonInDaycare: @ 80454CC push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 bl MonHasMail lsls r0, 24 cmp r0, 0 beq _08045524 adds r0, r4, 0 adds r0, 0x74 ldr r1, _08045550 @ =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy adds r1, r4, 0 adds r1, 0x7C adds r0, r5, 0 bl GetMonNick adds r0, r5, 0 movs r1, 0x40 bl GetMonData lsls r0, 24 lsrs r0, 24 ldr r1, _08045554 @ =gSaveBlock1Ptr ldr r1, [r1] lsls r2, r0, 3 adds r2, r0 lsls r2, 2 adds r1, r2 adds r0, r4, 0 adds r0, 0x50 ldr r2, _08045558 @ =0x00002cd0 adds r1, r2 ldm r1!, {r2,r3,r6} stm r0!, {r2,r3,r6} ldm r1!, {r2,r3,r6} stm r0!, {r2,r3,r6} ldm r1!, {r2,r3,r6} stm r0!, {r2,r3,r6} adds r0, r5, 0 bl TakeMailFromMon _08045524: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x50 bl memcpy adds r0, r4, 0 bl BoxMonRestorePP adds r1, r4, 0 adds r1, 0x88 movs r0, 0 str r0, [r1] adds r0, r5, 0 bl ZeroMonData bl CompactPartySlots bl CalculatePlayerPartyCount pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08045550: .4byte gSaveBlock2Ptr _08045554: .4byte gSaveBlock1Ptr _08045558: .4byte 0x00002cd0 thumb_func_end StorePokemonInDaycare thumb_func_start StorePokemonInEmptyDaycareSlot StorePokemonInEmptyDaycareSlot: @ 804555C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl Daycare_FindEmptySpot lsls r0, 24 asrs r0, 24 movs r1, 0x8C muls r0, r1 adds r4, r0 adds r0, r5, 0 adds r1, r4, 0 bl StorePokemonInDaycare pop {r4,r5} pop {r0} bx r0 thumb_func_end StorePokemonInEmptyDaycareSlot thumb_func_start StoreSelectedPokemonInDaycare StoreSelectedPokemonInDaycare: @ 8045580 push {lr} bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080455A4 @ =gPlayerParty adds r0, r1 ldr r1, _080455A8 @ =gSaveBlock1Ptr ldr r1, [r1] movs r2, 0xBE lsls r2, 6 adds r1, r2 bl StorePokemonInEmptyDaycareSlot pop {r0} bx r0 .align 2, 0 _080455A4: .4byte gPlayerParty _080455A8: .4byte gSaveBlock1Ptr thumb_func_end StoreSelectedPokemonInDaycare thumb_func_start ShiftDaycareSlots ShiftDaycareSlots: @ 80455AC push {r4-r6,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x8C adds r0, r4, 0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _08045602 adds r0, r5, 0 movs r1, 0xB bl GetBoxMonData adds r6, r0, 0 cmp r6, 0 bne _08045602 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x50 bl memcpy adds r0, r4, 0 bl ZeroBoxMonData adds r4, 0x50 adds r0, r5, 0 adds r0, 0x50 adds r1, r4, 0 movs r2, 0x38 bl memcpy adds r2, r5, 0 adds r2, 0x88 movs r0, 0x8A lsls r0, 1 adds r1, r5, r0 ldr r0, [r1] str r0, [r2] str r6, [r1] adds r0, r4, 0 bl ClearDaycareMonMisc _08045602: pop {r4-r6} pop {r0} bx r0 thumb_func_end ShiftDaycareSlots thumb_func_start ApplyDaycareExperience ApplyDaycareExperience: @ 8045608 push {r4-r7,lr} adds r4, r0, 0 movs r5, 0 ldr r7, _08045624 @ =0x0000ffff _08045610: adds r0, r4, 0 bl sub_8043B90 lsls r0, 24 cmp r0, 0 beq _0804564C movs r6, 0x1 adds r5, 0x1 b _08045638 .align 2, 0 _08045624: .4byte 0x0000ffff _08045628: movs r6, 0 cmp r0, r7 bne _08045638 ldr r0, _08045658 @ =gMoveToLearn ldrh r1, [r0] adds r0, r4, 0 bl DeleteFirstMoveAndGiveMoveToMon _08045638: adds r0, r4, 0 adds r1, r6, 0 bl MonTryLearningNewMove lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _08045628 cmp r5, 0x63 ble _08045610 _0804564C: adds r0, r4, 0 bl CalculateMonStats pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08045658: .4byte gMoveToLearn thumb_func_end ApplyDaycareExperience thumb_func_start TakeSelectedPokemonFromDaycare TakeSelectedPokemonFromDaycare: @ 804565C push {r4-r7,lr} sub sp, 0x68 adds r5, r0, 0 ldr r1, _080456F8 @ =gStringVar1 bl GetBoxMonNick adds r0, r5, 0 movs r1, 0xB bl GetBoxMonData lsls r0, 16 lsrs r7, r0, 16 adds r0, r5, 0 mov r1, sp bl BoxMonToMon mov r0, sp movs r1, 0x38 bl GetMonData cmp r0, 0x64 beq _080456AA mov r0, sp movs r1, 0x19 bl GetMonData adds r1, r5, 0 adds r1, 0x88 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 ApplyDaycareExperience _080456AA: ldr r0, _080456FC @ =gPlayerParty movs r1, 0xFA lsls r1, 1 adds r6, r0, r1 adds r0, r6, 0 mov r1, sp movs r2, 0x64 bl memcpy adds r0, r5, 0 adds r0, 0x70 ldrh r0, [r0] cmp r0, 0 beq _080456D8 adds r4, r5, 0 adds r4, 0x50 adds r0, r6, 0 adds r1, r4, 0 bl GiveMailToMon2 adds r0, r4, 0 bl ClearDaycareMonMisc _080456D8: adds r0, r5, 0 bl ZeroBoxMonData adds r1, r5, 0 adds r1, 0x88 movs r0, 0 str r0, [r1] bl CompactPartySlots bl CalculatePlayerPartyCount adds r0, r7, 0 add sp, 0x68 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080456F8: .4byte gStringVar1 _080456FC: .4byte gPlayerParty thumb_func_end TakeSelectedPokemonFromDaycare thumb_func_start TakeSelectedPokemonMonFromDaycareShiftSlots TakeSelectedPokemonMonFromDaycareShiftSlots: @ 8045700 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x8C muls r0, r1 adds r0, r5, r0 bl TakeSelectedPokemonFromDaycare adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ShiftDaycareSlots adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end TakeSelectedPokemonMonFromDaycareShiftSlots thumb_func_start TakePokemonFromDaycare TakePokemonFromDaycare: @ 8045728 push {lr} ldr r0, _08045744 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 ldr r1, _08045748 @ =gSpecialVar_0x8004 ldrb r1, [r1] bl TakeSelectedPokemonMonFromDaycareShiftSlots lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _08045744: .4byte gSaveBlock1Ptr _08045748: .4byte gSpecialVar_0x8004 thumb_func_end TakePokemonFromDaycare thumb_func_start GetLevelAfterDaycareSteps GetLevelAfterDaycareSteps: @ 804574C 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 GetLevelAfterDaycareSteps thumb_func_start GetNumLevelsGainedFromSteps GetNumLevelsGainedFromSteps: @ 8045788 push {r4,r5,lr} adds r5, r0, 0 bl GetLevelFromBoxMonExp adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r0, 0x88 ldr r1, [r0] adds r0, r5, 0 bl GetLevelAfterDaycareSteps lsls r0, 24 lsrs r0, 24 subs r0, r4 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end GetNumLevelsGainedFromSteps thumb_func_start GetNumLevelsGainedForDaycareMon GetNumLevelsGainedForDaycareMon: @ 80457B4 push {r4,r5,lr} adds r5, r0, 0 bl GetNumLevelsGainedFromSteps adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080457E0 @ =gStringVar2 adds r1, r4, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r1, _080457E4 @ =gStringVar1 adds r0, r5, 0 bl GetBoxMonNick adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080457E0: .4byte gStringVar2 _080457E4: .4byte gStringVar1 thumb_func_end GetNumLevelsGainedForDaycareMon thumb_func_start GetDaycareCostForSelectedMon GetDaycareCostForSelectedMon: @ 80457E8 push {r4,r5,lr} adds r5, r0, 0 bl GetNumLevelsGainedFromSteps adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08045818 @ =gStringVar1 adds r0, r5, 0 bl GetBoxMonNick movs r0, 0x64 muls r4, r0 adds r4, 0x64 ldr r0, _0804581C @ =gStringVar2 adds r1, r4, 0 movs r2, 0 movs r3, 0x5 bl ConvertIntToDecimalStringN adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08045818: .4byte gStringVar1 _0804581C: .4byte gStringVar2 thumb_func_end GetDaycareCostForSelectedMon thumb_func_start GetDaycareCostForMon GetDaycareCostForMon: @ 8045820 push {lr} lsls r1, 24 lsrs r1, 24 movs r2, 0x8C muls r1, r2 adds r0, r1 bl GetDaycareCostForSelectedMon lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end GetDaycareCostForMon thumb_func_start GetDaycareCost GetDaycareCost: @ 8045838 push {lr} ldr r0, _08045854 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 ldr r1, _08045858 @ =gSpecialVar_0x8004 ldrb r1, [r1] bl GetDaycareCostForMon ldr r1, _0804585C @ =gSpecialVar_0x8005 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _08045854: .4byte gSaveBlock1Ptr _08045858: .4byte gSpecialVar_0x8004 _0804585C: .4byte gSpecialVar_0x8005 thumb_func_end GetDaycareCost thumb_func_start sub_8045860 sub_8045860: @ 8045860 lsls r0, 16 lsrs r0, 16 ldr r1, _08045888 @ =gSaveBlock1Ptr ldr r2, [r1] ldr r1, _0804588C @ =0x00003008 adds r3, r2, r1 ldr r1, [r3] adds r1, r0 str r1, [r3] ldr r1, _08045890 @ =0x00003094 adds r3, r2, r1 ldr r1, [r3] adds r1, r0 str r1, [r3] ldr r1, _08045894 @ =0x00003d20 adds r2, r1 ldr r1, [r2] adds r1, r0 str r1, [r2] bx lr .align 2, 0 _08045888: .4byte gSaveBlock1Ptr _0804588C: .4byte 0x00003008 _08045890: .4byte 0x00003094 _08045894: .4byte 0x00003d20 thumb_func_end sub_8045860 thumb_func_start GetNumLevelsGainedFromDaycare GetNumLevelsGainedFromDaycare: @ 8045898 push {r4-r6,lr} ldr r6, _080458C0 @ =gSaveBlock1Ptr ldr r5, _080458C4 @ =gSpecialVar_0x8004 ldrh r0, [r5] movs r4, 0x8C adds r1, r0, 0 muls r1, r4 movs r0, 0xBE lsls r0, 6 adds r1, r0 ldr r0, [r6] adds r0, r1 movs r1, 0xB bl GetBoxMonData cmp r0, 0 bne _080458C8 movs r0, 0 b _080458E0 .align 2, 0 _080458C0: .4byte gSaveBlock1Ptr _080458C4: .4byte gSpecialVar_0x8004 _080458C8: ldrh r0, [r5] adds r1, r0, 0 muls r1, r4 movs r0, 0xBE lsls r0, 6 adds r1, r0 ldr r0, [r6] adds r0, r1 bl GetNumLevelsGainedForDaycareMon lsls r0, 24 lsrs r0, 24 _080458E0: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetNumLevelsGainedFromDaycare thumb_func_start ClearDaycareMonMisc ClearDaycareMonMisc: @ 80458E8 push {lr} movs r3, 0 movs r2, 0x7 adds r1, r0, 0 adds r1, 0x2B _080458F2: strb r3, [r1] subs r1, 0x1 subs r2, 0x1 cmp r2, 0 bge _080458F2 adds r2, r0, 0 adds r2, 0x2C movs r3, 0 adds r1, r0, 0 adds r1, 0x36 _08045906: strb r3, [r1] subs r1, 0x1 cmp r1, r2 bge _08045906 bl ClearMailStruct pop {r0} bx r0 thumb_func_end ClearDaycareMonMisc thumb_func_start ClearDaycareMon ClearDaycareMon: @ 8045918 push {r4,lr} adds r4, r0, 0 bl ZeroBoxMonData adds r1, r4, 0 adds r1, 0x88 movs r0, 0 str r0, [r1] adds r4, 0x50 adds r0, r4, 0 bl ClearDaycareMonMisc pop {r4} pop {r0} bx r0 thumb_func_end ClearDaycareMon thumb_func_start ClearAllDaycareData ClearAllDaycareData: @ 8045938 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 movs r6, 0x8C _08045940: adds r0, r4, 0 muls r0, r6 adds r0, r5, r0 bl ClearDaycareMon adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _08045940 movs r1, 0x8C lsls r1, 1 adds r0, r5, r1 movs r2, 0 movs r1, 0 strh r1, [r0] movs r1, 0x8D lsls r1, 1 adds r0, r5, r1 strb r2, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end ClearAllDaycareData thumb_func_start sub_8045970 sub_8045970: @ 8045970 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r2, r0, 16 movs r0, 0 mov r8, r0 ldr r0, _0804599C @ =gEvolutionTable mov r12, r0 _08045982: movs r7, 0 movs r6, 0x1 movs r4, 0x80 lsls r4, 9 movs r5, 0x28 mov r3, r12 adds r3, 0x28 _08045990: movs r1, 0 ldrh r0, [r3, 0x4] cmp r0, r2 bne _080459A0 lsrs r2, r4, 16 b _080459CC .align 2, 0 _0804599C: .4byte gEvolutionTable _080459A0: adds r1, 0x1 cmp r1, 0x4 bgt _080459B6 lsls r0, r1, 3 adds r0, r5 add r0, r12 ldrh r0, [r0, 0x4] cmp r0, r2 bne _080459A0 lsrs r2, r4, 16 movs r7, 0x1 _080459B6: cmp r7, 0 bne _080459CC movs r0, 0x80 lsls r0, 9 adds r4, r0 adds r5, 0x28 adds r3, 0x28 adds r6, 0x1 ldr r0, _080459EC @ =0x0000019b cmp r6, r0 ble _08045990 _080459CC: movs r0, 0xCE lsls r0, 1 cmp r6, r0 beq _080459DE movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x4 ble _08045982 _080459DE: adds r0, r2, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080459EC: .4byte 0x0000019b thumb_func_end sub_8045970 thumb_func_start sub_80459F0 sub_80459F0: @ 80459F0 push {r4,lr} adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _08045A18 @ =0x0000fffe bl __umodsi3 adds r0, 0x1 movs r1, 0x8C lsls r1, 1 adds r4, r1 strh r0, [r4] ldr r0, _08045A1C @ =0x00000266 bl FlagSet pop {r4} pop {r0} bx r0 .align 2, 0 _08045A18: .4byte 0x0000fffe _08045A1C: .4byte 0x00000266 thumb_func_end sub_80459F0 thumb_func_start sub_8045A20 sub_8045A20: @ 8045A20 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] ldr r0, _08045A44 @ =0x00000266 bl FlagSet pop {r4} pop {r0} bx r0 .align 2, 0 _08045A44: .4byte 0x00000266 thumb_func_end sub_8045A20 thumb_func_start sub_8045A48 sub_8045A48: @ 8045A48 push {lr} ldr r0, _08045A5C @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl sub_80459F0 pop {r0} bx r0 .align 2, 0 _08045A5C: .4byte gSaveBlock1Ptr thumb_func_end sub_8045A48 thumb_func_start sub_8045A60 sub_8045A60: @ 8045A60 push {lr} ldr r0, _08045A74 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl sub_8045A20 pop {r0} bx r0 .align 2, 0 _08045A74: .4byte gSaveBlock1Ptr thumb_func_end sub_8045A60 thumb_func_start RemoveIVIndexFromList RemoveIVIndexFromList: @ 8045A78 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 _08045A8A: mov r1, sp adds r0, r1, r2 adds r1, r4, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x5 ble _08045A8A movs r3, 0 movs r2, 0 _08045A9E: mov r1, sp adds r0, r1, r2 ldrb r1, [r0] adds r0, r1, 0 cmp r0, 0xFF beq _08045AB0 adds r0, r4, r3 strb r1, [r0] adds r3, 0x1 _08045AB0: adds r2, 0x1 cmp r2, 0x5 ble _08045A9E add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end RemoveIVIndexFromList thumb_func_start InheritIVs InheritIVs: @ 8045AC0 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 _08045AD6: adds r0, r2, r5 strb r5, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08045AD6 movs r5, 0 adds r6, r1, 0 _08045AE8: 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 RemoveIVIndexFromList adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _08045AE8 movs r5, 0 movs r4, 0x1 _08045B18: 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 _08045B18 movs r5, 0 _08045B32: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0x5 bhi _08045C0E lsls r0, 2 ldr r1, _08045B48 @ =_08045B4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08045B48: .4byte _08045B4C .align 2, 0 _08045B4C: .4byte _08045B64 .4byte _08045B82 .4byte _08045B9C .4byte _08045BB6 .4byte _08045BD0 .4byte _08045BF0 _08045B64: adds r0, r7, r5 ldrb r1, [r0] movs r0, 0x8C muls r0, r1 add r0, r8 movs r1, 0x27 bl GetBoxMonData add r2, sp, 0x10 strb r0, [r2] mov r0, r9 movs r1, 0x27 bl SetMonData b _08045C0E _08045B82: add r4, sp, 0x10 adds r0, r7, r5 ldrb r1, [r0] movs r0, 0x8C muls r0, r1 add r0, r8 movs r1, 0x28 bl GetBoxMonData strb r0, [r4] mov r0, r9 movs r1, 0x28 b _08045BE8 _08045B9C: add r4, sp, 0x10 adds r0, r7, r5 ldrb r1, [r0] movs r0, 0x8C muls r0, r1 add r0, r8 movs r1, 0x29 bl GetBoxMonData strb r0, [r4] mov r0, r9 movs r1, 0x29 b _08045BE8 _08045BB6: add r4, sp, 0x10 adds r0, r7, r5 ldrb r1, [r0] movs r0, 0x8C muls r0, r1 add r0, r8 movs r1, 0x2A bl GetBoxMonData strb r0, [r4] mov r0, r9 movs r1, 0x2A b _08045BE8 _08045BD0: add r4, sp, 0x10 adds r0, r7, r5 ldrb r1, [r0] movs r0, 0x8C muls r0, r1 add r0, r8 movs r1, 0x2B bl GetBoxMonData strb r0, [r4] mov r0, r9 movs r1, 0x2B _08045BE8: adds r2, r4, 0 bl SetMonData b _08045C0E _08045BF0: add r4, sp, 0x10 adds r0, r7, r5 ldrb r1, [r0] movs r0, 0x8C muls r0, r1 add r0, r8 movs r1, 0x2C bl GetBoxMonData strb r0, [r4] mov r0, r9 movs r1, 0x2C adds r2, r4, 0 bl SetMonData _08045C0E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _08045B32 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end InheritIVs thumb_func_start GetEggMoves GetEggMoves: @ 8045C28 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, _08045C50 @ =gUnknown_825EF0C ldrh r1, [r5] ldr r7, _08045C54 @ =0x00004e20 adds r0, r3, r7 cmp r1, r0 bne _08045C58 movs r4, 0x1 b _08045C7A .align 2, 0 _08045C50: .4byte gUnknown_825EF0C _08045C54: .4byte 0x00004e20 _08045C58: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _08045CC4 @ =0x00000471 ldr r5, _08045CC8 @ =gUnknown_825EF0C cmp r2, r0 bhi _08045C7A lsls r0, r2, 1 adds r0, r5 ldrh r1, [r0] ldr r7, _08045CCC @ =0x00004e20 adds r0, r3, r7 cmp r1, r0 bne _08045C58 adds r0, r2, 0x1 lsls r0, 16 lsrs r4, r0, 16 _08045C7A: movs r2, 0 lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] ldr r1, _08045CCC @ =0x00004e20 cmp r0, r1 bhi _08045CB6 adds r7, r5, 0 adds r3, r1, 0 _08045C8C: 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 _08045CB6 adds r0, r4, r2 lsls r0, 1 adds r0, r5 ldrh r0, [r0] cmp r0, r3 bls _08045C8C _08045CB6: lsls r0, r6, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08045CC4: .4byte 0x00000471 _08045CC8: .4byte gUnknown_825EF0C _08045CCC: .4byte 0x00004e20 thumb_func_end GetEggMoves thumb_func_start BuildEggMoveset BuildEggMoveset: @ 8045CD0 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, _08045DD4 @ =gUnknown_2024580 movs r2, 0 ldr r4, _08045DD8 @ =gUnknown_202455C ldr r3, _08045DDC @ =gUnknown_2024564 _08045CF0: 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 _08045CF0 movs r6, 0 ldr r2, _08045DE0 @ =gUnknown_202456C movs r1, 0 _08045D0E: 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 _08045D0E movs r6, 0 ldr r2, _08045DE4 @ =gUnknown_20244F8 movs r1, 0 _08045D24: 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 _08045D24 adds r0, r7, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r1, _08045DE4 @ =gUnknown_20244F8 bl GetLevelUpMovesBySpecies lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r6, 0 ldr r1, _08045DD8 @ =gUnknown_202455C mov r8, r1 _08045D52: 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, _08045DD4 @ =gUnknown_2024580 adds r4, r1 strh r0, [r4] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x3 bls _08045D52 ldr r1, _08045DE0 @ =gUnknown_202456C adds r0, r7, 0 bl GetEggMoves lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r6, 0 _08045D8E: ldr r0, _08045DD8 @ =gUnknown_202455C lsls r1, r6, 1 adds r2, r1, r0 ldrh r1, [r2] mov r9, r0 cmp r1, 0 beq _08045E04 movs r5, 0 cmp r5, r8 bcs _08045DF6 adds r4, r2, 0 ldr r2, _08045DE8 @ =0x0000ffff _08045DA6: ldr r0, _08045DE0 @ =gUnknown_202456C lsls r1, r5, 1 adds r1, r0 ldrh r0, [r4] ldrh r1, [r1] cmp r0, r1 bne _08045DEC 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 _08045DF6 ldrh r1, [r4] adds r0, r7, 0 bl DeleteFirstMoveAndGiveMoveToMon b _08045DF6 .align 2, 0 _08045DD4: .4byte gUnknown_2024580 _08045DD8: .4byte gUnknown_202455C _08045DDC: .4byte gUnknown_2024564 _08045DE0: .4byte gUnknown_202456C _08045DE4: .4byte gUnknown_20244F8 _08045DE8: .4byte 0x0000ffff _08045DEC: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _08045DA6 _08045DF6: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r3, _08045F20 @ =gUnknown_202455C mov r9, r3 cmp r6, 0x3 bls _08045D8E _08045E04: movs r6, 0 _08045E06: 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 _08045E68 movs r5, 0 ldr r0, _08045F20 @ =gUnknown_202455C adds r4, r2, r0 ldr r6, _08045F24 @ =0x0000ffff mov r9, r0 _08045E22: ldr r3, _08045F28 @ =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 _08045E5E lsls r1, r5, 24 lsrs r1, 24 adds r0, r7, 0 bl CanMonLearnTMHM cmp r0, 0 beq _08045E5E ldrh r1, [r4] adds r0, r7, 0 bl GiveMoveToMon lsls r0, 16 lsrs r0, 16 cmp r0, r6 bne _08045E5E ldrh r1, [r4] adds r0, r7, 0 bl DeleteFirstMoveAndGiveMoveToMon _08045E5E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x39 bls _08045E22 _08045E68: mov r1, r8 lsls r0, r1, 16 lsrs r6, r0, 16 cmp r6, 0x3 bls _08045E06 movs r6, 0 mov r2, r9 ldrh r0, [r2] ldr r3, _08045F2C @ =gUnknown_2024564 mov r10, r3 cmp r0, 0 beq _08045ED2 mov r4, r9 ldr r0, _08045F30 @ =gUnknown_2024580 mov r9, r0 mov r12, r10 _08045E88: movs r5, 0 lsls r2, r6, 1 adds r6, 0x1 mov r8, r6 adds r3, r2, r4 _08045E92: lsls r0, r5, 1 add r0, r9 ldrh r2, [r3] adds r1, r2, 0 ldrh r0, [r0] cmp r1, r0 bne _08045EB4 cmp r1, 0 beq _08045EB4 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] _08045EB4: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _08045E92 mov r1, r8 lsls r0, r1, 16 lsrs r6, r0, 16 cmp r6, 0x3 bhi _08045ED2 lsls r0, r6, 1 adds r0, r4 ldrh r0, [r0] cmp r0, 0 bne _08045E88 _08045ED2: movs r6, 0 mov r2, r10 ldrh r0, [r2] cmp r0, 0 beq _08045F5C _08045EDC: movs r5, 0 adds r3, r6, 0x1 mov r8, r3 ldr r0, [sp, 0x4] cmp r5, r0 bcs _08045F44 ldr r2, _08045F24 @ =0x0000ffff _08045EEA: ldr r1, _08045F34 @ =gUnknown_20244F8 lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] cmp r1, 0 beq _08045F38 lsls r0, r6, 1 mov r3, r10 adds r4, r0, r3 ldrh r0, [r4] cmp r0, r1 bne _08045F38 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 _08045F44 ldrh r1, [r4] adds r0, r7, 0 bl DeleteFirstMoveAndGiveMoveToMon b _08045F44 .align 2, 0 _08045F20: .4byte gUnknown_202455C _08045F24: .4byte 0x0000ffff _08045F28: .4byte 0x00000121 _08045F2C: .4byte gUnknown_2024564 _08045F30: .4byte gUnknown_2024580 _08045F34: .4byte gUnknown_20244F8 _08045F38: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r0, [sp, 0x4] cmp r5, r0 bcc _08045EEA _08045F44: mov r1, r8 lsls r0, r1, 16 lsrs r6, r0, 16 cmp r6, 0x3 bhi _08045F5C ldr r0, _08045F6C @ =gUnknown_2024564 lsls r1, r6, 1 adds r1, r0 ldrh r1, [r1] mov r10, r0 cmp r1, 0 bne _08045EDC _08045F5C: 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 _08045F6C: .4byte gUnknown_2024564 thumb_func_end BuildEggMoveset thumb_func_start RemoveEggFromDayCare RemoveEggFromDayCare: @ 8045F70 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 RemoveEggFromDayCare thumb_func_start RejectEggFromDayCare RejectEggFromDayCare: @ 8045F88 push {lr} ldr r0, _08045F9C @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl RemoveEggFromDayCare pop {r0} bx r0 .align 2, 0 _08045F9C: .4byte gSaveBlock1Ptr thumb_func_end RejectEggFromDayCare thumb_func_start sub_8045FA0 sub_8045FA0: @ 8045FA0 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 _08045FB8 movs r0, 0xAF lsls r0, 1 cmp r1, r0 bne _08045FFA _08045FB8: adds r0, r5, 0 movs r1, 0xC bl GetBoxMonData lsls r0, 16 lsrs r6, r0, 16 adds r0, r5, 0 adds r0, 0x8C movs r1, 0xC bl GetBoxMonData lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r4] cmp r0, r7 bne _08045FE4 cmp r6, 0xDD beq _08045FE4 cmp r2, 0xDD beq _08045FE4 movs r0, 0xCA strh r0, [r4] _08045FE4: ldrh r1, [r4] movs r0, 0xAF lsls r0, 1 cmp r1, r0 bne _08045FFA cmp r6, 0xDC beq _08045FFA cmp r2, 0xDC beq _08045FFA movs r0, 0xB7 strh r0, [r4] _08045FFA: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8045FA0 thumb_func_start sub_8046000 sub_8046000: @ 8046000 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 _08046010: movs r0, 0x8C muls r0, r4 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 _08046038 adds r0, r4, 0 eors r0, r7 strb r0, [r6] strb r4, [r6, 0x1] b _0804604E _08046038: adds r0, r5, 0 bl GetBoxMonGender lsls r0, 24 lsrs r0, 24 cmp r0, 0xFE bne _0804604E strb r4, [r6] adds r0, r4, 0 eors r0, r7 strb r0, [r6, 0x1] _0804604E: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _08046010 ldrb r0, [r6] lsls r0, 1 add r0, sp ldrh r0, [r0] bl sub_8045970 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1D bne _08046080 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 _08046080 movs r4, 0x20 _08046080: ldr r0, _080460D0 @ =0x00000183 cmp r4, r0 bne _0804609A subs r0, 0x6B add r0, r8 ldrh r1, [r0] movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _0804609A movs r4, 0xC1 lsls r4, 1 _0804609A: ldrb r0, [r6, 0x1] lsls r0, 1 add r0, sp ldrh r0, [r0] cmp r0, 0x84 bne _080460C2 ldrb r1, [r6] movs r0, 0x8C muls r0, r1 add r0, r8 bl GetBoxMonGender lsls r0, 24 lsrs r0, 24 cmp r0, 0xFE beq _080460C2 ldrb r1, [r6, 0x1] ldrb r0, [r6] strb r0, [r6, 0x1] strb r1, [r6] _080460C2: adds r0, r4, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080460D0: .4byte 0x00000183 thumb_func_end sub_8046000 thumb_func_start sub_80460D4 sub_80460D4: @ 80460D4 push {r4-r6,lr} sub sp, 0x6C adds r5, r0, 0 add r6, sp, 0x64 adds r1, r6, 0 bl sub_8046000 add r4, sp, 0x68 strh r0, [r4] adds r0, r4, 0 adds r1, r5, 0 bl sub_8045FA0 ldrh r1, [r4] mov r0, sp adds r2, r5, 0 bl SetInitialEggData mov r0, sp adds r1, r5, 0 bl InheritIVs ldrb r0, [r6, 0x1] movs r2, 0x8C adds r1, r0, 0 muls r1, r2 adds r1, r5, r1 ldrb r0, [r6] muls r2, r0 adds r2, r5, r2 mov r0, sp bl BuildEggMoveset mov r2, sp adds r2, 0x6A movs r0, 0x1 strb r0, [r2] mov r0, sp movs r1, 0x2D bl SetMonData ldr r0, _0804614C @ =gPlayerParty movs r1, 0xFA lsls r1, 1 adds r0, r1 mov r1, sp movs r2, 0x64 bl memcpy bl CompactPartySlots bl CalculatePlayerPartyCount adds r0, r5, 0 bl RemoveEggFromDayCare add sp, 0x6C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804614C: .4byte gPlayerParty thumb_func_end sub_80460D4 thumb_func_start CreateEgg CreateEgg: @ 8046150 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, _08046200 @ =gUnknown_825F83E adds r0, r7, 0 movs r1, 0x2 bl SetMonData lsls r2, r5, 3 subs r2, r5 lsls r2, 2 ldr r0, _08046204 @ =gUnknown_8254795 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 _080461E2 add r2, sp, 0x14 movs r0, 0xFD strb r0, [r2] adds r0, r7, 0 movs r1, 0x23 bl SetMonData _080461E2: 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 _08046200: .4byte gUnknown_825F83E _08046204: .4byte gUnknown_8254795 thumb_func_end CreateEgg thumb_func_start SetInitialEggData SetInitialEggData: @ 8046208 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, _080462A4 @ =gUnknown_825F83E adds r0, r6, 0 movs r1, 0x2 bl SetMonData lsls r2, r5, 3 subs r2, r5 lsls r2, 2 ldr r0, _080462A8 @ =gUnknown_8254795 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 _080462A4: .4byte gUnknown_825F83E _080462A8: .4byte gUnknown_8254795 thumb_func_end SetInitialEggData thumb_func_start GiveEggFromDaycare GiveEggFromDaycare: @ 80462AC push {lr} ldr r0, _080462C0 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl sub_80460D4 pop {r0} bx r0 .align 2, 0 _080462C0: .4byte gSaveBlock1Ptr thumb_func_end GiveEggFromDaycare thumb_func_start sub_80462C4 sub_80462C4: @ 80462C4 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 movs r7, 0 movs r5, 0 _080462CE: movs r0, 0x8C adds r4, r5, 0 muls r4, r0 adds r0, r6, r4 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080462EE adds r1, r6, 0 adds r1, 0x88 adds r1, r4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] adds r7, 0x1 _080462EE: adds r5, 0x1 cmp r5, 0x1 bls _080462CE movs r1, 0x8C lsls r1, 1 adds r0, r6, r1 ldrh r0, [r0] cmp r0, 0 bne _08046334 cmp r7, 0x2 bne _08046334 subs r1, 0x4 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0xFF bne _08046334 adds r0, r6, 0 bl GetDaycareCompatibilityScore 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, _0804634C @ =0x0000ffff bl __udivsi3 cmp r4, r0 bls _08046334 bl sub_8045A48 _08046334: movs r0, 0x8D lsls r0, 1 adds r1, r6, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080463A8 movs r5, 0 b _080463A0 .align 2, 0 _0804634C: .4byte 0x0000ffff _08046350: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08046388 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _0804639E adds r0, r4, 0 movs r1, 0x4 bl GetMonData cmp r0, 0 bne _0804639E adds r0, r4, 0 movs r1, 0x20 bl GetMonData str r0, [sp] cmp r0, 0 bne _08046390 ldr r0, _0804638C @ =gSpecialVar_0x8004 strh r5, [r0] movs r0, 0x1 b _080463AA .align 2, 0 _08046388: .4byte gPlayerParty _0804638C: .4byte gSpecialVar_0x8004 _08046390: subs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r1, 0x20 mov r2, sp bl SetMonData _0804639E: adds r5, 0x1 _080463A0: ldr r0, _080463B4 @ =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 bcc _08046350 _080463A8: movs r0, 0 _080463AA: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080463B4: .4byte gPlayerPartyCount thumb_func_end sub_80462C4 thumb_func_start sub_80463B8 sub_80463B8: @ 80463B8 push {r4,lr} ldr r4, _080463F0 @ =gSaveBlock1Ptr ldr r0, [r4] ldr r1, _080463F4 @ =0x00003c98 adds r0, r1 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _080463D8 ldr r1, [r4] ldr r0, _080463F8 @ =0x00003d20 adds r1, r0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080463D8: ldr r0, [r4] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl sub_80462C4 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080463F0: .4byte gSaveBlock1Ptr _080463F4: .4byte 0x00003c98 _080463F8: .4byte 0x00003d20 thumb_func_end sub_80463B8 thumb_func_start sub_80463FC sub_80463FC: @ 80463FC 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_80463FC thumb_func_start _GetDaycareMonNicknames _GetDaycareMonNicknames: @ 804640C push {r4,lr} sub sp, 0xC adds r4, r0, 0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _08046436 ldr r1, _08046454 @ =gStringVar1 adds r0, r4, 0 bl GetBoxMonNick adds r0, r4, 0 movs r1, 0x7 mov r2, sp bl GetBoxMonData ldr r0, _08046458 @ =gStringVar3 mov r1, sp bl StringCopy _08046436: adds r4, 0x8C adds r0, r4, 0 movs r1, 0xB bl GetBoxMonData cmp r0, 0 beq _0804644C ldr r1, _0804645C @ =gStringVar2 adds r0, r4, 0 bl GetBoxMonNick _0804644C: add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _08046454: .4byte gStringVar1 _08046458: .4byte gStringVar3 _0804645C: .4byte gStringVar2 thumb_func_end _GetDaycareMonNicknames thumb_func_start GetSelectedMonNickAndSpecies GetSelectedMonNickAndSpecies: @ 8046460 push {r4,r5,lr} bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 movs r5, 0x64 muls r0, r5 ldr r4, _08046494 @ =gPlayerParty adds r0, r4 ldr r1, _08046498 @ =gStringVar1 bl GetBoxMonNick bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 muls r0, r5 adds r0, r4 movs r1, 0xB bl GetBoxMonData lsls r0, 16 lsrs r0, 16 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08046494: .4byte gPlayerParty _08046498: .4byte gStringVar1 thumb_func_end GetSelectedMonNickAndSpecies thumb_func_start GetDaycareMonNicknames GetDaycareMonNicknames: @ 804649C push {lr} ldr r0, _080464B0 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl _GetDaycareMonNicknames pop {r0} bx r0 .align 2, 0 _080464B0: .4byte gSaveBlock1Ptr thumb_func_end GetDaycareMonNicknames thumb_func_start sub_80464B4 sub_80464B4: @ 80464B4 push {r4,lr} ldr r4, _080464D0 @ =gSaveBlock1Ptr ldr r0, [r4] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl sub_80463FC lsls r0, 24 cmp r0, 0 beq _080464D4 movs r0, 0x1 b _080464F2 .align 2, 0 _080464D0: .4byte gSaveBlock1Ptr _080464D4: ldr r0, [r4] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl CountPokemonInDaycare lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080464EC movs r0, 0 b _080464F2 _080464EC: adds r0, 0x1 lsls r0, 24 lsrs r0, 24 _080464F2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80464B4 thumb_func_start GetDaycarePokemonCount GetDaycarePokemonCount: @ 80464F8 push {lr} ldr r0, _08046518 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl CountPokemonInDaycare lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08046512 movs r0, 0 _08046512: pop {r1} bx r1 .align 2, 0 _08046518: .4byte gSaveBlock1Ptr thumb_func_end GetDaycarePokemonCount thumb_func_start EggGroupsOverlap EggGroupsOverlap: @ 804651C push {r4-r6,lr} adds r5, r1, 0 movs r4, 0 adds r1, r0, 0 _08046524: movs r3, 0 ldrh r0, [r1] adds r2, r5, 0 _0804652A: ldrh r6, [r2] cmp r0, r6 bne _08046534 movs r0, 0x1 b _08046546 _08046534: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x1 ble _0804652A adds r1, 0x2 adds r4, 0x1 cmp r4, 0x1 ble _08046524 movs r0, 0 _08046546: pop {r4-r6} pop {r1} bx r1 thumb_func_end EggGroupsOverlap thumb_func_start GetDaycareCompatibilityScore GetDaycareCompatibilityScore: @ 804654C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 str r0, [sp, 0x1C] movs r7, 0 mov r0, sp adds r0, 0x8 str r0, [sp, 0x20] add r1, sp, 0xC mov r9, r1 mov r2, sp adds r2, 0x14 str r2, [sp, 0x24] subs r0, 0x6 ldr r1, _08046600 @ =gBaseStats mov r10, r1 ldr r5, [sp, 0x20] mov r8, r0 mov r6, sp str r2, [sp, 0x28] mov r2, r9 str r2, [sp, 0x2C] _0804657E: movs r0, 0x8C adds r4, r7, 0 muls r4, r0 ldr r0, [sp, 0x1C] adds r4, r0, r4 adds r0, r4, 0 movs r1, 0xB bl GetBoxMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x1 bl GetBoxMonData ldr r1, [sp, 0x2C] stm r1!, {r0} str r1, [sp, 0x2C] 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, 0x28] stm r2!, {r0} str r2, [sp, 0x28] ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r10 ldrb r0, [r0, 0x14] strh r0, [r6] ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r10 ldrb r0, [r0, 0x15] mov r1, r8 strh r0, [r1] adds r5, 0x2 movs r2, 0x4 add r8, r2 adds r6, 0x4 adds r7, 0x1 cmp r7, 0x1 bls _0804657E mov r0, sp ldrh r1, [r0] cmp r1, 0xF beq _080465FC ldrh r0, [r0, 0x4] cmp r0, 0xF beq _080465FC cmp r1, 0xD bne _08046604 cmp r0, 0xD bne _08046608 _080465FC: movs r0, 0 b _0804665C .align 2, 0 _08046600: .4byte gBaseStats _08046604: cmp r0, 0xD bne _08046614 _08046608: ldr r1, [sp, 0xC] mov r2, r9 ldr r0, [r2, 0x4] cmp r1, r0 beq _08046656 b _0804665A _08046614: ldr r0, [sp, 0x14] ldr r2, [sp, 0x24] ldr r1, [r2, 0x4] cmp r0, r1 beq _080465FC cmp r0, 0xFF beq _080465FC cmp r1, 0xFF beq _080465FC add r1, sp, 0x4 mov r0, sp bl EggGroupsOverlap lsls r0, 24 cmp r0, 0 beq _080465FC ldr r0, [sp, 0x20] ldrh r1, [r0, 0x2] ldrh r0, [r0] cmp r0, r1 bne _0804664C ldr r1, [sp, 0xC] mov r2, r9 ldr r0, [r2, 0x4] cmp r1, r0 beq _0804665A movs r0, 0x46 b _0804665C _0804664C: ldr r1, [sp, 0xC] mov r2, r9 ldr r0, [r2, 0x4] cmp r1, r0 bne _0804665A _08046656: movs r0, 0x14 b _0804665C _0804665A: movs r0, 0x32 _0804665C: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end GetDaycareCompatibilityScore thumb_func_start GetDaycareCompatibilityScoreFromSave GetDaycareCompatibilityScoreFromSave: @ 804666C push {lr} ldr r0, _08046684 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xBE lsls r1, 6 adds r0, r1 bl GetDaycareCompatibilityScore lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08046684: .4byte gSaveBlock1Ptr thumb_func_end GetDaycareCompatibilityScoreFromSave thumb_func_start SetDaycareCompatibilityString SetDaycareCompatibilityString: @ 8046688 push {lr} bl GetDaycareCompatibilityScoreFromSave lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 movs r1, 0 cmp r0, 0 bne _0804669C movs r1, 0x3 _0804669C: cmp r0, 0x14 bne _080466A2 movs r1, 0x2 _080466A2: cmp r0, 0x32 bne _080466A8 movs r1, 0x1 _080466A8: cmp r2, 0x46 bne _080466AE movs r1, 0 _080466AE: ldr r0, _080466C0 @ =gStringVar4 ldr r2, _080466C4 @ =gUnknown_825F82C lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r0} bx r0 .align 2, 0 _080466C0: .4byte gStringVar4 _080466C4: .4byte gUnknown_825F82C thumb_func_end SetDaycareCompatibilityString thumb_func_start NameHasGenderSymbol NameHasGenderSymbol: @ 80466C8 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 _0804670C _080466E4: adds r1, r4, r3 ldrb r0, [r1] cmp r0, 0xB5 bne _080466F2 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] _080466F2: ldrb r0, [r1] cmp r0, 0xB6 bne _080466FE ldrb r0, [r2, 0x1] adds r0, 0x1 strb r0, [r2, 0x1] _080466FE: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r4, r3 ldrb r0, [r0] cmp r0, 0xFF bne _080466E4 _0804670C: cmp r5, 0 bne _08046720 mov r0, sp ldrb r0, [r0] cmp r0, 0 beq _08046720 mov r0, sp ldrb r0, [r0, 0x1] cmp r0, 0 beq _08046734 _08046720: cmp r5, 0xFE bne _08046738 mov r0, sp ldrb r0, [r0, 0x1] cmp r0, 0 beq _08046738 mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _08046738 _08046734: movs r0, 0x1 b _0804673A _08046738: movs r0, 0 _0804673A: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end NameHasGenderSymbol thumb_func_start AppendGenderSymbol AppendGenderSymbol: @ 8046744 push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _08046764 movs r1, 0 bl NameHasGenderSymbol lsls r0, 24 cmp r0, 0 bne _08046780 ldr r1, _08046760 @ =gUnknown_8261EC1 b _08046782 .align 2, 0 _08046760: .4byte gUnknown_8261EC1 _08046764: cmp r1, 0xFE bne _08046780 adds r0, r4, 0 movs r1, 0xFE bl NameHasGenderSymbol lsls r0, 24 cmp r0, 0 bne _08046780 ldr r1, _0804677C @ =gUnknown_8261EC3 b _08046782 .align 2, 0 _0804677C: .4byte gUnknown_8261EC3 _08046780: ldr r1, _08046790 @ =gUnknown_8261EC5 _08046782: adds r0, r4, 0 bl StringAppend pop {r4} pop {r1} bx r1 .align 2, 0 _08046790: .4byte gUnknown_8261EC5 thumb_func_end AppendGenderSymbol thumb_func_start AppendMonGenderSymbol AppendMonGenderSymbol: @ 8046794 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 AppendMonGenderSymbol thumb_func_start GetDaycareLevelMenuText GetDaycareLevelMenuText: @ 80467B0 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 _080467C8: movs r0, 0x8C adds r4, r6, 0 muls r4, r0 add r4, r8 lsls r0, r6, 2 adds r0, r6 lsls r0, 2 mov r1, sp adds r5, r1, r0 adds r0, r4, 0 adds r1, r5, 0 bl GetBoxMonNick adds r0, r5, 0 adds r1, r4, 0 bl AppendMonGenderSymbol adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bls _080467C8 adds r0, r7, 0 mov r1, sp bl StringCopy ldr r4, _0804682C @ =gUnknown_825F83C 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, _08046830 @ =gUnknown_84161C8 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 _0804682C: .4byte gUnknown_825F83C _08046830: .4byte gUnknown_84161C8 thumb_func_end GetDaycareLevelMenuText thumb_func_start GetDaycareLevelMenuLevelText GetDaycareLevelMenuLevelText: @ 8046834 push {r4-r6,lr} sub sp, 0x14 adds r6, r0, 0 adds r4, r1, 0 movs r0, 0xFF strb r0, [r4] movs r5, 0 _08046842: adds r0, r4, 0 ldr r1, _08046890 @ =gUnknown_8416223 bl StringAppend movs r0, 0x8C adds r2, r5, 0 muls r2, r0 adds r0, r6, r2 adds r1, r6, 0 adds r1, 0x88 adds r1, r2 ldr r1, [r1] bl GetLevelAfterDaycareSteps adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r0, r4, 0 mov r1, sp bl StringAppend adds r0, r4, 0 ldr r1, _08046894 @ =gUnknown_825F83C bl StringAppend adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _08046842 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08046890: .4byte gUnknown_8416223 _08046894: .4byte gUnknown_825F83C thumb_func_end GetDaycareLevelMenuLevelText thumb_func_start DaycareAddTextPrinter DaycareAddTextPrinter: @ 8046898 push {r4,r5,lr} sub sp, 0x10 str r1, [sp] mov r1, sp strb r0, [r1, 0x4] movs r0, 0x3 strb r0, [r1, 0x5] mov r0, sp strb r2, [r0, 0x6] strb r3, [r0, 0x7] strb r2, [r0, 0x8] strb r3, [r0, 0x9] mov r3, sp ldrb r1, [r3, 0xC] movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r1 strb r0, [r3, 0xC] ldr r3, _08046908 @ =gTextFlags ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] mov r0, sp movs r5, 0x1 movs r1, 0x1 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r3, sp ldrb r1, [r3, 0xC] movs r4, 0xF adds r0, r4, 0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r3, 0xC] mov r1, sp ldrb r0, [r1, 0xD] ands r2, r0 orrs r2, r5 strb r2, [r1, 0xD] ands r2, r4 movs r0, 0x30 orrs r2, r0 strb r2, [r1, 0xD] mov r0, sp movs r1, 0xFF movs r2, 0 bl AddTextPrinter add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08046908: .4byte gTextFlags thumb_func_end DaycareAddTextPrinter thumb_func_start DaycarePrintMonNick DaycarePrintMonNick: @ 804690C push {r4-r6,lr} sub sp, 0x14 adds r5, r0, 0 adds r4, r1, 0 adds r6, r3, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x8C muls r0, r2 adds r5, r0 adds r0, r5, 0 mov r1, sp bl GetBoxMonNick mov r0, sp adds r1, r5, 0 bl AppendMonGenderSymbol adds r0, r4, 0 mov r1, sp movs r2, 0x8 adds r3, r6, 0 bl DaycareAddTextPrinter add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end DaycarePrintMonNick thumb_func_start DaycarePrintMonLvl DaycarePrintMonLvl: @ 8046944 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 mov r8, r3 lsls r5, 24 lsrs r5, 24 ldr r1, _080469B0 @ =gUnknown_8416223 mov r0, sp bl strcpy movs r0, 0x8C adds r1, r6, 0 muls r1, r0 adds r0, r4, r1 adds r4, 0x88 adds r4, r1 ldr r1, [r4] bl GetLevelAfterDaycareSteps adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 add r4, sp, 0xC adds r0, r4, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN mov r0, sp adds r1, r4, 0 bl StringAppend movs r0, 0x3 mov r1, sp movs r2, 0 bl GetStringWidth movs r2, 0x84 subs r2, r0 adds r0, r5, 0 mov r1, sp mov r3, r8 bl DaycareAddTextPrinter add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080469B0: .4byte gUnknown_8416223 thumb_func_end DaycarePrintMonLvl thumb_func_start DaycarePrintMonInfo DaycarePrintMonInfo: @ 80469B4 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r2, 24 lsrs r5, r2, 24 cmp r6, 0x1 bhi _080469EE ldr r0, _080469F8 @ =gSaveBlock1Ptr mov r8, r0 ldr r0, [r0] movs r4, 0xBE lsls r4, 6 adds r0, r4 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl DaycarePrintMonNick mov r1, r8 ldr r0, [r1] adds r0, r4 adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl DaycarePrintMonLvl _080469EE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080469F8: .4byte gSaveBlock1Ptr thumb_func_end DaycarePrintMonInfo thumb_func_start Task_HandleDaycareLevelMenuInput Task_HandleDaycareLevelMenuInput: @ 80469FC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _08046A2C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrb r0, [r4, 0x8] bl ListMenuHandleInput adds r1, r0, 0 ldr r0, _08046A30 @ =gMain ldrh r2, [r0, 0x2E] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08046A7C cmp r1, 0x1 bls _08046A34 cmp r1, 0x5 beq _08046A40 b _08046A46 .align 2, 0 _08046A2C: .4byte gTasks _08046A30: .4byte gMain _08046A34: ldr r0, _08046A3C @ =gSpecialVar_Result strh r1, [r0] b _08046A46 .align 2, 0 _08046A3C: .4byte gSpecialVar_Result _08046A40: ldr r1, _08046A74 @ =gSpecialVar_Result movs r0, 0x2 strh r0, [r1] _08046A46: ldr r0, _08046A78 @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x8] movs r1, 0 movs r2, 0 bl sub_810713C ldrb r0, [r4, 0xA] movs r1, 0x1 bl ClearStdWindowAndFrame ldrb r0, [r4, 0xA] bl RemoveWindow adds r0, r5, 0 bl DestroyTask bl EnableBothScriptContexts b _08046AAC .align 2, 0 _08046A74: .4byte gSpecialVar_Result _08046A78: .4byte gTasks _08046A7C: movs r1, 0x2 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _08046AAC ldr r0, _08046AB4 @ =gSpecialVar_Result strh r1, [r0] ldrb r0, [r4, 0x8] movs r1, 0 movs r2, 0 bl sub_810713C ldrb r0, [r4, 0xA] movs r1, 0x1 bl ClearStdWindowAndFrame ldrb r0, [r4, 0xA] bl RemoveWindow adds r0, r5, 0 bl DestroyTask bl EnableBothScriptContexts _08046AAC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08046AB4: .4byte gSpecialVar_Result thumb_func_end Task_HandleDaycareLevelMenuInput thumb_func_start ShowDaycareLevelMenu ShowDaycareLevelMenu: @ 8046AB8 push {r4,r5,lr} sub sp, 0x18 ldr r0, _08046B18 @ =gUnknown_825F7F4 bl AddWindow adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 bl DrawStdWindowFrame mov r1, sp ldr r0, _08046B1C @ =gUnknown_825F814 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, sp strb r4, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _08046B20 @ =Task_HandleDaycareLevelMenuInput movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08046B24 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] strh r4, [r1, 0xA] add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08046B18: .4byte gUnknown_825F7F4 _08046B1C: .4byte gUnknown_825F814 _08046B20: .4byte Task_HandleDaycareLevelMenuInput _08046B24: .4byte gTasks thumb_func_end ShowDaycareLevelMenu thumb_func_start ChooseSendDaycareMon ChooseSendDaycareMon: @ 8046B28 push {lr} bl sub_8128370 ldr r1, _08046B38 @ =gMain ldr r0, _08046B3C @ =c2_exit_to_overworld_2_switch str r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _08046B38: .4byte gMain _08046B3C: .4byte c2_exit_to_overworld_2_switch thumb_func_end ChooseSendDaycareMon thumb_func_start sub_8046B40 sub_8046B40: @ 8046B40 push {lr} bl GetCursorSelectionMonId lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _08046B64 @ =gPlayerParty adds r0, r1 ldr r1, _08046B68 @ =gSaveBlock1Ptr ldr r1, [r1] ldr r2, _08046B6C @ =0x00003c98 adds r1, r2 bl StorePokemonInDaycare pop {r0} bx r0 .align 2, 0 _08046B64: .4byte gPlayerParty _08046B68: .4byte gSaveBlock1Ptr _08046B6C: .4byte 0x00003c98 thumb_func_end sub_8046B40 thumb_func_start sub_8046B70 sub_8046B70: @ 8046B70 push {lr} ldr r0, _08046B88 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _08046B8C @ =0x00003c98 adds r0, r1 bl GetDaycareCostForSelectedMon ldr r1, _08046B90 @ =gSpecialVar_0x8005 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _08046B88: .4byte gSaveBlock1Ptr _08046B8C: .4byte 0x00003c98 _08046B90: .4byte gSpecialVar_0x8005 thumb_func_end sub_8046B70 thumb_func_start sub_8046B94 sub_8046B94: @ 8046B94 push {lr} ldr r0, _08046BAC @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _08046BB0 @ =0x00003c98 adds r0, r1 movs r1, 0xB bl GetBoxMonData cmp r0, 0 bne _08046BB4 movs r0, 0 b _08046BB6 .align 2, 0 _08046BAC: .4byte gSaveBlock1Ptr _08046BB0: .4byte 0x00003c98 _08046BB4: movs r0, 0x1 _08046BB6: pop {r1} bx r1 thumb_func_end sub_8046B94 thumb_func_start sub_8046BBC sub_8046BBC: @ 8046BBC push {lr} ldr r0, _08046BD4 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _08046BD8 @ =0x00003c98 adds r0, r1 bl GetNumLevelsGainedForDaycareMon lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08046BD4: .4byte gSaveBlock1Ptr _08046BD8: .4byte 0x00003c98 thumb_func_end sub_8046BBC thumb_func_start sub_8046BDC sub_8046BDC: @ 8046BDC push {lr} ldr r0, _08046BF4 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _08046BF8 @ =0x00003c98 adds r0, r1 bl TakeSelectedPokemonFromDaycare lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _08046BF4: .4byte gSaveBlock1Ptr _08046BF8: .4byte 0x00003c98 thumb_func_end sub_8046BDC .align 2, 0 @ Don't pad with nop.