.include "asm/macros.inc" .include "overlay_75.inc" .include "global.inc" .public gApplication_TitleScreen .text thumb_func_start ov75_02246960 ov75_02246960: ; 0x02246960 push {r3, r4, r5, lr} mov r2, #0xa add r5, r0, #0 mov r0, #3 mov r1, #0x73 lsl r2, r2, #0xe bl CreateHeap mov r2, #0x57 mov r0, #0 mov r1, #0x59 lsl r2, r2, #4 bl CreateHeap mov r1, #0x47 add r0, r5, #0 lsl r1, r1, #2 mov r2, #0x73 bl OverlayManager_CreateAndGetData mov r2, #0x47 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl MI_CpuFill8 add r0, r5, #0 bl OverlayManager_GetArgs ldr r0, [r0, #8] str r0, [r4, #4] bl Save_PlayerData_GetOptionsAddr str r0, [r4, #8] mov r0, #0x64 mov r1, #0x73 bl String_New mov r1, #0x11 lsl r1, r1, #4 str r0, [r4, r1] mov r0, #0x64 mov r1, #0x73 bl String_New mov r1, #0x45 lsl r1, r1, #2 str r0, [r4, r1] ldr r1, _022469D4 ; =0x0000047D mov r0, #0x11 mov r2, #1 bl sub_02004EC4 mov r0, #0 add r4, #0x88 str r0, [r4] mov r0, #1 pop {r3, r4, r5, pc} .balign 4, 0 _022469D4: .word 0x0000047D thumb_func_end ov75_02246960 thumb_func_start ov75_022469D8 ov75_022469D8: ; 0x022469D8 push {r3, r4, r5, lr} add r5, r1, #0 bl OverlayManager_GetData add r4, r0, #0 ldr r0, [r4, #0x7c] cmp r0, #1 bne _022469FC bl ov00_021ECB40 bl ov70_022378DC bl ov00_021EC9D4 mov r1, #3 sub r0, r1, r0 bl sub_0203A930 _022469FC: ldr r0, [r5] cmp r0, #4 bhi _02246ADE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02246A0E: ; jump table .short _02246A18 - _02246A0E - 2 ; case 0 .short _02246A24 - _02246A0E - 2 ; case 1 .short _02246A44 - _02246A0E - 2 ; case 2 .short _02246A82 - _02246A0E - 2 ; case 3 .short _02246ADA - _02246A0E - 2 ; case 4 _02246A18: add r0, r4, #0 bl ov75_02246B48 mov r0, #1 str r0, [r5] b _02246ADE _02246A24: bl sub_02034DB8 cmp r0, #0 beq _02246ADE ldr r1, [r4, #0x10] ldr r0, _02246AE4 ; =_02249BE0 str r1, [r0] ldr r0, _02246AE8 ; =ov75_02246BF0 ldr r1, _02246AEC ; =ov75_02246C18 bl ov00_021EC294 mov r0, #1 str r0, [r4, #0x7c] mov r0, #2 str r0, [r5] b _02246ADE _02246A44: add r1, r4, #0 add r1, #0x88 ldr r1, [r1] add r0, r4, #0 lsl r2, r1, #4 ldr r1, _02246AF0 ; =ov75_02249904 ldr r1, [r1, r2] blx r1 add r1, r0, #0 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] lsl r2, r0, #4 ldr r0, _02246AF4 ; =ov75_02249904 + 8 ldr r0, [r0, r2] mov r2, #0x73 bl OverlayManager_New str r0, [r4] add r0, r4, #0 add r0, #0x88 ldr r1, [r0] add r0, r4, #0 add r0, #0x80 str r1, [r0] mov r0, #6 add r4, #0x88 str r0, [r4] mov r0, #3 str r0, [r5] b _02246ADE _02246A82: ldr r0, [r4] bl OverlayManager_Run cmp r0, #1 bne _02246ADE add r1, r4, #0 add r1, #0x80 ldr r1, [r1] add r0, r4, #0 lsl r2, r1, #4 ldr r1, _02246AF8 ; =ov75_02249904 + 4 ldr r1, [r1, r2] blx r1 ldr r0, [r4] bl OverlayManager_Delete add r0, r4, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #6 bne _02246AB2 mov r0, #4 str r0, [r5] b _02246ADE _02246AB2: lsl r1, r0, #4 ldr r0, _02246AFC ; =ov75_02249904 + 12 ldr r0, [r0, r1] cmp r0, #1 bne _02246AC8 add r0, r4, #0 bl ov75_02246B98 mov r0, #2 str r0, [r5] b _02246ADE _02246AC8: ldr r0, [r4, #0x7c] cmp r0, #1 bne _02246AD4 mov r0, #2 str r0, [r5] b _02246ADE _02246AD4: mov r0, #0 str r0, [r5] b _02246ADE _02246ADA: mov r0, #1 pop {r3, r4, r5, pc} _02246ADE: mov r0, #0 pop {r3, r4, r5, pc} nop _02246AE4: .word _02249BE0 _02246AE8: .word ov75_02246BF0 _02246AEC: .word ov75_02246C18 _02246AF0: .word ov75_02249904 _02246AF4: .word ov75_02249904 + 8 _02246AF8: .word ov75_02249904 + 4 _02246AFC: .word ov75_02249904 + 12 thumb_func_end ov75_022469D8 thumb_func_start ov75_02246B00 ov75_02246B00: ; 0x02246B00 push {r3, r4, r5, lr} add r5, r0, #0 bl OverlayManager_GetData add r4, r0, #0 bl ov75_02246B98 mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] bl String_Delete mov r0, #0x11 lsl r0, r0, #4 ldr r0, [r4, r0] bl String_Delete add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x73 bl DestroyHeap mov r0, #0x59 bl DestroyHeap ldr r0, _02246B40 ; =FS_OVERLAY_ID(OVY_60) ldr r1, _02246B44 ; =gApplication_TitleScreen bl RegisterMainOverlay mov r0, #1 pop {r3, r4, r5, pc} .balign 4, 0 _02246B40: .word FS_OVERLAY_ID(OVY_60) _02246B44: .word gApplication_TitleScreen thumb_func_end ov75_02246B00 thumb_func_start ov75_02246B48 ov75_02246B48: ; 0x02246B48 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x7c] cmp r0, #0 bne _02246B8E ldr r0, _02246B90 ; =FS_OVERLAY_ID(OVY_70) mov r1, #2 bl HandleLoadOverlay bl LoadDwcOverlay bl LoadOVY38 mov r0, #0x73 bl sub_02039FD8 ldr r1, _02246B94 ; =0x00020020 mov r0, #0x73 bl AllocFromHeap str r0, [r4, #0xc] add r0, #0x1f mov r1, #0x1f bic r0, r1 mov r1, #2 lsl r1, r1, #0x10 mov r2, #0 bl NNS_FndCreateExpHeapEx str r0, [r4, #0x10] bl sub_02034D8C mov r0, #4 bl Sys_ClearSleepDisableFlag _02246B8E: pop {r4, pc} .balign 4, 0 _02246B90: .word FS_OVERLAY_ID(OVY_70) _02246B94: .word 0x00020020 thumb_func_end ov75_02246B48 thumb_func_start ov75_02246B98 ov75_02246B98: ; 0x02246B98 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x7c] cmp r0, #1 bne _02246BC4 ldr r0, [r4, #0x10] bl NNS_FndDestroyExpHeap ldr r0, [r4, #0xc] bl FreeToHeap bl UnloadOVY38 bl UnloadDwcOverlay bl sub_02034DE0 ldr r0, _02246BC8 ; =FS_OVERLAY_ID(OVY_70) bl UnloadOverlayByID mov r0, #0 str r0, [r4, #0x7c] _02246BC4: pop {r4, pc} nop _02246BC8: .word FS_OVERLAY_ID(OVY_70) thumb_func_end ov75_02246B98 thumb_func_start ov75_02246BCC ov75_02246BCC: ; 0x02246BCC add r3, r0, #0 add r3, #0x88 str r1, [r3] add r0, #0x8c str r2, [r0] bx lr thumb_func_end ov75_02246BCC thumb_func_start ov75_02246BD8 ov75_02246BD8: ; 0x02246BD8 mov r1, #6 add r0, #0x88 str r1, [r0] bx lr thumb_func_end ov75_02246BD8 thumb_func_start ov75_02246BE0 ov75_02246BE0: ; 0x02246BE0 add r0, #0x7a strb r1, [r0] bx lr .balign 4, 0 thumb_func_end ov75_02246BE0 thumb_func_start ov75_02246BE8 ov75_02246BE8: ; 0x02246BE8 add r0, #0x7a ldrb r0, [r0] bx lr .balign 4, 0 thumb_func_end ov75_02246BE8 thumb_func_start ov75_02246BF0 ov75_02246BF0: ; 0x02246BF0 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 bl OS_DisableInterrupts add r6, r0, #0 ldr r0, _02246C14 ; =_02249BE0 add r1, r5, #0 ldr r0, [r0] add r2, r4, #0 bl NNS_FndAllocFromExpHeapEx add r4, r0, #0 add r0, r6, #0 bl OS_RestoreInterrupts add r0, r4, #0 pop {r4, r5, r6, pc} .balign 4, 0 _02246C14: .word _02249BE0 thumb_func_end ov75_02246BF0 thumb_func_start ov75_02246C18 ov75_02246C18: ; 0x02246C18 push {r3, r4, r5, lr} add r5, r1, #0 beq _02246C34 bl OS_DisableInterrupts add r4, r0, #0 ldr r0, _02246C38 ; =_02249BE0 add r1, r5, #0 ldr r0, [r0] bl NNS_FndFreeToExpHeap add r0, r4, #0 bl OS_RestoreInterrupts _02246C34: pop {r3, r4, r5, pc} nop _02246C38: .word _02249BE0 thumb_func_end ov75_02246C18 thumb_func_start ov75_02246C3C ov75_02246C3C: ; 0x02246C3C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x73 mov r1, #0x64 bl AllocFromHeap add r4, r0, #0 mov r0, #0x11 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r4, #0 mov r2, #0x73 bl ov75_02249780 ldr r0, [r5, #4] add r1, r4, #0 bl sub_0203175C add r0, r4, #0 bl FreeToHeap pop {r3, r4, r5, pc} thumb_func_end ov75_02246C3C thumb_func_start ov75_02246C68 ov75_02246C68: ; 0x02246C68 push {r4, lr} add r4, r0, #0 add r2, r4, #0 add r2, #0x78 ldrh r2, [r2] ldr r0, [r4, #4] mov r1, #1 bl sub_02031780 mov r2, #0x42 lsl r2, r2, #2 ldr r0, [r4, #4] ldr r2, [r4, r2] mov r1, #2 bl sub_02031780 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02246C68 thumb_func_start ov75_02246C8C ov75_02246C8C: ; 0x02246C8C mov r2, #0x41 add r3, r0, #0 lsl r2, r2, #2 ldr r0, [r3, #4] ldr r2, [r3, r2] ldr r3, _02246C9C ; =sub_02031780 mov r1, #3 bx r3 .balign 4, 0 _02246C9C: .word sub_02031780 thumb_func_end ov75_02246C8C thumb_func_start ov75_02246CA0 ov75_02246CA0: ; 0x02246CA0 push {r4, lr} add r4, r0, #0 add r1, r4, #0 ldr r0, [r4, #4] add r1, #0x98 bl sub_0203186C add r1, r0, #0 add r0, r4, #0 bl ov75_02246CD8 pop {r4, pc} thumb_func_end ov75_02246CA0 thumb_func_start ov75_02246CB8 ov75_02246CB8: ; 0x02246CB8 add r1, r0, #0 mov r0, #0x11 lsl r0, r0, #4 ldr r0, [r1, r0] ldr r3, _02246CC8 ; =ov75_02249780 add r1, #0xbc mov r2, #0x73 bx r3 .balign 4, 0 _02246CC8: .word ov75_02249780 thumb_func_end ov75_02246CB8 thumb_func_start ov75_02246CCC ov75_02246CCC: ; 0x02246CCC mov r1, #0x42 lsl r1, r1, #2 ldr r1, [r0, r1] add r0, #0xfa strh r1, [r0] bx lr thumb_func_end ov75_02246CCC thumb_func_start ov75_02246CD8 ov75_02246CD8: ; 0x02246CD8 add r0, #0x78 strh r1, [r0] bx lr .balign 4, 0 thumb_func_end ov75_02246CD8 thumb_func_start ov75_02246CE0 ov75_02246CE0: ; 0x02246CE0 mov r1, #0x42 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_end ov75_02246CE0 thumb_func_start ov75_02246CE8 ov75_02246CE8: ; 0x02246CE8 mov r1, #0x41 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_end ov75_02246CE8 thumb_func_start ov75_02246CF0 ov75_02246CF0: ; 0x02246CF0 mov r2, #0x43 lsl r2, r2, #2 strb r1, [r0, r2] bx lr thumb_func_end ov75_02246CF0 thumb_func_start ov75_02246CF8 ov75_02246CF8: ; 0x02246CF8 mov r1, #0x43 lsl r1, r1, #2 ldrb r0, [r0, r1] bx lr thumb_func_end ov75_02246CF8 thumb_func_start ov75_02246D00 ov75_02246D00: ; 0x02246D00 bx lr .balign 4, 0 thumb_func_end ov75_02246D00 thumb_func_start ov75_02246D04 ov75_02246D04: ; 0x02246D04 bx lr .balign 4, 0 thumb_func_end ov75_02246D04 thumb_func_start ov75_02246D08 ov75_02246D08: ; 0x02246D08 push {r4, lr} sub sp, #0x18 add r4, r0, #0 mov r0, #4 str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r0, [r4, #4] bl Save_PlayerData_GetOptionsAddr add r3, r0, #0 mov r0, #4 str r0, [sp] mov r0, #0 str r0, [sp, #4] mov r0, #0x73 mov r1, #0x10 add r2, sp, #8 bl sub_02085400 add r1, r4, #0 add r1, #0x94 add r4, #0x94 str r0, [r1] ldr r0, [r4] add sp, #0x18 pop {r4, pc} thumb_func_end ov75_02246D08 thumb_func_start ov75_02246D40 ov75_02246D40: ; 0x02246D40 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x94 ldr r4, [r0] mov r1, #0x73 ldr r0, [r4, #0x1c] bl ov75_02249838 cmp r0, #0 beq _02246D5E add r0, r5, #0 mov r1, #1 bl ov75_02246CF0 b _02246DA0 _02246D5E: add r0, r5, #0 bl ov75_02246CF8 cmp r0, #2 bne _02246D8C mov r0, #0x11 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [r4, #0x1c] bl String_Compare cmp r0, #0 beq _02246D82 add r0, r5, #0 mov r1, #3 bl ov75_02246CF0 b _02246DA0 _02246D82: add r0, r5, #0 mov r1, #0 bl ov75_02246CF0 b _02246DA0 _02246D8C: mov r0, #0x11 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [r4, #0x1c] bl String_Copy add r0, r5, #0 mov r1, #2 bl ov75_02246CF0 _02246DA0: add r0, r4, #0 bl sub_02085438 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl ov75_02246BCC pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov75_02246D40 thumb_func_start ov75_02246DB4 ov75_02246DB4: ; 0x02246DB4 push {r4, lr} sub sp, #0x20 add r4, r0, #0 mov r0, #3 str r0, [sp, #0x10] mov r0, #4 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] str r0, [sp, #0x1c] ldr r0, [r4, #4] bl Save_PlayerData_GetOptionsAddr add r3, r0, #0 mov r0, #5 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] add r0, r4, #0 add r0, #0x78 ldrh r0, [r0] mov r1, #7 add r2, sp, #0x10 str r0, [sp, #0xc] mov r0, #0x73 bl sub_0208541C add r1, r4, #0 add r1, #0x94 add r4, #0x94 str r0, [r1] ldr r0, [r4] add sp, #0x20 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02246DB4 thumb_func_start ov75_02246DFC ov75_02246DFC: ; 0x02246DFC push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x94 ldr r4, [r0] add r1, sp, #0 ldr r0, [r4, #0x1c] bl String_atoi ldr r2, _02246E38 ; =0x00002710 mov r3, #0 bl _ull_mod mov r1, #0x42 lsl r1, r1, #2 str r0, [r5, r1] ldr r0, [sp] cmp r0, #0 bne _02246E24 bl GF_AssertFail _02246E24: add r0, r4, #0 bl sub_02085438 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl ov75_02246BCC pop {r3, r4, r5, pc} nop _02246E38: .word 0x00002710 thumb_func_end ov75_02246DFC thumb_func_start ov75_02246E3C ov75_02246E3C: ; 0x02246E3C push {r4, lr} sub sp, #0x18 add r4, r0, #0 mov r0, #4 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r0, [r4, #4] bl Save_PlayerData_GetOptionsAddr add r3, r0, #0 mov r0, #6 str r0, [sp] mov r0, #0 str r0, [sp, #4] mov r0, #0x73 mov r1, #4 add r2, sp, #8 bl sub_02085400 add r1, r4, #0 add r1, #0x94 add r4, #0x94 str r0, [r1] ldr r0, [r4] add sp, #0x18 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02246E3C thumb_func_start ov75_02246E78 ov75_02246E78: ; 0x02246E78 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x94 ldr r4, [r0] add r1, sp, #0 ldr r0, [r4, #0x1c] bl String_atoi mov r1, #0x41 lsl r1, r1, #2 str r0, [r5, r1] ldr r0, [sp] cmp r0, #0 bne _02246E98 bl GF_AssertFail _02246E98: add r0, r4, #0 bl sub_02085438 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl ov75_02246BCC pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov75_02246E78 thumb_func_start ov75_02246EAC ov75_02246EAC: ; 0x02246EAC push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x73 mov r1, #0xc bl AllocFromHeap mov r1, #0 mov r2, #0xc add r4, r0, #0 bl MI_CpuFill8 ldr r0, [r5, #4] str r0, [r4] mov r0, #1 str r0, [r4, #4] mov r0, #0 str r0, [r5, #0x7c] add r0, r5, #0 add r0, #0x94 add r5, #0x94 str r4, [r0] ldr r0, [r5] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov75_02246EAC thumb_func_start ov75_02246EDC ov75_02246EDC: ; 0x02246EDC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl sub_0203A05C cmp r0, #0 beq _02246EF4 ldr r0, [r4, #4] bl Save_VarsFlags_Get bl SetFlag970 _02246EF4: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] bl FreeToHeap mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl ov75_02246BCC pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02246EDC thumb_func_start ov75_02246F0C ov75_02246F0C: ; 0x02246F0C push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl HBlankInterruptDisable bl GfGfx_DisableEngineAPlanes bl GfGfx_DisableEngineBPlanes mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] ldr r2, _022470F4 ; =0xFFFFE0FF and r0, r2 str r0, [r1] ldr r0, _022470F8 ; =0x04001000 ldr r3, [r0] and r2, r3 str r2, [r0] ldr r3, [r1] ldr r2, _022470FC ; =0xFFFF1FFF and r3, r2 str r3, [r1] ldr r3, [r0] add r1, #0x50 and r2, r3 str r2, [r0] mov r2, #0 strh r2, [r1] add r0, #0x50 strh r2, [r0] mov r2, #7 mov r0, #3 mov r1, #0x74 lsl r2, r2, #0x10 bl CreateHeap ldr r1, _02247100 ; =0x0000041C add r0, r4, #0 mov r2, #0x74 bl OverlayManager_CreateAndGetData ldr r2, _02247100 ; =0x0000041C mov r1, #0 add r5, r0, #0 bl MI_CpuFill8 add r0, r4, #0 bl OverlayManager_GetArgs str r0, [r5] mov r0, #0x74 bl BgConfig_Alloc str r0, [r5, #4] mov r0, #0x40 mov r1, #0x74 bl GF_CreateVramTransferManager mov r0, #4 mov r1, #8 bl SetKeyRepeatTimers ldr r0, [r5, #4] bl ov75_0224725C bl sub_020210BC mov r0, #4 bl sub_02021148 mov r0, #0xb mov r1, #0x40 mov r2, #0x74 bl MessageFormat_New_Custom str r0, [r5, #0x20] ldr r2, _02247104 ; =0x00000307 mov r0, #0 mov r1, #0x1b mov r3, #0x74 bl NewMsgDataFromNarc str r0, [r5, #0x24] ldr r2, _02247108 ; =0x0000030A mov r0, #0 mov r1, #0x1b mov r3, #0x74 bl NewMsgDataFromNarc mov r2, #0x32 str r0, [r5, #0x2c] mov r0, #0 mov r1, #0x1b lsl r2, r2, #4 mov r3, #0x74 bl NewMsgDataFromNarc str r0, [r5, #0x30] mov r0, #0 mov r1, #0x1b mov r2, #0xed mov r3, #0x74 bl NewMsgDataFromNarc str r0, [r5, #0x28] mov r0, #0 mov r1, #0x1b mov r2, #0xbc mov r3, #0x74 bl NewMsgDataFromNarc str r0, [r5, #0x34] ldr r0, _0224710C ; =0x0000010E mov r1, #0x74 bl String_New str r0, [r5, #0x38] mov r0, #1 lsl r0, r0, #8 mov r1, #0x74 bl String_New str r0, [r5, #0x40] ldr r0, [r5, #0x24] mov r1, #0x1f bl NewString_ReadMsgData str r0, [r5, #0x3c] add r0, r5, #0 bl ov75_02247450 add r0, r5, #0 bl ov75_02247790 ldr r0, [r5] bl ov75_02246BE8 cmp r0, #0xc beq _02247032 cmp r0, #0x16 beq _0224705E b _02247074 _02247032: bl ov00_021EC5B4 cmp r0, #0 bne _02247058 ldr r0, [r5] ldr r0, [r0, #4] bl sub_0203A05C cmp r0, #1 bne _02247058 mov r0, #0xc str r0, [r5, #8] ldr r0, [r5] ldr r0, [r0, #4] bl sub_02039528 bl sub_0203A880 b _0224707C _02247058: mov r0, #0 str r0, [r5, #8] b _0224707C _0224705E: add r0, r5, #0 mov r1, #0 add r0, #0xe8 str r1, [r0] bl sub_0203A880 ldr r0, [r5] bl ov75_02246BE8 str r0, [r5, #8] b _0224707C _02247074: ldr r0, [r5] bl ov75_02246BE8 str r0, [r5, #8] _0224707C: ldr r0, [r5] mov r1, #0 bl ov75_02246BE0 mov r0, #6 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x74 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl BeginNormalPaletteFade mov r0, #1 add r1, r0, #0 bl GfGfx_EngineATogglePlanes mov r0, #2 mov r1, #1 bl GfGfx_EngineATogglePlanes mov r0, #1 add r1, r0, #0 bl GfGfx_EngineBTogglePlanes mov r0, #2 mov r1, #1 bl GfGfx_EngineBTogglePlanes mov r0, #0x10 mov r1, #1 bl GfGfx_EngineATogglePlanes mov r0, #0x10 mov r1, #1 bl GfGfx_EngineBTogglePlanes ldr r0, _02247110 ; =gSystem + 0x60 mov r1, #1 strb r1, [r0, #9] bl GfGfx_SwapDisplay mov r0, #1 bl TextFlags_SetCanABSpeedUpPrint mov r0, #0 bl sub_02002B50 mov r0, #0 bl sub_02002B8C ldr r0, _02247114 ; =ov75_02247234 add r1, r5, #0 bl Main_SetVBlankIntrCB mov r0, #1 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 _022470F4: .word 0xFFFFE0FF _022470F8: .word 0x04001000 _022470FC: .word 0xFFFF1FFF _02247100: .word 0x0000041C _02247104: .word 0x00000307 _02247108: .word 0x0000030A _0224710C: .word 0x0000010E _02247110: .word gSystem + 0x60 _02247114: .word ov75_02247234 thumb_func_end ov75_02246F0C thumb_func_start ov75_02247118 ov75_02247118: ; 0x02247118 push {r4, r5, r6, lr} add r5, r1, #0 bl OverlayManager_GetData ldr r1, [r5] add r4, r0, #0 cmp r1, #0 beq _02247132 cmp r1, #1 beq _02247140 cmp r1, #2 beq _0224716C b _02247178 _02247132: bl IsPaletteFadeFinished cmp r0, #1 bne _02247178 mov r0, #1 str r0, [r5] b _02247178 _02247140: ldr r6, [r4, #8] ldr r1, _0224717C ; =ov75_02249B30 lsl r2, r6, #2 ldr r1, [r1, r2] blx r1 ldr r1, [r4, #8] cmp r6, r1 beq _02247162 add r1, r4, #0 mov r2, #0 add r1, #0x94 str r2, [r1] add r1, r4, #0 add r1, #0x9c str r2, [r1] add r4, #0x98 str r2, [r4] _02247162: cmp r0, #1 bne _02247178 mov r0, #2 str r0, [r5] b _02247178 _0224716C: bl IsPaletteFadeFinished cmp r0, #1 bne _02247178 mov r0, #1 pop {r4, r5, r6, pc} _02247178: mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 _0224717C: .word ov75_02249B30 thumb_func_end ov75_02247118 thumb_func_start ov75_02247180 ov75_02247180: ; 0x02247180 push {r3, r4, r5, lr} add r5, r0, #0 bl OverlayManager_GetData add r4, r0, #0 add r0, #0xec ldr r0, [r0] cmp r0, #0 beq _022471A4 bl SysTask_Destroy add r0, r4, #0 mov r1, #0 add r0, #0xec str r1, [r0] add r0, r4, #0 add r0, #0xf0 str r1, [r0] _022471A4: ldr r0, [r4, #0x34] bl DestroyMsgData ldr r0, [r4, #0x28] bl DestroyMsgData ldr r0, [r4, #0x30] bl DestroyMsgData ldr r0, [r4, #0x2c] bl DestroyMsgData ldr r0, [r4, #0x24] bl DestroyMsgData ldr r0, [r4, #0x20] bl MessageFormat_Delete ldr r0, [r4, #0x3c] bl String_Delete ldr r0, [r4, #0x40] bl String_Delete ldr r0, [r4, #0x38] bl String_Delete add r0, r4, #0 bl ov75_02247838 ldr r0, [r4, #4] bl FreeToHeap ldr r0, [r4, #4] bl ov75_0224741C mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB bl HBlankInterruptDisable bl GF_DestroyVramTransferManager bl sub_02021238 mov r0, #0 bl TextFlags_SetCanABSpeedUpPrint mov r0, #0 bl sub_02002B50 mov r0, #0 bl sub_02002B8C bl sub_0203A914 add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x74 bl DestroyHeap ldr r0, _02247230 ; =gSystem + 0x60 mov r1, #0 strb r1, [r0, #9] bl GfGfx_SwapDisplay mov r0, #1 pop {r3, r4, r5, pc} .balign 4, 0 _02247230: .word gSystem + 0x60 thumb_func_end ov75_02247180 thumb_func_start ov75_02247234 ov75_02247234: ; 0x02247234 push {r4, lr} add r4, r0, #0 bl GF_RunVramTransferTasks bl OamManager_ApplyAndResetBuffers ldr r0, [r4, #4] bl DoScheduledBgGpuUpdates ldr r3, _02247254 ; =0x027E0000 ldr r1, _02247258 ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r4, pc} .balign 4, 0 _02247254: .word 0x027E0000 _02247258: .word 0x00003FF8 thumb_func_end ov75_02247234 thumb_func_start ov75_0224725C ov75_0224725C: ; 0x0224725C push {r3, r4, r5, lr} sub sp, #0xe0 add r4, r0, #0 bl GfGfx_DisableEngineAPlanes bl GfGfx_DisableEngineBPlanes ldr r5, _0224740C ; =ov75_022499FC add r3, sp, #0x48 mov r2, #5 _02247270: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _02247270 add r0, sp, #0x48 bl GfGfx_SetBanks mov r1, #6 mov r2, #2 mov r0, #0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 bl MIi_CpuClear32 mov r1, #0x62 mov r2, #2 mov r0, #0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 bl MIi_CpuClear32 mov r1, #0x19 mov r2, #1 mov r0, #0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 bl MIi_CpuClear32 mov r1, #0x66 mov r2, #2 mov r0, #0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 bl MIi_CpuClear32 ldr r5, _02247410 ; =ov75_0224997C add r3, sp, #0x38 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl SetBothScreensModesAndDisable ldr r5, _02247414 ; =ov75_02249A5C add r3, sp, #0x70 mov r2, #0xe _022472D0: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _022472D0 mov r1, #0 add r0, r4, #0 add r2, sp, #0x70 add r3, r1, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #0 bl BgClearTilemapBufferAndCommit mov r1, #0 add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 bl BgSetPosTextAndCommit mov r1, #0 add r0, r4, #0 mov r2, #3 add r3, r1, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #1 add r2, sp, #0x8c mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #1 bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #1 add r3, r2, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #1 mov r2, #3 mov r3, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 add r2, sp, #0xa8 mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #2 bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #2 add r3, r2, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #2 mov r2, #3 mov r3, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #3 add r2, sp, #0xc4 mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #3 add r3, r2, #0 bl BgSetPosTextAndCommit mov r1, #3 add r0, r4, #0 add r2, r1, #0 mov r3, #0 bl BgSetPosTextAndCommit ldr r5, _02247418 ; =ov75_02249A24 add r3, sp, #0 mov r2, #7 _0224738E: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0224738E add r0, r4, #0 mov r1, #4 add r2, sp, #0 mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #4 add r3, r2, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #4 mov r2, #3 mov r3, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #5 add r2, sp, #0x1c mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #5 bl BgClearTilemapBufferAndCommit mov r2, #0 add r0, r4, #0 mov r1, #5 add r3, r2, #0 bl BgSetPosTextAndCommit add r0, r4, #0 mov r1, #5 mov r2, #3 mov r3, #0 bl BgSetPosTextAndCommit mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x74 bl BG_ClearCharDataRange mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x74 bl BG_ClearCharDataRange add sp, #0xe0 pop {r3, r4, r5, pc} nop _0224740C: .word ov75_022499FC _02247410: .word ov75_0224997C _02247414: .word ov75_02249A5C _02247418: .word ov75_02249A24 thumb_func_end ov75_0224725C thumb_func_start ov75_0224741C ov75_0224741C: ; 0x0224741C push {r4, lr} add r4, r0, #0 mov r1, #5 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #3 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #2 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 bl FreeBgTilemapBuffer pop {r4, pc} thumb_func_end ov75_0224741C thumb_func_start ov75_02247450 ov75_02247450: ; 0x02247450 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 str r0, [sp, #0x10] ldr r0, [r0, #4] mov r1, #0x74 str r0, [sp, #0x30] mov r0, #0x58 bl NARC_New mov r2, #0 str r2, [sp] mov r1, #0x74 str r1, [sp, #4] mov r1, #3 add r3, r2, #0 str r0, [sp, #0x2c] bl GfGfxLoader_GXLoadPalFromOpenNarc mov r3, #0 str r3, [sp] mov r0, #0x74 str r0, [sp, #4] ldr r0, [sp, #0x2c] mov r1, #3 mov r2, #4 bl GfGfxLoader_GXLoadPalFromOpenNarc mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 mov r2, #0x74 bl LoadFontPal1 mov r1, #0x1a mov r0, #4 lsl r1, r1, #4 mov r2, #0x74 bl LoadFontPal1 ldr r0, [sp, #0x10] ldr r0, [r0] ldr r0, [r0, #8] bl Options_GetFrame lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0x74 str r0, [sp, #4] ldr r0, [sp, #0x30] mov r1, #0 mov r2, #1 mov r3, #0xa bl LoadUserFrameGfx2 mov r1, #0 str r1, [sp] mov r0, #0x74 str r0, [sp, #4] ldr r0, [sp, #0x30] mov r2, #0x1f mov r3, #0xb bl LoadUserFrameGfx1 mov r0, #0 str r0, [sp] mov r0, #0x74 str r0, [sp, #4] ldr r0, [sp, #0x30] mov r1, #2 mov r2, #0x1f mov r3, #0xb bl LoadUserFrameGfx1 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x74 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x30] mov r1, #2 mov r3, #1 bl GfGfxLoader_LoadCharDataFromOpenNarc mov r1, #0 mov r0, #6 str r1, [sp] lsl r0, r0, #8 str r0, [sp, #4] str r1, [sp, #8] mov r0, #0x74 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x30] mov r1, #6 mov r3, #1 bl GfGfxLoader_LoadScrnDataFromOpenNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x74 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x30] mov r1, #0xb mov r3, #5 bl GfGfxLoader_LoadCharDataFromOpenNarc mov r1, #0 mov r0, #6 str r1, [sp] lsl r0, r0, #8 str r0, [sp, #4] str r1, [sp, #8] mov r0, #0x74 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x30] mov r1, #0xc mov r3, #5 bl GfGfxLoader_LoadScrnDataFromOpenNarc mov r0, #0 add r1, r0, #0 bl BG_SetMaskColor mov r0, #4 mov r1, #0 bl BG_SetMaskColor ldr r0, [sp, #0x10] mov r2, #0x33 add r0, #0xec mov r1, #0 lsl r2, r2, #4 bl MI_CpuFill8 ldr r0, [sp, #0x2c] mov r1, #5 add r2, sp, #0x3c mov r3, #0x74 bl GfGfxLoader_GetPlttDataFromOpenNarc add r4, r0, #0 ldr r0, [sp, #0x3c] ldr r1, [sp, #0x10] ldr r0, [r0, #0xc] add r1, #0xf4 mov r2, #0x80 bl MIi_CpuCopy16 ldr r0, [sp, #0x3c] mov r2, #0x5d ldr r1, [sp, #0x10] lsl r2, r2, #2 add r1, r1, r2 ldr r0, [r0, #0xc] mov r2, #0x80 bl MIi_CpuCopy16 add r0, r4, #0 bl FreeToHeap mov r0, #0 mov r1, #0x5d str r0, [sp, #0x24] str r0, [sp, #0x28] ldr r0, [sp, #0x10] lsl r1, r1, #2 add r0, r0, r1 str r0, [sp, #0x18] ldr r0, [sp, #0x10] str r0, [sp, #0x14] add r0, #0xf4 str r0, [sp, #0x14] _022475B6: mov r0, #0 str r0, [sp, #0x20] str r0, [sp, #0x1c] ldr r0, [sp, #0x28] add r0, r0, #1 lsl r1, r0, #5 ldr r0, [sp, #0x10] add r0, r0, r1 str r0, [sp, #0x34] _022475C8: ldr r0, [sp, #0x24] cmp r0, #0x15 blt _022475D2 bl GF_AssertFail _022475D2: ldr r0, [sp, #0x34] mov r7, #1 add r6, r0, #2 ldr r0, [sp, #0x18] add r4, r0, #2 ldr r0, [sp, #0x14] add r5, r0, #2 ldr r0, [sp, #0x20] asr r0, r0, #8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x38] _022475EA: add r0, r6, #0 add r0, #0xf4 ldrh r0, [r0] ldr r3, [sp, #0x38] add r1, r4, #0 str r0, [sp] add r0, r5, #0 mov r2, #1 bl BlendPalette add r7, r7, #1 add r6, r6, #2 add r4, r4, #2 add r5, r5, #2 cmp r7, #0x10 blt _022475EA ldr r0, [sp, #0x18] add r0, #0x20 str r0, [sp, #0x18] ldr r0, [sp, #0x24] add r0, r0, #1 str r0, [sp, #0x24] ldr r0, [sp, #0x1c] cmp r0, #1 beq _02247636 mov r0, #3 ldr r1, [sp, #0x20] lsl r0, r0, #8 add r1, r1, r0 mov r0, #1 lsl r0, r0, #0xc str r1, [sp, #0x20] cmp r1, r0 blt _022475C8 str r0, [sp, #0x20] mov r0, #1 str r0, [sp, #0x1c] b _022475C8 _02247636: ldr r0, [sp, #0x14] add r0, #0x20 str r0, [sp, #0x14] ldr r0, [sp, #0x28] add r0, r0, #1 str r0, [sp, #0x28] cmp r0, #3 blt _022475B6 mov r1, #0x5d ldr r0, [sp, #0x10] lsl r1, r1, #2 add r0, r0, r1 mov r1, #0x2a lsl r1, r1, #4 bl DC_FlushRange ldr r0, [sp, #0x10] mov r1, #1 add r0, #0xf0 str r1, [r0] ldr r1, _022476E0 ; =0x00000418 ldr r0, [sp, #0x10] mov r2, #0 str r2, [r0, r1] ldr r1, [sp, #0x10] ldr r0, _022476E4 ; =ov75_022476E8 add r1, #0xec mov r2, #0x14 bl SysTask_CreateOnVBlankQueue ldr r1, [sp, #0x10] add r1, #0xec str r0, [r1] ldr r0, [sp, #0x2c] str r1, [sp, #0x10] bl NARC_Delete mov r0, #0xc7 mov r1, #0x74 bl NARC_New add r4, r0, #0 mov r0, #8 mov r1, #0 bl GfGfx_EngineATogglePlanes mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x74 str r0, [sp, #0xc] ldr r2, [sp, #0x30] add r0, r4, #0 mov r1, #0xb mov r3, #3 bl GfGfxLoader_LoadCharDataFromOpenNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x74 str r0, [sp, #0xc] ldr r2, [sp, #0x30] add r0, r4, #0 mov r1, #0xa mov r3, #3 bl GfGfxLoader_LoadScrnDataFromOpenNarc mov r0, #0x20 str r0, [sp] mov r3, #0x74 str r3, [sp, #4] add r0, r4, #0 mov r1, #0xc mov r2, #0 add r3, #0xac bl GfGfxLoader_GXLoadPalFromOpenNarc add r0, r4, #0 bl NARC_Delete add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _022476E0: .word 0x00000418 _022476E4: .word ov75_022476E8 thumb_func_end ov75_02247450 thumb_func_start ov75_022476E8 ov75_022476E8: ; 0x022476E8 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #4] cmp r0, #0 beq _02247786 ldr r1, _02247788 ; =0x0000032B mov r0, #1 ldrb r2, [r4, r1] eor r2, r0 strb r2, [r4, r1] ldrb r2, [r4, r1] tst r0, r2 bne _02247786 add r0, r1, #1 ldr r0, [r4, r0] cmp r0, #1 bhi _0224771E sub r0, r1, #3 ldrsh r0, [r4, r0] add r2, r4, #0 add r2, #0x88 lsl r0, r0, #5 add r0, r2, r0 mov r1, #0 mov r2, #0x20 bl GX_LoadBGPltt _0224771E: mov r0, #0xcb lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _0224772C cmp r0, #2 bne _02247742 _0224772C: mov r0, #0xca lsl r0, r0, #2 ldrsh r0, [r4, r0] add r1, r4, #0 add r1, #0x88 lsl r0, r0, #5 add r0, r1, r0 mov r1, #0 mov r2, #0x20 bl GXS_LoadBGPltt _02247742: ldr r0, _0224778C ; =0x0000032A ldrsb r1, [r4, r0] cmp r1, #0 bne _0224776A sub r1, r0, #2 ldrsh r1, [r4, r1] add r2, r1, #1 sub r1, r0, #2 strh r2, [r4, r1] ldrsh r1, [r4, r1] cmp r1, #0x15 blt _02247786 mov r2, #0x13 sub r1, r0, #2 strh r2, [r4, r1] ldrsb r2, [r4, r0] mov r1, #1 eor r1, r2 strb r1, [r4, r0] pop {r4, pc} _0224776A: sub r1, r0, #2 ldrsh r1, [r4, r1] sub r2, r1, #1 sub r1, r0, #2 strh r2, [r4, r1] ldrsh r1, [r4, r1] cmp r1, #0 bge _02247786 mov r2, #1 sub r1, r0, #2 strh r2, [r4, r1] ldrsb r1, [r4, r0] eor r1, r2 strb r1, [r4, r0] _02247786: pop {r4, pc} .balign 4, 0 _02247788: .word 0x0000032B _0224778C: .word 0x0000032A thumb_func_end ov75_022476E8 thumb_func_start ov75_02247790 ov75_02247790: ; 0x02247790 push {r3, r4, lr} sub sp, #0x14 mov r3, #4 add r4, r0, #0 str r3, [sp] mov r0, #0x17 str r0, [sp, #4] mov r0, #0x10 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x94 str r0, [sp, #0x10] add r1, r4, #0 ldr r0, [r4, #4] add r1, #0x68 mov r2, #0 bl AddWindowParameterized add r0, r4, #0 add r0, #0x68 mov r1, #0 bl FillWindowPixelBuffer mov r0, #1 str r0, [sp] mov r0, #0x18 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x81 lsl r0, r0, #2 str r0, [sp, #0x10] add r1, r4, #0 ldr r0, [r4, #4] add r1, #0x58 mov r2, #0 mov r3, #4 bl AddWindowParameterized add r0, r4, #0 add r0, #0x58 mov r1, #0 bl FillWindowPixelBuffer mov r3, #1 ldr r0, _02247834 ; =0x000F0E00 str r3, [sp] str r0, [sp, #4] add r0, r4, #0 ldr r1, [r4, #0x3c] add r0, #0x58 mov r2, #0 bl ov75_02249684 mov r0, #0x13 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x28 str r0, [sp, #0x10] add r1, r4, #0 ldr r0, [r4, #4] add r1, #0x48 mov r2, #0 mov r3, #2 bl AddWindowParameterized add r4, #0x48 add r0, r4, #0 mov r1, #0 bl FillWindowPixelBuffer add sp, #0x14 pop {r3, r4, pc} nop _02247834: .word 0x000F0E00 thumb_func_end ov75_02247790 thumb_func_start ov75_02247838 ov75_02247838: ; 0x02247838 push {r4, lr} add r4, r0, #0 add r0, #0x48 bl RemoveWindow add r0, r4, #0 add r0, #0x58 bl RemoveWindow add r4, #0x68 add r0, r4, #0 bl RemoveWindow pop {r4, pc} thumb_func_end ov75_02247838 thumb_func_start ov75_02247854 ov75_02247854: ; 0x02247854 str r1, [r0, #8] str r2, [r0, #0xc] bx lr .balign 4, 0 thumb_func_end ov75_02247854 thumb_func_start ov75_0224785C ov75_0224785C: ; 0x0224785C push {r4, lr} add r4, r0, #0 add r0, #0x8c ldr r0, [r0] cmp r0, #0 bne _02247876 add r0, r4, #0 add r0, #0x48 mov r1, #1 bl WaitingIcon_New add r4, #0x8c str r0, [r4] _02247876: pop {r4, pc} thumb_func_end ov75_0224785C thumb_func_start ov75_02247878 ov75_02247878: ; 0x02247878 push {r4, lr} add r4, r0, #0 add r0, #0x8c ldr r0, [r0] cmp r0, #0 beq _0224788E bl sub_0200F450 mov r0, #0 add r4, #0x8c str r0, [r4] _0224788E: pop {r4, pc} thumb_func_end ov75_02247878 thumb_func_start ov75_02247890 ov75_02247890: ; 0x02247890 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 mov r0, #0x74 add r4, r1, #0 add r6, r2, #0 bl YesNoPrompt_Create mov r3, #0 mov r1, #0xe str r1, [sp, #0xc] str r5, [sp] str r3, [sp, #4] str r4, [sp, #8] mov r2, #0x19 add r1, sp, #0 strb r2, [r1, #0x10] mov r2, #0xa strb r2, [r1, #0x11] ldrb r4, [r1, #0x12] mov r2, #0xf add r7, r0, #0 bic r4, r2 strb r4, [r1, #0x12] ldrb r2, [r1, #0x12] mov r4, #0xf0 bic r2, r4 lsl r4, r6, #0x18 lsr r4, r4, #0x18 lsl r4, r4, #0x1c lsr r4, r4, #0x18 orr r2, r4 strb r2, [r1, #0x12] strb r3, [r1, #0x13] add r1, sp, #0 bl YesNoPrompt_InitFromTemplate add r0, r7, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end ov75_02247890 thumb_func_start ov75_022478E0 ov75_022478E0: ; 0x022478E0 push {r4, r5, r6, r7, lr} sub sp, #0x34 add r5, r0, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _022478F4 cmp r0, #1 beq _022479C0 b _02247A1C _022478F4: ldr r0, [r5] ldr r0, [r0, #4] bl sub_02031744 cmp r0, #1 bne _0224790A ldr r3, _02247A5C ; =ov75_02249974 ldr r4, _02247A60 ; =ov75_022499BC mov r7, #4 ldr r2, _02247A64 ; =ov75_022499DC b _02247912 _0224790A: ldr r3, _02247A68 ; =ov75_02249978 ldr r4, _02247A6C ; =ov75_0224998C ldr r2, _02247A70 ; =ov75_0224999C mov r7, #2 _02247912: add r6, sp, #0x14 ldmia r2!, {r0, r1} stmia r6!, {r0, r1} ldmia r2!, {r0, r1} stmia r6!, {r0, r1} ldmia r2!, {r0, r1} stmia r6!, {r0, r1} ldmia r2!, {r0, r1} stmia r6!, {r0, r1} ldrb r0, [r3, #1] add r1, r5, #0 add r1, #0x78 str r0, [sp] ldrb r0, [r3, #2] mov r2, #0 str r0, [sp, #4] ldrb r0, [r3, #3] str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x94 str r0, [sp, #0x10] ldrb r3, [r3] ldr r0, [r5, #4] bl AddWindowParameterized add r0, r7, #0 mov r1, #0x74 bl ListMenuItems_New add r1, r5, #0 add r1, #0xa0 mov r6, #0 str r0, [r1] cmp r7, #0 ble _02247972 _0224795A: add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] ldr r1, [r5, #0x34] ldr r2, [r4] ldr r3, [r4, #4] bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, r7 blt _0224795A _02247972: add r0, r5, #0 add r0, #0x78 str r0, [sp, #0x20] add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] mov r1, #0 str r0, [sp, #0x14] add r0, sp, #0x14 add r2, r1, #0 mov r3, #0x74 bl ListMenuInit add r1, r5, #0 add r1, #0xa4 str r0, [r1] add r0, r5, #0 add r0, #0x78 mov r1, #1 mov r2, #0x1f mov r3, #0xb bl DrawFrameAndWindow1 add r0, r5, #0 add r0, #0x48 mov r1, #1 bl ClearFrameAndWindow2 add r0, r5, #0 add r0, #0x78 bl CopyWindowToVram add r0, r5, #0 add r0, #0x94 ldr r0, [r0] add r5, #0x94 add r0, r0, #1 str r0, [r5] b _02247A56 _022479C0: add r0, r5, #0 add r0, #0xa4 ldr r0, [r0] bl ListMenu_ProcessInput add r4, r0, #0 mov r0, #1 mvn r0, r0 cmp r4, r0 beq _022479DC add r0, r0, #1 cmp r4, r0 beq _02247A56 b _02247A02 _022479DC: ldr r0, _02247A74 ; =0x000005DC bl PlaySE ldr r0, [r5] mov r1, #6 mov r2, #0 bl ov75_02246BCC add r0, r5, #0 mov r1, #0x1d add r0, #0x9c str r1, [r0] add r0, r5, #0 add r0, #0x94 ldr r0, [r0] add r5, #0x94 add r0, r0, #1 str r0, [r5] b _02247A56 _02247A02: ldr r0, _02247A74 ; =0x000005DC bl PlaySE add r0, r5, #0 add r0, #0x9c str r4, [r0] add r0, r5, #0 add r0, #0x94 ldr r0, [r0] add r5, #0x94 add r0, r0, #1 str r0, [r5] b _02247A56 _02247A1C: add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] bl ListMenuItems_Delete add r0, r5, #0 add r0, #0xa4 mov r1, #0 ldr r0, [r0] add r2, r1, #0 bl DestroyListMenu add r0, r5, #0 add r0, #0x78 mov r1, #1 bl sub_0200E5D4 add r0, r5, #0 add r0, #0x78 bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 add r0, #0x78 bl RemoveWindow add r0, r5, #0 add r0, #0x9c ldr r0, [r0] str r0, [r5, #8] _02247A56: mov r0, #0 add sp, #0x34 pop {r4, r5, r6, r7, pc} .balign 4, 0 _02247A5C: .word ov75_02249974 _02247A60: .word ov75_022499BC _02247A64: .word ov75_022499DC _02247A68: .word ov75_02249978 _02247A6C: .word ov75_0224998C _02247A70: .word ov75_0224999C _02247A74: .word 0x000005DC thumb_func_end ov75_022478E0 thumb_func_start ov75_02247A78 ov75_02247A78: ; 0x02247A78 push {r4, lr} add r4, r0, #0 ldr r0, [r4] mov r1, #4 mov r2, #3 bl ov75_02246BCC ldr r0, [r4] mov r1, #0x26 bl ov75_02246BE0 mov r0, #0x1d str r0, [r4, #8] mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02247A78 thumb_func_start ov75_02247A98 ov75_02247A98: ; 0x02247A98 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02247AAE add sp, #4 mov r0, #0 pop {r3, r4, pc} _02247AAE: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #3 bhi _02247B8E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02247AC4: ; jump table .short _02247ACC - _02247AC4 - 2 ; case 0 .short _02247AEA - _02247AC4 - 2 ; case 1 .short _02247B0A - _02247AC4 - 2 ; case 2 .short _02247B84 - _02247AC4 - 2 ; case 3 _02247ACC: ldr r0, _02247B94 ; =0x00000F0F mov r2, #0x19 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02247B8E _02247AEA: mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #0 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02247B8E _02247B0A: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _02247B4C add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy ldr r0, _02247B94 ; =0x00000F0F mov r2, #0x1a str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC ldr r0, [r4] mov r1, #0 ldr r0, [r0, #4] mov r2, #1 bl sub_02031780 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02247B8E _02247B4C: cmp r0, #2 bne _02247B8E add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy ldr r0, _02247B94 ; =0x00000F0F mov r2, #0x1b str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC ldr r0, [r4] mov r1, #0 ldr r0, [r0, #4] add r2, r1, #0 bl sub_02031780 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02247B8E _02247B84: add r0, r4, #0 mov r1, #0x19 mov r2, #0 bl ov75_02247854 _02247B8E: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _02247B94: .word 0x00000F0F thumb_func_end ov75_02247A98 thumb_func_start ov75_02247B98 ov75_02247B98: ; 0x02247B98 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02247BAE add sp, #4 mov r0, #0 pop {r3, r4, pc} _02247BAE: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #3 bhi _02247C66 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02247BC4: ; jump table .short _02247BCC - _02247BC4 - 2 ; case 0 .short _02247BEA - _02247BC4 - 2 ; case 1 .short _02247C0A - _02247BC4 - 2 ; case 2 .short _02247C5C - _02247BC4 - 2 ; case 3 _02247BCC: ldr r0, _02247C6C ; =0x00000F0F mov r2, #0x1c str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02247C66 _02247BEA: mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #1 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02247C66 _02247C0A: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _02247C48 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy ldr r0, _02247C6C ; =0x00000F0F mov r2, #0x1d str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC ldr r0, [r4] ldr r0, [r0, #4] bl sub_02031734 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02247C66 _02247C48: cmp r0, #2 bne _02247C66 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy mov r0, #0 str r0, [r4, #8] b _02247C66 _02247C5C: add r0, r4, #0 mov r1, #0x19 mov r2, #0 bl ov75_02247854 _02247C66: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _02247C6C: .word 0x00000F0F thumb_func_end ov75_02247B98 thumb_func_start ov75_02247C70 ov75_02247C70: ; 0x02247C70 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 add r0, #0xd4 mov r1, #0xf bl FillWindowPixelBuffer ldr r0, [r4, #0x34] mov r1, #0x2a bl NewString_ReadMsgData add r5, r0, #0 ldr r3, _02247D00 ; =_02249B20 mov r1, #0 ldr r0, [r3, #4] add r2, r5, #0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] str r1, [sp, #8] ldr r3, [r3] add r0, r4, #0 add r0, #0xd4 add r3, #0xc bl AddTextPrinterParameterized add r0, r5, #0 bl String_Delete ldr r0, [r4, #0x34] mov r1, #0x2b bl NewString_ReadMsgData add r5, r0, #0 ldr r3, _02247D00 ; =_02249B20 mov r1, #0 ldr r0, [r3, #0xc] add r2, r5, #0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] str r1, [sp, #8] ldr r3, [r3, #8] add r0, r4, #0 add r0, #0xd4 add r3, #0xc bl AddTextPrinterParameterized add r0, r5, #0 bl String_Delete add r0, r4, #0 add r0, #0xb0 ldr r0, [r0] add r1, r4, #0 lsl r3, r0, #3 add r0, r4, #0 ldr r2, _02247D04 ; =_02249B20 add r0, #0xe4 ldr r5, _02247D08 ; =ov75_02249B24 ldr r2, [r2, r3] ldr r0, [r0] ldr r3, [r5, r3] add r1, #0xd4 bl ListMenuUpdateCursorObj add r4, #0xd4 add r0, r4, #0 bl CopyWindowToVram add sp, #0xc pop {r4, r5, pc} .balign 4, 0 _02247D00: .word _02249B20 _02247D04: .word _02249B20 _02247D08: .word ov75_02249B24 thumb_func_end ov75_02247C70 thumb_func_start ov75_02247D0C ov75_02247D0C: ; 0x02247D0C push {r4, lr} add r4, r0, #0 add r0, #0xd4 mov r1, #0xf bl FillWindowPixelBuffer add r4, #0xd4 add r0, r4, #0 bl CopyWindowToVram pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02247D0C thumb_func_start ov75_02247D24 ov75_02247D24: ; 0x02247D24 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r0, #0 add r0, #0xbc ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xbc str r1, [r0] add r0, r4, #0 add r0, #0xbc ldr r0, [r0] cmp r0, #8 beq _02247D42 b _02248030 _02247D42: add r0, r4, #0 add r0, #0xc0 ldr r0, [r0] mov r1, #1 add r2, r0, #0 add r0, r4, #0 eor r2, r1 add r0, #0xc0 str r2, [r0] add r0, r4, #0 mov r2, #0 add r0, #0xbc str r2, [r0] add r0, r4, #0 add r0, #0xac ldr r0, [r0] add r3, r0, #6 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r3, r0 bne _02247D70 b _02247EAE _02247D70: mov r0, #0x11 str r0, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, r2, #1 lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0xe bl FillBgTilemapRect mov r0, #0x11 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, r2, #2 lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0xf bl FillBgTilemapRect mov r0, #0x11 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, r2, #3 lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0x10 bl FillBgTilemapRect mov r3, #0x11 add r2, r4, #0 str r3, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 str r0, [sp, #0xc] add r2, #0xc0 ldr r5, [r2] mov r2, #0x14 mul r2, r5 add r2, r2, #4 lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 bl FillBgTilemapRect mov r0, #0x12 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0xb lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0xe bl FillBgTilemapRect mov r0, #0x12 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0xc lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0xf bl FillBgTilemapRect mov r0, #0x12 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0xd lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0x10 bl FillBgTilemapRect mov r0, #0x12 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0xe lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0x11 bl FillBgTilemapRect b _02247EC8 _02247EAE: mov r0, #0x11 str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #9 str r0, [sp, #0xc] ldr r0, [r4, #4] mov r1, #3 mov r3, #0xe bl FillBgTilemapRect _02247EC8: add r0, r4, #0 add r0, #0xac ldr r0, [r0] cmp r0, #0 bne _02247ED4 b _0224800E _02247ED4: mov r1, #3 str r1, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, r2, #5 lsl r2, r2, #0x10 ldr r0, [r4, #4] lsr r2, r2, #0x10 mov r3, #0xe bl FillBgTilemapRect mov r1, #3 add r2, r4, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, r2, #6 lsl r2, r2, #0x10 ldr r0, [r4, #4] lsr r2, r2, #0x10 mov r3, #0xf bl FillBgTilemapRect mov r1, #3 add r2, r4, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, r2, #7 lsl r2, r2, #0x10 ldr r0, [r4, #4] lsr r2, r2, #0x10 mov r3, #0x10 bl FillBgTilemapRect mov r1, #3 add r2, r4, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #8 lsl r2, r2, #0x10 ldr r0, [r4, #4] lsr r2, r2, #0x10 mov r3, #0x11 bl FillBgTilemapRect mov r0, #4 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0xf lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0xe bl FillBgTilemapRect mov r0, #4 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0x10 lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0xf bl FillBgTilemapRect mov r0, #4 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0x11 lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0x10 bl FillBgTilemapRect mov r0, #4 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #9 add r2, r4, #0 str r0, [sp, #0xc] add r2, #0xc0 ldr r3, [r2] mov r2, #0x14 mul r2, r3 add r2, #0x12 lsl r2, r2, #0x10 ldr r0, [r4, #4] mov r1, #3 lsr r2, r2, #0x10 mov r3, #0x11 bl FillBgTilemapRect b _02248028 _0224800E: mov r1, #3 str r1, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #9 str r0, [sp, #0xc] ldr r0, [r4, #4] mov r2, #0 mov r3, #0xe bl FillBgTilemapRect _02248028: ldr r0, [r4, #4] mov r1, #3 bl ScheduleBgTilemapBufferTransfer _02248030: add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end ov75_02247D24 thumb_func_start ov75_02248034 ov75_02248034: ; 0x02248034 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r7, r0, #0 add r0, #0xc4 mov r1, #0xf bl FillWindowPixelBuffer ldr r0, [r7, #0x34] mov r1, #0x2c bl NewString_ReadMsgData str r0, [sp, #0xc] bl String_GetLength mov r1, #0x74 bl String_New add r6, r0, #0 add r0, r7, #0 add r0, #0xac ldr r4, [r0] add r0, r4, #6 cmp r4, r0 bge _0224809E add r0, r7, #0 str r0, [sp, #0x10] add r0, #0xc4 mov r5, #0 str r0, [sp, #0x10] _0224806E: ldr r1, [sp, #0xc] add r0, r6, #0 add r2, r4, #0 bl String_GetLineN str r5, [sp] mov r0, #0xff str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldr r0, [sp, #0x10] mov r1, #0 add r2, r6, #0 mov r3, #4 bl AddTextPrinterParameterized add r0, r7, #0 add r0, #0xac ldr r0, [r0] add r4, r4, #1 add r0, r0, #6 add r5, #0x10 cmp r4, r0 blt _0224806E _0224809E: ldr r0, [sp, #0xc] bl String_Delete add r0, r6, #0 bl String_Delete add r7, #0xc4 add r0, r7, #0 bl CopyWindowToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_end ov75_02248034 thumb_func_start ov75_022480B8 ov75_022480B8: ; 0x022480B8 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 add r1, r5, #0 add r1, #0xa8 ldr r1, [r1] cmp r1, #0 beq _022480D6 cmp r1, #1 bne _022480CE b _02248220 _022480CE: cmp r1, #2 bne _022480D4 b _022482CE _022480D4: b _0224837C _022480D6: ldr r0, [r5, #0x34] mov r1, #0x2c bl NewString_ReadMsgData str r0, [sp, #0x14] bl String_CountLines add r1, r5, #0 mov r2, #0 add r1, #0xac str r2, [r1] add r1, r5, #0 add r1, #0xb0 str r2, [r1] add r1, r5, #0 add r1, #0xb8 str r2, [r1] add r1, r5, #0 add r1, #0xb4 str r0, [r1] mov r0, #5 str r0, [sp] mov r0, #0x1e str r0, [sp, #4] mov r0, #0xc str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x94 str r0, [sp, #0x10] add r1, r5, #0 ldr r0, [r5, #4] add r1, #0xc4 mov r2, #2 mov r3, #1 bl AddWindowParameterized mov r0, #0x13 str r0, [sp] mov r0, #0x1e str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x7f lsl r0, r0, #2 str r0, [sp, #0x10] add r1, r5, #0 ldr r0, [r5, #4] add r1, #0xd4 mov r2, #2 mov r3, #1 bl AddWindowParameterized add r0, r5, #0 add r0, #0xc4 mov r1, #0xf bl FillWindowPixelBuffer ldr r0, [sp, #0x14] bl String_GetLength mov r1, #0x74 bl String_New add r7, r0, #0 add r0, r5, #0 mov r6, #0 str r0, [sp, #0x18] add r0, #0xc4 add r4, r6, #0 str r0, [sp, #0x18] _02248168: ldr r1, [sp, #0x14] add r0, r7, #0 add r2, r6, #0 bl String_GetLineN str r4, [sp] mov r0, #0xff str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldr r0, [sp, #0x18] mov r1, #0 add r2, r7, #0 mov r3, #4 bl AddTextPrinterParameterized add r6, r6, #1 add r4, #0x10 cmp r6, #6 blt _02248168 ldr r0, [sp, #0x14] bl String_Delete add r0, r7, #0 bl String_Delete add r0, r5, #0 add r0, #0xc4 mov r1, #1 mov r2, #0x1f mov r3, #0xb bl DrawFrameAndWindow1 add r0, r5, #0 add r0, #0xc4 bl CopyWindowToVram add r0, r5, #0 add r0, #0xd4 mov r1, #0xf bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0xd4 mov r1, #1 mov r2, #0x1f mov r3, #0xb bl DrawFrameAndWindow1 add r0, r5, #0 add r0, #0xd4 bl CopyWindowToVram mov r0, #0x74 bl ListMenuCursorNew add r1, r5, #0 add r1, #0xe4 str r0, [r1] add r0, r5, #0 add r0, #0x48 mov r1, #0xf bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x48 mov r1, #1 bl ClearFrameAndWindow2 add r0, r5, #0 add r0, #0x48 bl ClearWindowTilemapAndCopyToVram mov r0, #8 mov r1, #1 bl GfGfx_EngineATogglePlanes add r0, r5, #0 mov r1, #0 add r0, #0xbc str r1, [r0] add r0, r5, #0 add r0, #0xc0 str r1, [r0] add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] add r1, r0, #1 add r0, r5, #0 add r0, #0xa8 str r1, [r0] b _022483D8 _02248220: ldr r1, _022483E4 ; =gSystem add r0, #0xac ldr r2, [r1, #0x4c] ldr r4, [r0] mov r0, #0x40 tst r0, r2 beq _02248248 cmp r4, #0 beq _022482BA add r0, r5, #0 add r0, #0xac ldr r0, [r0] sub r1, r0, #1 add r0, r5, #0 add r0, #0xac str r1, [r0] ldr r0, _022483E8 ; =0x000005DC bl PlaySE b _022482BA _02248248: mov r0, #0x80 tst r0, r2 beq _0224829C add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] add r1, r4, #6 cmp r1, r0 bge _0224826E add r0, r5, #0 add r0, #0xac ldr r0, [r0] add r1, r0, #1 add r0, r5, #0 add r0, #0xac str r1, [r0] ldr r0, _022483E8 ; =0x000005DC bl PlaySE _0224826E: add r0, r5, #0 add r0, #0xac ldr r0, [r0] add r1, r0, #6 add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] cmp r1, r0 bne _022482BA add r0, r5, #0 bl ov75_02247C70 add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] add r1, r0, #1 add r0, r5, #0 add r0, #0xa8 str r1, [r0] ldr r0, _022483E8 ; =0x000005DC bl PlaySE b _022482BA _0224829C: ldr r1, [r1, #0x48] mov r0, #2 tst r0, r1 beq _022482BA ldr r0, _022483E8 ; =0x000005DC bl PlaySE add r0, r5, #0 mov r1, #2 add r0, #0xb8 str r1, [r0] add r0, r5, #0 mov r1, #0xff add r0, #0xa8 str r1, [r0] _022482BA: add r0, r5, #0 add r0, #0xac ldr r0, [r0] cmp r4, r0 bne _022482C6 b _022483D8 _022482C6: add r0, r5, #0 bl ov75_02248034 b _022483D8 _022482CE: ldr r1, _022483E4 ; =gSystem mov r2, #0x10 ldr r1, [r1, #0x48] tst r2, r1 bne _022482DE mov r2, #0x20 tst r2, r1 beq _022482FC _022482DE: add r0, r5, #0 add r0, #0xb0 ldr r1, [r0] mov r0, #1 eor r1, r0 add r0, r5, #0 add r0, #0xb0 str r1, [r0] ldr r0, _022483E8 ; =0x000005DC bl PlaySE add r0, r5, #0 bl ov75_02247C70 b _022483D8 _022482FC: mov r2, #1 tst r2, r1 beq _02248326 add r0, #0xb0 ldr r1, [r0] mov r0, #2 sub r1, r0, r1 add r0, r5, #0 add r0, #0xb8 str r1, [r0] ldr r0, _022483E8 ; =0x000005DC bl PlaySE add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] add r1, r0, #1 add r0, r5, #0 add r0, #0xa8 str r1, [r0] b _022483D8 _02248326: mov r2, #2 add r3, r1, #0 tst r3, r2 beq _02248348 add r0, #0xb8 str r2, [r0] ldr r0, _022483E8 ; =0x000005DC bl PlaySE add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] add r1, r0, #1 add r0, r5, #0 add r0, #0xa8 str r1, [r0] b _022483D8 _02248348: mov r2, #0x40 tst r1, r2 beq _022483D8 bl ov75_02247D0C ldr r0, _022483E8 ; =0x000005DC bl PlaySE add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] sub r1, r0, #1 add r0, r5, #0 add r0, #0xa8 str r1, [r0] add r0, r5, #0 add r0, #0xac ldr r0, [r0] sub r1, r0, #1 add r0, r5, #0 add r0, #0xac str r1, [r0] add r0, r5, #0 bl ov75_02248034 b _022483D8 _0224837C: add r0, #0xc4 mov r1, #0 bl sub_0200E5D4 add r0, r5, #0 add r0, #0xc4 bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 add r0, #0xc4 bl RemoveWindow add r0, r5, #0 add r0, #0xd4 mov r1, #0 bl sub_0200E5D4 add r0, r5, #0 add r0, #0xd4 bl ClearWindowTilemapAndCopyToVram add r0, r5, #0 add r0, #0xd4 bl RemoveWindow add r0, r5, #0 add r0, #0xe4 ldr r0, [r0] bl DestroyListMenuCursorObj ldr r0, [r5, #4] mov r1, #3 bl BgClearTilemapBufferAndCommit mov r0, #8 mov r1, #0 bl GfGfx_EngineATogglePlanes add r0, r5, #0 mov r1, #0 add r0, #0xa8 str r1, [r0] add r5, #0xb8 add sp, #0x1c ldr r0, [r5] pop {r4, r5, r6, r7, pc} _022483D8: add r0, r5, #0 bl ov75_02247D24 mov r0, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} .balign 4, 0 _022483E4: .word gSystem _022483E8: .word 0x000005DC thumb_func_end ov75_022480B8 thumb_func_start ov75_022483EC ov75_022483EC: ; 0x022483EC push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02248402 add sp, #4 mov r0, #0 pop {r3, r4, pc} _02248402: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #4 bhi _022484DC add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248418: ; jump table .short _02248422 - _02248418 - 2 ; case 0 .short _0224842A - _02248418 - 2 ; case 1 .short _02248438 - _02248418 - 2 ; case 2 .short _02248484 - _02248418 - 2 ; case 3 .short _022484BC - _02248418 - 2 ; case 4 _02248422: mov r0, #3 add r4, #0x94 str r0, [r4] b _02248522 _0224842A: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248522 _02248438: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _02248468 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy ldr r0, _02248528 ; =0x00000F0F mov r2, #9 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC mov r0, #4 add r4, #0x94 str r0, [r4] b _02248522 _02248468: cmp r0, #2 bne _02248522 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248522 _02248484: add r0, r4, #0 bl ov75_022480B8 cmp r0, #1 bne _022484AC ldr r0, _02248528 ; =0x00000F0F mov r2, #9 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248522 _022484AC: cmp r0, #2 bne _02248522 add r0, r4, #0 mov r1, #0x22 mov r2, #0 bl ov75_02247854 b _02248522 _022484BC: mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #0 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248522 _022484DC: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _022484FA add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy mov r0, #5 str r0, [r4, #8] b _02248522 _022484FA: cmp r0, #2 bne _02248522 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy ldr r0, _02248528 ; =0x00000F0F mov r2, #0xa str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 mov r1, #0x22 mov r2, #0 bl ov75_02247854 _02248522: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _02248528: .word 0x00000F0F thumb_func_end ov75_022483EC thumb_func_start ov75_0224852C ov75_0224852C: ; 0x0224852C push {r4, lr} add r4, r0, #0 ldr r0, [r4] mov r1, #1 mov r2, #0 bl ov75_02246BCC ldr r0, [r4] mov r1, #6 bl ov75_02246BE0 mov r0, #0x1d str r0, [r4, #8] mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_0224852C thumb_func_start ov75_0224854C ov75_0224854C: ; 0x0224854C push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl ov75_02246CF8 cmp r0, #1 beq _02248564 cmp r0, #2 beq _0224856A cmp r0, #3 beq _0224856A b _02248572 _02248564: mov r0, #0 str r0, [r4, #8] pop {r4, pc} _0224856A: mov r0, #0x25 str r0, [r4, #8] mov r0, #0 pop {r4, pc} _02248572: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 bne _02248580 mov r0, #7 str r0, [r4, #8] _02248580: mov r0, #0 pop {r4, pc} thumb_func_end ov75_0224854C thumb_func_start ov75_02248584 ov75_02248584: ; 0x02248584 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _0224859A add sp, #4 mov r0, #0 pop {r3, r4, pc} _0224859A: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #4 bhi _02248678 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _022485B0: ; jump table .short _022485BA - _022485B0 - 2 ; case 0 .short _022485C8 - _022485B0 - 2 ; case 1 .short _022485E6 - _022485B0 - 2 ; case 2 .short _02248606 - _022485B0 - 2 ; case 3 .short _02248646 - _022485B0 - 2 ; case 4 _022485BA: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248678 _022485C8: ldr r0, _02248680 ; =0x00000F0F mov r2, #0xb str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248678 _022485E6: mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #0 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248678 _02248606: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _0224862C add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248678 _0224862C: cmp r0, #2 bne _02248678 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy add r0, r4, #0 mov r1, #0x22 mov r2, #0 bl ov75_02247854 b _02248678 _02248646: ldr r0, [r4] ldr r0, [r0, #4] bl sub_0203A05C cmp r0, #0 bne _0224866E ldr r0, [r4] mov r1, #5 mov r2, #0 bl ov75_02246BCC ldr r0, [r4] mov r1, #0xc bl ov75_02246BE0 mov r0, #0x1d str r0, [r4, #8] add sp, #4 mov r0, #0 pop {r3, r4, pc} _0224866E: add r0, r4, #0 mov r1, #0x22 mov r2, #0xc bl ov75_02247854 _02248678: mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _02248680: .word 0x00000F0F thumb_func_end ov75_02248584 thumb_func_start ov75_02248684 ov75_02248684: ; 0x02248684 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _022486C2 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy ldr r0, _022486E8 ; =0x00000F0F mov r2, #1 str r0, [sp] ldr r1, [r4, #0x2c] add r0, r4, #0 add r3, r2, #0 bl ov75_022494CC add r0, r4, #0 mov r1, #0x22 mov r2, #0xc bl ov75_02247854 add r0, r4, #0 bl ov75_0224785C b _022486E2 _022486C2: cmp r0, #2 bne _022486E2 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy bl sub_0203957C ldr r0, [r4] mov r1, #6 mov r2, #0 bl ov75_02246BCC mov r0, #0x1d str r0, [r4, #8] _022486E2: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _022486E8: .word 0x00000F0F thumb_func_end ov75_02248684 thumb_func_start ov75_022486EC ov75_022486EC: ; 0x022486EC push {r3, r4, lr} sub sp, #4 ldr r1, _02248710 ; =0x00000F0F add r4, r0, #0 str r1, [sp] ldr r1, [r4, #0x30] mov r2, #0x1a mov r3, #1 bl ov75_022494CC add r0, r4, #0 mov r1, #0x22 mov r2, #0xa bl ov75_02247854 mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _02248710: .word 0x00000F0F thumb_func_end ov75_022486EC thumb_func_start ov75_02248714 ov75_02248714: ; 0x02248714 push {r4, lr} add r4, r0, #0 bl sub_0203957C bl ov00_021EC8D8 bl sub_0203A914 mov r0, #4 bl Sys_ClearSleepDisableFlag mov r0, #0x46 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #1 bne _02248744 bl ov70_02237F2C mov r0, #0x46 ldr r1, [r4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] _02248744: mov r0, #0xb str r0, [r4, #8] mov r0, #0 pop {r4, pc} thumb_func_end ov75_02248714 thumb_func_start ov75_0224874C ov75_0224874C: ; 0x0224874C push {r3, r4, lr} sub sp, #4 ldr r1, _02248770 ; =0x00000F0F add r4, r0, #0 str r1, [sp] ldr r1, [r4, #0x30] mov r2, #0x1b mov r3, #1 bl ov75_022494CC add r0, r4, #0 mov r1, #0x23 mov r2, #0x1d bl ov75_02247854 mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _02248770: .word 0x00000F0F thumb_func_end ov75_0224874C thumb_func_start ov75_02248774 ov75_02248774: ; 0x02248774 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _0224878C cmp r0, #1 beq _022487BC cmp r0, #2 beq _022487D4 b _022487F6 _0224878C: ldr r0, [r4] ldr r0, [r0, #4] bl sub_02039528 bl sub_0203A880 ldr r0, _022487FC ; =0x00000F0F mov r2, #1 str r0, [sp] ldr r1, [r4, #0x2c] add r0, r4, #0 add r3, r2, #0 bl ov75_022494CC add r0, r4, #0 bl ov75_0224785C add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022487F6 _022487BC: ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _022487F6 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022487F6 _022487D4: mov r0, #4 bl Sys_SetSleepDisableFlag ldr r0, [r4] mov r1, #2 add r0, #0x14 mov r2, #1 mov r3, #0x14 bl ov00_021EC3F0 mov r0, #2 bl ov00_021EC454 bl ov00_021EC4A4 mov r0, #0xd str r0, [r4, #8] _022487F6: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _022487FC: .word 0x00000F0F thumb_func_end ov75_02248774 thumb_func_start ov75_02248800 ov75_02248800: ; 0x02248800 push {r4, lr} sub sp, #0x48 add r4, r0, #0 bl ov00_021EC60C bl ov00_021EC5B4 cmp r0, #0 beq _022488A6 bl ov00_021EC724 cmp r0, #8 bhi _02248886 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248826: ; jump table .short _02248886 - _02248826 - 2 ; case 0 .short _02248886 - _02248826 - 2 ; case 1 .short _02248886 - _02248826 - 2 ; case 2 .short _02248886 - _02248826 - 2 ; case 3 .short _0224889C - _02248826 - 2 ; case 4 .short _02248886 - _02248826 - 2 ; case 5 .short _02248886 - _02248826 - 2 ; case 6 .short _02248838 - _02248826 - 2 ; case 7 .short _02248886 - _02248826 - 2 ; case 8 _02248838: add r0, sp, #8 add r1, sp, #4 bl ov00_021EC11C str r0, [r4, #0x14] ldr r0, [sp, #8] str r0, [r4, #0x18] ldr r0, [sp, #4] str r0, [r4, #0x1c] bl ov00_021EC210 bl ov00_021EC8D8 bl sub_0203A914 bl sub_0203957C mov r0, #4 bl Sys_ClearSleepDisableFlag mov r0, #0x46 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #1 bne _0224887A bl ov70_02237F2C mov r0, #0x46 ldr r1, [r4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] _0224887A: add r0, r4, #0 bl ov75_02247878 mov r0, #0x1b str r0, [r4, #8] b _022488A6 _02248886: add r0, sp, #0 bl ov00_021EC0FC add r0, r4, #0 bl ov75_02247878 mov r0, #0x20 str r0, [r4, #8] sub r0, #0x22 str r0, [r4, #0x10] b _022488A6 _0224889C: add r0, sp, #0xc bl ov00_021EC9E0 mov r0, #0xe str r0, [r4, #8] _022488A6: mov r0, #0 add sp, #0x48 pop {r4, pc} thumb_func_end ov75_02248800 thumb_func_start ov75_022488AC ov75_022488AC: ; 0x022488AC push {r4, lr} add r4, r0, #0 bl ov00_021ECD04 mov r0, #0xf str r0, [r4, #8] mov r0, #0 pop {r4, pc} thumb_func_end ov75_022488AC thumb_func_start ov75_022488BC ov75_022488BC: ; 0x022488BC push {r4, lr} sub sp, #8 add r4, r0, #0 bl ov00_021ECDC8 cmp r0, #5 bhi _02248984 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _022488D6: ; jump table .short _022488E8 - _022488D6 - 2 ; case 0 .short _02248984 - _022488D6 - 2 ; case 1 .short _02248984 - _022488D6 - 2 ; case 2 .short _022488E2 - _022488D6 - 2 ; case 3 .short _022488E8 - _022488D6 - 2 ; case 4 .short _022488E8 - _022488D6 - 2 ; case 5 _022488E2: mov r0, #0x10 str r0, [r4, #8] b _02248984 _022488E8: add r0, r4, #0 bl ov75_02247878 add r0, sp, #4 add r1, sp, #0 bl ov00_021EC11C str r0, [r4, #0x14] ldr r0, [sp, #4] str r0, [r4, #0x18] bl ov00_021EC210 bl ov00_021EC8D8 bl sub_0203A914 bl sub_0203957C mov r0, #4 bl Sys_ClearSleepDisableFlag mov r0, #0x46 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #1 bne _0224892C bl ov70_02237F2C mov r0, #0x46 ldr r1, [r4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] _0224892C: mov r0, #0x1b str r0, [r4, #8] ldr r1, [sp] cmp r1, #7 bhi _02248972 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02248942: ; jump table .short _02248972 - _02248942 - 2 ; case 0 .short _02248952 - _02248942 - 2 ; case 1 .short _02248952 - _02248942 - 2 ; case 2 .short _02248964 - _02248942 - 2 ; case 3 .short _02248956 - _02248942 - 2 ; case 4 .short _0224896E - _02248942 - 2 ; case 5 .short _02248960 - _02248942 - 2 ; case 6 .short _0224896E - _02248942 - 2 ; case 7 _02248952: str r0, [r4, #8] b _02248972 _02248956: bl ov00_021FA0D8 mov r0, #0x1b str r0, [r4, #8] b _02248972 _02248960: str r0, [r4, #8] b _02248972 _02248964: bl ov00_021ED9B4 mov r0, #0x1b str r0, [r4, #8] b _02248972 _0224896E: bl sub_020399EC _02248972: ldr r1, [sp, #4] ldr r0, _0224898C ; =0xFFFFB1E0 cmp r1, r0 bge _02248984 ldr r0, _02248990 ; =0xFFFF8AD1 cmp r1, r0 blt _02248984 mov r0, #0x1b str r0, [r4, #8] _02248984: mov r0, #0 add sp, #8 pop {r4, pc} nop _0224898C: .word 0xFFFFB1E0 _02248990: .word 0xFFFF8AD1 thumb_func_end ov75_022488BC thumb_func_start ov75_02248994 ov75_02248994: ; 0x02248994 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] ldr r0, [r0, #4] bl sub_0202C6F4 add r6, r0, #0 ldr r0, [r5] ldr r0, [r0, #4] bl Save_SysInfo_Get add r4, r0, #0 add r0, r6, #0 bl sub_0202C08C add r7, r0, #0 add r0, r4, #0 bl Save_SysInfo_GetField4C cmp r0, #0 bne _022489CC add r0, r6, #0 bl sub_0203A040 add r1, r0, #0 add r0, r4, #0 bl Save_SysInfo_SetField4C _022489CC: add r0, r4, #0 bl Save_SysInfo_GetField4C add r4, r0, #0 add r0, r7, #0 bl DWC_CreateFriendKey add r3, r0, #0 add r2, r1, #0 add r0, r4, #0 add r1, r3, #0 bl ov70_022378C0 mov r0, #0x46 ldr r1, [r5] mov r2, #1 lsl r0, r0, #2 str r2, [r1, r0] mov r0, #0x11 str r0, [r5, #8] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end ov75_02248994 thumb_func_start ov75_022489F8 ov75_022489F8: ; 0x022489F8 push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl ov75_02246CA0 ldr r0, [r4] bl ov75_02246CB8 ldr r1, [r4] add r0, r1, #0 add r0, #0x98 add r1, #0xfc bl ov70_02238304 mov r0, #0x12 str r0, [r4, #8] mov r0, #0 add r4, #0xe8 str r0, [r4] pop {r4, pc} thumb_func_end ov75_022489F8 thumb_func_start ov75_02248A20 ov75_02248A20: ; 0x02248A20 push {r3, r4, r5, lr} add r4, r0, #0 bl ov70_02237F38 cmp r0, #0 bne _02248A2E b _02248B56 _02248A2E: bl ov70_02237F58 add r5, r0, #0 add r0, r4, #0 mov r1, #0 add r0, #0xe8 str r1, [r0] add r0, r5, #0 add r0, #0xf cmp r0, #0x11 bls _02248A46 b _02248B4A _02248A46: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248A52: ; jump table .short _02248B2E - _02248A52 - 2 ; case 0 .short _02248B3C - _02248A52 - 2 ; case 1 .short _02248B4A - _02248A52 - 2 ; case 2 .short _02248B2E - _02248A52 - 2 ; case 3 .short _02248B4A - _02248A52 - 2 ; case 4 .short _02248B4A - _02248A52 - 2 ; case 5 .short _02248B4A - _02248A52 - 2 ; case 6 .short _02248B4A - _02248A52 - 2 ; case 7 .short _02248B4A - _02248A52 - 2 ; case 8 .short _02248B4A - _02248A52 - 2 ; case 9 .short _02248B4A - _02248A52 - 2 ; case 10 .short _02248B4A - _02248A52 - 2 ; case 11 .short _02248B4A - _02248A52 - 2 ; case 12 .short _02248B3C - _02248A52 - 2 ; case 13 .short _02248B20 - _02248A52 - 2 ; case 14 .short _02248A76 - _02248A52 - 2 ; case 15 .short _02248B12 - _02248A52 - 2 ; case 16 .short _02248B20 - _02248A52 - 2 ; case 17 _02248A76: ldr r1, [r4] add r0, r1, #0 add r0, #0xfc ldr r0, [r0] cmp r0, #0 beq _02248A8C cmp r0, #1 beq _02248AE6 cmp r0, #2 beq _02248AF6 b _02248B06 _02248A8C: mov r0, #1 lsl r0, r0, #8 ldr r0, [r1, r0] cmp r0, #3 bhi _02248AE0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248AA2: ; jump table .short _02248AC0 - _02248AA2 - 2 ; case 0 .short _02248AAA - _02248AA2 - 2 ; case 1 .short _02248AB0 - _02248AA2 - 2 ; case 2 .short _02248AD0 - _02248AA2 - 2 ; case 3 _02248AAA: mov r0, #0x13 str r0, [r4, #8] b _02248B74 _02248AB0: add r0, r4, #0 bl ov75_02247878 ldr r0, _02248B78 ; =0xFFFFEC77 str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248AC0: add r0, r4, #0 bl ov75_02247878 ldr r0, _02248B7C ; =0xFFFFEC76 str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248AD0: add r0, r4, #0 bl ov75_02247878 ldr r0, _02248B80 ; =0xFFFFEC75 str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248AE0: bl sub_020399EC b _02248B74 _02248AE6: add r0, r4, #0 bl ov75_02247878 ldr r0, _02248B84 ; =0xFFFFEC74 str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248AF6: add r0, r4, #0 bl ov75_02247878 ldr r0, _02248B88 ; =0xFFFFEC73 str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248B06: add r0, r4, #0 bl ov75_02247878 bl sub_020399EC b _02248B74 _02248B12: add r0, r4, #0 bl ov75_02247878 str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248B20: add r0, r4, #0 bl ov75_02247878 str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248B2E: add r0, r4, #0 bl ov75_02247878 str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248B3C: add r0, r4, #0 bl ov75_02247878 str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248B74 _02248B4A: add r0, r4, #0 bl ov75_02247878 bl sub_020399EC b _02248B74 _02248B56: add r0, r4, #0 add r0, #0xe8 ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xe8 str r1, [r0] add r4, #0xe8 mov r0, #0xe1 ldr r1, [r4] lsl r0, r0, #4 cmp r1, r0 bne _02248B74 bl sub_020399EC _02248B74: mov r0, #0 pop {r3, r4, r5, pc} .balign 4, 0 _02248B78: .word 0xFFFFEC77 _02248B7C: .word 0xFFFFEC76 _02248B80: .word 0xFFFFEC75 _02248B84: .word 0xFFFFEC74 _02248B88: .word 0xFFFFEC73 thumb_func_end ov75_02248A20 thumb_func_start ov75_02248B8C ov75_02248B8C: ; 0x02248B8C push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02248BA2 add sp, #4 mov r0, #0 pop {r3, r4, pc} _02248BA2: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #3 bhi _02248C58 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248BB8: ; jump table .short _02248BC0 - _02248BB8 - 2 ; case 0 .short _02248BE4 - _02248BB8 - 2 ; case 1 .short _02248C04 - _02248BB8 - 2 ; case 2 .short _02248C3E - _02248BB8 - 2 ; case 3 _02248BC0: add r0, r4, #0 bl ov75_02247878 ldr r0, _02248C60 ; =0x00000F0F mov r2, #0xd str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248C58 _02248BE4: mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #0 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248C58 _02248C04: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _02248C2A add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248C58 _02248C2A: cmp r0, #2 bne _02248C58 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy mov r0, #0x15 str r0, [r4, #8] b _02248C58 _02248C3E: ldr r0, _02248C60 ; =0x00000F0F mov r2, #0x11 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 mov r1, #0x22 mov r2, #0x14 bl ov75_02247854 _02248C58: mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _02248C60: .word 0x00000F0F thumb_func_end ov75_02248B8C thumb_func_start ov75_02248C64 ov75_02248C64: ; 0x02248C64 push {r4, lr} add r4, r0, #0 ldr r0, [r4] mov r1, #2 mov r2, #1 bl ov75_02246BCC ldr r0, [r4] mov r1, #0x16 bl ov75_02246BE0 mov r0, #0x1e str r0, [r4, #8] mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02248C64 thumb_func_start ov75_02248C84 ov75_02248C84: ; 0x02248C84 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02248C9A add sp, #4 mov r0, #0 pop {r3, r4, pc} _02248C9A: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _02248CAE cmp r0, #1 beq _02248CCC cmp r0, #2 beq _02248CEC b _02248D22 _02248CAE: ldr r0, _02248D28 ; =0x00000F0F mov r2, #0xe str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248D22 _02248CCC: mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #0 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248D22 _02248CEC: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_HandleInput cmp r0, #1 bne _02248D10 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy add r0, r4, #0 mov r1, #0x1a mov r2, #0 bl ov75_02247854 b _02248D22 _02248D10: cmp r0, #2 bne _02248D22 add r0, r4, #0 add r0, #0x88 ldr r0, [r0] bl YesNoPrompt_Destroy mov r0, #0x13 str r0, [r4, #8] _02248D22: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _02248D28: .word 0x00000F0F thumb_func_end ov75_02248C84 thumb_func_start ov75_02248D2C ov75_02248D2C: ; 0x02248D2C push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4] bl ov75_02246CE0 mov r1, #0 mvn r1, r1 cmp r0, r1 bne _02248D46 mov r0, #0x15 str r0, [r4, #8] mov r0, #0 pop {r3, r4, r5, pc} _02248D46: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #3 bls _02248D52 b _02248F00 _02248D52: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248D5E: ; jump table .short _02248D66 - _02248D5E - 2 ; case 0 .short _02248D9C - _02248D5E - 2 ; case 1 .short _02248ECE - _02248D5E - 2 ; case 2 .short _02248EEC - _02248D5E - 2 ; case 3 _02248D66: ldr r0, _02248F04 ; =0x00000F0F mov r2, #0x12 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #0 bl ov75_022494CC add r0, r4, #0 bl ov75_0224785C ldr r0, [r4] bl ov75_02246CCC ldr r1, [r4] add r0, r1, #0 add r0, #0x98 add r1, #0xfc bl ov70_02238304 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248F00 _02248D9C: bl ov70_02237F38 cmp r0, #0 bne _02248DA6 b _02248EAE _02248DA6: bl ov70_02237F58 add r5, r0, #0 add r0, r4, #0 mov r1, #0 add r0, #0xe8 str r1, [r0] add r0, r4, #0 bl ov75_02247878 add r0, r5, #0 add r0, #0xf cmp r0, #0x11 bhi _02248EA8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248DCE: ; jump table .short _02248E98 - _02248DCE - 2 ; case 0 .short _02248EA0 - _02248DCE - 2 ; case 1 .short _02248EA8 - _02248DCE - 2 ; case 2 .short _02248E98 - _02248DCE - 2 ; case 3 .short _02248EA8 - _02248DCE - 2 ; case 4 .short _02248EA8 - _02248DCE - 2 ; case 5 .short _02248EA8 - _02248DCE - 2 ; case 6 .short _02248EA8 - _02248DCE - 2 ; case 7 .short _02248EA8 - _02248DCE - 2 ; case 8 .short _02248EA8 - _02248DCE - 2 ; case 9 .short _02248EA8 - _02248DCE - 2 ; case 10 .short _02248EA8 - _02248DCE - 2 ; case 11 .short _02248EA8 - _02248DCE - 2 ; case 12 .short _02248EA0 - _02248DCE - 2 ; case 13 .short _02248E90 - _02248DCE - 2 ; case 14 .short _02248DF2 - _02248DCE - 2 ; case 15 .short _02248E88 - _02248DCE - 2 ; case 16 .short _02248E90 - _02248DCE - 2 ; case 17 _02248DF2: ldr r1, [r4] add r0, r1, #0 add r0, #0xfc ldr r0, [r0] cmp r0, #0 beq _02248E08 cmp r0, #1 beq _02248E6A cmp r0, #2 beq _02248E74 b _02248E7E _02248E08: mov r0, #1 lsl r0, r0, #8 ldr r0, [r1, r0] cmp r0, #3 bhi _02248E64 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02248E1E: ; jump table .short _02248E26 - _02248E1E - 2 ; case 0 .short _02248E50 - _02248E1E - 2 ; case 1 .short _02248E5A - _02248E1E - 2 ; case 2 .short _02248E34 - _02248E1E - 2 ; case 3 _02248E26: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248F00 _02248E34: ldr r0, _02248F04 ; =0x00000F0F mov r2, #0x13 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 mov r1, #0x22 mov r2, #0x15 bl ov75_02247854 b _02248F00 _02248E50: ldr r0, _02248F08 ; =0xFFFFEC72 str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248E5A: ldr r0, _02248F0C ; =0xFFFFEC71 str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248E64: bl sub_020399EC b _02248F00 _02248E6A: ldr r0, _02248F10 ; =0xFFFFEC6E str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248E74: ldr r0, _02248F14 ; =0xFFFFEC6D str r0, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248E7E: bl GF_AssertFail bl sub_020399EC b _02248F00 _02248E88: str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248E90: str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248E98: str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248EA0: str r5, [r4, #0x10] mov r0, #0x20 str r0, [r4, #8] b _02248F00 _02248EA8: bl sub_020399EC b _02248F00 _02248EAE: add r0, r4, #0 add r0, #0xe8 ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xe8 str r1, [r0] add r4, #0xe8 mov r0, #0xe1 ldr r1, [r4] lsl r0, r0, #4 cmp r1, r0 bne _02248F00 bl sub_020399EC b _02248F00 _02248ECE: ldr r0, _02248F04 ; =0x00000F0F mov r2, #0x14 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248F00 _02248EEC: ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _02248F00 add r0, r4, #0 mov r1, #0x1a mov r2, #0x17 bl ov75_02247854 _02248F00: mov r0, #0 pop {r3, r4, r5, pc} .balign 4, 0 _02248F04: .word 0x00000F0F _02248F08: .word 0xFFFFEC72 _02248F0C: .word 0xFFFFEC71 _02248F10: .word 0xFFFFEC6E _02248F14: .word 0xFFFFEC6D thumb_func_end ov75_02248D2C thumb_func_start ov75_02248F18 ov75_02248F18: ; 0x02248F18 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02248F2E add sp, #4 mov r0, #0 pop {r3, r4, pc} _02248F2E: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _02248F3E cmp r0, #1 beq _02248F5C b _02248F72 _02248F3E: ldr r0, _02248F78 ; =0x00000F0F mov r2, #0x15 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248F72 _02248F5C: ldr r0, [r4] mov r1, #3 mov r2, #2 bl ov75_02246BCC ldr r0, [r4] mov r1, #0x18 bl ov75_02246BE0 mov r0, #0x1e str r0, [r4, #8] _02248F72: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _02248F78: .word 0x00000F0F thumb_func_end ov75_02248F18 thumb_func_start ov75_02248F7C ov75_02248F7C: ; 0x02248F7C push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02248F92 add sp, #4 mov r0, #0 pop {r3, r4, pc} _02248F92: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _02248FA2 cmp r0, #1 beq _02248FC0 b _02248FDC _02248FA2: ldr r0, _02248FE4 ; =0x00000F0F mov r2, #0x18 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02248FDC _02248FC0: ldr r0, [r4] bl ov75_02246C3C ldr r0, [r4] bl ov75_02246C68 ldr r0, [r4] bl ov75_02246C8C add r0, r4, #0 mov r1, #0x19 mov r2, #0 bl ov75_02247854 _02248FDC: mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _02248FE4: .word 0x00000F0F thumb_func_end ov75_02248F7C thumb_func_start ov75_02248FE8 ov75_02248FE8: ; 0x02248FE8 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 add r1, r4, #0 add r1, #0x94 ldr r1, [r1] cmp r1, #3 bhi _022490CA add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02249004: ; jump table .short _0224900C - _02249004 - 2 ; case 0 .short _0224902E - _02249004 - 2 ; case 1 .short _02249090 - _02249004 - 2 ; case 2 .short _022490A8 - _02249004 - 2 ; case 3 _0224900C: ldr r1, _022490D0 ; =0x00000F0F mov r2, #0x20 str r1, [sp] ldr r1, [r4, #0x34] mov r3, #0 bl ov75_022494CC add r0, r4, #0 bl ov75_0224785C add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022490CA _0224902E: ldr r0, [r4] ldr r0, [r0, #4] bl SaveGameNormal cmp r0, #2 bne _0224906C ldr r0, [r4] ldr r0, [r0, #4] bl Save_PlayerData_GetProfileAddr add r2, r0, #0 ldr r0, [r4, #0x20] mov r1, #0 bl BufferPlayersName ldr r0, _022490D0 ; =0x00000F0F mov r2, #0x21 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #0 bl ov75_022494CC ldr r0, _022490D4 ; =0x0000061A bl PlaySE ldr r0, [r4] ldr r0, [r0, #4] bl Save_ClearStatusFlags b _0224907C _0224906C: ldr r0, _022490D0 ; =0x00000F0F mov r2, #0x22 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #0 bl ov75_022494CC _0224907C: add r0, r4, #0 bl ov75_02247878 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022490CA _02249090: ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _022490CA add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022490CA _022490A8: add r0, #0x98 ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x98 str r1, [r0] add r0, r4, #0 add r0, #0x98 ldr r0, [r0] cmp r0, #0x3c ble _022490CA add r0, r4, #0 mov r1, #0 add r0, #0x98 str r1, [r0] ldr r0, [r4, #0xc] str r0, [r4, #8] _022490CA: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _022490D0: .word 0x00000F0F _022490D4: .word 0x0000061A thumb_func_end ov75_02248FE8 thumb_func_start ov75_022490D8 ov75_022490D8: ; 0x022490D8 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _022490EE add sp, #4 mov r0, #0 pop {r3, r4, pc} _022490EE: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #4 bhi _022491C2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02249104: ; jump table .short _0224910E - _02249104 - 2 ; case 0 .short _0224912C - _02249104 - 2 ; case 1 .short _02249166 - _02249104 - 2 ; case 2 .short _0224918E - _02249104 - 2 ; case 3 .short _022491A6 - _02249104 - 2 ; case 4 _0224910E: ldr r0, _022491C8 ; =0x00000F0F mov r2, #0xf str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022491C2 _0224912C: bl ov00_021EC8D8 bl sub_0203A914 bl sub_0203957C mov r0, #4 bl Sys_ClearSleepDisableFlag mov r0, #0x46 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #1 bne _02249158 bl ov70_02237F2C mov r0, #0x46 ldr r1, [r4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] _02249158: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022491C2 _02249166: ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _022491C2 ldr r0, _022491C8 ; =0x00000F0F mov r2, #0x10 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022491C2 _0224918E: ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _022491C2 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022491C2 _022491A6: add r0, r4, #0 add r0, #0x90 ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x90 str r1, [r0] add r0, r4, #0 add r0, #0x90 ldr r0, [r0] cmp r0, #0x1e ble _022491C2 ldr r0, [r4, #0xc] str r0, [r4, #8] _022491C2: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _022491C8: .word 0x00000F0F thumb_func_end ov75_022490D8 thumb_func_start ov75_022491CC ov75_022491CC: ; 0x022491CC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x18] ldr r1, [r4, #0x1c] neg r0, r0 bl ov00_021E6A70 ldr r2, [r4, #0x18] add r1, r0, #0 add r0, r4, #0 neg r2, r2 bl ov75_0224971C mov r0, #0x1c str r0, [r4, #8] mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_022491CC thumb_func_start ov75_022491F0 ov75_022491F0: ; 0x022491F0 push {r4, lr} add r4, r0, #0 ldr r0, _02249218 ; =gSystem ldr r1, [r0, #0x48] mov r0, #1 tst r0, r1 bne _02249204 mov r0, #2 tst r0, r1 beq _02249212 _02249204: add r0, r4, #0 add r0, #0x68 mov r1, #0 bl sub_0200E5D4 mov r0, #0 str r0, [r4, #8] _02249212: mov r0, #0 pop {r4, pc} nop _02249218: .word gSystem thumb_func_end ov75_022491F0 thumb_func_start ov75_0224921C ov75_0224921C: ; 0x0224921C push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0x1e beq _0224922C bl sub_0203957C _0224922C: bl sub_0203A914 add r0, r4, #0 bl ov75_02247878 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x74 str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl BeginNormalPaletteFade mov r0, #0 str r0, [r4, #8] mov r0, #1 add sp, #0xc pop {r3, r4, pc} thumb_func_end ov75_0224921C thumb_func_start ov75_02249258 ov75_02249258: ; 0x02249258 push {r4, lr} add r4, r0, #0 mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #0 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] ldr r0, [r4, #0xc] str r0, [r4, #8] mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02249258 thumb_func_start ov75_02249278 ov75_02249278: ; 0x02249278 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 mov r1, #0 ldr r0, [r4, #0x10] sub r2, r1, #5 cmp r0, r2 bgt _022492D6 bge _0224930A add r2, r1, #0 sub r2, #0xf cmp r0, r2 bgt _022492C4 add r2, r1, #0 sub r2, #0xf cmp r0, r2 bge _0224930A ldr r2, _02249374 ; =0x00001393 add r2, r0, r2 cmp r2, #0xa bhi _0224930A add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _022492AE: ; jump table .short _0224933E - _022492AE - 2 ; case 0 .short _02249338 - _022492AE - 2 ; case 1 .short _0224930A - _022492AE - 2 ; case 2 .short _0224930A - _022492AE - 2 ; case 3 .short _02249332 - _022492AE - 2 ; case 4 .short _0224932C - _022492AE - 2 ; case 5 .short _02249326 - _022492AE - 2 ; case 6 .short _02249320 - _022492AE - 2 ; case 7 .short _0224931A - _022492AE - 2 ; case 8 .short _02249314 - _022492AE - 2 ; case 9 .short _0224930E - _022492AE - 2 ; case 10 _022492C4: mov r2, #0xd mvn r2, r2 cmp r0, r2 bgt _022492D0 beq _02249306 b _0224930A _022492D0: add r2, r2, #2 cmp r0, r2 b _0224930A _022492D6: sub r2, r1, #1 cmp r0, r2 bgt _022492F0 bge _02249302 sub r2, r1, #3 cmp r0, r2 bgt _022492E8 cmp r0, r2 b _0224930A _022492E8: sub r2, r1, #2 cmp r0, r2 beq _02249306 b _0224930A _022492F0: cmp r0, #1 bgt _022492F8 beq _022492FE b _0224930A _022492F8: cmp r0, #2 beq _02249302 b _0224930A _022492FE: mov r2, #0x36 b _02249342 _02249302: mov r2, #0x37 b _02249342 _02249306: mov r2, #0x39 b _02249342 _0224930A: mov r2, #0x38 b _02249342 _0224930E: mov r2, #0xb5 add r1, r1, #1 b _02249342 _02249314: mov r2, #0xb6 add r1, r1, #1 b _02249342 _0224931A: mov r2, #0xb6 add r1, r1, #1 b _02249342 _02249320: mov r2, #0xb7 add r1, r1, #1 b _02249342 _02249326: mov r2, #0xb8 add r1, r1, #1 b _02249342 _0224932C: mov r2, #0xb6 add r1, r1, #1 b _02249342 _02249332: mov r2, #0xb6 add r1, r1, #1 b _02249342 _02249338: mov r2, #0xb7 add r1, r1, #1 b _02249342 _0224933E: mov r2, #0xb8 add r1, r1, #1 _02249342: cmp r1, #0 ldr r0, _02249378 ; =0x00000F0F bne _02249356 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 mov r3, #1 bl ov75_022494CC b _02249362 _02249356: str r0, [sp] ldr r1, [r4, #0x24] add r0, r4, #0 mov r3, #1 bl ov75_022494CC _02249362: add r0, r4, #0 mov r1, #0x22 mov r2, #0x21 bl ov75_02247854 mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _02249374: .word 0x00001393 _02249378: .word 0x00000F0F thumb_func_end ov75_02249278 thumb_func_start ov75_0224937C ov75_0224937C: ; 0x0224937C push {r3, r4, lr} sub sp, #4 add r4, r0, #0 add r1, r4, #0 add r1, #0x94 ldr r1, [r1] cmp r1, #3 bhi _02249434 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02249398: ; jump table .short _022493A0 - _02249398 - 2 ; case 0 .short _022493BC - _02249398 - 2 ; case 1 .short _02249400 - _02249398 - 2 ; case 2 .short _0224941C - _02249398 - 2 ; case 3 _022493A0: ldr r1, _0224945C ; =0x00000F0F mov r2, #0xf str r1, [sp] ldr r1, [r4, #0x34] mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02249456 _022493BC: ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _02249456 bl sub_0203957C bl ov00_021EC8D8 bl sub_0203A914 mov r0, #4 bl Sys_ClearSleepDisableFlag mov r0, #0x46 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #1 bne _022493F2 bl ov70_02237F2C mov r0, #0x46 ldr r1, [r4] mov r2, #0 lsl r0, r0, #2 str r2, [r1, r0] _022493F2: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02249456 _02249400: ldr r1, _0224945C ; =0x00000F0F mov r2, #0x10 str r1, [sp] ldr r1, [r4, #0x34] mov r3, #1 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02249456 _0224941C: ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _02249456 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _02249456 _02249434: add r0, r4, #0 add r0, #0x90 ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x90 str r1, [r0] add r0, r4, #0 add r0, #0x90 ldr r0, [r0] cmp r0, #0x1e ble _02249456 ldr r0, [r4] bl ov75_02246BD8 mov r0, #0x1d str r0, [r4, #8] _02249456: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _0224945C: .word 0x00000F0F thumb_func_end ov75_0224937C thumb_func_start ov75_02249460 ov75_02249460: ; 0x02249460 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _02249472 ldr r0, [r4, #0xc] str r0, [r4, #8] _02249472: mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_02249460 thumb_func_start ov75_02249478 ov75_02249478: ; 0x02249478 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _022494A0 add r0, r4, #0 add r0, #0x90 ldr r0, [r0] cmp r0, #0x1e ble _02249494 ldr r0, [r4, #0xc] str r0, [r4, #8] _02249494: add r0, r4, #0 add r0, #0x90 ldr r0, [r0] add r4, #0x90 add r0, r0, #1 str r0, [r4] _022494A0: mov r0, #0 pop {r4, pc} thumb_func_end ov75_02249478 thumb_func_start ov75_022494A4 ov75_022494A4: ; 0x022494A4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #0 bne _022494C8 mov r1, #0x8d ldr r0, [r4, #4] lsl r1, r1, #2 mov r2, #0 bl ov75_02247890 add r1, r4, #0 add r1, #0x88 str r0, [r1] ldr r0, [r4, #0xc] str r0, [r4, #8] _022494C8: mov r0, #0 pop {r4, pc} thumb_func_end ov75_022494A4 thumb_func_start ov75_022494CC ov75_022494CC: ; 0x022494CC push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 add r0, r1, #0 add r1, r2, #0 add r4, r3, #0 bl NewString_ReadMsgData add r6, r0, #0 ldr r0, [r5, #0x20] ldr r1, [r5, #0x38] add r2, r6, #0 bl StringExpandPlaceholders add r0, r6, #0 bl String_Delete add r0, r5, #0 add r0, #0x48 mov r1, #0xf bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x48 mov r1, #0 mov r2, #1 mov r3, #0xa bl DrawFrameAndWindow2 mov r3, #0 str r3, [sp] str r4, [sp, #4] str r3, [sp, #8] add r0, r5, #0 ldr r2, [r5, #0x38] add r0, #0x48 mov r1, #1 bl AddTextPrinterParameterized str r0, [r5, #0x44] add r0, r5, #0 mov r1, #0 add r0, #0x90 str r1, [r0] cmp r4, #0xff beq _0224952C cmp r4, #0 bne _02249530 _0224952C: mov r0, #0xff str r0, [r5, #0x44] _02249530: add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_end ov75_022494CC thumb_func_start ov75_02249534 ov75_02249534: ; 0x02249534 push {r3, lr} cmp r0, #0xff beq _02249546 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl TextPrinterCheckActive cmp r0, #0 bne _0224954A _02249546: mov r0, #0 pop {r3, pc} _0224954A: mov r0, #1 pop {r3, pc} .balign 4, 0 thumb_func_end ov75_02249534 thumb_func_start ov75_02249550 ov75_02249550: ; 0x02249550 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x44] bl ov75_02249534 cmp r0, #1 bne _02249566 add sp, #4 mov r0, #0 pop {r3, r4, pc} _02249566: add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _02249576 cmp r0, #1 beq _022495A2 b _022495A6 _02249576: ldr r0, [r4] bl ov75_02246CF8 cmp r0, #2 bne _02249584 mov r2, #0x26 b _02249586 _02249584: mov r2, #0x27 _02249586: ldr r0, _022495AC ; =0x00000F0F mov r3, #1 str r0, [sp] ldr r1, [r4, #0x34] add r0, r4, #0 bl ov75_022494CC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] add r4, #0x94 add r0, r0, #1 str r0, [r4] b _022495A6 _022495A2: mov r0, #5 str r0, [r4, #8] _022495A6: mov r0, #0 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _022495AC: .word 0x00000F0F thumb_func_end ov75_02249550 thumb_func_start ov75_022495B0 ov75_022495B0: ; 0x022495B0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r6, r0, #0 ldr r0, [r6, #0x44] ldr r4, [r6] bl ov75_02249534 cmp r0, #1 bne _022495C8 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _022495C8: add r0, r6, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _022495D8 cmp r0, #1 beq _0224963C b _02249640 _022495D8: add r0, r4, #0 bl ov75_02246CE8 add r5, r0, #0 ldr r0, [r4, #4] mov r1, #3 bl sub_020317BC cmp r5, r0 bne _0224961E ldr r0, [r4, #4] bl sub_02031774 add r1, sp, #8 mov r2, #0x73 bl ov75_02249884 mov r4, #0 add r5, sp, #8 mov r7, #2 _02249600: str r7, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r6, #0x20] ldr r2, [r5] add r1, r4, #0 mov r3, #4 bl BufferIntegerAsString add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blo _02249600 mov r2, #0x29 b _02249620 _0224961E: mov r2, #0x28 _02249620: ldr r0, _02249648 ; =0x00000F0F mov r3, #1 str r0, [sp] ldr r1, [r6, #0x34] add r0, r6, #0 bl ov75_022494CC add r0, r6, #0 add r0, #0x94 ldr r0, [r0] add r6, #0x94 add r0, r0, #1 str r0, [r6] b _02249640 _0224963C: mov r0, #0 str r0, [r6, #8] _02249640: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _02249648: .word 0x00000F0F thumb_func_end ov75_022495B0 thumb_func_start ov75_0224964C ov75_0224964C: ; 0x0224964C push {r4, lr} add r4, r0, #0 cmp r3, #1 beq _0224965A cmp r3, #2 beq _02249670 b _0224967E _0224965A: ldr r0, [sp, #0xc] mov r2, #0 bl FontID_String_GetWidth ldrb r1, [r4, #7] lsl r1, r1, #3 sub r1, r1, r0 lsr r0, r1, #0x1f add r0, r1, r0 asr r2, r0, #1 b _0224967E _02249670: ldr r0, [sp, #0xc] mov r2, #0 bl FontID_String_GetWidth ldrb r1, [r4, #7] lsl r1, r1, #3 sub r2, r1, r0 _0224967E: add r0, r2, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov75_0224964C thumb_func_start ov75_02249684 ov75_02249684: ; 0x02249684 push {r4, r5, r6, lr} sub sp, #0x10 add r4, r3, #0 ldr r3, [sp, #0x24] add r5, r0, #0 str r3, [sp] mov r3, #1 str r3, [sp, #4] ldr r3, [sp, #0x20] add r6, r1, #0 bl ov75_0224964C add r3, r0, #0 str r4, [sp] mov r1, #0 ldr r0, [sp, #0x24] str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] add r0, r5, #0 mov r1, #1 add r2, r6, #0 bl AddTextPrinterParameterizedWithColor add sp, #0x10 pop {r4, r5, r6, pc} thumb_func_end ov75_02249684 thumb_func_start ov75_022496B8 ov75_022496B8: ; 0x022496B8 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 mov r0, #1 add r6, r1, #0 lsl r0, r0, #8 mov r1, #0x74 bl String_New add r4, r0, #0 ldr r0, [r5, #0x30] add r1, r6, #0 add r2, r4, #0 bl ReadMsgDataIntoString ldr r0, [r5, #0x20] ldr r1, [r5, #0x40] add r2, r4, #0 bl StringExpandPlaceholders add r0, r5, #0 add r0, #0x68 mov r1, #0xf bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x68 mov r1, #1 mov r2, #0x1f mov r3, #0xb bl DrawFrameAndWindow1 mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] add r0, r5, #0 ldr r2, [r5, #0x40] add r0, #0x68 mov r1, #1 bl AddTextPrinterParameterized mov r0, #0xff str r0, [r5, #0x44] add r0, r4, #0 bl String_Delete add sp, #0xc pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_end ov75_022496B8 thumb_func_start ov75_0224971C ov75_0224971C: ; 0x0224971C push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 add r4, r1, #0 mvn r0, r0 cmp r4, r0 bne _0224972E mov r4, #0xb _0224972E: mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r5, #0x20] mov r1, #0 mov r3, #5 bl BufferIntegerAsString add r0, r5, #0 add r0, #0x48 mov r1, #1 bl ClearFrameAndWindow2 add r0, r5, #0 add r1, r4, #0 bl ov75_022496B8 add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov75_0224971C thumb_func_start ov75_02249758 ov75_02249758: ; 0x02249758 push {r3, lr} cmp r2, #0 bne _02249764 ldr r0, _02249768 ; =0x000005DC bl PlaySE _02249764: pop {r3, pc} nop _02249768: .word 0x000005DC thumb_func_end ov75_02249758 thumb_func_start ov75_0224976C ov75_0224976C: ; 0x0224976C push {r3, lr} cmp r2, #0 bne _02249778 ldr r0, _0224977C ; =0x000005DC bl PlaySE _02249778: pop {r3, pc} nop _0224977C: .word 0x000005DC thumb_func_end ov75_0224976C thumb_func_start ov75_02249780 ov75_02249780: ; 0x02249780 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r2, #0 mov r4, #0 add r5, r1, #0 ldr r2, _02249828 ; =ov75_02249ACC str r0, [sp] add r1, r4, #0 add r0, r2, #0 add r3, r4, #0 _02249794: add r6, r1, #0 ldrsb r6, [r0, r6] add r2, r2, #1 add r1, r1, #1 strb r6, [r5, r4] ldrsb r6, [r2, r3] add r4, r4, #1 cmp r6, #0 bne _02249794 add r0, r7, #0 mov r1, #0xc8 bl AllocFromHeap str r0, [sp, #4] ldr r0, [sp] ldr r1, [sp, #4] mov r2, #0x64 bl CopyStringToU16Array ldr r7, [sp, #4] mov r6, #0 _022497BE: ldrh r1, [r7] ldr r0, _0224982C ; =0x0000FFFF cmp r1, r0 bne _022497CC mov r2, #0 strb r2, [r5, r4] b _02249802 _022497CC: ldr r2, [sp, #4] lsl r3, r6, #1 ldrh r3, [r2, r3] ldr r1, _02249830 ; =ov75_02249ADC mov r0, #0 _022497D6: ldrh r2, [r1] cmp r2, r3 bne _022497EA ldr r1, _02249830 ; =ov75_02249ADC lsl r2, r0, #2 add r2, r1, r2 mov r1, #2 ldrsb r1, [r2, r1] strb r1, [r5, r4] b _022497F2 _022497EA: add r0, r0, #1 add r1, r1, #4 cmp r0, #0xa blo _022497D6 _022497F2: cmp r0, #0xa blo _022497FA bl GF_AssertFail _022497FA: add r4, r4, #1 add r7, r7, #2 add r6, r6, #1 b _022497BE _02249802: ldr r1, _02249834 ; =ov75_02249AD0 add r3, r2, #0 add r0, r1, #0 _02249808: add r6, r2, #0 ldrsb r6, [r0, r6] add r1, r1, #1 add r2, r2, #1 strb r6, [r5, r4] ldrsb r6, [r1, r3] add r4, r4, #1 cmp r6, #0 bne _02249808 mov r0, #0 strb r0, [r5, r4] ldr r0, [sp, #4] bl FreeToHeap add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _02249828: .word ov75_02249ACC _0224982C: .word 0x0000FFFF _02249830: .word ov75_02249ADC _02249834: .word ov75_02249AD0 thumb_func_end ov75_02249780 thumb_func_start ov75_02249838 ov75_02249838: ; 0x02249838 push {r4, r5, r6, lr} add r6, r0, #0 add r0, r1, #0 mov r1, #0xc8 mov r5, #1 bl AllocFromHeap add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 mov r2, #0x64 bl CopyStringToU16Array ldrh r1, [r4] ldr r0, _0224987C ; =0x0000FFFF cmp r1, r0 beq _02249870 ldr r1, _02249880 ; =0x00000121 add r3, r4, #0 _0224985E: ldrh r2, [r3] cmp r2, r1 beq _02249868 mov r5, #0 b _02249870 _02249868: add r3, r3, #2 ldrh r2, [r3] cmp r2, r0 bne _0224985E _02249870: add r0, r4, #0 bl FreeToHeap add r0, r5, #0 pop {r4, r5, r6, pc} nop _0224987C: .word 0x0000FFFF _02249880: .word 0x00000121 thumb_func_end ov75_02249838 thumb_func_start ov75_02249884 ov75_02249884: ; 0x02249884 push {r3, r4, r5, r6, r7, lr} sub sp, #8 mov r4, #0 add r5, r0, #0 add r7, r1, #0 str r4, [sp, #4] _02249890: mov r0, #0 str r0, [r7] str r0, [sp] b _022498CC _02249898: cmp r0, #0 bne _022498A4 bne _022498B2 bl GF_AssertFail b _022498B2 _022498A4: add r4, r4, #1 _022498A6: ldrsb r0, [r5, r4] add r6, r5, r4 cmp r0, #0x30 blt _02249898 cmp r0, #0x39 bgt _02249898 _022498B2: ldr r1, [r7] mov r0, #0xa mul r0, r1 str r0, [r7] mov r1, #0 ldrsb r1, [r6, r1] add r4, r4, #1 sub r1, #0x30 add r0, r0, r1 str r0, [r7] ldr r0, [sp] add r0, r0, #1 str r0, [sp] _022498CC: ldr r0, [sp] cmp r0, #4 blt _022498A6 ldr r0, [sp, #4] add r7, r7, #4 add r0, r0, #1 str r0, [sp, #4] cmp r0, #4 blt _02249890 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_end ov75_02249884 .rodata ov75_022498E4: .word ov44_0222A4B4, ov44_0222A60C, ov44_0222A758, FS_OVERLAY_ID(OVY_44) ov75_022498F4: .word ov75_02246F0C, ov75_02247118, ov75_02247180, 0xFFFFFFFF ov75_02249904: ; 0x02249904 .word ov75_02246D00, ov75_02246D04, ov75_022498F4, 0 .word ov75_02246D08, ov75_02246D40, _02102620, 0 .word ov75_02246DB4, ov75_02246DFC, _02102620, 0 .word ov75_02246E3C, ov75_02246E78, _02102620, 0 .word ov75_02246E3C, ov75_02246E78, _02102620, 0 .word ov75_02246EAC, ov75_02246EDC, ov75_022498E4, 1 .public ov75_App_MainMenu_SelectOption_WiiMessageSettings ov75_App_MainMenu_SelectOption_WiiMessageSettings: .word ov75_02246960, ov75_022469D8, ov75_02246B00, 0xFFFFFFFF ov75_02249974: .byte 0x0B, 0x07, 0x14, 0x08 ov75_02249978: ; 0x02249978 .byte 0x0B, 0x0D, 0x14, 0x04 ov75_0224997C: ; 0x0224997C .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov75_0224998C: ; 0x0224998C .byte 0x01, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 ov75_0224999C: ; 0x0224999C .byte 0x00, 0x00, 0x00, 0x00 .word ov75_0224976C .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00 .byte 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov75_022499BC: ; 0x022499BC .byte 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 ov75_022499DC: ; 0x022499DC .byte 0x00, 0x00, 0x00, 0x00 .word ov75_02249758 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00 .byte 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov75_022499FC: ; 0x022499FC .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x60, 0x00, 0x00, 0x00 ov75_02249A24: ; 0x02249A24 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x1B, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov75_02249A5C: ; 0x02249A5C .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00 .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x02, 0x00, 0x03, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x1C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov75_02249ACC: ; 0x02249ACC .byte 0x77, 0x00, 0x00, 0x00 .balign 4, 0 ov75_02249AD0: ; 0x02249AD0 .asciz "@wii.com" .balign 4, 0 ov75_02249ADC: ; 0x02249ADC .byte 0x21, 0x01, 0x30, 0x00 .byte 0x22, 0x01, 0x31, 0x00, 0x23, 0x01, 0x32, 0x00, 0x24, 0x01, 0x33, 0x00, 0x25, 0x01, 0x34, 0x00 .byte 0x26, 0x01, 0x35, 0x00, 0x27, 0x01, 0x36, 0x00, 0x28, 0x01, 0x37, 0x00, 0x29, 0x01, 0x38, 0x00 .byte 0x2A, 0x01, 0x39, 0x00 .data _02249B20: .byte 0x04, 0x00, 0x00, 0x00 ov75_02249B24: ; 0x02249B24 .byte 0x08, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 ov75_02249B30: ; 0x02249B30 .word ov75_022478E0 .word ov75_02247A78 .word ov75_02247A98 .word ov75_02247B98 .word ov75_022483EC .word ov75_0224852C .word ov75_0224854C .word ov75_02248584 .word ov75_02248684 .word ov75_022486EC .word ov75_02248714 .word ov75_0224874C .word ov75_02248774 .word ov75_02248800 .word ov75_022488AC .word ov75_022488BC .word ov75_02248994 .word ov75_022489F8 .word ov75_02248A20 .word ov75_02248B8C .word ov75_02248C64 .word ov75_02248C84 .word ov75_02248D2C .word ov75_02248F18 .word ov75_02248F7C .word ov75_02248FE8 .word ov75_022490D8 .word ov75_022491CC .word ov75_022491F0 .word ov75_0224921C .word ov75_0224921C .word ov75_02249258 .word ov75_02249278 .word ov75_0224937C .word ov75_02249460 .word ov75_02249478 .word ov75_022494A4 .word ov75_02249550 .word ov75_022495B0 .bss _02249BE0: .space 0x20