.include "asm/macros.inc" .include "overlay_82.inc" .include "global.inc" .text thumb_func_start ov82_0223DD60 ov82_0223DD60: ; 0x0223DD60 push {r4, r5, r6, lr} add r4, r0, #0 add r6, r1, #0 ldr r0, _0223DE1C ; =FS_OVERLAY_ID(OVY_80) mov r1, #2 bl HandleLoadOverlay bl ov82_0223E9B0 mov r2, #2 mov r0, #3 mov r1, #0x69 lsl r2, r2, #0x10 bl CreateHeap mov r1, #0xa1 add r0, r4, #0 lsl r1, r1, #2 mov r2, #0x69 bl OverlayManager_CreateAndGetData mov r2, #0xa1 mov r1, #0 lsl r2, r2, #2 add r5, r0, #0 bl memset mov r0, #0x69 bl BgConfig_Alloc str r0, [r5, #0x48] add r0, r4, #0 str r4, [r5] bl OverlayManager_GetArgs add r4, r0, #0 add r0, r5, #0 ldr r1, [r4] add r0, #0xa0 str r1, [r0] ldrb r0, [r4, #4] add r1, r4, #6 strb r0, [r5, #9] mov r0, #0x21 lsl r0, r0, #4 str r1, [r5, r0] add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] bl Save_PlayerData_GetOptionsAddr add r1, r5, #0 add r1, #0x9c str r0, [r1] mov r1, #0x85 ldr r0, [r4, #0xc] lsl r1, r1, #2 str r0, [r5, r1] ldr r2, [r4, #8] add r0, r1, #4 str r2, [r5, r0] add r0, r1, #0 ldr r2, [r4, #0x14] add r0, #8 str r2, [r5, r0] ldrh r0, [r4, #0x18] add r1, #0x68 add r0, r0, #1 strh r0, [r5, #0x1c] ldrb r0, [r4, #5] strb r0, [r5, #0xd] mov r0, #0xff strb r0, [r5, r1] strb r0, [r5, #0x18] mov r0, #0x75 strb r0, [r5, #0x1f] add r0, r5, #0 bl ov82_0223E9E8 ldrb r0, [r5, #9] bl ov80_0223792C cmp r0, #1 bne _0223DE0E add r0, r5, #0 bl sub_02096910 _0223DE0E: mov r0, #0 str r0, [r6] mov r0, #1 bl sub_02002B8C mov r0, #1 pop {r4, r5, r6, pc} .balign 4, 0 _0223DE1C: .word FS_OVERLAY_ID(OVY_80) thumb_func_end ov82_0223DD60 thumb_func_start ov82_0223DE20 ov82_0223DE20: ; 0x0223DE20 push {r3, r4, r5, lr} add r5, r1, #0 bl OverlayManager_GetData add r4, r0, #0 ldrb r1, [r4, #0x18] cmp r1, #0xff beq _0223DE4A ldr r1, [r5] cmp r1, #2 bne _0223DE4A ldrh r1, [r4, #0x10] cmp r1, #0 bne _0223DE4A bl ov82_0223F834 add r0, r4, #0 add r1, r5, #0 mov r2, #3 bl ov82_0223F2F8 _0223DE4A: ldr r0, [r5] cmp r0, #6 bls _0223DE52 b _0223DF68 _0223DE52: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0223DE5E: ; jump table .short _0223DE86 - _0223DE5E - 2 ; case 0 .short _0223DE6C - _0223DE5E - 2 ; case 1 .short _0223DE9C - _0223DE5E - 2 ; case 2 .short _0223DEEE - _0223DE5E - 2 ; case 3 .short _0223DF30 - _0223DE5E - 2 ; case 4 .short _0223DF46 - _0223DE5E - 2 ; case 5 .short _0223DF54 - _0223DE5E - 2 ; case 6 _0223DE6C: add r0, r4, #0 bl ov82_0223E2A4 cmp r0, #1 bne _0223DE82 add r0, r4, #0 add r1, r5, #0 mov r2, #0 bl ov82_0223F2F8 b _0223DE86 _0223DE82: mov r0, #0 pop {r3, r4, r5, pc} _0223DE86: add r0, r4, #0 bl ov82_0223DFBC cmp r0, #1 bne _0223DF68 add r0, r4, #0 add r1, r5, #0 mov r2, #2 bl ov82_0223F2F8 b _0223DF68 _0223DE9C: add r0, r4, #0 bl ov82_0223E2EC cmp r0, #1 bne _0223DF68 ldrb r0, [r4, #0x17] cmp r0, #1 bne _0223DEB8 add r0, r4, #0 add r1, r5, #0 mov r2, #3 bl ov82_0223F2F8 b _0223DF68 _0223DEB8: ldrb r0, [r4, #0xb] cmp r0, #1 bne _0223DECC add r0, r4, #0 add r1, r5, #0 mov r2, #1 bl ov82_0223F2F8 mov r0, #0 pop {r3, r4, r5, pc} _0223DECC: ldrb r0, [r4, #9] bl ov80_0223792C cmp r0, #1 bne _0223DEE2 add r0, r4, #0 add r1, r5, #0 mov r2, #4 bl ov82_0223F2F8 b _0223DF68 _0223DEE2: add r0, r4, #0 add r1, r5, #0 mov r2, #5 bl ov82_0223F2F8 b _0223DF68 _0223DEEE: add r0, r4, #0 bl ov82_0223E5D4 cmp r0, #1 bne _0223DF68 ldrb r0, [r4, #0x19] cmp r0, #1 bne _0223DF0E mov r0, #0 strb r0, [r4, #0x19] add r0, r4, #0 add r1, r5, #0 mov r2, #2 bl ov82_0223F2F8 b _0223DF68 _0223DF0E: ldrb r0, [r4, #9] bl ov80_0223792C cmp r0, #1 bne _0223DF24 add r0, r4, #0 add r1, r5, #0 mov r2, #4 bl ov82_0223F2F8 b _0223DF68 _0223DF24: add r0, r4, #0 add r1, r5, #0 mov r2, #5 bl ov82_0223F2F8 b _0223DF68 _0223DF30: add r0, r4, #0 bl ov82_0223E7E8 cmp r0, #1 bne _0223DF68 add r0, r4, #0 add r1, r5, #0 mov r2, #5 bl ov82_0223F2F8 b _0223DF68 _0223DF46: add r0, r4, #0 bl ov82_0223E820 cmp r0, #1 bne _0223DF68 mov r0, #1 pop {r3, r4, r5, pc} _0223DF54: add r0, r4, #0 bl ov82_0223E888 cmp r0, #1 bne _0223DF68 add r0, r4, #0 add r1, r5, #0 mov r2, #4 bl ov82_0223F2F8 _0223DF68: add r4, #0xa8 ldr r0, [r4] bl sub_0202457C mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end ov82_0223DE20 thumb_func_start ov82_0223DF74 ov82_0223DF74: ; 0x0223DF74 push {r4, lr} add r4, r0, #0 bl OverlayManager_GetData mov r1, #0x21 lsl r1, r1, #4 ldrb r2, [r0, #0xd] ldr r1, [r0, r1] strh r2, [r1] bl ov82_0223E8C4 add r0, r4, #0 bl OverlayManager_FreeData ldr r2, _0223DFB4 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2] mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0x69 bl DestroyHeap ldr r0, _0223DFB8 ; =FS_OVERLAY_ID(OVY_80) bl UnloadOverlayByID mov r0, #1 pop {r4, pc} nop _0223DFB4: .word 0x04000304 _0223DFB8: .word FS_OVERLAY_ID(OVY_80) thumb_func_end ov82_0223DF74 thumb_func_start ov82_0223DFBC ov82_0223DFBC: ; 0x0223DFBC push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldrb r1, [r4, #8] cmp r1, #3 bhi _0223E068 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223DFD4: ; jump table .short _0223DFDC - _0223DFD4 - 2 ; case 0 .short _0223DFFE - _0223DFD4 - 2 ; case 1 .short _0223E030 - _0223DFD4 - 2 ; case 2 .short _0223E05A - _0223DFD4 - 2 ; case 3 _0223DFDC: ldrh r0, [r4, #0x12] cmp r0, #0 bne _0223DFF6 ldrb r0, [r4, #9] bl ov80_0223792C cmp r0, #1 bne _0223DFF6 bl sub_02037BEC mov r0, #0x70 bl sub_02037AC0 _0223DFF6: ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E068 _0223DFFE: ldrh r0, [r4, #0x12] cmp r0, #0 bne _0223E028 ldrb r0, [r4, #9] bl ov80_0223792C cmp r0, #1 bne _0223E028 mov r0, #0x70 bl sub_02037B38 cmp r0, #1 bne _0223E068 bl sub_02037BEC mov r0, #1 strh r0, [r4, #0x12] ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E068 _0223E028: ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E068 _0223E030: bl ov82_0223E070 add r0, r4, #0 bl ov82_0223E0B0 mov r0, #6 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] mov r0, #0 mov r1, #1 add r2, r1, #0 add r3, r0, #0 bl BeginNormalPaletteFade ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E068 _0223E05A: bl IsPaletteFadeFinished cmp r0, #1 bne _0223E068 add sp, #0xc mov r0, #1 pop {r3, r4, pc} _0223E068: mov r0, #0 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_end ov82_0223DFBC thumb_func_start ov82_0223E070 ov82_0223E070: ; 0x0223E070 push {r4, lr} sub sp, #0x10 mov r1, #0 str r1, [sp] add r4, r0, #0 str r1, [sp, #4] add r1, r4, #0 add r1, #0x6c mov r2, #1 mov r3, #2 bl ov82_0223F040 add r1, r4, #0 add r0, r4, #0 add r1, #0x6c bl ov82_0223F134 mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r2, #0 add r0, r4, #0 add r4, #0x5c str r2, [sp, #8] add r1, r4, #0 add r3, r2, #0 str r2, [sp, #0xc] bl ov82_0223EFCC add sp, #0x10 pop {r4, pc} thumb_func_end ov82_0223E070 thumb_func_start ov82_0223E0B0 ov82_0223E0B0: ; 0x0223E0B0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 add r0, #0x7c bl GetWindowX sub r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] add r0, r5, #0 add r0, #0x7c bl GetWindowY sub r0, r0, #1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 add r0, r5, #0 add r0, #0x7c bl GetWindowWidth add r0, r0, #2 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0 add r0, #0x7c bl GetWindowHeight add r0, r0, #2 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0 add r0, #0x7c bl GetWindowBgId str r0, [sp, #0x14] mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0xf mov r2, #0 str r0, [sp, #8] add r1, r5, #0 add r0, r5, #0 add r1, #0x7c add r3, r2, #0 str r2, [sp, #0xc] bl ov82_0223F1AC add r0, r5, #0 mov r1, #4 bl ov82_0223EECC str r6, [sp] str r4, [sp, #4] mov r0, #1 str r0, [sp, #8] str r0, [sp, #0xc] ldr r0, [r5, #0x48] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] add r3, r7, #0 bl ov82_0223E140 ldr r0, [r5, #0x48] ldr r1, [sp, #0x14] bl ScheduleBgTilemapBufferTransfer add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_end ov82_0223E0B0 thumb_func_start ov82_0223E140 ov82_0223E140: ; 0x0223E140 push {r4, r5, r6, r7, lr} sub sp, #0x2c str r1, [sp, #0x14] str r2, [sp, #0x18] ldr r5, [sp, #0x4c] add r6, r3, #0 str r6, [sp] mov r2, #1 str r2, [sp, #4] str r2, [sp, #8] lsl r2, r5, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0xc] add r2, sp, #0x30 ldrh r2, [r2, #0x18] ldr r3, [sp, #0x18] str r0, [sp, #0x10] bl FillBgTilemapRect add r1, sp, #0x30 ldrh r4, [r1, #0x18] ldrb r7, [r1, #0x10] ldr r0, [sp, #0x18] add r2, r4, #2 add r0, r0, r7 sub r0, r0, #1 str r0, [sp, #0x20] ldr r3, [sp, #0x20] lsl r2, r2, #0x10 lsl r3, r3, #0x18 str r6, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect add r0, sp, #0x30 ldrb r0, [r0, #0x14] add r2, r4, #6 lsl r2, r2, #0x10 str r0, [sp, #0x28] add r0, r6, r0 sub r0, r0, #1 str r0, [sp, #0x24] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 bl FillBgTilemapRect ldr r0, [sp, #0x24] add r2, r4, #0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r3, [sp, #0x20] add r2, #8 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect sub r0, r7, #2 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r2, r4, #1 add r7, r0, #1 ldr r0, [sp, #0x1c] lsl r2, r2, #0x10 lsl r0, r0, #0x18 lsl r3, r7, #0x18 str r6, [sp] lsr r0, r0, #0x18 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect ldr r0, [sp, #0x24] add r2, r4, #7 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldr r0, [sp, #0x1c] lsl r2, r2, #0x10 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] lsl r3, r7, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect ldr r0, [sp, #0x28] add r6, r6, #1 sub r7, r0, #2 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] add r2, r4, #3 lsl r2, r2, #0x10 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 bl FillBgTilemapRect lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r3, [sp, #0x20] add r2, r4, #5 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect add sp, #0x2c pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_end ov82_0223E140 thumb_func_start ov82_0223E2A4 ov82_0223E2A4: ; 0x0223E2A4 push {r4, lr} add r4, r0, #0 ldrb r0, [r4, #8] cmp r0, #0 bne _0223E2E8 ldr r0, [r4, #4] bl OverlayManager_Run cmp r0, #1 bne _0223E2E8 add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] ldrb r1, [r0, #0x14] mov r0, #0x83 lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] bl FreeToHeap ldr r0, [r4, #4] bl FreeToHeap mov r0, #0 str r0, [r4, #4] add r0, r4, #0 bl ov82_0223E974 mov r0, #0 strh r0, [r4, #0x10] mov r0, #1 pop {r4, pc} _0223E2E8: mov r0, #0 pop {r4, pc} thumb_func_end ov82_0223E2A4 thumb_func_start ov82_0223E2EC ov82_0223E2EC: ; 0x0223E2EC push {r3, r4, r5, lr} sub sp, #0x18 add r4, r0, #0 ldrb r1, [r4, #8] cmp r1, #7 bhi _0223E33A add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223E304: ; jump table .short _0223E314 - _0223E304 - 2 ; case 0 .short _0223E31E - _0223E304 - 2 ; case 1 .short _0223E3EE - _0223E304 - 2 ; case 2 .short _0223E448 - _0223E304 - 2 ; case 3 .short _0223E4AA - _0223E304 - 2 ; case 4 .short _0223E4E4 - _0223E304 - 2 ; case 5 .short _0223E532 - _0223E304 - 2 ; case 6 .short _0223E58A - _0223E304 - 2 ; case 7 _0223E314: mov r0, #0 strb r0, [r4, #0xb] mov r0, #1 strb r0, [r4, #8] b _0223E5B6 _0223E31E: ldr r1, _0223E5BC ; =gSystem ldr r1, [r1, #0x48] bl ov82_0223F300 add r0, r4, #0 bl ov82_0223F53C cmp r0, #0 bne _0223E33C add r0, r4, #0 bl ov82_0223F488 cmp r0, #0 bne _0223E33C _0223E33A: b _0223E5B6 _0223E33C: ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #0xfe bne _0223E36E ldr r0, _0223E5C0 ; =0x000005DD bl PlaySE mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl BeginNormalPaletteFade mov r0, #1 strh r0, [r4, #0x10] mov r0, #7 strb r0, [r4, #8] b _0223E5B6 _0223E36E: add r0, r4, #0 bl ov82_0223F6E4 cmp r0, #1 ldrb r0, [r4, #0xd] bne _0223E38E bl ov80_02237920 cmp r0, #9 beq _0223E3C2 ldr r0, _0223E5C4 ; =0x000005F3 bl PlaySE add sp, #0x18 mov r0, #0 pop {r3, r4, r5, pc} _0223E38E: bl ov82_0223F6C4 mov r1, #0x86 lsl r1, r1, #2 ldr r1, [r4, r1] bl sub_02030BD0 cmp r0, #0xa blo _0223E3AC ldr r0, _0223E5C4 ; =0x000005F3 bl PlaySE add sp, #0x18 mov r0, #0 pop {r3, r4, r5, pc} _0223E3AC: ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #9 bne _0223E3C2 ldr r0, _0223E5C4 ; =0x000005F3 bl PlaySE add sp, #0x18 mov r0, #0 pop {r3, r4, r5, pc} _0223E3C2: ldr r0, _0223E5C0 ; =0x000005DD bl PlaySE ldrb r0, [r4, #9] bl ov80_0223792C cmp r0, #0 bne _0223E3E4 ldrb r1, [r4, #0xd] ldr r0, [r4, #0x48] mov r2, #1 bl ov82_0223F5E0 ldr r0, [r4, #0x48] mov r1, #3 bl ScheduleBgTilemapBufferTransfer _0223E3E4: mov r0, #0 strh r0, [r4, #0x14] mov r0, #2 strb r0, [r4, #8] b _0223E5B6 _0223E3EE: mov r0, #0x14 ldrsh r1, [r4, r0] add r1, r1, #1 strh r1, [r4, #0x14] ldrsh r0, [r4, r0] neg r0, r0 bl ov82_0223F948 mov r0, #0x14 ldrsh r0, [r4, r0] cmp r0, #8 bne _0223E45C ldrb r0, [r4, #9] bl ov80_0223792C cmp r0, #0 bne _0223E41C add r0, r4, #0 bl ov82_0223F84C mov r0, #3 strb r0, [r4, #8] b _0223E5B6 _0223E41C: add r0, r4, #0 add r0, #0x9c ldr r0, [r0] bl Options_GetFrame add r1, r0, #0 add r0, r4, #0 add r0, #0x4c bl ov82_0223FD78 add r0, r4, #0 mov r1, #0 mov r2, #1 bl ov82_0223EF7C strb r0, [r4, #0xa] ldrb r0, [r4, #0xd] add sp, #0x18 strb r0, [r4, #0x1a] mov r0, #1 strb r0, [r4, #0x17] pop {r3, r4, r5, pc} _0223E448: add r0, #0x8c ldr r0, [r0] bl ov82_0223FE18 cmp r0, #0 beq _0223E45C cmp r0, #1 beq _0223E45E cmp r0, #2 beq _0223E49E _0223E45C: b _0223E5B6 _0223E45E: add r0, r4, #0 bl ov82_0223F834 add r0, r4, #0 bl ov82_0223F6CC cmp r0, #1 bne _0223E482 add r0, r4, #0 bl ov82_0223F6E4 cmp r0, #0 bne _0223E482 ldrb r0, [r4, #0xd] strb r0, [r4, #0x1f] mov r0, #5 strb r0, [r4, #8] b _0223E5B6 _0223E482: ldr r0, _0223E5C8 ; =0x000005DC mov r1, #0 bl StopSE ldr r0, _0223E5CC ; =0x00000623 bl PlaySE ldrb r0, [r4, #0x1f] cmp r0, #0x75 beq _0223E498 strb r0, [r4, #0xd] _0223E498: add sp, #0x18 mov r0, #1 pop {r3, r4, r5, pc} _0223E49E: add r0, r4, #0 bl ov82_0223F834 mov r0, #4 strb r0, [r4, #8] b _0223E5B6 _0223E4AA: mov r0, #0x14 ldrsh r1, [r4, r0] sub r1, r1, #1 strh r1, [r4, #0x14] ldrsh r0, [r4, r0] neg r0, r0 bl ov82_0223F948 mov r0, #0x14 ldrsh r0, [r4, r0] cmp r0, #0 bgt _0223E5B6 add r0, r4, #0 bl ov82_0223F8E4 ldrb r0, [r4, #0x1e] cmp r0, #1 bne _0223E4D4 mov r0, #0 strb r0, [r4, #8] b _0223E5B6 _0223E4D4: cmp r0, #0 bne _0223E4DE mov r0, #1 strb r0, [r4, #8] b _0223E5B6 _0223E4DE: bl GF_AssertFail b _0223E5B6 _0223E4E4: add r0, #0x9c ldr r0, [r0] bl Options_GetFrame add r1, r0, #0 add r0, r4, #0 add r0, #0x4c bl ov82_0223FD78 add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] bl Save_PlayerData_GetOptionsAddr bl Options_GetTextFrameDelay mov r3, #1 str r3, [sp] str r0, [sp, #4] add r1, r4, #0 str r3, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #0xf str r0, [sp, #0x10] str r3, [sp, #0x14] add r0, r4, #0 add r1, #0x4c mov r2, #0x20 bl ov82_0223EF1C strb r0, [r4, #0xa] add r0, r4, #0 add r0, #0x4c bl CopyWindowToVram mov r0, #6 strb r0, [r4, #8] b _0223E5B6 _0223E532: ldrb r0, [r4, #0xa] bl TextPrinterCheckActive cmp r0, #0 bne _0223E5B6 mov r0, #1 strb r0, [r4, #0x1e] add r0, r4, #0 bl ov82_0223F90C mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl ov82_0223FCFC ldr r0, [r4, #0x48] mov r1, #0x13 mov r2, #0 bl ov82_0223F5E0 ldr r1, [r4, #0x48] add r0, r4, #0 bl ov82_0223F580 mov r0, #0x13 strb r0, [r4, #0xd] add r0, r4, #0 bl ov82_0223F558 add r5, r0, #0 add r0, r4, #0 bl ov82_0223F570 add r2, r0, #0 mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r5, #0 bl ov82_0223FCBC mov r0, #4 strb r0, [r4, #8] b _0223E5B6 _0223E58A: bl IsPaletteFadeFinished cmp r0, #1 bne _0223E5B6 add r0, r4, #0 bl ov82_0223F224 add r0, r4, #0 bl ov82_0223E8C4 add r1, r4, #0 add r1, #0xa4 ldr r0, _0223E5D0 ; =_02103A1C ldr r1, [r1] mov r2, #0x69 bl OverlayManager_New str r0, [r4, #4] mov r0, #1 add sp, #0x18 strb r0, [r4, #0xb] pop {r3, r4, r5, pc} _0223E5B6: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} .balign 4, 0 _0223E5BC: .word gSystem _0223E5C0: .word 0x000005DD _0223E5C4: .word 0x000005F3 _0223E5C8: .word 0x000005DC _0223E5CC: .word 0x00000623 _0223E5D0: .word _02103A1C thumb_func_end ov82_0223E2EC thumb_func_start ov82_0223E5D4 ov82_0223E5D4: ; 0x0223E5D4 push {r4, lr} add r4, r0, #0 ldrb r1, [r4, #8] cmp r1, #9 bhi _0223E632 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0223E5EA: ; jump table .short _0223E5FE - _0223E5EA - 2 ; case 0 .short _0223E620 - _0223E5EA - 2 ; case 1 .short _0223E708 - _0223E5EA - 2 ; case 2 .short _0223E666 - _0223E5EA - 2 ; case 3 .short _0223E6C2 - _0223E5EA - 2 ; case 4 .short _0223E726 - _0223E5EA - 2 ; case 5 .short _0223E762 - _0223E5EA - 2 ; case 6 .short _0223E772 - _0223E5EA - 2 ; case 7 .short _0223E7AA - _0223E5EA - 2 ; case 8 .short _0223E7BA - _0223E5EA - 2 ; case 9 _0223E5FE: ldrb r0, [r4, #0x1a] bl ov82_0223F6C4 add r2, r0, #0 add r0, r4, #0 mov r1, #5 bl ov82_0223F6E8 cmp r0, #1 bne _0223E632 mov r0, #0 strb r0, [r4, #0x1b] strb r0, [r4, #0x1a] strb r0, [r4, #0x17] mov r0, #1 strb r0, [r4, #8] b _0223E7D6 _0223E620: ldrb r0, [r4, #0x1b] cmp r0, #0 beq _0223E62C sub r0, r0, #1 strb r0, [r4, #0x1b] b _0223E7D6 _0223E62C: ldrb r0, [r4, #0x16] cmp r0, #2 bhs _0223E634 _0223E632: b _0223E7D6 _0223E634: mov r0, #0 strb r0, [r4, #0x16] ldrb r0, [r4, #0x18] cmp r0, #0x14 bhs _0223E652 bl sub_0203769C cmp r0, #0 bne _0223E64C mov r0, #2 strb r0, [r4, #8] b _0223E7D6 _0223E64C: mov r0, #3 strb r0, [r4, #8] b _0223E7D6 _0223E652: bl sub_0203769C cmp r0, #0 bne _0223E660 mov r0, #3 strb r0, [r4, #8] b _0223E7D6 _0223E660: mov r0, #2 strb r0, [r4, #8] b _0223E7D6 _0223E666: mov r0, #0 bl ov82_0223F948 mov r1, #0 mov r0, #0x82 strh r1, [r4, #0x14] lsl r0, r0, #2 ldr r0, [r4, r0] bl ov82_0223FCB0 add r0, r4, #0 add r0, #0x9c ldr r0, [r0] bl Options_GetFrame add r1, r0, #0 add r0, r4, #0 add r0, #0x4c bl ov82_0223FD78 ldr r0, [r4, #0x24] mov r1, #0 bl ov80_0222A7CC add r0, r4, #0 mov r1, #0xb mov r2, #1 bl ov82_0223EF7C strb r0, [r4, #0xa] mov r0, #0xa mov r1, #0x9f strb r0, [r4, #0x1b] lsl r1, r1, #2 ldrb r1, [r4, r1] ldr r0, [r4, #0x48] mov r2, #2 bl ov82_0223F5E0 ldr r0, [r4, #0x48] mov r1, #3 bl ScheduleBgTilemapBufferTransfer mov r0, #4 strb r0, [r4, #8] b _0223E7D6 _0223E6C2: ldr r1, _0223E7DC ; =0x0000027D ldrb r2, [r4, r1] cmp r2, #0 beq _0223E73A cmp r2, #1 bne _0223E6D8 sub r0, r1, #1 ldrb r0, [r4, r0] strb r0, [r4, #0xd] mov r0, #1 pop {r4, pc} _0223E6D8: bl ov82_0223F90C mov r1, #0x9f lsl r1, r1, #2 ldrb r1, [r4, r1] ldr r0, [r4, #0x48] mov r2, #0 bl ov82_0223F5E0 ldr r0, [r4, #0x48] mov r1, #3 bl ScheduleBgTilemapBufferTransfer mov r0, #0x9f mov r2, #0xff lsl r0, r0, #2 strb r2, [r4, r0] mov r1, #0 add r0, r0, #1 strb r1, [r4, r0] strb r2, [r4, #0x18] mov r0, #1 strb r0, [r4, #0x19] pop {r4, pc} _0223E708: ldrb r1, [r4, #0xd] ldr r0, [r4, #0x48] mov r2, #1 bl ov82_0223F5E0 ldr r0, [r4, #0x48] mov r1, #3 bl ScheduleBgTilemapBufferTransfer add r0, r4, #0 bl ov82_0223F84C mov r0, #5 strb r0, [r4, #8] b _0223E7D6 _0223E726: add r0, #0x8c ldr r0, [r0] bl ov82_0223FE18 cmp r0, #0 beq _0223E7D6 cmp r0, #1 beq _0223E73C cmp r0, #2 beq _0223E756 _0223E73A: b _0223E7D6 _0223E73C: ldr r0, _0223E7E0 ; =0x000005DC mov r1, #0 bl StopSE ldr r0, _0223E7E4 ; =0x00000623 bl PlaySE add r0, r4, #0 bl ov82_0223F834 mov r0, #6 strb r0, [r4, #8] b _0223E7D6 _0223E756: add r0, r4, #0 bl ov82_0223F834 mov r0, #7 strb r0, [r4, #8] b _0223E7D6 _0223E762: mov r1, #6 mov r2, #1 bl ov82_0223F6E8 cmp r0, #1 bne _0223E7D6 mov r0, #1 pop {r4, pc} _0223E772: mov r1, #0x14 ldrsh r2, [r4, r1] cmp r2, #0 ble _0223E788 sub r0, r2, #1 strh r0, [r4, #0x14] ldrsh r0, [r4, r1] neg r0, r0 bl ov82_0223F948 b _0223E7D6 _0223E788: mov r1, #6 mov r2, #2 bl ov82_0223F6E8 cmp r0, #1 bne _0223E7D6 add r0, r4, #0 bl ov82_0223F8E4 mov r0, #0x9f mov r1, #0xff lsl r0, r0, #2 strb r1, [r4, r0] strb r1, [r4, #0x18] mov r0, #1 strb r0, [r4, #0x19] pop {r4, pc} _0223E7AA: bl sub_02037BEC mov r0, #0x68 bl sub_02037AC0 mov r0, #9 strb r0, [r4, #8] b _0223E7D6 _0223E7BA: mov r0, #0x68 bl sub_02037B38 cmp r0, #1 bne _0223E7D6 bl sub_02037BEC mov r0, #0x69 bl sub_020379A0 mov r0, #0xff strb r0, [r4, #0x18] mov r0, #1 pop {r4, pc} _0223E7D6: mov r0, #0 pop {r4, pc} nop _0223E7DC: .word 0x0000027D _0223E7E0: .word 0x000005DC _0223E7E4: .word 0x00000623 thumb_func_end ov82_0223E5D4 thumb_func_start ov82_0223E7E8 ov82_0223E7E8: ; 0x0223E7E8 push {r4, lr} add r4, r0, #0 ldrb r0, [r4, #8] cmp r0, #0 beq _0223E7F8 cmp r0, #1 beq _0223E80A b _0223E81C _0223E7F8: bl sub_02037BEC mov r0, #0x68 bl sub_02037AC0 ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E81C _0223E80A: mov r0, #0x68 bl sub_02037B38 cmp r0, #1 bne _0223E81C bl sub_02037BEC mov r0, #1 pop {r4, pc} _0223E81C: mov r0, #0 pop {r4, pc} thumb_func_end ov82_0223E7E8 thumb_func_start ov82_0223E820 ov82_0223E820: ; 0x0223E820 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldrb r1, [r4, #8] cmp r1, #0 beq _0223E836 cmp r1, #1 beq _0223E842 cmp r1, #2 beq _0223E872 b _0223E880 _0223E836: mov r0, #0xa strb r0, [r4, #0x1b] ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E880 _0223E842: ldrb r1, [r4, #0x1b] sub r1, r1, #1 strb r1, [r4, #0x1b] ldrb r1, [r4, #0x1b] cmp r1, #0 bne _0223E880 bl ov82_0223F90C mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl BeginNormalPaletteFade ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E880 _0223E872: bl IsPaletteFadeFinished cmp r0, #1 bne _0223E880 add sp, #0xc mov r0, #1 pop {r3, r4, pc} _0223E880: mov r0, #0 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_end ov82_0223E820 thumb_func_start ov82_0223E888 ov82_0223E888: ; 0x0223E888 push {r4, lr} add r4, r0, #0 ldrb r1, [r4, #8] cmp r1, #0 beq _0223E898 cmp r1, #1 beq _0223E8BA b _0223E8BE _0223E898: bl ov82_0223F834 mov r0, #0x82 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl ov82_0223FCB0 add r0, r4, #0 add r0, #0x4c mov r1, #0 bl ClearFrameAndWindow2 ldrb r0, [r4, #8] add r0, r0, #1 strb r0, [r4, #8] b _0223E8BE _0223E8BA: mov r0, #1 pop {r4, pc} _0223E8BE: mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_end ov82_0223E888 thumb_func_start ov82_0223E8C4 ov82_0223E8C4: ; 0x0223E8C4 push {r4, r5, r6, lr} add r6, r0, #0 mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r6, r0] cmp r0, #0 beq _0223E8D6 bl ov82_0223FC9C _0223E8D6: mov r0, #0x82 lsl r0, r0, #2 ldr r0, [r6, r0] cmp r0, #0 beq _0223E8E4 bl ov82_0223FC9C _0223E8E4: add r0, r6, #0 add r0, #0x8c ldr r0, [r0] bl ov82_0223FDC0 bl sub_0203A914 add r0, r6, #0 add r0, #0x94 ldr r0, [r0] mov r1, #2 bl PaletteData_FreeBuffers add r0, r6, #0 add r0, #0x94 ldr r0, [r0] mov r1, #0 bl PaletteData_FreeBuffers add r0, r6, #0 add r0, #0x94 ldr r0, [r0] bl PaletteData_Free add r0, r6, #0 mov r1, #0 add r0, #0x94 str r1, [r0] add r0, r6, #0 add r0, #0xa8 bl ov82_0223FBBC ldr r0, [r6, #0x20] bl DestroyMsgData ldr r0, [r6, #0x24] bl MessageFormat_Delete ldr r0, [r6, #0x28] bl String_Delete ldr r0, [r6, #0x2c] bl String_Delete add r0, r6, #0 add r0, #0x98 ldr r0, [r0] bl MessagePrinter_Delete mov r4, #0 add r5, r6, #0 _0223E94A: ldr r0, [r5, #0x30] bl String_Delete add r4, r4, #1 add r5, r5, #4 cmp r4, #2 blt _0223E94A add r0, r6, #0 add r0, #0x4c bl ov82_0223FD5C ldr r0, [r6, #0x48] bl ov82_0223EBB8 mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r6, r0] bl NARC_Delete pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_end ov82_0223E8C4 thumb_func_start ov82_0223E974 ov82_0223E974: ; 0x0223E974 push {r4, lr} add r4, r0, #0 bl ov82_0223E9B0 mov r0, #0x69 bl BgConfig_Alloc str r0, [r4, #0x48] add r0, r4, #0 bl ov82_0223E9E8 ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #0xfe bne _0223E9AE mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl ov82_0223FCFC mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0x80 mov r2, #0xa8 bl ov82_0223FCBC _0223E9AE: pop {r4, pc} thumb_func_end ov82_0223E974 thumb_func_start ov82_0223E9B0 ov82_0223E9B0: ; 0x0223E9B0 push {r3, lr} mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0 add r1, r0, #0 bl Main_SetHBlankIntrCB bl GfGfx_DisableEngineAPlanes bl GfGfx_DisableEngineBPlanes mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _0223E9E0 ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _0223E9E4 ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] pop {r3, pc} .balign 4, 0 _0223E9E0: .word 0xFFFFE0FF _0223E9E4: .word 0x04001000 thumb_func_end ov82_0223E9B0 thumb_func_start ov82_0223E9E8 ov82_0223E9E8: ; 0x0223E9E8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 mov r0, #0xb7 mov r1, #0x69 bl NARC_New mov r1, #0x22 lsl r1, r1, #4 str r0, [r5, r1] add r0, r5, #0 bl ov82_0223EB3C add r0, r5, #0 bl ov82_0223EB9C ldr r2, _0223EB2C ; =0x000001B9 mov r0, #1 mov r1, #0x1b mov r3, #0x69 bl NewMsgDataFromNarc str r0, [r5, #0x20] mov r0, #0x69 bl MessageFormat_New str r0, [r5, #0x24] mov r0, #0x96 lsl r0, r0, #2 mov r1, #0x69 bl String_New str r0, [r5, #0x28] mov r0, #0x96 lsl r0, r0, #2 mov r1, #0x69 bl String_New str r0, [r5, #0x2c] mov r6, #0 add r4, r5, #0 mov r7, #0x20 _0223EA3C: add r0, r7, #0 mov r1, #0x69 bl String_New str r0, [r4, #0x30] add r6, r6, #1 add r4, r4, #4 cmp r6, #2 blt _0223EA3C mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 mov r2, #0x69 bl LoadFontPal0 mov r1, #6 mov r0, #0 lsl r1, r1, #6 mov r2, #0x69 bl LoadFontPal1 mov r0, #4 mov r1, #0x40 mov r2, #0x69 bl LoadFontPal0 mov r0, #0xf mov r1, #0xe mov r2, #0 mov r3, #0x69 bl MessagePrinter_New add r1, r5, #0 add r1, #0x98 str r0, [r1] add r1, r5, #0 ldr r0, [r5, #0x48] add r1, #0x4c bl ov82_0223FD2C ldr r1, [r5, #0x48] add r0, r5, #0 bl ov82_0223F580 ldr r2, _0223EB30 ; =0x04000304 ldr r0, _0223EB34 ; =0xFFFF7FFF ldrh r1, [r2] and r0, r1 strh r0, [r2] bl GfGfx_BothDispOn add r0, r5, #0 bl ov82_0223F558 add r4, r0, #0 add r0, r5, #0 bl ov82_0223F570 str r0, [sp] add r0, r5, #0 mov r1, #0 add r0, #0xa8 mov r2, #1 add r3, r4, #0 str r1, [sp, #4] bl ov82_0223FC48 mov r1, #0x81 lsl r1, r1, #2 str r0, [r5, r1] mov r3, #0xa0 mov r1, #1 str r3, [sp] mov r0, #0 str r0, [sp, #4] add r0, r5, #0 add r0, #0xa8 add r2, r1, #0 bl ov82_0223FC48 mov r1, #0x82 lsl r1, r1, #2 str r0, [r5, r1] add r1, #0xc ldr r0, [r5, r1] mov r1, #0 bl Party_GetMonByIndex add r1, r0, #0 mov r0, #0x82 lsl r0, r0, #2 ldr r0, [r5, r0] bl ov82_0223FD18 bl sub_02037474 cmp r0, #0 beq _0223EB12 mov r0, #1 mov r1, #0x10 bl sub_02009FE8 mov r0, #1 bl sub_0200A080 bl sub_0203A880 _0223EB12: mov r0, #0x69 bl ov82_0223FDB8 add r1, r5, #0 add r1, #0x8c str r0, [r1] ldr r0, _0223EB38 ; =ov82_0223EC0C add r1, r5, #0 bl Main_SetVBlankIntrCB add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _0223EB2C: .word 0x000001B9 _0223EB30: .word 0x04000304 _0223EB34: .word 0xFFFF7FFF _0223EB38: .word ov82_0223EC0C thumb_func_end ov82_0223E9E8 thumb_func_start ov82_0223EB3C ov82_0223EB3C: ; 0x0223EB3C push {r4, lr} add r4, r0, #0 bl ov82_0223EC48 ldr r0, [r4, #0x48] bl ov82_0223EC68 add r0, r4, #0 bl ov82_0223ED94 mov r0, #0x69 bl PaletteData_Init add r1, r4, #0 add r1, #0x94 str r0, [r1] add r0, r4, #0 add r0, #0x94 mov r1, #2 ldr r0, [r0] lsl r2, r1, #8 mov r3, #0x69 bl PaletteData_AllocBuffers add r0, r4, #0 add r0, #0x94 mov r2, #2 ldr r0, [r0] mov r1, #0 lsl r2, r2, #8 mov r3, #0x69 bl PaletteData_AllocBuffers add r0, r4, #0 mov r1, #3 bl ov82_0223EDF0 bl ov82_0223EE38 mov r0, #4 mov r1, #0 bl GfGfx_EngineATogglePlanes add r0, r4, #0 mov r1, #5 bl ov82_0223EE6C pop {r4, pc} thumb_func_end ov82_0223EB3C thumb_func_start ov82_0223EB9C ov82_0223EB9C: ; 0x0223EB9C push {r4, lr} add r4, r0, #0 mov r0, #0x85 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl Party_GetMonByIndex add r4, #0xa8 add r1, r0, #0 add r0, r4, #0 bl ov82_0223F95C pop {r4, pc} thumb_func_end ov82_0223EB9C thumb_func_start ov82_0223EBB8 ov82_0223EBB8: ; 0x0223EBB8 push {r4, lr} mov r2, #1 lsl r2, r2, #0x1a add r4, r0, #0 ldr r1, [r2] ldr r0, _0223EC08 ; =0xFFFF1FFF and r0, r1 str r0, [r2] mov r0, #0x1f mov r1, #0 bl GfGfx_EngineATogglePlanes mov r0, #0x1f mov r1, #0 bl GfGfx_EngineBTogglePlanes add r0, r4, #0 mov r1, #3 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #1 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #0 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #5 bl FreeBgTilemapBuffer add r0, r4, #0 mov r1, #4 bl FreeBgTilemapBuffer add r0, r4, #0 bl FreeToHeap pop {r4, pc} .balign 4, 0 _0223EC08: .word 0xFFFF1FFF thumb_func_end ov82_0223EBB8 thumb_func_start ov82_0223EC0C ov82_0223EC0C: ; 0x0223EC0C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 bne _0223EC3E add r0, r4, #0 add r0, #0x94 ldr r0, [r0] cmp r0, #0 beq _0223EC24 bl PaletteData_PushTransparentBuffers _0223EC24: ldr r0, [r4, #0x48] bl DoScheduledBgGpuUpdates bl GF_RunVramTransferTasks bl OamManager_ApplyAndResetBuffers ldr r3, _0223EC40 ; =0x027E0000 ldr r1, _0223EC44 ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] _0223EC3E: pop {r4, pc} .balign 4, 0 _0223EC40: .word 0x027E0000 _0223EC44: .word 0x00003FF8 thumb_func_end ov82_0223EC0C thumb_func_start ov82_0223EC48 ov82_0223EC48: ; 0x0223EC48 push {r4, lr} sub sp, #0x28 ldr r4, _0223EC64 ; =ov82_0223FEC4 add r3, sp, #0 mov r2, #5 _0223EC52: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _0223EC52 add r0, sp, #0 bl GfGfx_SetBanks add sp, #0x28 pop {r4, pc} .balign 4, 0 _0223EC64: .word ov82_0223FEC4 thumb_func_end ov82_0223EC48 thumb_func_start ov82_0223EC68 ov82_0223EC68: ; 0x0223EC68 push {r4, r5, lr} sub sp, #0x9c ldr r5, _0223ED78 ; =ov82_0223FE28 add r3, sp, #0x8c add r4, r0, #0 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, _0223ED7C ; =ov82_0223FE54 add r3, sp, #0x70 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 bl InitBgFromTemplate mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x69 bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #0 bl BgClearTilemapBufferAndCommit ldr r5, _0223ED80 ; =ov82_0223FE70 add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] add r0, r4, #0 mov r3, #0 bl InitBgFromTemplate mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x69 bl BG_ClearCharDataRange add r0, r4, #0 mov r1, #1 bl BgClearTilemapBufferAndCommit ldr r5, _0223ED84 ; =ov82_0223FE8C add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #3 str r0, [r3] add r0, r4, #0 mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #3 bl BgClearTilemapBufferAndCommit ldr r5, _0223ED88 ; =ov82_0223FEA8 add r3, sp, #0x1c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] add r0, r4, #0 mov r1, #5 mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #5 bl BgClearTilemapBufferAndCommit ldr r5, _0223ED8C ; =ov82_0223FE38 add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #4 str r0, [r3] add r0, r4, #0 mov r3, #0 bl InitBgFromTemplate add r0, r4, #0 mov r1, #4 bl BgClearTilemapBufferAndCommit ldr r1, _0223ED90 ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #1 strh r2, [r1] add r1, r0, #0 bl GfGfx_EngineATogglePlanes add sp, #0x9c pop {r4, r5, pc} .balign 4, 0 _0223ED78: .word ov82_0223FE28 _0223ED7C: .word ov82_0223FE54 _0223ED80: .word ov82_0223FE70 _0223ED84: .word ov82_0223FE8C _0223ED88: .word ov82_0223FEA8 _0223ED8C: .word ov82_0223FE38 _0223ED90: .word 0x04000008 thumb_func_end ov82_0223EC68 thumb_func_start ov82_0223ED94 ov82_0223ED94: ; 0x0223ED94 push {r3, r4, r5, lr} ldrb r0, [r0, #9] bl ov80_0223792C cmp r0, #0 beq _0223EDEA mov r0, #1 lsl r0, r0, #0x1a ldr r1, [r0] ldr r3, _0223EDEC ; =0xFFFF1FFF add r4, r0, #0 and r1, r3 str r1, [r0] add r4, #0x48 ldrh r5, [r4] mov r1, #0x3f mov r2, #0x1f bic r5, r1 orr r5, r2 strh r5, [r4] add r4, r0, #0 add r4, #0x4a ldrh r5, [r4] bic r5, r1 orr r2, r5 mov r1, #0x20 orr r1, r2 strh r1, [r4] mov r2, #0xf add r1, r0, #0 lsl r2, r2, #0xc add r1, #0x40 strh r2, [r1] add r1, r0, #0 mov r4, #0x10 add r1, #0x44 strh r4, [r1] ldr r1, [r0] add r2, r1, #0 and r2, r3 lsl r1, r4, #9 orr r1, r2 str r1, [r0] _0223EDEA: pop {r3, r4, r5, pc} .balign 4, 0 _0223EDEC: .word 0xFFFF1FFF thumb_func_end ov82_0223ED94 thumb_func_start ov82_0223EDF0 ov82_0223EDF0: ; 0x0223EDF0 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] add r4, r1, #0 mov r0, #0x69 str r0, [sp, #0xc] mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r2, [r5, #0x48] mov r1, #0x17 add r3, r4, #0 bl GfGfxLoader_LoadCharDataFromOpenNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x69 str r0, [sp, #0xc] mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r2, [r5, #0x48] mov r1, #0x18 add r3, r4, #0 bl GfGfxLoader_LoadScrnDataFromOpenNarc add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end ov82_0223EDF0 thumb_func_start ov82_0223EE38 ov82_0223EE38: ; 0x0223EE38 push {r3, r4, lr} sub sp, #4 mov r0, #0xb7 mov r1, #0x99 add r2, sp, #0 mov r3, #0x69 bl GfGfxLoader_GetPlttData add r4, r0, #0 ldr r0, [sp] mov r1, #0xc0 ldr r0, [r0, #0xc] bl DC_FlushRange ldr r0, [sp] mov r1, #0 ldr r0, [r0, #0xc] mov r2, #0xc0 bl GX_LoadBGPltt add r0, r4, #0 bl FreeToHeap add sp, #4 pop {r3, r4, pc} .balign 4, 0 thumb_func_end ov82_0223EE38 thumb_func_start ov82_0223EE6C ov82_0223EE6C: ; 0x0223EE6C push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] add r4, r1, #0 mov r0, #0x69 str r0, [sp, #0xc] mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r2, [r5, #0x48] mov r1, #0x81 add r3, r4, #0 bl GfGfxLoader_LoadCharDataFromOpenNarc mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x69 str r0, [sp, #0xc] mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r2, [r5, #0x48] mov r1, #0x82 add r3, r4, #0 bl GfGfxLoader_LoadScrnDataFromOpenNarc mov r0, #0x20 str r0, [sp] mov r0, #0x69 str r0, [sp, #4] mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xbe mov r2, #4 mov r3, #0 bl GfGfxLoader_GXLoadPalFromOpenNarc add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end ov82_0223EE6C thumb_func_start ov82_0223EECC ov82_0223EECC: ; 0x0223EECC push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #0x20 mov r2, #0 mov r3, #0x69 bl BG_ClearCharDataRange mov r1, #1 str r1, [sp] mov r0, #0 str r0, [sp, #4] str r1, [sp, #8] mov r0, #0x69 str r0, [sp, #0xc] mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r2, [r5, #0x48] mov r1, #0x85 add r3, r4, #0 bl GfGfxLoader_LoadCharDataFromOpenNarc mov r3, #0x20 str r3, [sp] mov r0, #0x69 str r0, [sp, #4] mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xc0 mov r2, #4 bl GfGfxLoader_GXLoadPalFromOpenNarc add sp, #0x10 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov82_0223EECC thumb_func_start ov82_0223EF1C ov82_0223EF1C: ; 0x0223EF1C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r1, sp, #0x38 ldrb r1, [r1] add r5, r0, #0 add r0, r4, #0 add r6, r2, #0 add r7, r3, #0 bl FillWindowPixelBuffer ldr r0, [r5, #0x20] ldr r2, [r5, #0x2c] add r1, r6, #0 bl ReadMsgDataIntoString ldr r0, [r5, #0x24] ldr r1, [r5, #0x28] ldr r2, [r5, #0x2c] bl StringExpandPlaceholders ldr r0, [sp, #0x28] add r2, sp, #0x18 str r0, [sp] ldr r0, [sp, #0x2c] add r3, r7, #0 str r0, [sp, #4] add r0, sp, #0x38 ldrb r1, [r0] ldrb r0, [r2, #0x18] ldrb r2, [r2, #0x1c] lsl r0, r0, #0x18 lsl r2, r2, #0x18 lsr r0, r0, #8 lsr r2, r2, #0x10 orr r0, r2 orr r0, r1 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1] ldr r2, [r5, #0x28] add r0, r4, #0 bl AddTextPrinterParameterizedWithColor add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end ov82_0223EF1C thumb_func_start ov82_0223EF7C ov82_0223EF7C: ; 0x0223EF7C push {r3, r4, r5, lr} sub sp, #0x18 mov r3, #1 add r4, r1, #0 str r3, [sp] mov r1, #0 str r1, [sp, #4] str r3, [sp, #8] mov r1, #2 str r1, [sp, #0xc] mov r1, #0xf str r1, [sp, #0x10] add r5, r0, #0 add r1, r5, #0 str r2, [sp, #0x14] add r1, #0x4c add r2, r4, #0 bl ov82_0223EF1C add r5, #0x4c add r4, r0, #0 add r0, r5, #0 bl CopyWindowToVram add r0, r4, #0 add sp, #0x18 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov82_0223EF7C thumb_func_start ov82_0223EFB4 ov82_0223EFB4: ; 0x0223EFB4 push {r3, lr} sub sp, #8 mov r3, #0 str r3, [sp] mov r3, #1 str r3, [sp, #4] ldr r0, [r0, #0x24] mov r3, #2 bl BufferIntegerAsString add sp, #8 pop {r3, pc} thumb_func_end ov82_0223EFB4 thumb_func_start ov82_0223EFCC ov82_0223EFCC: ; 0x0223EFCC push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r5, r1, #0 mov r1, #0x85 lsl r1, r1, #2 ldr r0, [r0, r1] mov r1, #0 add r7, r2, #0 add r4, r3, #0 bl Party_GetMonByIndex mov r1, #0xb3 add r2, sp, #0x10 bl GetMonData add r1, sp, #0x30 ldrb r1, [r1, #0x18] add r0, r5, #0 bl FillWindowPixelBuffer mov r0, #0xb mov r1, #0x69 bl String_New add r1, sp, #0x10 add r6, r0, #0 bl CopyU16ArrayToString str r4, [sp] mov r4, #0 str r4, [sp, #4] add r2, sp, #0x30 ldrb r0, [r2, #0x10] ldrb r3, [r2, #0x14] ldrb r1, [r2, #0x18] lsl r0, r0, #0x18 lsl r3, r3, #0x18 lsr r0, r0, #8 lsr r3, r3, #0x10 orr r0, r3 orr r0, r1 str r0, [sp, #8] str r4, [sp, #0xc] ldrb r1, [r2, #0x1c] add r0, r5, #0 add r2, r6, #0 add r3, r7, #0 bl AddTextPrinterParameterizedWithColor add r0, r6, #0 bl String_Delete add r0, r5, #0 bl CopyWindowToVram add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_end ov82_0223EFCC thumb_func_start ov82_0223F040 ov82_0223F040: ; 0x0223F040 push {r4, r5, r6, r7, lr} sub sp, #0x2c str r1, [sp, #0x10] add r0, r1, #0 add r1, sp, #0x30 ldrb r1, [r1, #0x10] add r4, r2, #0 add r6, r3, #0 bl FillWindowPixelBuffer ldr r2, _0223F108 ; =0x000002DF mov r0, #1 mov r1, #0x1b mov r3, #0x69 bl NewMsgDataFromNarc str r0, [sp, #0x24] mov r0, #0xb mov r1, #0x69 bl String_New add r5, r0, #0 mov r0, #0 lsl r2, r4, #0x18 lsr r3, r2, #8 lsl r2, r6, #0x18 lsr r2, r2, #0x10 str r0, [sp, #0x28] str r0, [sp, #0x20] mov r0, #0x10 add r1, sp, #0x30 str r0, [sp, #0x14] ldrb r0, [r1, #0x10] orr r2, r3 orr r0, r2 str r0, [sp, #0x1c] ldrb r0, [r1, #0x14] str r0, [sp, #0x18] _0223F08C: mov r4, #0 mov r6, #1 _0223F090: ldr r0, [sp, #0x20] add r7, r4, r0 lsl r0, r7, #0x18 lsr r0, r0, #0x18 bl ov80_02237920 cmp r0, #0xfe beq _0223F0D4 add r0, r5, #0 bl String_SetEmpty lsl r0, r7, #0x18 lsr r0, r0, #0x18 bl ov80_02237920 add r1, r0, #0 ldr r0, [sp, #0x24] add r2, r5, #0 bl ReadMsgDataIntoString ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, [sp, #0x1c] add r2, r5, #0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp, #0x10] add r3, r6, #0 bl AddTextPrinterParameterizedWithColor _0223F0D4: add r4, r4, #1 add r6, #0x40 cmp r4, #4 blt _0223F090 ldr r0, [sp, #0x20] add r0, r0, #4 str r0, [sp, #0x20] ldr r0, [sp, #0x14] add r0, #0x24 str r0, [sp, #0x14] ldr r0, [sp, #0x28] add r0, r0, #1 str r0, [sp, #0x28] cmp r0, #5 blt _0223F08C add r0, r5, #0 bl String_Delete ldr r0, [sp, #0x24] bl DestroyMsgData ldr r0, [sp, #0x10] bl CopyWindowToVram add sp, #0x2c pop {r4, r5, r6, r7, pc} .balign 4, 0 _0223F108: .word 0x000002DF thumb_func_end ov82_0223F040 thumb_func_start ov82_0223F10C ov82_0223F10C: ; 0x0223F10C push {r3, r4, lr} sub sp, #0xc add r4, r1, #0 str r4, [sp] str r3, [sp, #4] ldr r1, [sp, #0x18] add r0, #0x98 str r1, [sp, #8] add r1, r2, #0 ldr r0, [r0] mov r2, #2 mov r3, #0 bl PrintUIntOnWindow add r0, r4, #0 bl ScheduleWindowCopyToVram add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_end ov82_0223F10C thumb_func_start ov82_0223F134 ov82_0223F134: ; 0x0223F134 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 mov r0, #0 str r0, [sp, #0x10] str r0, [sp, #0xc] mov r0, #4 str r1, [sp, #4] str r0, [sp, #8] _0223F146: mov r4, #0 mov r5, #0x12 _0223F14A: ldr r0, [sp, #0xc] add r7, r4, r0 lsl r0, r7, #0x18 lsr r0, r0, #0x18 bl ov80_02237920 cmp r0, #0xfe beq _0223F18A cmp r0, #9 beq _0223F18A lsl r0, r7, #0x18 lsr r0, r0, #0x18 bl ov82_0223F6C4 mov r1, #0x86 lsl r1, r1, #2 ldr r1, [r6, r1] bl sub_02030BD0 add r0, r0, #1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #0xa bls _0223F17C mov r2, #0xa _0223F17C: ldr r0, [sp, #8] ldr r1, [sp, #4] str r0, [sp] add r0, r6, #0 add r3, r5, #0 bl ov82_0223F10C _0223F18A: add r4, r4, #1 add r5, #0x40 cmp r4, #4 blt _0223F14A ldr r0, [sp, #0xc] add r0, r0, #4 str r0, [sp, #0xc] ldr r0, [sp, #8] add r0, #0x24 str r0, [sp, #8] ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] cmp r0, #5 blt _0223F146 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end ov82_0223F134 thumb_func_start ov82_0223F1AC ov82_0223F1AC: ; 0x0223F1AC push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r1, #0 add r1, sp, #0x18 ldrb r1, [r1, #0x18] add r0, r5, #0 add r7, r2, #0 add r4, r3, #0 bl FillWindowPixelBuffer ldr r2, _0223F220 ; =0x000001B9 mov r0, #1 mov r1, #0x1b mov r3, #0x69 bl NewMsgDataFromNarc mov r1, #0x25 str r0, [sp, #0x10] bl NewString_ReadMsgData add r6, r0, #0 add r0, r5, #0 mov r1, #0xf bl FillWindowPixelBuffer str r4, [sp] mov r4, #0 str r4, [sp, #4] add r2, sp, #0x18 ldrb r0, [r2, #0x10] ldrb r3, [r2, #0x14] ldrb r1, [r2, #0x18] lsl r0, r0, #0x18 lsl r3, r3, #0x18 lsr r0, r0, #8 lsr r3, r3, #0x10 orr r0, r3 orr r0, r1 str r0, [sp, #8] str r4, [sp, #0xc] ldrb r1, [r2, #0x1c] add r0, r5, #0 add r2, r6, #0 add r3, r7, #0 bl AddTextPrinterParameterizedWithColor add r0, r6, #0 bl String_Delete ldr r0, [sp, #0x10] bl DestroyMsgData add r0, r5, #0 bl CopyWindowToVram add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _0223F220: .word 0x000001B9 thumb_func_end ov82_0223F1AC thumb_func_start ov82_0223F224 ov82_0223F224: ; 0x0223F224 push {r4, lr} add r4, r0, #0 mov r0, #0x69 mov r1, #0x3c bl AllocFromHeap add r1, r4, #0 add r1, #0xa4 str r0, [r1] add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #0 mov r2, #0x3c bl memset mov r0, #0x85 add r1, r4, #0 lsl r0, r0, #2 add r1, #0xa4 ldr r2, [r4, r0] ldr r1, [r1] str r2, [r1] add r2, r4, #0 add r2, #0xa4 ldr r2, [r2] mov r1, #1 strb r1, [r2, #0x11] add r2, r4, #0 add r2, #0x9c ldr r3, [r2] add r2, r4, #0 add r2, #0xa4 ldr r2, [r2] str r3, [r2, #4] add r2, r4, #0 add r2, #0xa4 ldr r2, [r2] strb r1, [r2, #0x12] ldr r0, [r4, r0] bl Party_GetCount add r1, r4, #0 add r1, #0xa4 ldr r1, [r1] strb r0, [r1, #0x13] add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #0 strb r1, [r0, #0x14] add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] strh r1, [r0, #0x18] add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] bl SaveArray_IsNatDexEnabled add r1, r4, #0 add r1, #0xa4 ldr r1, [r1] str r0, [r1, #0x1c] add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] bl sub_02088288 add r1, r4, #0 add r1, #0xa4 ldr r1, [r1] str r0, [r1, #0x2c] add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] bl Save_SpecialRibbons_Get add r1, r4, #0 add r1, #0xa4 ldr r1, [r1] str r0, [r1, #0x20] add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #0 str r1, [r0, #0x34] add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] ldr r1, _0223F2F4 ; =_0223FE20 bl sub_02089D40 add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] bl Save_PlayerData_GetProfileAddr add r4, #0xa4 add r1, r0, #0 ldr r0, [r4] bl sub_0208AD34 pop {r4, pc} .balign 4, 0 _0223F2F4: .word _0223FE20 thumb_func_end ov82_0223F224 thumb_func_start ov82_0223F2F8 ov82_0223F2F8: ; 0x0223F2F8 mov r3, #0 strb r3, [r0, #8] str r2, [r1] bx lr thumb_func_end ov82_0223F2F8 thumb_func_start ov82_0223F300 ov82_0223F300: ; 0x0223F300 push {r3, r4, r5, lr} ldr r1, _0223F480 ; =gSystem add r4, r0, #0 ldr r2, [r1, #0x48] mov r1, #0x20 mov r0, #0 tst r1, r2 beq _0223F34A ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #0xfe beq _0223F31E ldrb r0, [r4, #0xd] strb r0, [r4, #0xc] _0223F31E: ldrb r0, [r4, #0xd] mov r1, #0x1e lsr r3, r0, #0x1f lsl r2, r0, #0x1e sub r2, r2, r3 ror r2, r1 add r1, r3, r2 bne _0223F334 add r0, r0, #3 strb r0, [r4, #0xd] b _0223F348 _0223F334: bl ov80_02237920 cmp r0, #0xfe bne _0223F342 mov r0, #0x10 strb r0, [r4, #0xd] b _0223F348 _0223F342: ldrb r0, [r4, #0xd] sub r0, r0, #1 strb r0, [r4, #0xd] _0223F348: mov r0, #1 _0223F34A: ldr r1, _0223F480 ; =gSystem ldr r2, [r1, #0x48] mov r1, #0x10 tst r1, r2 beq _0223F390 ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #0xfe beq _0223F362 ldrb r0, [r4, #0xd] strb r0, [r4, #0xc] _0223F362: ldrb r0, [r4, #0xd] mov r1, #0x1e lsr r3, r0, #0x1f lsl r2, r0, #0x1e sub r2, r2, r3 ror r2, r1 add r1, r3, r2 cmp r1, #3 bne _0223F37A sub r0, r0, #3 strb r0, [r4, #0xd] b _0223F38E _0223F37A: bl ov80_02237920 cmp r0, #0xfe bne _0223F388 mov r0, #0x13 strb r0, [r4, #0xd] b _0223F38E _0223F388: ldrb r0, [r4, #0xd] add r0, r0, #1 strb r0, [r4, #0xd] _0223F38E: mov r0, #1 _0223F390: ldr r1, _0223F480 ; =gSystem ldr r2, [r1, #0x48] mov r1, #0x40 tst r1, r2 beq _0223F3FC ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #0xfe beq _0223F3A8 ldrb r0, [r4, #0xd] strb r0, [r4, #0xc] _0223F3A8: ldrb r0, [r4, #0xd] cmp r0, #4 bhs _0223F3B4 add r0, #0x10 strb r0, [r4, #0xd] b _0223F3FA _0223F3B4: bl ov80_02237920 cmp r0, #0xfe bne _0223F3F4 ldrb r0, [r4, #0xc] cmp r0, #0x10 bne _0223F3C8 mov r0, #0xd strb r0, [r4, #0xd] b _0223F3FA _0223F3C8: cmp r0, #0x13 bne _0223F3D2 mov r0, #0xe strb r0, [r4, #0xd] b _0223F3FA _0223F3D2: cmp r0, #0xd beq _0223F3DA cmp r0, #1 bne _0223F3E0 _0223F3DA: mov r0, #0xd strb r0, [r4, #0xd] b _0223F3FA _0223F3E0: cmp r0, #0xe beq _0223F3E8 cmp r0, #2 bne _0223F3EE _0223F3E8: mov r0, #0xe strb r0, [r4, #0xd] b _0223F3FA _0223F3EE: mov r0, #0xd strb r0, [r4, #0xd] b _0223F3FA _0223F3F4: ldrb r0, [r4, #0xd] sub r0, r0, #4 strb r0, [r4, #0xd] _0223F3FA: mov r0, #1 _0223F3FC: ldr r1, _0223F480 ; =gSystem ldr r2, [r1, #0x48] mov r1, #0x80 tst r1, r2 beq _0223F424 ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #0xfe beq _0223F414 ldrb r0, [r4, #0xd] strb r0, [r4, #0xc] _0223F414: ldrb r0, [r4, #0xd] cmp r0, #0x10 blo _0223F41E sub r0, #0x10 b _0223F420 _0223F41E: add r0, r0, #4 _0223F420: strb r0, [r4, #0xd] mov r0, #1 _0223F424: cmp r0, #1 bne _0223F44A ldr r0, _0223F484 ; =0x000005DC bl PlaySE add r0, r4, #0 bl ov82_0223F558 add r5, r0, #0 add r0, r4, #0 bl ov82_0223F570 add r2, r0, #0 mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r5, #0 bl ov82_0223FCBC _0223F44A: ldrb r0, [r4, #0xd] bl ov80_02237920 cmp r0, #0xfe bne _0223F470 mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl ov82_0223FCFC mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0x80 mov r2, #0xa8 bl ov82_0223FCBC pop {r3, r4, r5, pc} _0223F470: mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl ov82_0223FCFC pop {r3, r4, r5, pc} nop _0223F480: .word gSystem _0223F484: .word 0x000005DC thumb_func_end ov82_0223F300 thumb_func_start ov82_0223F488 ov82_0223F488: ; 0x0223F488 push {r3, r4, r5, r6, r7, lr} str r0, [sp] ldr r0, _0223F538 ; =gSystem + 0x40 ldrh r1, [r0, #0x24] cmp r1, #0 beq _0223F532 ldrh r4, [r0, #0x20] ldrh r5, [r0, #0x22] mov r7, #0 mov r3, #3 _0223F49C: add r2, r3, #0 add r2, #0x23 mov r1, #0 mov r6, #1 _0223F4A4: add r0, r6, #0 add r0, #0x3f cmp r6, r4 bgt _0223F522 cmp r4, r0 bgt _0223F522 cmp r3, r5 bgt _0223F522 cmp r5, r2 bgt _0223F522 lsl r0, r7, #2 add r1, r1, r0 ldr r0, [sp] strb r1, [r0, #0xd] bl ov82_0223F558 add r4, r0, #0 ldr r0, [sp] bl ov82_0223F570 add r2, r0, #0 mov r1, #0x81 ldr r0, [sp] lsl r1, r1, #2 ldr r0, [r0, r1] add r1, r4, #0 bl ov82_0223FCBC ldr r0, [sp] ldrb r0, [r0, #0xd] bl ov80_02237920 cmp r0, #0xfe bne _0223F508 mov r1, #0x81 ldr r0, [sp] lsl r1, r1, #2 ldr r0, [r0, r1] mov r1, #2 bl ov82_0223FCFC mov r1, #0x81 ldr r0, [sp] lsl r1, r1, #2 ldr r0, [r0, r1] mov r1, #0x80 mov r2, #0xa8 bl ov82_0223FCBC b _0223F516 _0223F508: mov r1, #0x81 ldr r0, [sp] lsl r1, r1, #2 ldr r0, [r0, r1] mov r1, #1 bl ov82_0223FCFC _0223F516: ldr r1, [sp] mov r0, #1 add r1, #0x90 strb r0, [r1] str r1, [sp] pop {r3, r4, r5, r6, r7, pc} _0223F522: add r1, r1, #1 add r6, #0x40 cmp r1, #4 blt _0223F4A4 add r7, r7, #1 add r3, #0x24 cmp r7, #5 blt _0223F49C _0223F532: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _0223F538: .word gSystem + 0x40 thumb_func_end ov82_0223F488 thumb_func_start ov82_0223F53C ov82_0223F53C: ; 0x0223F53C ldr r1, _0223F554 ; =gSystem ldr r2, [r1, #0x48] mov r1, #1 tst r2, r1 beq _0223F550 mov r2, #0 add r0, #0x90 strb r2, [r0] add r0, r1, #0 bx lr _0223F550: mov r0, #0 bx lr .balign 4, 0 _0223F554: .word gSystem thumb_func_end ov82_0223F53C thumb_func_start ov82_0223F558 ov82_0223F558: ; 0x0223F558 ldrb r0, [r0, #0xd] lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #6 add r0, #0x20 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_end ov82_0223F558 thumb_func_start ov82_0223F570 ov82_0223F570: ; 0x0223F570 ldrb r0, [r0, #0xd] lsr r1, r0, #2 mov r0, #0x24 mul r0, r1 add r0, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_end ov82_0223F570 thumb_func_start ov82_0223F580 ov82_0223F580: ; 0x0223F580 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r5, r1, #0 bl ov82_0223F6E4 cmp r0, #1 bne _0223F5A6 mov r4, #0 mov r6, #3 _0223F592: lsl r1, r4, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 add r2, r6, #0 bl ov82_0223F5E0 add r4, r4, #1 cmp r4, #0x11 blt _0223F592 b _0223F5D6 _0223F5A6: mov r7, #0x86 mov r4, #0 lsl r7, r7, #2 _0223F5AC: lsl r0, r4, #0x18 ldr r1, [r6, r7] lsr r0, r0, #0x18 bl sub_02030BD0 cmp r0, #0xa blo _0223F5C6 lsl r1, r4, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #3 bl ov82_0223F5E0 _0223F5C6: add r4, r4, #1 cmp r4, #0x11 blt _0223F5AC add r0, r5, #0 mov r1, #0x13 mov r2, #3 bl ov82_0223F5E0 _0223F5D6: add r0, r5, #0 mov r1, #3 bl ScheduleBgTilemapBufferTransfer pop {r3, r4, r5, r6, r7, pc} thumb_func_end ov82_0223F580 thumb_func_start ov82_0223F5E0 ov82_0223F5E0: ; 0x0223F5E0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 add r4, r1, #0 add r5, r2, #0 bne _0223F5F0 mov r1, #0 b _0223F602 _0223F5F0: cmp r5, #1 bne _0223F5F8 mov r1, #5 b _0223F602 _0223F5F8: cmp r5, #2 bne _0223F600 mov r1, #4 b _0223F602 _0223F600: mov r1, #3 _0223F602: lsr r3, r4, #0x1f lsl r2, r4, #0x1e sub r2, r2, r3 mov r0, #0x1e ror r2, r0 add r0, r3, r2 lsl r0, r0, #3 str r0, [sp, #0xc] lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r2, r4, #0x1d mov ip, r0 sub r2, r2, r3 mov r0, #0x1d ror r2, r0 add r6, r3, r2 cmp r6, #4 bge _0223F62A mov r2, #5 b _0223F62C _0223F62A: mov r2, #4 _0223F62C: cmp r4, #4 bhs _0223F634 mov r3, #0 b _0223F64E _0223F634: cmp r4, #8 bhs _0223F63C mov r3, #5 b _0223F64E _0223F63C: cmp r4, #0xc bhs _0223F644 mov r3, #9 b _0223F64E _0223F644: cmp r4, #0x10 bhs _0223F64C mov r3, #0xe b _0223F64E _0223F64C: mov r3, #0x12 _0223F64E: mov r0, #8 str r0, [sp] str r2, [sp, #4] str r1, [sp, #8] add r0, r7, #0 mov r1, #3 mov r2, ip bl BgTilemapRectChangePalette cmp r5, #0 bne _0223F6C0 ldr r0, [sp, #0xc] lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r6, #4 bge _0223F672 mov r1, #2 b _0223F674 _0223F672: mov r1, #3 _0223F674: cmp r4, #4 bhs _0223F67C mov r3, #2 b _0223F696 _0223F67C: cmp r4, #8 bhs _0223F684 mov r3, #6 b _0223F696 _0223F684: cmp r4, #0xc bhs _0223F68C mov r3, #0xb b _0223F696 _0223F68C: cmp r4, #0x10 bhs _0223F694 mov r3, #0xf b _0223F696 _0223F694: mov r3, #0x14 _0223F696: cmp r4, #9 bhs _0223F6AE mov r0, #1 str r0, [sp] str r1, [sp, #4] str r0, [sp, #8] add r0, r7, #0 mov r1, #3 bl BgTilemapRectChangePalette add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _0223F6AE: mov r0, #1 str r0, [sp] str r1, [sp, #4] mov r0, #2 str r0, [sp, #8] add r0, r7, #0 mov r1, #3 bl BgTilemapRectChangePalette _0223F6C0: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end ov82_0223F5E0 thumb_func_start ov82_0223F6C4 ov82_0223F6C4: ; 0x0223F6C4 cmp r0, #0x11 blo _0223F6CA mov r0, #0x11 _0223F6CA: bx lr thumb_func_end ov82_0223F6C4 thumb_func_start ov82_0223F6CC ov82_0223F6CC: ; 0x0223F6CC ldrb r1, [r0, #9] cmp r1, #0 bne _0223F6E0 ldrh r0, [r0, #0x1c] cmp r0, #0x32 beq _0223F6DC cmp r0, #0xaa bne _0223F6E0 _0223F6DC: mov r0, #1 bx lr _0223F6E0: mov r0, #0 bx lr thumb_func_end ov82_0223F6CC thumb_func_start ov82_0223F6E4 ov82_0223F6E4: ; 0x0223F6E4 ldrb r0, [r0, #0x1e] bx lr thumb_func_end ov82_0223F6E4 thumb_func_start ov82_0223F6E8 ov82_0223F6E8: ; 0x0223F6E8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldrb r0, [r5, #9] add r4, r1, #0 add r7, r2, #0 bl ov80_0223792C cmp r0, #0 bne _0223F6FE mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223F6FE: cmp r4, #4 beq _0223F70C cmp r4, #5 beq _0223F718 cmp r4, #6 beq _0223F726 b _0223F732 _0223F70C: add r0, r5, #0 add r1, r4, #0 mov r6, #0x27 bl ov82_0223F74C b _0223F732 _0223F718: add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 mov r6, #0x28 bl ov82_0223F770 b _0223F732 _0223F726: add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 mov r6, #0x29 bl ov82_0223F808 _0223F732: mov r1, #0x89 lsl r1, r1, #2 add r0, r6, #0 add r1, r5, r1 mov r2, #0x2c bl sub_02037030 cmp r0, #1 bne _0223F748 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0223F748: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end ov82_0223F6E8 thumb_func_start ov82_0223F74C ov82_0223F74C: ; 0x0223F74C push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0xa0 ldr r0, [r0] add r4, r1, #0 bl Save_PlayerData_GetProfileAddr mov r0, #0x89 lsl r0, r0, #2 strh r4, [r5, r0] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov82_0223F74C thumb_func_start ov82_0223F764 ov82_0223F764: ; 0x0223F764 push {r4, lr} add r4, r0, #0 bl sub_0203769C cmp r4, r0 pop {r4, pc} thumb_func_end ov82_0223F764 thumb_func_start ov82_0223F770 ov82_0223F770: ; 0x0223F770 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x89 lsl r0, r0, #2 strh r1, [r5, r0] add r4, r2, #0 add r0, r0, #2 strh r4, [r5, r0] bl sub_0203769C cmp r0, #0 bne _0223F790 ldrb r0, [r5, #0x18] cmp r0, #0xff bne _0223F790 strb r4, [r5, #0x18] _0223F790: ldrb r1, [r5, #0x18] mov r0, #0x8a lsl r0, r0, #2 strh r1, [r5, r0] sub r0, #0x14 ldr r0, [r5, r0] mov r1, #0 bl Party_GetMonByIndex mov r1, #0xa1 mov r2, #0 bl GetMonData ldr r1, _0223F7B0 ; =0x0000022A strh r0, [r5, r1] pop {r3, r4, r5, pc} .balign 4, 0 _0223F7B0: .word 0x0000022A thumb_func_end ov82_0223F770 thumb_func_start ov82_0223F7B4 ov82_0223F7B4: ; 0x0223F7B4 push {r4, r5, r6, lr} add r4, r3, #0 add r6, r0, #0 ldrb r0, [r4, #0x16] add r5, r2, #0 add r0, r0, #1 strb r0, [r4, #0x16] bl sub_0203769C cmp r6, r0 beq _0223F804 ldrh r1, [r5, #2] mov r0, #0x9f lsl r0, r0, #2 strb r1, [r4, r0] bl sub_0203769C cmp r0, #0 bne _0223F7F6 ldrb r0, [r4, #0x18] cmp r0, #0xff beq _0223F7EA mov r0, #0x9f mov r1, #0 lsl r0, r0, #2 strb r1, [r4, r0] b _0223F7FA _0223F7EA: mov r0, #0x9f lsl r0, r0, #2 ldrb r0, [r4, r0] add r0, #0x14 strb r0, [r4, #0x18] b _0223F7FA _0223F7F6: ldrh r0, [r5, #4] strb r0, [r4, #0x18] _0223F7FA: mov r0, #0x87 lsl r0, r0, #2 ldrh r1, [r5, #6] ldr r0, [r4, r0] strh r1, [r0] _0223F804: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_end ov82_0223F7B4 thumb_func_start ov82_0223F808 ov82_0223F808: ; 0x0223F808 mov r3, #0x89 lsl r3, r3, #2 strh r1, [r0, r3] add r1, r3, #2 strh r2, [r0, r1] bx lr thumb_func_end ov82_0223F808 thumb_func_start ov82_0223F814 ov82_0223F814: ; 0x0223F814 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r2, #0 add r6, r3, #0 bl sub_0203769C cmp r5, r0 beq _0223F82E ldrh r1, [r4, #2] cmp r1, #0 beq _0223F82E ldr r0, _0223F830 ; =0x0000027D strb r1, [r6, r0] _0223F82E: pop {r4, r5, r6, pc} .balign 4, 0 _0223F830: .word 0x0000027D thumb_func_end ov82_0223F814 thumb_func_start ov82_0223F834 ov82_0223F834: ; 0x0223F834 push {r3, lr} ldrb r1, [r0, #0xf] cmp r1, #1 bne _0223F848 mov r1, #0 strb r1, [r0, #0xf] add r0, #0x8c ldr r0, [r0] bl YesNoPrompt_Reset _0223F848: pop {r3, pc} .balign 4, 0 thumb_func_end ov82_0223F834 thumb_func_start ov82_0223F84C ov82_0223F84C: ; 0x0223F84C push {r4, lr} add r4, r0, #0 mov r0, #0x82 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl ov82_0223FCB0 add r0, r4, #0 add r0, #0x9c ldr r0, [r0] bl Options_GetFrame add r1, r0, #0 add r0, r4, #0 add r0, #0x4c bl ov82_0223FD78 ldrb r0, [r4, #0xd] bl ov80_02237920 add r2, r0, #0 ldr r0, [r4, #0x24] mov r1, #0 bl BufferTypeName ldrb r0, [r4, #0xd] bl ov82_0223F6C4 mov r1, #0x86 lsl r1, r1, #2 ldr r1, [r4, r1] bl sub_02030BD0 add r0, r0, #1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #0xa bls _0223F89C mov r2, #0xa _0223F89C: add r0, r4, #0 mov r1, #1 bl ov82_0223EFB4 add r0, r4, #0 bl ov82_0223F6E4 cmp r0, #1 bne _0223F8B2 mov r1, #0x1f b _0223F8B4 _0223F8B2: mov r1, #0x18 _0223F8B4: add r0, r4, #0 mov r2, #1 bl ov82_0223EF7C strb r0, [r4, #0xa] mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl ov82_0223FCFC add r2, r4, #0 add r0, r4, #0 add r2, #0x90 add r0, #0x8c ldrb r2, [r2] ldr r0, [r0] ldr r1, [r4, #0x48] bl ov82_0223FDC8 mov r0, #1 strb r0, [r4, #0xf] pop {r4, pc} .balign 4, 0 thumb_func_end ov82_0223F84C thumb_func_start ov82_0223F8E4 ov82_0223F8E4: ; 0x0223F8E4 push {r4, lr} add r4, r0, #0 bl ov82_0223F90C ldrb r1, [r4, #0xd] ldr r0, [r4, #0x48] mov r2, #0 bl ov82_0223F5E0 ldr r0, [r4, #0x48] mov r1, #3 bl ScheduleBgTilemapBufferTransfer mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl ov82_0223FCFC pop {r4, pc} thumb_func_end ov82_0223F8E4 thumb_func_start ov82_0223F90C ov82_0223F90C: ; 0x0223F90C push {r4, lr} sub sp, #0x10 add r4, r0, #0 mov r0, #0x82 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl ov82_0223FCB0 add r0, r4, #0 add r0, #0x4c mov r1, #0 bl ClearFrameAndWindow2 mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r2, #0 add r0, r4, #0 add r4, #0x5c str r2, [sp, #8] add r1, r4, #0 add r3, r2, #0 str r2, [sp, #0xc] bl ov82_0223EFCC add sp, #0x10 pop {r4, pc} .balign 4, 0 thumb_func_end ov82_0223F90C thumb_func_start ov82_0223F948 ov82_0223F948: ; 0x0223F948 ldr r3, _0223F954 ; =G2x_SetBlendBrightness_ add r2, r0, #0 ldr r0, _0223F958 ; =0x04000050 mov r1, #0x1e bx r3 nop _0223F954: .word G2x_SetBlendBrightness_ _0223F958: .word 0x04000050 thumb_func_end ov82_0223F948 thumb_func_start ov82_0223F95C ov82_0223F95C: ; 0x0223F95C push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 str r1, [sp, #0x14] bl ov82_0223FC14 bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x69 str r2, [sp, #0x10] add r2, r0, #0 bl OamManager_Create mov r0, #2 add r1, r5, #4 mov r2, #0x69 bl G2dRenderer_Init ldr r4, _0223FB04 ; =ov82_0223FEEC str r0, [r5] mov r7, #0 add r6, r5, #0 _0223F996: ldrb r0, [r4] add r1, r7, #0 mov r2, #0x69 bl Create2DGfxResObjMan mov r1, #0x4b lsl r1, r1, #2 str r0, [r6, r1] add r7, r7, #1 add r4, r4, #1 add r6, r6, #4 cmp r7, #4 blt _0223F996 mov r0, #0 str r0, [sp] mov r3, #1 str r3, [sp, #4] mov r0, #0x69 str r0, [sp, #8] add r0, #0xc3 ldr r0, [r5, r0] mov r1, #0xb8 mov r2, #0xc bl AddCharResObjFromNarc mov r1, #0x4f lsl r1, r1, #2 str r0, [r5, r1] mov r3, #0 str r3, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x69 str r0, [sp, #0xc] add r0, #0xc7 ldr r0, [r5, r0] mov r1, #0xb8 mov r2, #0x36 bl AddPlttResObjFromNarc mov r1, #5 lsl r1, r1, #6 str r0, [r5, r1] mov r0, #0 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] add r0, #0xcb ldr r0, [r5, r0] mov r1, #0xb8 mov r2, #0xe mov r3, #1 bl AddCellOrAnimResObjFromNarc mov r1, #0x51 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] add r0, #0xcf ldr r0, [r5, r0] mov r1, #0xb8 mov r2, #0xd mov r3, #1 bl AddCellOrAnimResObjFromNarc mov r1, #0x52 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0x14 mov r1, #0x69 bl NARC_New str r0, [sp, #0x18] ldr r0, [sp, #0x14] bl Pokemon_GetIconNaix add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] add r0, #0xc3 ldr r0, [r5, r0] ldr r1, [sp, #0x18] mov r3, #0 bl AddCharResObjFromOpenNarc mov r1, #0x53 lsl r1, r1, #2 str r0, [r5, r1] bl sub_02074490 add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] mov r0, #0x69 str r0, [sp, #0xc] add r0, #0xc7 ldr r0, [r5, r0] mov r1, #0x14 mov r3, #0 bl AddPlttResObjFromNarc mov r1, #0x15 lsl r1, r1, #4 str r0, [r5, r1] bl sub_02074498 add r2, r0, #0 mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] add r0, #0xcb ldr r0, [r5, r0] ldr r1, [sp, #0x18] mov r3, #0 bl AddCellOrAnimResObjFromOpenNarc mov r1, #0x55 lsl r1, r1, #2 str r0, [r5, r1] bl sub_020744A4 add r2, r0, #0 mov r0, #1 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x69 str r0, [sp, #8] add r0, #0xcf ldr r0, [r5, r0] ldr r1, [sp, #0x18] mov r3, #0 bl AddCellOrAnimResObjFromOpenNarc mov r1, #0x56 lsl r1, r1, #2 add r7, r1, #0 add r6, r1, #0 str r0, [r5, r1] mov r4, #0 sub r7, #0x1c sub r6, #0x18 _0223FAD4: ldr r0, [r5, r7] bl sub_0200ACF0 ldr r0, [r5, r6] bl sub_0200AF94 add r4, r4, #1 add r5, #0x10 cmp r4, #2 blt _0223FAD4 mov r0, #0x10 mov r1, #1 bl GfGfx_EngineBTogglePlanes mov r0, #0x10 mov r1, #1 bl GfGfx_EngineATogglePlanes ldr r0, [sp, #0x18] bl NARC_Delete add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _0223FB04: .word ov82_0223FEEC thumb_func_end ov82_0223F95C thumb_func_start ov82_0223FB08 ov82_0223FB08: ; 0x0223FB08 push {r4, r5, r6, lr} sub sp, #0x80 add r5, r0, #0 mov r0, #0 str r1, [sp] mvn r0, r0 str r0, [sp, #4] add r4, r3, #0 str r0, [sp, #8] mov r3, #0 str r3, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] mov r0, #0x4b lsl r0, r0, #2 add r6, r2, #0 ldr r2, [r5, r0] str r2, [sp, #0x14] add r2, r0, #4 ldr r2, [r5, r2] str r2, [sp, #0x18] add r2, r0, #0 add r2, #8 ldr r2, [r5, r2] add r0, #0xc str r2, [sp, #0x1c] ldr r0, [r5, r0] add r2, r1, #0 str r0, [sp, #0x20] str r3, [sp, #0x24] str r3, [sp, #0x28] add r0, sp, #0x5c add r3, r1, #0 bl CreateSpriteResourcesHeader ldr r0, [r5] mov r1, #0 str r0, [sp, #0x2c] add r0, sp, #0x5c str r0, [sp, #0x30] mov r0, #1 lsl r0, r0, #0xc str r1, [sp, #0x34] str r1, [sp, #0x38] str r1, [sp, #0x3c] str r0, [sp, #0x40] str r0, [sp, #0x44] str r0, [sp, #0x48] add r0, sp, #0x2c strh r1, [r0, #0x20] str r4, [sp, #0x50] add r0, sp, #0x80 ldrb r0, [r0, #0x10] cmp r0, #0 bne _0223FB7C mov r0, #1 str r0, [sp, #0x54] b _0223FB80 _0223FB7C: mov r0, #2 str r0, [sp, #0x54] _0223FB80: mov r0, #0x69 str r0, [sp, #0x58] add r0, sp, #0x80 ldrb r0, [r0, #0x10] cmp r0, #1 bne _0223FB96 mov r0, #3 ldr r1, [sp, #0x38] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0x38] _0223FB96: add r0, sp, #0x2c bl CreateSprite mov r1, #1 add r4, r0, #0 bl Set2dSpriteAnimActiveFlag mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl sub_02024868 add r0, r4, #0 add r1, r6, #0 bl Set2dSpriteAnimSeqNo add r0, r4, #0 add sp, #0x80 pop {r4, r5, r6, pc} thumb_func_end ov82_0223FB08 thumb_func_start ov82_0223FBBC ov82_0223FBBC: ; 0x0223FBBC push {r3, r4, r5, r6, r7, lr} mov r7, #5 add r5, r0, #0 mov r4, #0 lsl r7, r7, #6 _0223FBC6: lsl r0, r4, #4 add r6, r5, r0 mov r0, #0x4f lsl r0, r0, #2 ldr r0, [r6, r0] bl sub_0200AEB0 ldr r0, [r6, r7] bl sub_0200B0A8 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #2 blo _0223FBC6 mov r6, #0x4b mov r4, #0 lsl r6, r6, #2 _0223FBEA: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, r6] bl Destroy2DGfxResObjMan add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _0223FBEA ldr r0, [r5] bl SpriteList_Delete bl OamManager_Free bl sub_0202168C bl sub_02022608 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_end ov82_0223FBBC thumb_func_start ov82_0223FC14 ov82_0223FC14: ; 0x0223FC14 push {r4, lr} sub sp, #0x10 ldr r4, _0223FC44 ; =ov82_0223FEF0 add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} mov r1, #0x10 add r0, r2, #0 add r2, r1, #0 bl sub_020215C0 mov r0, #4 mov r1, #0x69 bl sub_02022588 bl sub_020216C8 bl sub_02022638 add sp, #0x10 pop {r4, pc} .balign 4, 0 _0223FC44: .word ov82_0223FEF0 thumb_func_end ov82_0223FC14 thumb_func_start ov82_0223FC48 ov82_0223FC48: ; 0x0223FC48 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 add r7, r1, #0 mov r0, #0x69 mov r1, #0x14 str r2, [sp, #4] add r5, r3, #0 bl AllocFromHeap add r4, r0, #0 add r2, r4, #0 mov r1, #0x14 mov r0, #0 _0223FC64: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _0223FC64 ldr r0, [sp, #0x2c] mov r3, #0 str r0, [r4, #0xc] ldr r2, [sp, #4] str r3, [sp] add r0, r6, #0 add r1, r7, #0 bl ov82_0223FB08 str r0, [r4, #0x10] lsl r0, r5, #0xc str r0, [sp, #8] add r0, sp, #0x18 ldrh r0, [r0, #0x10] add r1, sp, #8 lsl r0, r0, #0xc str r0, [sp, #0xc] ldr r0, [r4, #0x10] bl Sprite_SetMatrix add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_end ov82_0223FC48 thumb_func_start ov82_0223FC9C ov82_0223FC9C: ; 0x0223FC9C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] bl Sprite_Delete add r0, r4, #0 bl FreeToHeap mov r0, #0 pop {r4, pc} thumb_func_end ov82_0223FC9C thumb_func_start ov82_0223FCB0 ov82_0223FCB0: ; 0x0223FCB0 ldr r3, _0223FCB8 ; =Set2dSpriteVisibleFlag ldr r0, [r0, #0x10] bx r3 nop _0223FCB8: .word Set2dSpriteVisibleFlag thumb_func_end ov82_0223FCB0 thumb_func_start ov82_0223FCBC ov82_0223FCBC: ; 0x0223FCBC push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 ldr r1, [r5, #0xc] add r6, r2, #0 cmp r1, #0 beq _0223FCD4 ldrb r1, [r1] ldr r0, [r5, #0x10] bl TryChange2dSpriteAnimSeqNo _0223FCD4: ldr r0, [r5, #0x10] bl Sprite_GetMatrixPtr add r3, r0, #0 add r2, sp, #0 ldmia r3!, {r0, r1} add r7, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] add r1, r7, #0 str r0, [r2] lsl r0, r4, #0xc str r0, [sp] lsl r0, r6, #0xc str r0, [sp, #4] ldr r0, [r5, #0x10] bl Sprite_SetMatrix add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end ov82_0223FCBC thumb_func_start ov82_0223FCFC ov82_0223FCFC: ; 0x0223FCFC push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r1, #1 ldr r0, [r5, #0x10] lsl r1, r1, #0xc bl sub_02024868 ldr r0, [r5, #0x10] add r1, r4, #0 bl TryChange2dSpriteAnimSeqNo pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov82_0223FCFC thumb_func_start ov82_0223FD18 ov82_0223FD18: ; 0x0223FD18 push {r4, lr} add r4, r0, #0 add r0, r1, #0 bl Pokemon_GetIconPalette add r1, r0, #0 ldr r0, [r4, #0x10] bl sub_02024AA8 pop {r4, pc} thumb_func_end ov82_0223FD18 thumb_func_start ov82_0223FD2C ov82_0223FD2C: ; 0x0223FD2C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r1, #0 mov r4, #0 _0223FD34: ldr r2, _0223FD58 ; =ov82_0223FF00 lsl r6, r4, #4 lsl r3, r4, #3 add r0, r7, #0 add r1, r5, r6 add r2, r2, r3 bl AddWindow add r0, r5, r6 mov r1, #0 bl FillWindowPixelBuffer add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _0223FD34 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _0223FD58: .word ov82_0223FF00 thumb_func_end ov82_0223FD2C thumb_func_start ov82_0223FD5C ov82_0223FD5C: ; 0x0223FD5C push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _0223FD62: lsl r0, r4, #4 add r0, r5, r0 bl RemoveWindow add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #4 blo _0223FD62 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_end ov82_0223FD5C thumb_func_start ov82_0223FD78 ov82_0223FD78: ; 0x0223FD78 push {r3, r4, r5, lr} sub sp, #8 add r5, r1, #0 add r4, r0, #0 bl GetWindowBgId add r1, r0, #0 lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0x69 str r0, [sp, #4] ldr r0, [r4] ldr r2, _0223FDB4 ; =0x000003D9 mov r3, #0xa bl LoadUserFrameGfx2 add r0, r4, #0 mov r1, #0xf bl FillWindowPixelBuffer ldr r2, _0223FDB4 ; =0x000003D9 add r0, r4, #0 mov r1, #0 mov r3, #0xa bl DrawFrameAndWindow2 add sp, #8 pop {r3, r4, r5, pc} nop _0223FDB4: .word 0x000003D9 thumb_func_end ov82_0223FD78 thumb_func_start ov82_0223FDB8 ov82_0223FDB8: ; 0x0223FDB8 ldr r3, _0223FDBC ; =YesNoPrompt_Create bx r3 .balign 4, 0 _0223FDBC: .word YesNoPrompt_Create thumb_func_end ov82_0223FDB8 thumb_func_start ov82_0223FDC0 ov82_0223FDC0: ; 0x0223FDC0 ldr r3, _0223FDC4 ; =YesNoPrompt_Destroy bx r3 .balign 4, 0 _0223FDC4: .word YesNoPrompt_Destroy thumb_func_end ov82_0223FDC0 thumb_func_start ov82_0223FDC8 ov82_0223FDC8: ; 0x0223FDC8 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r6, r0, #0 add r5, r1, #0 add r4, r2, #0 add r0, sp, #0 mov r1, #0 mov r2, #0x14 bl MI_CpuFill8 mov r0, #0x6d mov r2, #0 str r0, [sp, #8] mov r0, #0xe str r0, [sp, #0xc] str r5, [sp] str r2, [sp, #4] mov r1, #0x18 add r0, sp, #0 strb r1, [r0, #0x10] mov r1, #0xa strb r1, [r0, #0x11] ldrb r1, [r0, #0x12] mov r3, #0xf bic r1, r3 mov r3, #0xf and r3, r4 orr r1, r3 strb r1, [r0, #0x12] ldrb r3, [r0, #0x12] mov r1, #0xf0 bic r3, r1 strb r3, [r0, #0x12] strb r2, [r0, #0x13] add r0, r6, #0 add r1, sp, #0 bl YesNoPrompt_InitFromTemplate add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end ov82_0223FDC8 thumb_func_start ov82_0223FE18 ov82_0223FE18: ; 0x0223FE18 ldr r3, _0223FE1C ; =YesNoPrompt_HandleInput bx r3 .balign 4, 0 _0223FE1C: .word YesNoPrompt_HandleInput thumb_func_end ov82_0223FE18 .rodata _0223FE20: .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00 ov82_0223FE28: ; 0x0223FE28 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov82_0223FE38: ; 0x0223FE38 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 ov82_0223FE54: ; 0x0223FE54 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov82_0223FE70: ; 0x0223FE70 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov82_0223FE8C: ; 0x0223FE8C .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x02 .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ov82_0223FEA8: ; 0x0223FEA8 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x00, 0x01, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 ov82_0223FEC4: ; 0x0223FEC4 .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 ov82_0223FEEC: ; 0x0223FEEC .byte 0x02, 0x02, 0x02, 0x02 ov82_0223FEF0: ; 0x0223FEF0 .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00 ov82_0223FF00: ; 0x0223FF00 .byte 0x00, 0x02, 0x13, 0x1B, 0x04, 0x0C, 0x01, 0x00, 0x00, 0x0A, 0x14, 0x09, 0x02, 0x0D, 0x89, 0x00 .byte 0x01, 0x01, 0x00, 0x1F, 0x16, 0x0D, 0x01, 0x00, 0x04, 0x02, 0x13, 0x1B, 0x04, 0x02, 0x0A, 0x00 ; 0x0223FF20