.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_806ED54 sub_806ED54: @ 806ED54 push {lr} ldr r0, _0806ED6C @ =gUnknown_20370F5 movs r1, 0 strb r1, [r0] bl IsUpdateLinkStateCBActive cmp r0, 0x1 bne _0806ED70 bl sub_806EE34 b _0806ED90 .align 2, 0 _0806ED6C: .4byte gUnknown_20370F5 _0806ED70: bl InUnionRoom cmp r0, 0x1 bne _0806ED7E bl sub_806EE58 b _0806ED90 _0806ED7E: bl GetSafariZoneFlag cmp r0, 0x1 bne _0806ED8C bl sub_806EE04 b _0806ED90 _0806ED8C: bl sub_806EDB0 _0806ED90: pop {r0} bx r0 thumb_func_end sub_806ED54 thumb_func_start sub_806ED94 sub_806ED94: @ 806ED94 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, _0806EDA8 @ =gUnknown_20370F6 ldr r1, _0806EDAC @ =gUnknown_20370F5 bl AppendToList pop {r0} bx r0 .align 2, 0 _0806EDA8: .4byte gUnknown_20370F6 _0806EDAC: .4byte gUnknown_20370F5 thumb_func_end sub_806ED94 thumb_func_start sub_806EDB0 sub_806EDB0: @ 806EDB0 push {lr} ldr r0, _0806EDFC @ =0x00000829 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806EDC6 movs r0, 0 bl sub_806ED94 _0806EDC6: ldr r0, _0806EE00 @ =0x00000828 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806EDDA movs r0, 0x1 bl sub_806ED94 _0806EDDA: movs r0, 0x2 bl sub_806ED94 movs r0, 0x3 bl sub_806ED94 movs r0, 0x4 bl sub_806ED94 movs r0, 0x5 bl sub_806ED94 movs r0, 0x6 bl sub_806ED94 pop {r0} bx r0 .align 2, 0 _0806EDFC: .4byte 0x00000829 _0806EE00: .4byte 0x00000828 thumb_func_end sub_806EDB0 thumb_func_start sub_806EE04 sub_806EE04: @ 806EE04 push {lr} movs r0, 0x7 bl sub_806ED94 movs r0, 0 bl sub_806ED94 movs r0, 0x1 bl sub_806ED94 movs r0, 0x2 bl sub_806ED94 movs r0, 0x3 bl sub_806ED94 movs r0, 0x5 bl sub_806ED94 movs r0, 0x6 bl sub_806ED94 pop {r0} bx r0 thumb_func_end sub_806EE04 thumb_func_start sub_806EE34 sub_806EE34: @ 806EE34 push {lr} movs r0, 0x1 bl sub_806ED94 movs r0, 0x2 bl sub_806ED94 movs r0, 0x8 bl sub_806ED94 movs r0, 0x5 bl sub_806ED94 movs r0, 0x6 bl sub_806ED94 pop {r0} bx r0 thumb_func_end sub_806EE34 thumb_func_start sub_806EE58 sub_806EE58: @ 806EE58 push {lr} movs r0, 0x1 bl sub_806ED94 movs r0, 0x2 bl sub_806ED94 movs r0, 0x3 bl sub_806ED94 movs r0, 0x5 bl sub_806ED94 movs r0, 0x6 bl sub_806ED94 pop {r0} bx r0 thumb_func_end sub_806EE58 thumb_func_start sub_806EE7C sub_806EE7C: @ 806EE7C push {r4,r5,lr} sub sp, 0xC ldr r4, _0806EEF4 @ =gUnknown_2037101 ldr r0, _0806EEF8 @ =gUnknown_83A738C bl AddWindow strb r0, [r4] ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0 bl DrawStdWindowFrame ldr r0, _0806EEFC @ =gStringVar1 ldr r1, _0806EF00 @ =gSafariZoneStepCounter ldrh r1, [r1] movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _0806EF04 @ =gStringVar2 movs r1, 0x96 lsls r1, 2 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _0806EF08 @ =gStringVar3 ldr r1, _0806EF0C @ =gNumSafariBalls ldrb r1, [r1] movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, _0806EF10 @ =gStringVar4 ldr r1, _0806EF14 @ =gUnknown_84162A9 adds r0, r5, 0 bl StringExpandPlaceholders ldrb r0, [r4] movs r1, 0x3 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x2 adds r2, r5, 0 movs r3, 0x4 bl AddTextPrinterParameterized ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806EEF4: .4byte gUnknown_2037101 _0806EEF8: .4byte gUnknown_83A738C _0806EEFC: .4byte gStringVar1 _0806EF00: .4byte gSafariZoneStepCounter _0806EF04: .4byte gStringVar2 _0806EF08: .4byte gStringVar3 _0806EF0C: .4byte gNumSafariBalls _0806EF10: .4byte gStringVar4 _0806EF14: .4byte gUnknown_84162A9 thumb_func_end sub_806EE7C thumb_func_start sub_806EF18 sub_806EF18: @ 806EF18 push {r4,lr} bl GetSafariZoneFlag cmp r0, 0 beq _0806EF3A ldr r4, _0806EF40 @ =gUnknown_2037101 ldrb r0, [r4] movs r1, 0 bl ClearMenuWindow ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r4] bl RemoveWindow _0806EF3A: pop {r4} pop {r0} bx r0 .align 2, 0 _0806EF40: .4byte gUnknown_2037101 thumb_func_end sub_806EF18 thumb_func_start sub_806EF44 sub_806EF44: @ 806EF44 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r0 lsls r1, 24 lsrs r6, r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0806EF9C @ =gUnknown_83A7344 mov r10, r0 ldr r1, _0806EFA0 @ =gStringVar4 mov r9, r1 _0806EF68: ldr r1, _0806EFA4 @ =gUnknown_20370F6 lsls r0, r2, 16 asrs r5, r0, 16 adds r4, r5, r1 ldrb r1, [r4] adds r7, r0, 0 cmp r1, 0x3 beq _0806EF7C cmp r1, 0x8 bne _0806EFA8 _0806EF7C: bl GetStartMenuWindowId lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] lsls r1, 3 add r1, r10 ldr r1, [r1] lsls r3, r5, 4 subs r3, r5 lsls r3, 16 lsrs r3, 16 movs r2, 0x8 bl sub_812E6DC b _0806EFDA .align 2, 0 _0806EF9C: .4byte gUnknown_83A7344 _0806EFA0: .4byte gStringVar4 _0806EFA4: .4byte gUnknown_20370F6 _0806EFA8: ldrb r0, [r4] lsls r0, 3 add r0, r10 ldr r1, [r0] mov r0, r9 bl StringExpandPlaceholders bl GetStartMenuWindowId lsls r0, 24 lsrs r0, 24 lsls r1, r5, 4 subs r1, r5 lsls r1, 24 lsrs r1, 24 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x2 mov r2, r9 movs r3, 0x8 bl AddTextPrinterParameterized _0806EFDA: movs r0, 0x80 lsls r0, 9 adds r1, r7, r0 lsrs r2, r1, 16 asrs r1, 16 ldr r0, _0806F000 @ =gUnknown_20370F5 ldrb r0, [r0] cmp r1, r0 bge _0806F004 subs r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0806EF68 mov r1, r8 strb r2, [r1] movs r0, 0 b _0806F00A .align 2, 0 _0806F000: .4byte gUnknown_20370F5 _0806F004: mov r0, r8 strb r2, [r0] movs r0, 0x1 _0806F00A: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806EF44 thumb_func_start sub_806F01C sub_806F01C: @ 806F01C push {r4,lr} sub sp, 0xC ldr r0, _0806F038 @ =gUnknown_20370FF movs r1, 0 ldrsb r1, [r0, r1] adds r2, r0, 0 cmp r1, 0x5 bls _0806F02E b _0806F140 _0806F02E: lsls r0, r1, 2 ldr r1, _0806F03C @ =_0806F040 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806F038: .4byte gUnknown_20370FF _0806F03C: .4byte _0806F040 .align 2, 0 _0806F040: .4byte _0806F058 .4byte _0806F060 .4byte _0806F06C .4byte _0806F090 .4byte _0806F0A4 .4byte _0806F0C4 _0806F058: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _0806F140 _0806F060: bl sub_806ED54 ldr r1, _0806F068 @ =gUnknown_20370FF b _0806F0B8 .align 2, 0 _0806F068: .4byte gUnknown_20370FF _0806F06C: bl sub_80F6E9C ldr r0, _0806F088 @ =gUnknown_20370F5 ldrb r0, [r0] bl sub_80F78E0 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl DrawStdWindowFrame ldr r1, _0806F08C @ =gUnknown_20370FF b _0806F0B8 .align 2, 0 _0806F088: .4byte gUnknown_20370F5 _0806F08C: .4byte gUnknown_20370FF _0806F090: bl GetSafariZoneFlag cmp r0, 0 beq _0806F09C bl sub_806EE7C _0806F09C: ldr r1, _0806F0A0 @ =gUnknown_20370FF b _0806F0B8 .align 2, 0 _0806F0A0: .4byte gUnknown_20370FF _0806F0A4: ldr r4, _0806F0C0 @ =gUnknown_2037100 adds r0, r4, 0 movs r1, 0x2 bl sub_806EF44 lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0806F140 subs r1, r4, 0x1 _0806F0B8: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0806F140 .align 2, 0 _0806F0C0: .4byte gUnknown_2037100 _0806F0C4: bl GetStartMenuWindowId lsls r0, 24 lsrs r0, 24 movs r1, 0xF str r1, [sp] ldr r1, _0806F12C @ =gUnknown_20370F5 ldrb r1, [r1] str r1, [sp, 0x4] ldr r4, _0806F130 @ =gUnknown_20370F4 ldrb r1, [r4] str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 movs r3, 0 bl ProgramAndPlaceMenuCursorOnWindow strb r0, [r4] bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F118 bl InUnionRoom cmp r0, 0x1 beq _0806F118 ldr r0, _0806F134 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0 bne _0806F118 ldr r2, _0806F138 @ =gUnknown_83A7394 ldr r1, _0806F13C @ =gUnknown_20370F6 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] bl sub_80F7974 _0806F118: bl GetStartMenuWindowId lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl CopyWindowToVram movs r0, 0x1 b _0806F142 .align 2, 0 _0806F12C: .4byte gUnknown_20370F5 _0806F130: .4byte gUnknown_20370F4 _0806F134: .4byte gSaveBlock2Ptr _0806F138: .4byte gUnknown_83A7394 _0806F13C: .4byte gUnknown_20370F6 _0806F140: movs r0, 0 _0806F142: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_806F01C thumb_func_start sub_806F14C sub_806F14C: @ 806F14C push {lr} ldr r1, _0806F164 @ =gUnknown_20370FF movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] _0806F156: bl sub_806F01C lsls r0, 24 cmp r0, 0 beq _0806F156 pop {r0} bx r0 .align 2, 0 _0806F164: .4byte gUnknown_20370FF thumb_func_end sub_806F14C thumb_func_start task50_startmenu task50_startmenu: @ 806F168 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_806F01C lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0806F180 adds r0, r4, 0 bl SwitchTaskToFollowupFunc _0806F180: pop {r4} pop {r0} bx r0 thumb_func_end task50_startmenu thumb_func_start sub_806F188 sub_806F188: @ 806F188 push {r4,r5,lr} adds r5, r0, 0 ldr r1, _0806F1B0 @ =gUnknown_20370FF movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] ldr r4, _0806F1B4 @ =task50_startmenu adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl SetTaskFuncWithFollowupFunc pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806F1B0: .4byte gUnknown_20370FF _0806F1B4: .4byte task50_startmenu thumb_func_end sub_806F188 thumb_func_start sub_806F1B8 sub_806F1B8: @ 806F1B8 push {lr} bl sub_806F01C lsls r0, 24 cmp r0, 0 beq _0806F1CC bl sub_807E3A0 movs r0, 0x1 b _0806F1CE _0806F1CC: movs r0, 0 _0806F1CE: pop {r1} bx r1 thumb_func_end sub_806F1B8 thumb_func_start sub_806F1D4 sub_806F1D4: @ 806F1D4 ldr r1, _0806F1E4 @ =gUnknown_20370FF movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] ldr r1, _0806F1E8 @ =gFieldCallback2 ldr r0, _0806F1EC @ =sub_806F1B8 str r0, [r1] bx lr .align 2, 0 _0806F1E4: .4byte gUnknown_20370FF _0806F1E8: .4byte gFieldCallback2 _0806F1EC: .4byte sub_806F1B8 thumb_func_end sub_806F1D4 thumb_func_start sub_806F1F0 sub_806F1F0: @ 806F1F0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0806F210 @ =gTasks+0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _0806F214 cmp r0, 0x1 beq _0806F238 b _0806F24E .align 2, 0 _0806F210: .4byte gTasks+0x8 _0806F214: bl InUnionRoom cmp r0, 0x1 bne _0806F220 bl var_800D_set_xB _0806F220: ldr r1, _0806F230 @ =gUnknown_20370F0 ldr r0, _0806F234 @ =sub_806F280 str r0, [r1] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0806F24E .align 2, 0 _0806F230: .4byte gUnknown_20370F0 _0806F234: .4byte sub_806F280 _0806F238: ldr r0, _0806F254 @ =gUnknown_20370F0 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806F24E adds r0, r5, 0 bl DestroyTask _0806F24E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806F254: .4byte gUnknown_20370F0 thumb_func_end sub_806F1F0 thumb_func_start ShowStartMenu ShowStartMenu: @ 806F258 push {lr} bl IsUpdateLinkStateCBActive cmp r0, 0 bne _0806F26E bl player_bitmagic bl sub_805C270 bl sub_805C780 _0806F26E: ldr r0, _0806F27C @ =sub_806F1F0 bl sub_806F188 bl ScriptContext2_Enable pop {r0} bx r0 .align 2, 0 _0806F27C: .4byte sub_806F1F0 thumb_func_end ShowStartMenu thumb_func_start sub_806F280 sub_806F280: @ 806F280 push {r4,lr} ldr r0, _0806F35C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806F2D2 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor ldr r4, _0806F360 @ =gUnknown_20370F4 strb r0, [r4] bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F2D2 bl InUnionRoom cmp r0, 0x1 beq _0806F2D2 ldr r0, _0806F364 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0 bne _0806F2D2 ldr r2, _0806F368 @ =gUnknown_83A7394 ldr r1, _0806F36C @ =gUnknown_20370F6 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0x2 bl sub_8113018 _0806F2D2: ldr r0, _0806F35C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806F320 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor ldr r4, _0806F360 @ =gUnknown_20370F4 strb r0, [r4] bl MenuHelpers_LinkSomething lsls r0, 24 cmp r0, 0 bne _0806F320 bl InUnionRoom cmp r0, 0x1 beq _0806F320 ldr r0, _0806F364 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0 bne _0806F320 ldr r2, _0806F368 @ =gUnknown_83A7394 ldr r1, _0806F36C @ =gUnknown_20370F6 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0x2 bl sub_8113018 _0806F320: ldr r0, _0806F35C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806F378 movs r0, 0x5 bl PlaySE bl sub_806F3CC lsls r0, 24 cmp r0, 0 beq _0806F358 ldr r3, _0806F370 @ =gUnknown_20370F0 ldr r1, _0806F374 @ =gUnknown_83A7344 ldr r2, _0806F36C @ =gUnknown_20370F6 ldr r0, _0806F360 @ =gUnknown_20370F4 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] str r0, [r3] bl sub_806F394 _0806F358: movs r0, 0 b _0806F38E .align 2, 0 _0806F35C: .4byte gMain _0806F360: .4byte gUnknown_20370F4 _0806F364: .4byte gSaveBlock2Ptr _0806F368: .4byte gUnknown_83A7394 _0806F36C: .4byte gUnknown_20370F6 _0806F370: .4byte gUnknown_20370F0 _0806F374: .4byte gUnknown_83A7344 _0806F378: movs r0, 0xA ands r0, r1 cmp r0, 0 beq _0806F358 bl sub_806EF18 bl sub_80F7998 bl sub_806FEA0 movs r0, 0x1 _0806F38E: pop {r4} pop {r1} bx r1 thumb_func_end sub_806F280 thumb_func_start sub_806F394 sub_806F394: @ 806F394 push {lr} ldr r0, _0806F3BC @ =gUnknown_20370F0 ldr r1, [r0] ldr r0, _0806F3C0 @ =sub_806F4E8 cmp r1, r0 beq _0806F3B8 ldr r0, _0806F3C4 @ =sub_806F540 cmp r1, r0 beq _0806F3B8 ldr r0, _0806F3C8 @ =sub_806F554 cmp r1, r0 beq _0806F3B8 bl sub_80CCB68 movs r0, 0x1 movs r1, 0 bl fade_screen _0806F3B8: pop {r0} bx r0 .align 2, 0 _0806F3BC: .4byte gUnknown_20370F0 _0806F3C0: .4byte sub_806F4E8 _0806F3C4: .4byte sub_806F540 _0806F3C8: .4byte sub_806F554 thumb_func_end sub_806F394 thumb_func_start sub_806F3CC sub_806F3CC: @ 806F3CC push {lr} ldr r1, _0806F3F8 @ =gUnknown_83A7344 ldr r2, _0806F3FC @ =gUnknown_20370F6 ldr r0, _0806F400 @ =gUnknown_20370F4 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] ldr r0, _0806F404 @ =sub_806F410 cmp r1, r0 bne _0806F408 movs r0, 0 bl pokedex_count lsls r0, 16 cmp r0, 0 bne _0806F408 movs r0, 0 b _0806F40A .align 2, 0 _0806F3F8: .4byte gUnknown_83A7344 _0806F3FC: .4byte gUnknown_20370F6 _0806F400: .4byte gUnknown_20370F4 _0806F404: .4byte sub_806F410 _0806F408: movs r0, 0x1 _0806F40A: pop {r1} bx r1 thumb_func_end sub_806F3CC thumb_func_start sub_806F410 sub_806F410: @ 806F410 push {lr} ldr r0, _0806F424 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806F428 movs r0, 0 b _0806F442 .align 2, 0 _0806F424: .4byte gPaletteFade _0806F428: movs r0, 0x29 bl IncrementGameStat bl PlayRainStoppingSoundEffect bl sub_806EF18 bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F448 @ =sub_810275C bl SetMainCallback2 movs r0, 0x1 _0806F442: pop {r1} bx r1 .align 2, 0 _0806F448: .4byte sub_810275C thumb_func_end sub_806F410 thumb_func_start sub_806F44C sub_806F44C: @ 806F44C push {lr} ldr r0, _0806F460 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806F464 movs r0, 0 b _0806F478 .align 2, 0 _0806F460: .4byte gPaletteFade _0806F464: bl PlayRainStoppingSoundEffect bl sub_806EF18 bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu bl SetMainCallback2 movs r0, 0x1 _0806F478: pop {r1} bx r1 .align 2, 0 _0806F47C: .4byte CB2_PartyMenuFromStartMenu thumb_func_end sub_806F44C thumb_func_start sub_806F480 sub_806F480: @ 806F480 push {lr} ldr r0, _0806F494 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806F498 movs r0, 0 b _0806F4AC .align 2, 0 _0806F494: .4byte gPaletteFade _0806F498: bl PlayRainStoppingSoundEffect bl sub_806EF18 bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F4B0 @ =ReturnToBagFromKeyItem bl SetMainCallback2 movs r0, 0x1 _0806F4AC: pop {r1} bx r1 .align 2, 0 _0806F4B0: .4byte ReturnToBagFromKeyItem thumb_func_end sub_806F480 thumb_func_start sub_806F4B4 sub_806F4B4: @ 806F4B4 push {lr} ldr r0, _0806F4C8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806F4CC movs r0, 0 b _0806F4E0 .align 2, 0 _0806F4C8: .4byte gPaletteFade _0806F4CC: bl PlayRainStoppingSoundEffect bl sub_806EF18 bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F4E4 @ =sub_80568A8 bl sub_808B698 movs r0, 0x1 _0806F4E0: pop {r1} bx r1 .align 2, 0 _0806F4E4: .4byte sub_80568A8 thumb_func_end sub_806F4B4 thumb_func_start sub_806F4E8 sub_806F4E8: @ 806F4E8 ldr r1, _0806F4F4 @ =gUnknown_20370F0 ldr r0, _0806F4F8 @ =sub_806F5A4 str r0, [r1] movs r0, 0 bx lr .align 2, 0 _0806F4F4: .4byte gUnknown_20370F0 _0806F4F8: .4byte sub_806F5A4 thumb_func_end sub_806F4E8 thumb_func_start sub_806F4FC sub_806F4FC: @ 806F4FC push {lr} ldr r0, _0806F510 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806F514 movs r0, 0 b _0806F52E .align 2, 0 _0806F510: .4byte gPaletteFade _0806F514: bl PlayRainStoppingSoundEffect bl sub_806EF18 bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F534 @ =sub_8088388 bl SetMainCallback2 ldr r1, _0806F538 @ =gMain ldr r0, _0806F53C @ =sub_80568A8 str r0, [r1, 0x8] movs r0, 0x1 _0806F52E: pop {r1} bx r1 .align 2, 0 _0806F534: .4byte sub_8088388 _0806F538: .4byte gMain _0806F53C: .4byte sub_80568A8 thumb_func_end sub_806F4FC thumb_func_start sub_806F540 sub_806F540: @ 806F540 push {lr} bl sub_806EF18 bl sub_80F7998 bl sub_806FEA0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_806F540 thumb_func_start sub_806F554 sub_806F554: @ 806F554 push {lr} bl sub_806EF18 bl sub_80F7998 bl sub_806FEA0 bl SafariZoneRetirePrompt movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_806F554 thumb_func_start sub_806F56C sub_806F56C: @ 806F56C push {lr} ldr r0, _0806F580 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806F584 movs r0, 0 b _0806F598 .align 2, 0 _0806F580: .4byte gPaletteFade _0806F584: bl PlayRainStoppingSoundEffect bl CleanupOverworldWindowsAndTilemaps ldr r0, _0806F59C @ =gUnknown_300502C ldrb r0, [r0] ldr r1, _0806F5A0 @ =sub_80568A8 bl sub_808B700 movs r0, 0x1 _0806F598: pop {r1} bx r1 .align 2, 0 _0806F59C: .4byte gUnknown_300502C _0806F5A0: .4byte sub_80568A8 thumb_func_end sub_806F56C thumb_func_start sub_806F5A4 sub_806F5A4: @ 806F5A4 push {lr} bl sub_812B234 movs r0, 0xC bl HelpSystem_SetSomeVariable2 bl sub_806F624 ldr r1, _0806F5C0 @ =gUnknown_20370F0 ldr r0, _0806F5C4 @ =sub_806F5C8 str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F5C0: .4byte gUnknown_20370F0 _0806F5C4: .4byte sub_806F5C8 thumb_func_end sub_806F5A4 thumb_func_start sub_806F5C8 sub_806F5C8: @ 806F5C8 push {lr} bl sub_806F648 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806F604 cmp r0, 0x1 ble _0806F61C cmp r0, 0x2 beq _0806F5E4 cmp r0, 0x3 beq _0806F604 b _0806F61C _0806F5E4: movs r0, 0 movs r1, 0 bl ClearMenuWindow_BorderThickness2 bl sub_806F14C bl sub_812B248 ldr r1, _0806F5FC @ =gUnknown_20370F0 ldr r0, _0806F600 @ =sub_806F280 str r0, [r1] b _0806F61C .align 2, 0 _0806F5FC: .4byte gUnknown_20370F0 _0806F600: .4byte sub_806F280 _0806F604: movs r0, 0 movs r1, 0x1 bl ClearMenuWindow_BorderThickness2 bl sub_80696C0 bl ScriptContext2_Disable bl sub_812B248 movs r0, 0x1 b _0806F61E _0806F61C: movs r0, 0 _0806F61E: pop {r1} bx r1 thumb_func_end sub_806F5C8 thumb_func_start sub_806F624 sub_806F624: @ 806F624 push {lr} bl save_serialize_map ldr r1, _0806F63C @ =gUnknown_3000FA4 ldr r0, _0806F640 @ =sub_806F7A8 str r0, [r1] ldr r1, _0806F644 @ =gUnknown_3000FA9 movs r0, 0 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0806F63C: .4byte gUnknown_3000FA4 _0806F640: .4byte sub_806F7A8 _0806F644: .4byte gUnknown_3000FA9 thumb_func_end sub_806F624 thumb_func_start sub_806F648 sub_806F648: @ 806F648 push {lr} bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _0806F674 ldr r1, _0806F66C @ =gUnknown_3000FA9 movs r0, 0 strb r0, [r1] ldr r0, _0806F670 @ =gUnknown_3000FA4 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 b _0806F676 .align 2, 0 _0806F66C: .4byte gUnknown_3000FA9 _0806F670: .4byte gUnknown_3000FA4 _0806F674: movs r0, 0 _0806F676: pop {r1} bx r1 thumb_func_end sub_806F648 thumb_func_start sub_806F67C sub_806F67C: @ 806F67C push {lr} bl sub_812B234 movs r0, 0xC bl HelpSystem_SetSomeVariable2 bl sub_806F624 ldr r0, _0806F698 @ =task50_save_game movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _0806F698: .4byte task50_save_game thumb_func_end sub_806F67C thumb_func_start sub_806F69C sub_806F69C: @ 806F69C push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldr r0, _0806F6C8 @ =gStringVar4 adds r1, r2, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0x1 bl sub_80F7768 movs r0, 0x1 bl AddTextPrinterForMessage ldr r1, _0806F6CC @ =gUnknown_3000FA9 movs r0, 0x1 strb r0, [r1] ldr r0, _0806F6D0 @ =gUnknown_3000FA4 str r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0806F6C8: .4byte gStringVar4 _0806F6CC: .4byte gUnknown_3000FA9 _0806F6D0: .4byte gUnknown_3000FA4 thumb_func_end sub_806F69C thumb_func_start task50_save_game task50_save_game: @ 806F6D4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_806F648 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 beq _0806F700 cmp r1, 0x1 bgt _0806F6F0 cmp r1, 0 beq _0806F712 b _0806F704 _0806F6F0: cmp r1, 0x3 bgt _0806F704 ldr r1, _0806F6FC @ =gSpecialVar_Result movs r0, 0 strh r0, [r1] b _0806F704 .align 2, 0 _0806F6FC: .4byte gSpecialVar_Result _0806F700: ldr r0, _0806F718 @ =gSpecialVar_Result strh r1, [r0] _0806F704: adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts bl sub_812B248 _0806F712: pop {r4} pop {r0} bx r0 .align 2, 0 _0806F718: .4byte gSpecialVar_Result thumb_func_end task50_save_game thumb_func_start sub_806F71C sub_806F71C: @ 806F71C push {lr} movs r0, 0 movs r1, 0x1 bl ClearDialogWindowAndFrame pop {r0} bx r0 thumb_func_end sub_806F71C thumb_func_start sub_806F72C sub_806F72C: @ 806F72C push {lr} bl sub_806FE84 pop {r0} bx r0 thumb_func_end sub_806F72C thumb_func_start sub_806F738 sub_806F738: @ 806F738 ldr r1, _0806F740 @ =gUnknown_3000FA8 movs r0, 0x3C strb r0, [r1] bx lr .align 2, 0 _0806F740: .4byte gUnknown_3000FA8 thumb_func_end sub_806F738 thumb_func_start sub_806F744 sub_806F744: @ 806F744 push {lr} ldr r1, _0806F764 @ =gUnknown_3000FA8 ldrb r0, [r1] subs r2, r0, 0x1 strb r2, [r1] ldr r0, _0806F768 @ =gMain ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0806F76C lsls r0, r2, 24 cmp r0, 0 beq _0806F772 movs r0, 0 b _0806F774 .align 2, 0 _0806F764: .4byte gUnknown_3000FA8 _0806F768: .4byte gMain _0806F76C: movs r0, 0x5 bl PlaySE _0806F772: movs r0, 0x1 _0806F774: pop {r1} bx r1 thumb_func_end sub_806F744 thumb_func_start sub_806F778 sub_806F778: @ 806F778 push {lr} ldr r1, _0806F794 @ =gUnknown_3000FA8 ldrb r0, [r1] cmp r0, 0 bne _0806F79C ldr r0, _0806F798 @ =gMain ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806F7A0 movs r0, 0x1 b _0806F7A2 .align 2, 0 _0806F794: .4byte gUnknown_3000FA8 _0806F798: .4byte gMain _0806F79C: subs r0, 0x1 strb r0, [r1] _0806F7A0: movs r0, 0 _0806F7A2: pop {r1} bx r1 thumb_func_end sub_806F778 thumb_func_start sub_806F7A8 sub_806F7A8: @ 806F7A8 push {lr} bl GetStartMenuWindowId lsls r0, 24 lsrs r0, 24 movs r1, 0 bl ClearStdWindowAndFrame bl RemoveStartMenuWindow movs r0, 0 bl sub_8112EDC bl sub_806FCF4 ldr r0, _0806F7D4 @ =gUnknown_81C55C9 ldr r1, _0806F7D8 @ =sub_806F7DC bl sub_806F69C movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F7D4: .4byte gUnknown_81C55C9 _0806F7D8: .4byte sub_806F7DC thumb_func_end sub_806F7A8 thumb_func_start sub_806F7DC sub_806F7DC: @ 806F7DC push {lr} bl DisplayYesNoMenuDefaultYes ldr r1, _0806F7F0 @ =gUnknown_3000FA4 ldr r0, _0806F7F4 @ =sub_806F7F8 str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F7F0: .4byte gUnknown_3000FA4 _0806F7F4: .4byte sub_806F7F8 thumb_func_end sub_806F7DC thumb_func_start sub_806F7F8 sub_806F7F8: @ 806F7F8 push {lr} bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0806F81A cmp r1, 0 bgt _0806F814 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0806F858 b _0806F864 _0806F814: cmp r1, 0x1 beq _0806F858 b _0806F864 _0806F81A: ldr r0, _0806F838 @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _0806F826 cmp r0, 0x2 bne _0806F82E _0806F826: ldr r0, _0806F83C @ =gUnknown_2031DB0 ldrb r0, [r0] cmp r0, 0 bne _0806F848 _0806F82E: ldr r1, _0806F840 @ =gUnknown_3000FA4 ldr r0, _0806F844 @ =sub_806F86C str r0, [r1] b _0806F864 .align 2, 0 _0806F838: .4byte gSaveFileStatus _0806F83C: .4byte gUnknown_2031DB0 _0806F840: .4byte gUnknown_3000FA4 _0806F844: .4byte sub_806F86C _0806F848: ldr r1, _0806F850 @ =gUnknown_3000FA4 ldr r0, _0806F854 @ =sub_806F924 str r0, [r1] b _0806F864 .align 2, 0 _0806F850: .4byte gUnknown_3000FA4 _0806F854: .4byte sub_806F924 _0806F858: bl sub_806F72C bl sub_806F71C movs r0, 0x2 b _0806F866 _0806F864: movs r0, 0 _0806F866: pop {r1} bx r1 thumb_func_end sub_806F7F8 thumb_func_start sub_806F86C sub_806F86C: @ 806F86C push {lr} ldr r0, _0806F880 @ =gUnknown_2031DB0 ldrb r0, [r0] cmp r0, 0x1 bne _0806F88C ldr r0, _0806F884 @ =gUnknown_81C566A ldr r1, _0806F888 @ =sub_806F8C0 bl sub_806F69C b _0806F894 .align 2, 0 _0806F880: .4byte gUnknown_2031DB0 _0806F884: .4byte gUnknown_81C566A _0806F888: .4byte sub_806F8C0 _0806F88C: ldr r0, _0806F89C @ =gUnknown_81C55EA ldr r1, _0806F8A0 @ =sub_806F8A4 bl sub_806F69C _0806F894: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F89C: .4byte gUnknown_81C55EA _0806F8A0: .4byte sub_806F8A4 thumb_func_end sub_806F86C thumb_func_start sub_806F8A4 sub_806F8A4: @ 806F8A4 push {lr} bl DisplayYesNoMenuDefaultYes ldr r1, _0806F8B8 @ =gUnknown_3000FA4 ldr r0, _0806F8BC @ =sub_806F8DC str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F8B8: .4byte gUnknown_3000FA4 _0806F8BC: .4byte sub_806F8DC thumb_func_end sub_806F8A4 thumb_func_start sub_806F8C0 sub_806F8C0: @ 806F8C0 push {lr} bl DisplayYesNoMenuDefaultNo ldr r1, _0806F8D4 @ =gUnknown_3000FA4 ldr r0, _0806F8D8 @ =sub_806F8DC str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F8D4: .4byte gUnknown_3000FA4 _0806F8D8: .4byte sub_806F8DC thumb_func_end sub_806F8C0 thumb_func_start sub_806F8DC sub_806F8DC: @ 806F8DC push {lr} bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0806F8FE cmp r1, 0 bgt _0806F8F8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0806F910 b _0806F91C _0806F8F8: cmp r1, 0x1 beq _0806F910 b _0806F91C _0806F8FE: ldr r1, _0806F908 @ =gUnknown_3000FA4 ldr r0, _0806F90C @ =sub_806F924 str r0, [r1] b _0806F91C .align 2, 0 _0806F908: .4byte gUnknown_3000FA4 _0806F90C: .4byte sub_806F924 _0806F910: bl sub_806F72C bl sub_806F71C movs r0, 0x2 b _0806F91E _0806F91C: movs r0, 0 _0806F91E: pop {r1} bx r1 thumb_func_end sub_806F8DC thumb_func_start sub_806F924 sub_806F924: @ 806F924 push {lr} bl sub_8112450 ldr r0, _0806F938 @ =gUnknown_81C5625 ldr r1, _0806F93C @ =sub_806F940 bl sub_806F69C movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F938: .4byte gUnknown_81C5625 _0806F93C: .4byte sub_806F940 thumb_func_end sub_806F924 thumb_func_start sub_806F940 sub_806F940: @ 806F940 push {r4,lr} movs r0, 0 bl IncrementGameStat ldr r4, _0806F95C @ =gUnknown_2031DB0 ldrb r0, [r4] cmp r0, 0x1 bne _0806F960 movs r0, 0x4 bl TrySavingData movs r0, 0 strb r0, [r4] b _0806F966 .align 2, 0 _0806F95C: .4byte gUnknown_2031DB0 _0806F960: movs r0, 0 bl TrySavingData _0806F966: ldr r1, _0806F974 @ =gUnknown_3000FA4 ldr r0, _0806F978 @ =sub_806F97C str r0, [r1] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0806F974: .4byte gUnknown_3000FA4 _0806F978: .4byte sub_806F97C thumb_func_end sub_806F940 thumb_func_start sub_806F97C sub_806F97C: @ 806F97C push {lr} ldr r0, _0806F990 @ =gUnknown_3005420 ldrh r0, [r0] cmp r0, 0x1 bne _0806F99C ldr r0, _0806F994 @ =gUnknown_81C5647 ldr r1, _0806F998 @ =sub_806F9B8 bl sub_806F69C b _0806F9A4 .align 2, 0 _0806F990: .4byte gUnknown_3005420 _0806F994: .4byte gUnknown_81C5647 _0806F998: .4byte sub_806F9B8 _0806F99C: ldr r0, _0806F9B0 @ =gUnknown_841614B ldr r1, _0806F9B4 @ =sub_806FA04 bl sub_806F69C _0806F9A4: bl sub_806F738 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F9B0: .4byte gUnknown_841614B _0806F9B4: .4byte sub_806FA04 thumb_func_end sub_806F97C thumb_func_start sub_806F9B8 sub_806F9B8: @ 806F9B8 push {lr} bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 cmp r0, 0 bne _0806F9D0 movs r0, 0x30 bl PlaySE ldr r1, _0806F9D8 @ =gUnknown_3000FA4 ldr r0, _0806F9DC @ =SaveDialogCB_ReturnSuccess str r0, [r1] _0806F9D0: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806F9D8: .4byte gUnknown_3000FA4 _0806F9DC: .4byte SaveDialogCB_ReturnSuccess thumb_func_end sub_806F9B8 thumb_func_start SaveDialogCB_ReturnSuccess SaveDialogCB_ReturnSuccess: @ 806F9E0 push {lr} bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _0806F9FE bl sub_806F744 lsls r0, 24 cmp r0, 0 beq _0806F9FE bl sub_806F72C movs r0, 0x1 b _0806FA00 _0806F9FE: movs r0, 0 _0806FA00: pop {r1} bx r1 thumb_func_end SaveDialogCB_ReturnSuccess thumb_func_start sub_806FA04 sub_806FA04: @ 806FA04 push {lr} bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 cmp r0, 0 bne _0806FA1C movs r0, 0x16 bl PlaySE ldr r1, _0806FA24 @ =gUnknown_3000FA4 ldr r0, _0806FA28 @ =SaveDialogCB_ReturnError str r0, [r1] _0806FA1C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806FA24: .4byte gUnknown_3000FA4 _0806FA28: .4byte SaveDialogCB_ReturnError thumb_func_end sub_806FA04 thumb_func_start SaveDialogCB_ReturnError SaveDialogCB_ReturnError: @ 806FA2C push {lr} bl sub_806F778 lsls r0, 24 cmp r0, 0 beq _0806FA40 bl sub_806F72C movs r0, 0x3 b _0806FA42 _0806FA40: movs r0, 0 _0806FA42: pop {r1} bx r1 thumb_func_end SaveDialogCB_ReturnError thumb_func_start sub_806FA48 sub_806FA48: @ 806FA48 push {lr} bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_806FA48 thumb_func_start sub_806FA54 sub_806FA54: @ 806FA54 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 ldrb r0, [r0] cmp r0, 0x4 bls _0806FA66 b _0806FB64 _0806FA66: lsls r0, 2 ldr r1, _0806FA70 @ =_0806FA74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806FA70: .4byte _0806FA74 .align 2, 0 _0806FA74: .4byte _0806FA88 .4byte _0806FB00 .4byte _0806FB12 .4byte _0806FB3C .4byte _0806FB60 _0806FA88: movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0 bl SetVBlankCallback bl ScanlineEffect_Stop movs r2, 0xA0 lsls r2, 19 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _0806FAF4 @ =0x040000d4 mov r0, sp str r0, [r1] str r2, [r1, 0x4] ldr r0, _0806FAF8 @ =0x81000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 mov r4, sp movs r6, 0 movs r5, 0x80 lsls r5, 5 ldr r7, _0806FAFC @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0806FACA: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _0806FACA strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _0806FB64 .align 2, 0 _0806FAF4: .4byte 0x040000d4 _0806FAF8: .4byte 0x81000200 _0806FAFC: .4byte 0x81000800 _0806FB00: bl ResetSpriteData bl ResetTasks bl ResetPaletteFade bl ScanlineEffect_Clear b _0806FB64 _0806FB12: movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _0806FB34 @ =gUnknown_83A73B8 movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates ldr r0, _0806FB38 @ =gUnknown_83A73BC bl InitWindows movs r0, 0 movs r1, 0x8 movs r2, 0xF0 bl TextWindow_SetStdFrame0_WithPal b _0806FB64 .align 2, 0 _0806FB34: .4byte gUnknown_83A73B8 _0806FB38: .4byte gUnknown_83A73BC _0806FB3C: movs r0, 0 bl ShowBg movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, _0806FB5C @ =sub_806FA48 bl SetVBlankCallback movs r0, 0x1 bl EnableInterrupts b _0806FB64 .align 2, 0 _0806FB5C: .4byte sub_806FA48 _0806FB60: movs r0, 0x1 b _0806FB6E _0806FB64: mov r1, r8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _0806FB6E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806FA54 thumb_func_start sub_806FB7C sub_806FB7C: @ 806FB7C push {lr} ldr r0, _0806FB9C @ =gMain + 0x438 bl sub_806FA54 cmp r0, 0 beq _0806FB96 ldr r0, _0806FBA0 @ =sub_806FBB8 movs r1, 0x50 bl CreateTask ldr r0, _0806FBA4 @ =sub_806FBA8 bl SetMainCallback2 _0806FB96: pop {r0} bx r0 .align 2, 0 _0806FB9C: .4byte gMain + 0x438 _0806FBA0: .4byte sub_806FBB8 _0806FBA4: .4byte sub_806FBA8 thumb_func_end sub_806FB7C thumb_func_start sub_806FBA8 sub_806FBA8: @ 806FBA8 push {lr} bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_806FBA8 thumb_func_start sub_806FBB8 sub_806FBB8: @ 806FBB8 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0806FBEC @ =gTasks+0x8 adds r5, r0, r1 ldr r0, _0806FBF0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806FBD8 b _0806FCE8 _0806FBD8: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x6 bls _0806FBE2 b _0806FCE8 _0806FBE2: lsls r0, 2 ldr r1, _0806FBF4 @ =_0806FBF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806FBEC: .4byte gTasks+0x8 _0806FBF0: .4byte gPaletteFade _0806FBF4: .4byte _0806FBF8 .align 2, 0 _0806FBF8: .4byte _0806FC14 .4byte _0806FC80 .4byte _0806FC8C .4byte _0806FC9C .4byte _0806FCB0 .4byte _0806FCC8 .4byte _0806FCD8 _0806FC14: movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, _0806FC74 @ =gUnknown_8419F54 movs r4, 0 str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 movs r3, 0xFF bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x8 movs r2, 0xF bl DrawTextBorderOuter movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0806FC78 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0806FC7C bl InUnionRoom cmp r0, 0 beq _0806FC7C movs r0, 0x5 b _0806FCE6 .align 2, 0 _0806FC74: .4byte gUnknown_8419F54 _0806FC78: .4byte gWirelessCommType _0806FC7C: movs r0, 0x1 b _0806FCE6 _0806FC80: bl sub_804C1C0 bl sub_80DA45C movs r0, 0x2 b _0806FCE6 _0806FC8C: bl sub_80DA4A0 lsls r0, 24 cmp r0, 0 beq _0806FCE8 bl sav2_gender2_inplace_and_xFE b _0806FCE4 _0806FC9C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 b _0806FCE6 _0806FCB0: bl FreeAllWindowBuffers ldr r0, _0806FCC4 @ =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask b _0806FCE8 .align 2, 0 _0806FCC4: .4byte gMain _0806FCC8: ldr r0, _0806FCD4 @ =sub_80DA634 movs r1, 0x5 bl CreateTask movs r0, 0x6 b _0806FCE6 .align 2, 0 _0806FCD4: .4byte sub_80DA634 _0806FCD8: ldr r0, _0806FCF0 @ =sub_80DA634 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0806FCE8 _0806FCE4: movs r0, 0x3 _0806FCE6: strh r0, [r5] _0806FCE8: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806FCF0: .4byte sub_80DA634 thumb_func_end sub_806FBB8 thumb_func_start sub_806FCF4 sub_806FCF4: @ 806FCF4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC ldr r5, _0806FE54 @ =gUnknown_2037104 ldr r0, _0806FE58 @ =gUnknown_83A73CC bl AddWindow strb r0, [r5] ldrb r0, [r5] ldr r4, _0806FE5C @ =0x0000021d adds r1, r4, 0 movs r2, 0xD0 bl TextWindow_SetStdFrame0_WithPal ldrb r0, [r5] movs r1, 0 adds r2, r4, 0 movs r3, 0xD bl SetWindowBorderStyle ldr r4, _0806FE60 @ =gStringVar4 movs r0, 0x3 adds r1, r4, 0 movs r2, 0x8 bl sub_80F7FCC movs r6, 0x1 negs r6, r6 movs r0, 0x2 adds r1, r4, 0 adds r2, r6, 0 bl GetStringWidth movs r2, 0x70 subs r2, r0 lsrs r2, 1 lsls r2, 24 lsrs r2, 24 ldrb r0, [r5] ldr r1, _0806FE64 @ =gUnknown_83A73DC str r1, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 movs r3, 0 bl AddTextPrinterParameterized3 movs r0, 0x2 adds r1, r4, 0 adds r2, r6, 0 bl GetStringWidth ldrb r0, [r5] ldr r1, _0806FE68 @ =gUnknown_83A73D4 mov r9, r1 str r1, [sp] str r6, [sp, 0x4] ldr r1, _0806FE6C @ =gUnknown_841617A str r1, [sp, 0x8] movs r1, 0 movs r2, 0x2 movs r3, 0xE bl AddTextPrinterParameterized3 movs r0, 0 adds r1, r4, 0 movs r2, 0x2 bl sub_80F7FCC ldrb r0, [r5] adds r1, r4, 0 movs r2, 0x3C movs r3, 0xE bl sub_812E6DC ldrb r0, [r5] mov r1, r9 str r1, [sp] str r6, [sp, 0x4] ldr r1, _0806FE70 @ =gUnknown_8416181 str r1, [sp, 0x8] movs r1, 0 movs r2, 0x2 movs r3, 0x1C bl AddTextPrinterParameterized3 movs r0, 0x4 adds r1, r4, 0 movs r2, 0x2 bl sub_80F7FCC ldrb r0, [r5] ldr r1, _0806FE74 @ =gUnknown_83A73D8 mov r8, r1 str r1, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0 movs r2, 0x3C movs r3, 0x1C bl AddTextPrinterParameterized3 movs r7, 0x2A ldr r0, _0806FE78 @ =0x00000829 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806FE0A ldrb r0, [r5] mov r1, r9 str r1, [sp] str r6, [sp, 0x4] ldr r1, _0806FE7C @ =gUnknown_8416188 str r1, [sp, 0x8] movs r1, 0 movs r2, 0x2 movs r3, 0x2A bl AddTextPrinterParameterized3 movs r0, 0x1 adds r1, r4, 0 movs r2, 0x2 bl sub_80F7FCC ldrb r0, [r5] mov r1, r8 str r1, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0 movs r2, 0x3C movs r3, 0x2A bl AddTextPrinterParameterized3 movs r7, 0x38 _0806FE0A: ldrb r0, [r5] mov r1, r9 str r1, [sp] str r6, [sp, 0x4] ldr r1, _0806FE80 @ =gUnknown_8416190 str r1, [sp, 0x8] movs r1, 0 movs r2, 0x2 adds r3, r7, 0 bl AddTextPrinterParameterized3 movs r0, 0x2 adds r1, r4, 0 movs r2, 0x2 bl sub_80F7FCC ldrb r0, [r5] mov r1, r8 str r1, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0 movs r2, 0x3C adds r3, r7, 0 bl AddTextPrinterParameterized3 ldrb r0, [r5] movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806FE54: .4byte gUnknown_2037104 _0806FE58: .4byte gUnknown_83A73CC _0806FE5C: .4byte 0x0000021d _0806FE60: .4byte gStringVar4 _0806FE64: .4byte gUnknown_83A73DC _0806FE68: .4byte gUnknown_83A73D4 _0806FE6C: .4byte gUnknown_841617A _0806FE70: .4byte gUnknown_8416181 _0806FE74: .4byte gUnknown_83A73D8 _0806FE78: .4byte 0x00000829 _0806FE7C: .4byte gUnknown_8416188 _0806FE80: .4byte gUnknown_8416190 thumb_func_end sub_806FCF4 thumb_func_start sub_806FE84 sub_806FE84: @ 806FE84 push {r4,lr} ldr r4, _0806FE9C @ =gUnknown_2037104 ldrb r0, [r4] movs r1, 0 bl ClearStdWindowAndFrame ldrb r0, [r4] bl RemoveWindow pop {r4} pop {r0} bx r0 .align 2, 0 _0806FE9C: .4byte gUnknown_2037104 thumb_func_end sub_806FE84 thumb_func_start sub_806FEA0 sub_806FEA0: @ 806FEA0 push {lr} movs r0, 0x5 bl PlaySE bl GetStartMenuWindowId lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl ClearStdWindowAndFrame bl RemoveStartMenuWindow bl sub_80696C0 bl ScriptContext2_Disable pop {r0} bx r0 thumb_func_end sub_806FEA0 thumb_func_start AppendToList AppendToList: @ 806FEC8 ldrb r3, [r1] adds r0, r3 strb r2, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bx lr thumb_func_end AppendToList .align 2, 0 @ Don't pad with nop.