From ea374bdadadcf550465cf23c88b34958caef620d Mon Sep 17 00:00:00 2001 From: red031000 Date: Sun, 8 Nov 2020 20:13:22 +0000 Subject: split module 21 --- arm9/arm9.lsf | 3 +- arm9/global.inc | 5 + arm9/modules/21/asm/mod21_02254854.s | 312 +++++++++++++++ arm9/modules/21/asm/mod21_02254A6C.s | 427 ++++++++++++++++++++ arm9/modules/21/asm/module_21.s | 733 ----------------------------------- 5 files changed, 746 insertions(+), 734 deletions(-) create mode 100644 arm9/modules/21/asm/mod21_02254854.s create mode 100644 arm9/modules/21/asm/mod21_02254A6C.s delete mode 100644 arm9/modules/21/asm/module_21.s diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 6eab7a85..d95024ae 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -664,7 +664,8 @@ Overlay MODULE_21 ##Pokétch Clock## After MODULE_20 Object module_21_sinit.o - Object module_21.o + Object mod21_02254854.o + Object mod21_02254A6C.o } Overlay MODULE_22 diff --git a/arm9/global.inc b/arm9/global.inc index ba5cc7bf..4845852b 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -7435,6 +7435,11 @@ .extern MOD20_02254420 .extern MOD20_02254460 .extern MOD20_02254488 +.extern MOD21_02254A6C +.extern MOD21_02254B04 +.extern MOD21_02254B10 +.extern MOD21_02254B34 +.extern MOD21_02254B40 .extern MOD51_02254A68 .extern MOD51_02254AB8 .extern MOD52_021D76C8 diff --git a/arm9/modules/21/asm/mod21_02254854.s b/arm9/modules/21/asm/mod21_02254854.s new file mode 100644 index 00000000..bcbbf915 --- /dev/null +++ b/arm9/modules/21/asm/mod21_02254854.s @@ -0,0 +1,312 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD21_02254854 +MOD21_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x2c + 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 MOD21_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD21_02254930 + 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 MOD21_02254930 + thumb_func_end MOD21_02254854 + + thumb_func_start MOD21_0225489C +MOD21_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r1, r5, #0 + add r0, #0x24 + add r1, #0x14 + bl MOD21_02254A6C + cmp r0, #0 + beq _0225490A + mov r1, #0 + strb r1, [r5] + strb r1, [r5, #1] + strb r1, [r5, #2] + mov r0, #1 + strb r0, [r5, #3] + strb r1, [r5, #6] + add r0, r5, #0 + str r1, [r5, #0x20] + add r0, #0x14 + bl GF_RTC_CopyTime + ldr r0, [r5, #0x14] + cmp r0, #0x18 + blo _022548D6 + mov r1, #0x18 + bl _u32_div_f + str r1, [r5, #0x14] +_022548D6: + ldr r0, [r5, #0x18] + cmp r0, #0x3c + blo _022548E6 + ldr r0, [r5, #0x14] + mov r1, #0x3c + bl _u32_div_f + str r1, [r5, #0x14] +_022548E6: + ldr r0, [r5, #0x18] + ldr r2, _02254910 ; =MOD21_02254974 + strb r0, [r5, #5] + mov r0, #8 + str r0, [sp] + ldr r0, _02254914 ; =MOD21_02254D80 + mov r1, #1 + add r3, r5, #0 + bl MOD20_02254130 + str r0, [r5, #0x10] + cmp r0, #0 + bne _02254904 + mov r0, #0 + pop {r3, r4, r5, pc} +_02254904: + str r4, [r5, #0x28] + mov r0, #1 + pop {r3, r4, r5, pc} +_0225490A: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_02254910: .word MOD21_02254974 +_02254914: .word MOD21_02254D80 + thumb_func_end MOD21_0225489C + + thumb_func_start MOD21_02254918 +MOD21_02254918: ; 0x02254918 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x24] + bl MOD21_02254B04 + ldr r0, [r4, #0x10] + bl MOD20_02254198 + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + thumb_func_end MOD21_02254918 + + thumb_func_start MOD21_02254930 +MOD21_02254930: ; 0x02254930 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _02254966 + ldr r0, [r4, #0x28] + ldr r1, [r4, #0x10] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254968 ; =MOD21_02254D84 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254966 + add r0, r4, #0 + bl MOD21_02254918 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x28] + bl MOD20_022529A0 +_02254966: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254968: .word MOD21_02254D84 + thumb_func_end MOD21_02254930 + + thumb_func_start MOD21_0225496C +MOD21_0225496C: ; 0x0225496C + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD21_0225496C + + thumb_func_start MOD21_02254974 +MOD21_02254974: ; 0x02254974 + cmp r2, #0 + beq _02254984 + cmp r2, #1 + bne _0225498C + mov r0, #1 + str r0, [r3, #0x20] + strb r0, [r3, #6] + bx lr +_02254984: + mov r0, #0 + str r0, [r3, #0x20] + mov r0, #1 + strb r0, [r3, #6] +_0225498C: + bx lr + .align 2, 0 + thumb_func_end MOD21_02254974 + + thumb_func_start MOD21_02254990 +MOD21_02254990: ; 0x02254990 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254998 + b _0225499A +_02254998: + mov r1, #2 +_0225499A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD21_02254990 + + thumb_func_start MOD21_022549A4 +MOD21_022549A4: ; 0x022549A4 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549B4 + cmp r0, #1 + beq _022549C4 + b _022549DE +_022549B4: + ldr r0, [r4, #0x24] + mov r1, #0 + bl MOD21_02254B10 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549DE +_022549C4: + ldr r0, [r4, #0x24] + mov r1, #0 + bl MOD21_02254B34 + cmp r0, #0 + beq _022549DE + ldr r0, [r4, #0x28] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD21_02254990 +_022549DE: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD21_022549A4 + + thumb_func_start MOD21_022549E4 +MOD21_022549E4: ; 0x022549E4 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _022549F8 + mov r1, #2 + bl MOD21_02254990 + mov r0, #0 + pop {r4, pc} +_022549F8: + ldrb r0, [r4, #6] + cmp r0, #0 + beq _02254A0A + mov r0, #0 + strb r0, [r4, #6] + ldr r0, [r4, #0x24] + mov r1, #2 + bl MOD21_02254B10 +_02254A0A: + ldr r0, [r4, #0x24] + mov r1, #1 + bl MOD21_02254B34 + cmp r0, #0 + beq _02254A32 + ldr r0, [r4, #0x18] + strb r0, [r4, #5] + add r0, r4, #0 + add r0, #0x14 + bl GF_RTC_CopyTime + ldrb r1, [r4, #5] + ldr r0, [r4, #0x18] + cmp r1, r0 + beq _02254A32 + ldr r0, [r4, #0x24] + mov r1, #1 + bl MOD21_02254B10 +_02254A32: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD21_022549E4 + + thumb_func_start MOD21_02254A38 +MOD21_02254A38: ; 0x02254A38 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A48 + cmp r0, #1 + beq _02254A58 + b _02254A66 +_02254A48: + ldr r0, [r4, #0x24] + mov r1, #3 + bl MOD21_02254B10 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A66 +_02254A58: + ldr r0, [r4, #0x24] + bl MOD21_02254B40 + cmp r0, #0 + beq _02254A66 + mov r0, #1 + pop {r4, pc} +_02254A66: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD21_02254A38 + + .section .rodata + + .global MOD21_02254D80 +MOD21_02254D80: ; 0x02254D80 + .byte 0x10, 0xAF, 0x10, 0xCF + + .global MOD21_02254D84 +MOD21_02254D84: ; 0x02254D84 + .word MOD21_022549A4, MOD21_022549E4, MOD21_02254A38 diff --git a/arm9/modules/21/asm/mod21_02254A6C.s b/arm9/modules/21/asm/mod21_02254A6C.s new file mode 100644 index 00000000..88dcb27c --- /dev/null +++ b/arm9/modules/21/asm/mod21_02254A6C.s @@ -0,0 +1,427 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD21_02254A6C +MOD21_02254A6C: ; 0x02254A6C + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r1, #0 + mov r1, #3 + add r5, r0, #0 + mov r0, #8 + lsl r1, r1, #8 + bl AllocFromHeap + add r4, r0, #0 + beq _02254ACC + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + mov r0, #8 + str r0, [sp] + mov r0, #0xc + mov r1, #0x19 + mov r2, #1 + add r3, sp, #4 + bl FUN_02006BDC + add r6, r0, #0 + bne _02254AB2 + add r0, r4, #0 + bl FreeToHeap + add sp, #8 + mov r0, #0 + pop {r4, r5, r6, pc} +_02254AB2: + ldr r0, [sp, #4] + add r1, r4, #0 + add r0, #0xc + add r1, #0x30 + bl MOD21_02254AD4 + add r0, r6, #0 + bl FreeToHeap + add sp, #8 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254ACC: + mov r0, #0 + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD21_02254A6C + + thumb_func_start MOD21_02254AD4 +MOD21_02254AD4: ; 0x02254AD4 + push {r3, r4, r5, r6, r7, lr} + mov r6, #9 + add r5, r0, #0 + add r4, r1, #0 + mov r7, #0 + lsl r6, r6, #6 +_02254AE0: + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x40 + bl MIi_CpuCopy16 + add r1, r4, #0 + add r0, r5, r6 + add r1, #0x40 + mov r2, #0x10 + bl MIi_CpuCopy16 + add r7, r7, #1 + add r5, #0x40 + add r4, #0x50 + sub r6, #0x30 + cmp r7, #9 + blt _02254AE0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD21_02254AD4 + + thumb_func_start MOD21_02254B04 +MOD21_02254B04: ; 0x02254B04 + push {r3, lr} + cmp r0, #0 + beq _02254B0E + bl FreeToHeap +_02254B0E: + pop {r3, pc} + thumb_func_end MOD21_02254B04 + + thumb_func_start MOD21_02254B10 +MOD21_02254B10: ; 0x02254B10 + 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, _02254B30 ; =MOD21_02254DAC + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254B30: .word MOD21_02254DAC + thumb_func_end MOD21_02254B10 + + thumb_func_start MOD21_02254B34 +MOD21_02254B34: ; 0x02254B34 + ldr r3, _02254B3C ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254B3C: .word MOD20_02253794 + thumb_func_end MOD21_02254B34 + + thumb_func_start MOD21_02254B40 +MOD21_02254B40: ; 0x02254B40 + ldr r3, _02254B48 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254B48: .word MOD20_022537B8 + thumb_func_end MOD21_02254B40 + + thumb_func_start MOD21_02254B4C +MOD21_02254B4C: ; 0x02254B4C + 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 MOD21_02254B4C + + thumb_func_start MOD21_02254B60 +MOD21_02254B60: ; 0x02254B60 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254BE8 ; =MOD21_02254D90 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + 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, #0x17 + mov r3, #6 + bl FUN_0200687C + 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, #0x18 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + add r0, r5, #0 + bl MOD21_02254C5C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254BEC ; =0x04001000 + ldr r0, _02254BF0 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD21_02254B4C + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_02254BE8: .word MOD21_02254D90 +_02254BEC: .word 0x04001000 +_02254BF0: .word 0xFFFFE0FF + thumb_func_end MOD21_02254B60 + + thumb_func_start MOD21_02254BF4 +MOD21_02254BF4: ; 0x02254BF4 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + bl MOD21_02254C5C + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_02017CD0 + add r0, r5, #0 + bl MOD21_02254B4C + pop {r3, r4, r5, pc} + thumb_func_end MOD21_02254BF4 + + thumb_func_start MOD21_02254C14 +MOD21_02254C14: ; 0x02254C14 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0] + ldr r0, [r0, #0xc] + cmp r0, #0 + beq _02254C30 + mov r0, #0 + add r1, r0, #0 + bl MOD11_02252DB4 + b _02254C38 +_02254C30: + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C +_02254C38: + add r0, r4, #0 + bl MOD21_02254B4C + pop {r4, pc} + thumb_func_end MOD21_02254C14 + + thumb_func_start MOD21_02254C40 +MOD21_02254C40: ; 0x02254C40 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD21_02254B4C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD21_02254C40 + + thumb_func_start MOD21_02254C5C +MOD21_02254C5C: ; 0x02254C5C + push {r4, r5, lr} + sub sp, #0x1c + add r4, r0, #0 + ldr r0, [r4] + ldr r2, _02254D74 ; =0x04000280 + ldr r0, [r0] + mov r3, #0 + strh r3, [r2] + str r0, [r2, #0x10] + add r0, r2, #0 + mov r1, #0xa + add r0, #0x18 + str r1, [r0] + str r3, [r0, #4] + lsr r0, r2, #0xb +_02254C7A: + ldrh r1, [r2] + tst r1, r0 + bne _02254C7A + ldr r0, _02254D78 ; =0x040002A0 + add r3, r0, #0 + ldr r1, [r0] + sub r3, #0x20 + lsr r0, r0, #0xb +_02254C8A: + ldrh r2, [r3] + tst r2, r0 + bne _02254C8A + ldr r0, _02254D7C ; =0x040002A8 + add r2, r4, #0 + ldr r5, [r0] + mov r0, #4 + str r0, [sp] + mov r0, #9 + lsl r1, r1, #0x1a + str r0, [sp, #4] + add r2, #0x30 + str r2, [sp, #8] + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + mov r1, #0 + str r1, [sp, #0x10] + mov r1, #0x28 + str r1, [sp, #0x14] + str r0, [sp, #0x18] + ldr r0, [r4, #4] + mov r1, #6 + mov r2, #3 + mov r3, #7 + bl FUN_02018170 + mov r0, #4 + str r0, [sp] + mov r0, #9 + add r1, r4, #0 + str r0, [sp, #4] + add r1, #0x30 + str r1, [sp, #8] + lsl r1, r5, #0x1a + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + mov r1, #0 + str r1, [sp, #0x10] + mov r1, #0x28 + str r1, [sp, #0x14] + str r0, [sp, #0x18] + ldr r0, [r4, #4] + mov r1, #6 + mov r2, #8 + mov r3, #7 + bl FUN_02018170 + ldr r0, [r4] + ldr r2, _02254D74 ; =0x04000280 + ldr r0, [r0, #4] + mov r3, #0 + strh r3, [r2] + str r0, [r2, #0x10] + add r0, r2, #0 + mov r1, #0xa + add r0, #0x18 + str r1, [r0] + str r3, [r0, #4] + lsr r0, r2, #0xb +_02254D00: + ldrh r1, [r2] + tst r1, r0 + bne _02254D00 + ldr r0, _02254D78 ; =0x040002A0 + add r3, r0, #0 + ldr r1, [r0] + sub r3, #0x20 + lsr r0, r0, #0xb +_02254D10: + ldrh r2, [r3] + tst r2, r0 + bne _02254D10 + ldr r0, _02254D7C ; =0x040002A8 + add r2, r4, #0 + ldr r5, [r0] + mov r0, #4 + str r0, [sp] + mov r0, #9 + lsl r1, r1, #0x1a + str r0, [sp, #4] + add r2, #0x30 + str r2, [sp, #8] + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + mov r1, #0 + str r1, [sp, #0x10] + mov r1, #0x28 + str r1, [sp, #0x14] + str r0, [sp, #0x18] + ldr r0, [r4, #4] + mov r1, #6 + mov r2, #0xf + mov r3, #7 + bl FUN_02018170 + mov r0, #4 + str r0, [sp] + mov r0, #9 + add r1, r4, #0 + str r0, [sp, #4] + add r1, #0x30 + str r1, [sp, #8] + lsl r1, r5, #0x1a + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + mov r1, #0 + str r1, [sp, #0x10] + mov r1, #0x28 + str r1, [sp, #0x14] + str r0, [sp, #0x18] + ldr r0, [r4, #4] + mov r1, #6 + mov r2, #0x14 + mov r3, #7 + bl FUN_02018170 + add sp, #0x1c + pop {r4, r5, pc} + nop +_02254D74: .word 0x04000280 +_02254D78: .word 0x040002A0 +_02254D7C: .word 0x040002A8 + thumb_func_end MOD21_02254C5C + + .section .rodata + + .global MOD21_02254D90 +MOD21_02254D90: ; 0x02254D90 + .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 MOD21_02254DAC +MOD21_02254DAC: ; 0x02254DAC + .word 0x00, MOD21_02254B60, 0x00 + .word 0x01, MOD21_02254BF4, 0x00 + .word 0x02, MOD21_02254C14, 0x00 + .word 0x03, MOD21_02254C40, 0x00 + .word 0x00, 0x00000000, 0x00 diff --git a/arm9/modules/21/asm/module_21.s b/arm9/modules/21/asm/module_21.s deleted file mode 100644 index ad12a682..00000000 --- a/arm9/modules/21/asm/module_21.s +++ /dev/null @@ -1,733 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - .balign 4, 0 - - thumb_func_start MOD21_02254854 -MOD21_02254854: ; 0x02254854 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #8 - mov r1, #0x2c - 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 MOD21_0225489C - cmp r0, #0 - beq _0225488C - ldr r0, _02254898 ; =MOD21_02254930 - 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 MOD21_02254930 - thumb_func_end MOD21_02254854 - - thumb_func_start MOD21_0225489C -MOD21_0225489C: ; 0x0225489C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - add r1, r5, #0 - add r0, #0x24 - add r1, #0x14 - bl MOD21_02254A6C - cmp r0, #0 - beq _0225490A - mov r1, #0 - strb r1, [r5] - strb r1, [r5, #1] - strb r1, [r5, #2] - mov r0, #1 - strb r0, [r5, #3] - strb r1, [r5, #6] - add r0, r5, #0 - str r1, [r5, #0x20] - add r0, #0x14 - bl GF_RTC_CopyTime - ldr r0, [r5, #0x14] - cmp r0, #0x18 - blo _022548D6 - mov r1, #0x18 - bl _u32_div_f - str r1, [r5, #0x14] -_022548D6: - ldr r0, [r5, #0x18] - cmp r0, #0x3c - blo _022548E6 - ldr r0, [r5, #0x14] - mov r1, #0x3c - bl _u32_div_f - str r1, [r5, #0x14] -_022548E6: - ldr r0, [r5, #0x18] - ldr r2, _02254910 ; =MOD21_02254974 - strb r0, [r5, #5] - mov r0, #8 - str r0, [sp] - ldr r0, _02254914 ; =MOD21_02254D80 - mov r1, #1 - add r3, r5, #0 - bl MOD20_02254130 - str r0, [r5, #0x10] - cmp r0, #0 - bne _02254904 - mov r0, #0 - pop {r3, r4, r5, pc} -_02254904: - str r4, [r5, #0x28] - mov r0, #1 - pop {r3, r4, r5, pc} -_0225490A: - mov r0, #0 - pop {r3, r4, r5, pc} - nop -_02254910: .word MOD21_02254974 -_02254914: .word MOD21_02254D80 - thumb_func_end MOD21_0225489C - - thumb_func_start MOD21_02254918 -MOD21_02254918: ; 0x02254918 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x24] - bl MOD21_02254B04 - ldr r0, [r4, #0x10] - bl MOD20_02254198 - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - thumb_func_end MOD21_02254918 - - thumb_func_start MOD21_02254930 -MOD21_02254930: ; 0x02254930 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldrb r0, [r4] - cmp r0, #3 - bhs _02254966 - ldr r0, [r4, #0x28] - ldr r1, [r4, #0x10] - bl MOD20_02252C14 - ldrb r1, [r4] - add r0, r4, #0 - lsl r2, r1, #2 - ldr r1, _02254968 ; =MOD21_02254D84 - ldr r1, [r1, r2] - blx r1 - cmp r0, #0 - beq _02254966 - add r0, r4, #0 - bl MOD21_02254918 - add r0, r5, #0 - bl FUN_0200CAB4 - ldr r0, [r4, #0x28] - bl MOD20_022529A0 -_02254966: - pop {r3, r4, r5, pc} - .align 2, 0 -_02254968: .word MOD21_02254D84 - thumb_func_end MOD21_02254930 - - thumb_func_start MOD21_0225496C -MOD21_0225496C: ; 0x0225496C - mov r1, #1 - strb r1, [r0, #2] - bx lr - .align 2, 0 - thumb_func_end MOD21_0225496C - - thumb_func_start MOD21_02254974 -MOD21_02254974: ; 0x02254974 - cmp r2, #0 - beq _02254984 - cmp r2, #1 - bne _0225498C - mov r0, #1 - str r0, [r3, #0x20] - strb r0, [r3, #6] - bx lr -_02254984: - mov r0, #0 - str r0, [r3, #0x20] - mov r0, #1 - strb r0, [r3, #6] -_0225498C: - bx lr - .align 2, 0 - thumb_func_end MOD21_02254974 - - thumb_func_start MOD21_02254990 -MOD21_02254990: ; 0x02254990 - ldrb r2, [r0, #2] - cmp r2, #0 - bne _02254998 - b _0225499A -_02254998: - mov r1, #2 -_0225499A: - strb r1, [r0] - mov r1, #0 - strb r1, [r0, #1] - bx lr - .align 2, 0 - thumb_func_end MOD21_02254990 - - thumb_func_start MOD21_022549A4 -MOD21_022549A4: ; 0x022549A4 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _022549B4 - cmp r0, #1 - beq _022549C4 - b _022549DE -_022549B4: - ldr r0, [r4, #0x24] - mov r1, #0 - bl MOD21_02254B10 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - b _022549DE -_022549C4: - ldr r0, [r4, #0x24] - mov r1, #0 - bl MOD21_02254B34 - cmp r0, #0 - beq _022549DE - ldr r0, [r4, #0x28] - bl MOD20_0225298C - add r0, r4, #0 - mov r1, #1 - bl MOD21_02254990 -_022549DE: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD21_022549A4 - - thumb_func_start MOD21_022549E4 -MOD21_022549E4: ; 0x022549E4 - push {r4, lr} - add r4, r0, #0 - ldrb r1, [r4, #2] - cmp r1, #0 - beq _022549F8 - mov r1, #2 - bl MOD21_02254990 - mov r0, #0 - pop {r4, pc} -_022549F8: - ldrb r0, [r4, #6] - cmp r0, #0 - beq _02254A0A - mov r0, #0 - strb r0, [r4, #6] - ldr r0, [r4, #0x24] - mov r1, #2 - bl MOD21_02254B10 -_02254A0A: - ldr r0, [r4, #0x24] - mov r1, #1 - bl MOD21_02254B34 - cmp r0, #0 - beq _02254A32 - ldr r0, [r4, #0x18] - strb r0, [r4, #5] - add r0, r4, #0 - add r0, #0x14 - bl GF_RTC_CopyTime - ldrb r1, [r4, #5] - ldr r0, [r4, #0x18] - cmp r1, r0 - beq _02254A32 - ldr r0, [r4, #0x24] - mov r1, #1 - bl MOD21_02254B10 -_02254A32: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD21_022549E4 - - thumb_func_start MOD21_02254A38 -MOD21_02254A38: ; 0x02254A38 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _02254A48 - cmp r0, #1 - beq _02254A58 - b _02254A66 -_02254A48: - ldr r0, [r4, #0x24] - mov r1, #3 - bl MOD21_02254B10 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - b _02254A66 -_02254A58: - ldr r0, [r4, #0x24] - bl MOD21_02254B40 - cmp r0, #0 - beq _02254A66 - mov r0, #1 - pop {r4, pc} -_02254A66: - mov r0, #0 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD21_02254A38 - - thumb_func_start MOD21_02254A6C -MOD21_02254A6C: ; 0x02254A6C - push {r4, r5, r6, lr} - sub sp, #8 - add r6, r1, #0 - mov r1, #3 - add r5, r0, #0 - mov r0, #8 - lsl r1, r1, #8 - bl AllocFromHeap - add r4, r0, #0 - beq _02254ACC - add r0, #8 - mov r1, #8 - bl MOD20_022536F4 - str r6, [r4] - bl MOD20_02252D34 - str r0, [r4, #4] - mov r0, #8 - str r0, [sp] - mov r0, #0xc - mov r1, #0x19 - mov r2, #1 - add r3, sp, #4 - bl FUN_02006BDC - add r6, r0, #0 - bne _02254AB2 - add r0, r4, #0 - bl FreeToHeap - add sp, #8 - mov r0, #0 - pop {r4, r5, r6, pc} -_02254AB2: - ldr r0, [sp, #4] - add r1, r4, #0 - add r0, #0xc - add r1, #0x30 - bl MOD21_02254AD4 - add r0, r6, #0 - bl FreeToHeap - add sp, #8 - str r4, [r5] - mov r0, #1 - pop {r4, r5, r6, pc} -_02254ACC: - mov r0, #0 - add sp, #8 - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end MOD21_02254A6C - - thumb_func_start MOD21_02254AD4 -MOD21_02254AD4: ; 0x02254AD4 - push {r3, r4, r5, r6, r7, lr} - mov r6, #9 - add r5, r0, #0 - add r4, r1, #0 - mov r7, #0 - lsl r6, r6, #6 -_02254AE0: - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0x40 - bl MIi_CpuCopy16 - add r1, r4, #0 - add r0, r5, r6 - add r1, #0x40 - mov r2, #0x10 - bl MIi_CpuCopy16 - add r7, r7, #1 - add r5, #0x40 - add r4, #0x50 - sub r6, #0x30 - cmp r7, #9 - blt _02254AE0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD21_02254AD4 - - thumb_func_start MOD21_02254B04 -MOD21_02254B04: ; 0x02254B04 - push {r3, lr} - cmp r0, #0 - beq _02254B0E - bl FreeToHeap -_02254B0E: - pop {r3, pc} - thumb_func_end MOD21_02254B04 - - thumb_func_start MOD21_02254B10 -MOD21_02254B10: ; 0x02254B10 - 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, _02254B30 ; =MOD21_02254DAC - ldr r3, [r2] - bl MOD20_022537E0 - add sp, #0xc - pop {pc} - nop -_02254B30: .word MOD21_02254DAC - thumb_func_end MOD21_02254B10 - - thumb_func_start MOD21_02254B34 -MOD21_02254B34: ; 0x02254B34 - ldr r3, _02254B3C ; =MOD20_02253794 - add r0, #8 - bx r3 - nop -_02254B3C: .word MOD20_02253794 - thumb_func_end MOD21_02254B34 - - thumb_func_start MOD21_02254B40 -MOD21_02254B40: ; 0x02254B40 - ldr r3, _02254B48 ; =MOD20_022537B8 - add r0, #8 - bx r3 - nop -_02254B48: .word MOD20_022537B8 - thumb_func_end MOD21_02254B40 - - thumb_func_start MOD21_02254B4C -MOD21_02254B4C: ; 0x02254B4C - 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 MOD21_02254B4C - - thumb_func_start MOD21_02254B60 -MOD21_02254B60: ; 0x02254B60 - push {r4, r5, lr} - sub sp, #0x14 - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - add r5, r0, #0 - ldr r0, [r5, #4] - ldr r2, _02254BE8 ; =MOD21_02254D90 - mov r1, #6 - mov r3, #0 - bl FUN_02016C18 - 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, #0x17 - mov r3, #6 - bl FUN_0200687C - 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, #0x18 - mov r3, #6 - bl FUN_020068C8 - mov r0, #0 - add r1, r0, #0 - bl MOD20_02252D7C - add r0, r5, #0 - bl MOD21_02254C5C - ldr r0, [r5, #4] - mov r1, #6 - bl FUN_02017CD0 - ldr r1, _02254BEC ; =0x04001000 - ldr r0, _02254BF0 ; =0xFFFFE0FF - ldr r3, [r1] - ldr r2, [r1] - str r3, [sp, #0x10] - and r0, r2 - lsl r2, r3, #0x13 - lsr r3, r2, #0x1b - mov r2, #4 - orr r2, r3 - lsl r2, r2, #8 - orr r0, r2 - str r0, [r1] - add r0, r4, #0 - bl MOD21_02254B4C - add sp, #0x14 - pop {r4, r5, pc} - .align 2, 0 -_02254BE8: .word MOD21_02254D90 -_02254BEC: .word 0x04001000 -_02254BF0: .word 0xFFFFE0FF - thumb_func_end MOD21_02254B60 - - thumb_func_start MOD21_02254BF4 -MOD21_02254BF4: ; 0x02254BF4 - push {r3, r4, r5, lr} - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - bl MOD21_02254C5C - ldr r0, [r4, #4] - mov r1, #6 - bl FUN_02017CD0 - add r0, r5, #0 - bl MOD21_02254B4C - pop {r3, r4, r5, pc} - thumb_func_end MOD21_02254BF4 - - thumb_func_start MOD21_02254C14 -MOD21_02254C14: ; 0x02254C14 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #0 - beq _02254C30 - mov r0, #0 - add r1, r0, #0 - bl MOD11_02252DB4 - b _02254C38 -_02254C30: - mov r0, #0 - add r1, r0, #0 - bl MOD20_02252D7C -_02254C38: - add r0, r4, #0 - bl MOD21_02254B4C - pop {r4, pc} - thumb_func_end MOD21_02254C14 - - thumb_func_start MOD21_02254C40 -MOD21_02254C40: ; 0x02254C40 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - ldr r0, [r0, #4] - mov r1, #6 - bl FUN_020178A0 - add r0, r4, #0 - bl MOD21_02254B4C - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD21_02254C40 - - thumb_func_start MOD21_02254C5C -MOD21_02254C5C: ; 0x02254C5C - push {r4, r5, lr} - sub sp, #0x1c - add r4, r0, #0 - ldr r0, [r4] - ldr r2, _02254D74 ; =0x04000280 - ldr r0, [r0] - mov r3, #0 - strh r3, [r2] - str r0, [r2, #0x10] - add r0, r2, #0 - mov r1, #0xa - add r0, #0x18 - str r1, [r0] - str r3, [r0, #4] - lsr r0, r2, #0xb -_02254C7A: - ldrh r1, [r2] - tst r1, r0 - bne _02254C7A - ldr r0, _02254D78 ; =0x040002A0 - add r3, r0, #0 - ldr r1, [r0] - sub r3, #0x20 - lsr r0, r0, #0xb -_02254C8A: - ldrh r2, [r3] - tst r2, r0 - bne _02254C8A - ldr r0, _02254D7C ; =0x040002A8 - add r2, r4, #0 - ldr r5, [r0] - mov r0, #4 - str r0, [sp] - mov r0, #9 - lsl r1, r1, #0x1a - str r0, [sp, #4] - add r2, #0x30 - str r2, [sp, #8] - lsr r1, r1, #0x18 - str r1, [sp, #0xc] - mov r1, #0 - str r1, [sp, #0x10] - mov r1, #0x28 - str r1, [sp, #0x14] - str r0, [sp, #0x18] - ldr r0, [r4, #4] - mov r1, #6 - mov r2, #3 - mov r3, #7 - bl FUN_02018170 - mov r0, #4 - str r0, [sp] - mov r0, #9 - add r1, r4, #0 - str r0, [sp, #4] - add r1, #0x30 - str r1, [sp, #8] - lsl r1, r5, #0x1a - lsr r1, r1, #0x18 - str r1, [sp, #0xc] - mov r1, #0 - str r1, [sp, #0x10] - mov r1, #0x28 - str r1, [sp, #0x14] - str r0, [sp, #0x18] - ldr r0, [r4, #4] - mov r1, #6 - mov r2, #8 - mov r3, #7 - bl FUN_02018170 - ldr r0, [r4] - ldr r2, _02254D74 ; =0x04000280 - ldr r0, [r0, #4] - mov r3, #0 - strh r3, [r2] - str r0, [r2, #0x10] - add r0, r2, #0 - mov r1, #0xa - add r0, #0x18 - str r1, [r0] - str r3, [r0, #4] - lsr r0, r2, #0xb -_02254D00: - ldrh r1, [r2] - tst r1, r0 - bne _02254D00 - ldr r0, _02254D78 ; =0x040002A0 - add r3, r0, #0 - ldr r1, [r0] - sub r3, #0x20 - lsr r0, r0, #0xb -_02254D10: - ldrh r2, [r3] - tst r2, r0 - bne _02254D10 - ldr r0, _02254D7C ; =0x040002A8 - add r2, r4, #0 - ldr r5, [r0] - mov r0, #4 - str r0, [sp] - mov r0, #9 - lsl r1, r1, #0x1a - str r0, [sp, #4] - add r2, #0x30 - str r2, [sp, #8] - lsr r1, r1, #0x18 - str r1, [sp, #0xc] - mov r1, #0 - str r1, [sp, #0x10] - mov r1, #0x28 - str r1, [sp, #0x14] - str r0, [sp, #0x18] - ldr r0, [r4, #4] - mov r1, #6 - mov r2, #0xf - mov r3, #7 - bl FUN_02018170 - mov r0, #4 - str r0, [sp] - mov r0, #9 - add r1, r4, #0 - str r0, [sp, #4] - add r1, #0x30 - str r1, [sp, #8] - lsl r1, r5, #0x1a - lsr r1, r1, #0x18 - str r1, [sp, #0xc] - mov r1, #0 - str r1, [sp, #0x10] - mov r1, #0x28 - str r1, [sp, #0x14] - str r0, [sp, #0x18] - ldr r0, [r4, #4] - mov r1, #6 - mov r2, #0x14 - mov r3, #7 - bl FUN_02018170 - add sp, #0x1c - pop {r4, r5, pc} - nop -_02254D74: .word 0x04000280 -_02254D78: .word 0x040002A0 -_02254D7C: .word 0x040002A8 - thumb_func_end MOD21_02254C5C - - .section .rodata - - .global MOD21_02254D80 -MOD21_02254D80: ; 0x02254D80 - .byte 0x10, 0xAF, 0x10, 0xCF - - .global MOD21_02254D84 -MOD21_02254D84: ; 0x02254D84 - .word MOD21_022549A4, MOD21_022549E4, MOD21_02254A38 - - .global MOD21_02254D90 -MOD21_02254D90: ; 0x02254D90 - .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 MOD21_02254DAC -MOD21_02254DAC: ; 0x02254DAC - .word 0x00, MOD21_02254B60, 0x00 - .word 0x01, MOD21_02254BF4, 0x00 - .word 0x02, MOD21_02254C14, 0x00 - .word 0x03, MOD21_02254C40, 0x00 - .word 0x00, 0x00000000, 0x00 -- cgit v1.2.3