.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD45_02254854 MOD45_02254854: ; 0x02254854 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #8 mov r1, #0xb0 add r7, r2, #0 str r3, [sp] bl AllocFromHeap add r4, r0, #0 beq _02254892 ldr r3, [sp] add r1, r6, #0 add r2, r7, #0 bl MOD45_0225489C cmp r0, #0 beq _0225488C ldr r0, _02254898 ; =MOD45_022549EC add r1, r4, #0 mov r2, #1 bl FUN_0200CA44 cmp r0, #0 beq _0225488C str r4, [r5] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _0225488C: add r0, r4, #0 bl FreeToHeap _02254892: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _02254898: .word MOD45_022549EC thumb_func_end MOD45_02254854 thumb_func_start MOD45_0225489C MOD45_0225489C: ; 0x0225489C push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r0, #0 add r4, r1, #0 add r0, sp, #4 add r6, r2, #0 bl GF_RTC_CopyDate add r0, r4, #0 bl MOD20_02252C3C add r1, r5, #0 add r1, #0x98 str r0, [r1] add r0, r5, #4 add r1, r5, #0 add r2, sp, #4 bl MOD45_0225492C add r0, r5, #0 ldrb r1, [r5, #0x12] add r0, #0xa8 add r2, r6, #0 str r1, [r0] add r0, r5, #0 add r0, #0xa8 ldr r1, [r0] ldr r0, [r5, #8] sub r0, r0, #1 add r1, r1, r0 add r0, r5, #0 add r0, #0xac str r1, [r0] add r0, r5, #0 add r0, #0x90 add r1, r5, #4 bl MOD45_02254B90 cmp r0, #0 beq _0225491C mov r0, #0 strb r0, [r5] strb r0, [r5, #1] strb r0, [r5, #2] mov r0, #8 str r0, [sp] ldr r0, _02254924 ; =MOD45_02255018 ldr r2, _02254928 ; =MOD45_022549E0 mov r1, #0x25 add r3, r5, #0 bl MOD20_02254130 add r1, r5, #0 add r1, #0x9c str r0, [r1] add r0, r5, #0 mov r1, #0 add r0, #0xa0 str r1, [r0] add r5, #0x94 add sp, #0x14 str r4, [r5] mov r0, #1 pop {r3, r4, r5, r6, pc} _0225491C: mov r0, #0 add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _02254924: .word MOD45_02255018 _02254928: .word MOD45_022549E0 thumb_func_end MOD45_0225489C thumb_func_start MOD45_0225492C MOD45_0225492C: ; 0x0225492C push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 add r6, r0, #0 ldr r0, [r4, #4] str r1, [sp] str r0, [r6] ldr r0, [r4, #8] str r0, [r6, #8] ldr r1, [r6] ldr r0, _022549BC ; =MOD45_022550AB ldrb r0, [r0, r1] str r0, [r6, #4] ldr r0, [r6] cmp r0, #2 bne _02254970 ldr r5, [r4] mov r1, #0x19 add r0, r5, #0 lsl r1, r1, #4 bl _u32_div_f cmp r1, #0 beq _0225496C add r0, r5, #0 mov r1, #0x64 bl _u32_div_f cmp r1, #0 beq _02254970 mov r0, #3 tst r0, r5 bne _02254970 _0225496C: mov r0, #0x1d str r0, [r6, #4] _02254970: ldr r0, [r4, #8] mov r1, #7 sub r0, r0, #1 bl _u32_div_f mov r2, #7 ldr r3, [r4, #0xc] sub r0, r2, r1 add r7, r3, r0 cmp r7, #7 blo _02254990 add r0, r7, #0 add r1, r2, #0 bl _u32_div_f add r7, r1, #0 _02254990: ldr r0, [r6, #4] mov r4, #0 cmp r0, #0 bls _022549BA add r5, r6, #0 _0225499A: ldr r0, [sp] add r2, r4, #1 strh r2, [r5, #0xc] add r0, #0x98 ldr r0, [r0] ldr r1, [r6] bl Sav2_Poketch_CalendarDateIsHighlighted strb r0, [r5, #0xf] add r0, r7, r4 strb r0, [r5, #0xe] ldr r0, [r6, #4] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blo _0225499A _022549BA: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _022549BC: .word MOD45_022550AB thumb_func_end MOD45_0225492C thumb_func_start MOD45_022549C0 MOD45_022549C0: ; 0x022549C0 push {r4, lr} add r4, r0, #0 add r0, #0x9c ldr r0, [r0] bl MOD20_02254198 add r0, r4, #0 add r0, #0x90 ldr r0, [r0] bl MOD45_02254BCC add r0, r4, #0 bl FreeToHeap pop {r4, pc} .align 2, 0 thumb_func_end MOD45_022549C0 thumb_func_start MOD45_022549E0 MOD45_022549E0: ; 0x022549E0 add r2, r3, #0 add r2, #0xa4 str r0, [r2] add r3, #0xa0 str r1, [r3] bx lr thumb_func_end MOD45_022549E0 thumb_func_start MOD45_022549EC MOD45_022549EC: ; 0x022549EC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldrb r0, [r4] cmp r0, #3 bhs _02254A2A add r0, r4, #0 add r0, #0x94 add r1, #0x9c ldr r0, [r0] ldr r1, [r1] bl MOD20_02252C14 ldrb r1, [r4] add r0, r4, #0 lsl r2, r1, #2 ldr r1, _02254A2C ; =MOD45_0225500C ldr r1, [r1, r2] blx r1 cmp r0, #0 beq _02254A2A add r0, r4, #0 bl MOD45_022549C0 add r0, r5, #0 bl FUN_0200CAB4 add r4, #0x94 ldr r0, [r4] bl MOD20_022529A0 _02254A2A: pop {r3, r4, r5, pc} .align 2, 0 _02254A2C: .word MOD45_0225500C thumb_func_end MOD45_022549EC thumb_func_start MOD45_02254A30 MOD45_02254A30: ; 0x02254A30 mov r1, #1 strb r1, [r0, #2] bx lr .align 2, 0 thumb_func_end MOD45_02254A30 thumb_func_start MOD45_02254A38 MOD45_02254A38: ; 0x02254A38 ldrb r2, [r0, #2] cmp r2, #0 bne _02254A40 b _02254A42 _02254A40: mov r1, #2 _02254A42: strb r1, [r0] mov r1, #0 strb r1, [r0, #1] bx lr .align 2, 0 thumb_func_end MOD45_02254A38 thumb_func_start MOD45_02254A4C MOD45_02254A4C: ; 0x02254A4C push {r4, lr} add r4, r0, #0 ldrb r0, [r4, #1] cmp r0, #0 beq _02254A5C cmp r0, #1 beq _02254A70 b _02254A92 _02254A5C: add r0, r4, #0 add r0, #0x90 ldr r0, [r0] mov r1, #0 bl MOD45_02254C7C ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _02254A92 _02254A70: add r0, r4, #0 add r0, #0x90 ldr r0, [r0] mov r1, #0 bl MOD45_02254CA0 cmp r0, #0 beq _02254A92 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] bl MOD20_0225298C add r0, r4, #0 mov r1, #1 bl MOD45_02254A38 _02254A92: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD45_02254A4C thumb_func_start MOD45_02254A98 MOD45_02254A98: ; 0x02254A98 push {r3, r4, r5, lr} add r5, r0, #0 ldrb r1, [r5, #2] cmp r1, #0 beq _02254AAC mov r1, #2 bl MOD45_02254A38 mov r0, #0 pop {r3, r4, r5, pc} _02254AAC: ldrb r0, [r5, #1] cmp r0, #0 beq _02254AB8 cmp r0, #1 beq _02254B3E b _02254B52 _02254AB8: add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] cmp r0, #1 bne _02254B52 add r0, r5, #0 mov r1, #0 add r0, #0xa0 str r1, [r0] add r0, r5, #0 add r0, #0xa8 ldr r2, [r0] add r0, r5, #0 add r0, #0xa4 ldr r1, [r0] cmp r1, r2 blo _02254B52 add r0, r5, #0 add r0, #0xac ldr r0, [r0] cmp r1, r0 bhi _02254B52 add r0, r5, #0 add r0, #0x98 sub r4, r1, r2 ldr r0, [r0] ldr r1, [r5, #4] add r2, r4, #1 bl Sav2_Poketch_CalendarDateIsHighlighted cmp r0, #0 beq _02254B08 add r0, r5, #0 add r0, #0x98 ldr r0, [r0] ldr r1, [r5, #4] add r2, r4, #1 bl Sav2_Poketch_CalendarDateUnhighlight b _02254B16 _02254B08: add r0, r5, #0 add r0, #0x98 ldr r0, [r0] ldr r1, [r5, #4] add r2, r4, #1 bl Sav2_Poketch_CalendarDateHighlight _02254B16: add r3, r5, #0 add r3, #0x13 lsl r2, r4, #2 ldrb r1, [r3, r2] mov r0, #1 eor r0, r1 strb r0, [r3, r2] add r0, r5, #0 add r0, #0x8c str r4, [r0] add r0, r5, #0 add r0, #0x90 ldr r0, [r0] mov r1, #2 bl MOD45_02254C7C ldrb r0, [r5, #1] add r0, r0, #1 strb r0, [r5, #1] b _02254B52 _02254B3E: add r0, r5, #0 add r0, #0x90 ldr r0, [r0] mov r1, #2 bl MOD45_02254CA0 cmp r0, #0 beq _02254B52 mov r0, #0 strb r0, [r5, #1] _02254B52: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD45_02254A98 thumb_func_start MOD45_02254B58 MOD45_02254B58: ; 0x02254B58 push {r4, lr} add r4, r0, #0 ldrb r0, [r4, #1] cmp r0, #0 beq _02254B68 cmp r0, #1 beq _02254B7C b _02254B8C _02254B68: add r0, r4, #0 add r0, #0x90 ldr r0, [r0] mov r1, #1 bl MOD45_02254C7C ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _02254B8C _02254B7C: add r4, #0x90 ldr r0, [r4] bl MOD45_02254CAC cmp r0, #0 beq _02254B8C mov r0, #1 pop {r4, pc} _02254B8C: mov r0, #0 pop {r4, pc} thumb_func_end MOD45_02254B58 thumb_func_start MOD45_02254B90 MOD45_02254B90: ; 0x02254B90 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r0, #8 mov r1, #0x3c bl AllocFromHeap add r4, r0, #0 beq _02254BC6 add r0, #8 mov r1, #4 bl MOD20_022536F4 str r5, [r4] bl MOD20_02252D34 str r0, [r4, #4] bl MOD20_02252D24 str r0, [r4, #0x20] add r0, r4, #0 add r1, r5, #0 bl MOD45_02254BE0 str r4, [r6] mov r0, #1 pop {r4, r5, r6, pc} _02254BC6: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD45_02254B90 thumb_func_start MOD45_02254BCC MOD45_02254BCC: ; 0x02254BCC push {r4, lr} add r4, r0, #0 beq _02254BDC bl MOD45_02254C64 add r0, r4, #0 bl FreeToHeap _02254BDC: pop {r4, pc} .align 2, 0 thumb_func_end MOD45_02254BCC thumb_func_start MOD45_02254BE0 MOD45_02254BE0: ; 0x02254BE0 push {r4, r5, lr} sub sp, #0xc mov r3, #0 str r3, [sp] mov r2, #1 add r5, r0, #0 add r4, r1, #0 str r2, [sp, #4] mov r0, #8 str r0, [sp, #8] mov r0, #0xc mov r1, #0x72 bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r5, #0 add r0, #0x28 mov r1, #0xc mov r2, #0x70 mov r3, #0x71 bl MOD20_02253FBC add r2, r5, #0 ldr r0, [r5, #0x20] ldr r1, _02254C2C ; =MOD45_022550B8 add r2, #0x28 bl MOD20_02253E74 str r0, [r5, #0x24] ldr r1, [r4, #8] lsl r1, r1, #2 add r1, r4, r1 ldrb r1, [r1, #0xa] bl MOD45_02254C30 add sp, #0xc pop {r4, r5, pc} .align 2, 0 _02254C2C: .word MOD45_022550B8 thumb_func_end MOD45_02254BE0 thumb_func_start MOD45_02254C30 MOD45_02254C30: ; 0x02254C30 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 mov r1, #7 bl _u32_div_f add r4, r1, #0 add r0, r6, #0 mov r1, #7 bl _u32_div_f add r2, r0, #0 lsl r1, r4, #1 lsl r3, r2, #1 add r1, r4, r1 add r2, r2, r3 add r1, r1, #5 add r2, r2, #6 add r0, r5, #0 lsl r1, r1, #0xf lsl r2, r2, #0xf bl MOD20_02253F64 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD45_02254C30 thumb_func_start MOD45_02254C64 MOD45_02254C64: ; 0x02254C64 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] ldr r1, [r4, #0x24] bl MOD20_02253F14 add r4, #0x28 add r0, r4, #0 bl MOD20_02254014 pop {r4, pc} .align 2, 0 thumb_func_end MOD45_02254C64 thumb_func_start MOD45_02254C7C MOD45_02254C7C: ; 0x02254C7C push {lr} sub sp, #0xc add r2, r0, #0 add r0, #8 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] ldr r0, _02254C9C ; =MOD45_02255140 ldr r3, [r2] bl MOD20_022537E0 add sp, #0xc pop {pc} nop _02254C9C: .word MOD45_02255140 thumb_func_end MOD45_02254C7C thumb_func_start MOD45_02254CA0 MOD45_02254CA0: ; 0x02254CA0 ldr r3, _02254CA8 ; =MOD20_02253794 add r0, #8 bx r3 nop _02254CA8: .word MOD20_02253794 thumb_func_end MOD45_02254CA0 thumb_func_start MOD45_02254CAC MOD45_02254CAC: ; 0x02254CAC ldr r3, _02254CB4 ; =MOD20_022537B8 add r0, #8 bx r3 nop _02254CB4: .word MOD20_022537B8 thumb_func_end MOD45_02254CAC thumb_func_start MOD45_02254CB8 MOD45_02254CB8: ; 0x02254CB8 push {r4, lr} add r4, r0, #0 bl MOD20_022538A0 add r0, #8 add r1, r4, #0 bl MOD20_02253888 pop {r4, pc} .align 2, 0 thumb_func_end MOD45_02254CB8 thumb_func_start MOD45_02254CCC MOD45_02254CCC: ; 0x02254CCC push {r3, r4, r5, r6, lr} sub sp, #0x14 add r6, r1, #0 add r0, r6, #0 bl MOD20_022538A0 add r5, r0, #0 add r0, r6, #0 bl MOD20_022538A4 add r4, r0, #0 ldr r0, [r5, #4] ldr r2, _02254D60 ; =MOD45_022550FC mov r1, #6 mov r3, #0 bl InitBgFromTemplate ldr r0, [r5, #4] ldr r2, _02254D64 ; =MOD45_022550E0 mov r1, #7 mov r3, #0 bl InitBgFromTemplate add r0, r5, #0 add r1, r4, #0 bl MOD45_02254DDC add r0, r5, #0 add r1, r4, #0 bl MOD45_02254E74 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0xc mov r1, #0x6f mov r3, #7 bl GfGfxLoader_LoadCharData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C ldr r0, [r5, #4] mov r1, #6 bl BgCommitTilemapBufferToVram ldr r0, [r5, #4] mov r1, #7 bl BgCommitTilemapBufferToVram ldr r1, _02254D68 ; =0x04001000 ldr r0, _02254D6C ; =0xFFFFE0FF ldr r3, [r1] ldr r2, [r1] str r3, [sp, #0x10] and r0, r2 lsl r2, r3, #0x13 lsr r3, r2, #0x1b mov r2, #0xc orr r2, r3 lsl r2, r2, #8 orr r0, r2 str r0, [r1] add r0, r6, #0 bl MOD45_02254CB8 add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 _02254D60: .word MOD45_022550FC _02254D64: .word MOD45_022550E0 _02254D68: .word 0x04001000 _02254D6C: .word 0xFFFFE0FF thumb_func_end MOD45_02254CCC thumb_func_start MOD45_02254D70 MOD45_02254D70: ; 0x02254D70 push {r3, r4, r5, lr} add r5, r1, #0 add r0, r5, #0 bl MOD20_022538A0 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #6 bl FreeBgTilemapBuffer ldr r0, [r4, #4] mov r1, #7 bl FreeBgTilemapBuffer add r0, r5, #0 bl MOD45_02254CB8 pop {r3, r4, r5, pc} thumb_func_end MOD45_02254D70 thumb_func_start MOD45_02254D94 MOD45_02254D94: ; 0x02254D94 push {r3, r4, r5, lr} add r4, r1, #0 add r0, r4, #0 bl MOD20_022538A0 add r5, r0, #0 add r0, r4, #0 bl MOD20_022538A4 add r2, r0, #0 add r0, #0x88 ldr r0, [r0] lsl r3, r0, #2 add r0, r2, r3 ldrb r0, [r0, #0xf] cmp r0, #0 beq _02254DBA mov r1, #0x8f b _02254DBC _02254DBA: mov r1, #0x83 _02254DBC: add r2, r2, r3 ldrb r2, [r2, #0xe] lsl r1, r1, #0x10 ldr r0, [r5, #4] lsr r1, r1, #0x10 bl MOD45_02254E28 ldr r0, [r5, #4] mov r1, #7 bl BgCommitTilemapBufferToVram add r0, r4, #0 bl MOD45_02254CB8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD45_02254D94 thumb_func_start MOD45_02254DDC MOD45_02254DDC: ; 0x02254DDC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] add r6, r1, #0 ldr r2, [r7, #4] mov r0, #0xc mov r1, #0x6e mov r3, #7 bl GfGfxLoader_LoadScrnData ldr r0, [r6, #4] mov r4, #0 cmp r0, #0 bls _02254E22 add r5, r6, #0 _02254E08: ldrb r0, [r5, #0xf] cmp r0, #0 beq _02254E18 ldrb r2, [r5, #0xe] ldr r0, [r7, #4] mov r1, #0x8f bl MOD45_02254E28 _02254E18: ldr r0, [r6, #4] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blo _02254E08 _02254E22: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD45_02254DDC thumb_func_start MOD45_02254E28 MOD45_02254E28: ; 0x02254E28 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r2, #0 add r5, r0, #0 add r6, r1, #0 add r0, r7, #0 mov r1, #7 bl _u32_div_f add r4, r1, #0 add r0, r7, #0 mov r1, #7 bl _u32_div_f lsl r1, r0, #1 add r0, r0, r1 add r0, r0, #5 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r3, r4, #1 str r0, [sp] mov r0, #2 add r3, r4, r3 str r0, [sp, #4] add r3, r3, #4 str r0, [sp, #8] mov r0, #0 lsl r3, r3, #0x18 str r0, [sp, #0xc] add r0, r5, #0 mov r1, #7 add r2, r6, #0 lsr r3, r3, #0x18 bl FillBgTilemapRect add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD45_02254E28 thumb_func_start MOD45_02254E74 MOD45_02254E74: ; 0x02254E74 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 mov r3, #0 add r7, r0, #0 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] str r0, [sp, #8] str r3, [sp, #0xc] add r6, r1, #0 ldr r0, [r7, #4] mov r1, #6 mov r2, #0x82 bl FillBgTilemapRect ldr r0, [r7, #4] ldr r1, [r6] bl MOD45_02254EBC ldr r0, [r6, #4] mov r4, #0 cmp r0, #0 bls _02254EB8 add r5, r6, #0 _02254EA4: ldrb r2, [r5, #0xe] ldr r0, [r7, #4] add r1, r4, #1 bl MOD45_02254F14 ldr r0, [r6, #4] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blo _02254EA4 _02254EB8: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD45_02254E74 thumb_func_start MOD45_02254EBC MOD45_02254EBC: ; 0x02254EBC push {r4, r5, r6, r7, lr} sub sp, #0x14 add r7, r0, #0 ldr r0, _02254F10 ; =MOD45_022550C6 lsl r1, r1, #1 ldrh r4, [r0, r1] mov r0, #0 str r0, [sp, #0x10] _02254ECC: ldr r0, [sp, #0x10] mov r5, #0 add r0, r0, #2 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _02254ED6: add r3, r5, #0 add r2, r4, r5 add r3, #0xc lsl r2, r2, #0x10 lsl r3, r3, #0x18 str r6, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r0, r7, #0 mov r1, #6 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect add r5, r5, #1 cmp r5, #4 blt _02254ED6 ldr r0, [sp, #0x10] add r4, #0xc add r0, r0, #1 str r0, [sp, #0x10] cmp r0, #2 blt _02254ECC add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _02254F10: .word MOD45_022550C6 thumb_func_end MOD45_02254EBC thumb_func_start MOD45_02254F14 MOD45_02254F14: ; 0x02254F14 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r2, #0 str r0, [sp, #0x10] str r1, [sp, #0x14] add r0, r5, #0 mov r1, #7 bl _u32_div_f add r6, r1, #0 lsl r0, r6, #1 add r0, r6, r0 add r4, r0, #4 add r0, r5, #0 mov r1, #7 bl _u32_div_f lsl r1, r0, #1 add r0, r0, r1 add r5, r0, #5 cmp r6, #0 bne _02254F44 mov r6, #1 b _02254F46 _02254F44: mov r6, #0 _02254F46: ldr r0, [sp, #0x14] mov r1, #0xa bl _u32_div_f add r7, r0, #0 ldr r0, [sp, #0x14] mov r1, #0xa bl _u32_div_f str r1, [sp, #0x18] cmp r7, #0 beq _02254FAE mov r0, #0x14 add r2, r6, #0 mul r2, r0 ldr r0, _02255008 ; =MOD45_02255118 lsl r1, r7, #1 add r0, r0, r2 ldrh r7, [r1, r0] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] lsl r3, r4, #0x18 ldr r0, [sp, #0x10] mov r1, #6 add r2, r7, #0 lsr r3, r3, #0x18 bl FillBgTilemapRect add r0, r5, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 add r7, #0xc str r0, [sp, #0xc] lsl r2, r7, #0x10 lsl r3, r4, #0x18 ldr r0, [sp, #0x10] mov r1, #6 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect _02254FAE: mov r0, #0x14 add r3, r6, #0 mul r3, r0 ldr r0, [sp, #0x18] ldr r2, _02255008 ; =MOD45_02255118 lsl r1, r0, #1 add r0, r2, r3 ldrh r6, [r1, r0] lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 add r3, r4, #1 str r0, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [sp, #0x10] mov r1, #6 add r2, r6, #0 lsr r3, r3, #0x18 bl FillBgTilemapRect add r0, r5, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 add r6, #0xc add r3, r4, #1 str r0, [sp, #0xc] lsl r2, r6, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] mov r1, #6 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FillBgTilemapRect add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _02255008: .word MOD45_02255118 thumb_func_end MOD45_02254F14 .section .rodata .global MOD45_0225500C MOD45_0225500C: ; 0x0225500C .word MOD45_02254A4C, MOD45_02254A98, MOD45_02254B58 .global MOD45_02255018 MOD45_02255018: ; 0x02255018 .byte 0x28, 0x38, 0x20, 0x30 .byte 0x28, 0x38, 0x38, 0x48, 0x28, 0x38, 0x50, 0x60, 0x28, 0x38, 0x68, 0x78, 0x28, 0x38, 0x80, 0x90 .byte 0x28, 0x38, 0x98, 0xA8, 0x28, 0x38, 0xB0, 0xC0, 0x40, 0x50, 0x20, 0x30, 0x40, 0x50, 0x38, 0x48 .byte 0x40, 0x50, 0x50, 0x60, 0x40, 0x50, 0x68, 0x78, 0x40, 0x50, 0x80, 0x90, 0x40, 0x50, 0x98, 0xA8 .byte 0x40, 0x50, 0xB0, 0xC0, 0x58, 0x68, 0x20, 0x30, 0x58, 0x68, 0x38, 0x48, 0x58, 0x68, 0x50, 0x60 .byte 0x58, 0x68, 0x68, 0x78, 0x58, 0x68, 0x80, 0x90, 0x58, 0x68, 0x98, 0xA8, 0x58, 0x68, 0xB0, 0xC0 .byte 0x70, 0x80, 0x20, 0x30, 0x70, 0x80, 0x38, 0x48, 0x70, 0x80, 0x50, 0x60, 0x70, 0x80, 0x68, 0x78 .byte 0x70, 0x80, 0x80, 0x90, 0x70, 0x80, 0x98, 0xA8, 0x70, 0x80, 0xB0, 0xC0, 0x88, 0x98, 0x20, 0x30 .byte 0x88, 0x98, 0x38, 0x48, 0x88, 0x98, 0x50, 0x60, 0x88, 0x98, 0x68, 0x78, 0x88, 0x98, 0x80, 0x90 .byte 0x88, 0x98, 0x98, 0xA8, 0x88, 0x98, 0xB0, 0xC0, 0xA0, 0xB0, 0x20, 0x30, 0xA0, 0xB0, 0x38 .global MOD45_022550AB MOD45_022550AB: ; 0x022550AB .byte 0x48 .byte 0x1F, 0x1C, 0x1F, 0x1E, 0x1F, 0x1E, 0x1F, 0x1F, 0x1E, 0x1F, 0x1E, 0x1F .global MOD45_022550B8 MOD45_022550B8: ; 0x022550B8 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 .global MOD45_022550C6 MOD45_022550C6: ; 0x022550C6 .short 0x00, 0x00, 0x04, 0x08, 0x18, 0x1C, 0x20, 0x30 .short 0x34, 0x38, 0x48, 0x4C, 0x50 .global MOD45_022550E0 MOD45_022550E0: ; 0x022550E0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD45_022550FC MOD45_022550FC: ; 0x022550FC .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD45_02255118 MOD45_02255118: ; 0x02255118 .byte 0x60, 0x00, 0x61, 0x00 .byte 0x62, 0x00, 0x63, 0x00, 0x64, 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x69, 0x00 .byte 0x78, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x7F, 0x00 .byte 0x80, 0x00, 0x81, 0x00 .global MOD45_02255140 MOD45_02255140: ; 0x02255140 .word 0x00, MOD45_02254CCC, 0x00 .word 0x01, MOD45_02254D70, 0x00 .word 0x02, MOD45_02254D94, 0x00 .word 0x00, 0x00000000, 0x00