summaryrefslogtreecommitdiff
path: root/arm9/modules/04/asm/mod04_021DDF40.s
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2021-08-16 19:38:27 +0100
committerred031000 <rubenru09@aol.com>2021-08-16 19:38:27 +0100
commit79375b4aa98c8e2980bde41be6fc8e9e0781b9fd (patch)
treeb58040d67f78d38f48c8ca2081b606c279f5ae12 /arm9/modules/04/asm/mod04_021DDF40.s
parent2958ecc0fc0aea7c3e12138b2c7caf6fcd770295 (diff)
e
Diffstat (limited to 'arm9/modules/04/asm/mod04_021DDF40.s')
-rw-r--r--arm9/modules/04/asm/mod04_021DDF40.s291
1 files changed, 291 insertions, 0 deletions
diff --git a/arm9/modules/04/asm/mod04_021DDF40.s b/arm9/modules/04/asm/mod04_021DDF40.s
new file mode 100644
index 00000000..92320fd3
--- /dev/null
+++ b/arm9/modules/04/asm/mod04_021DDF40.s
@@ -0,0 +1,291 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ arm_func_start MOD04_021DDF40
+MOD04_021DDF40: ; 0x021DDF40
+ ldr ip, _021DDF48 ; =MOD04_021D9974
+ bx ip
+ .align 2, 0
+_021DDF48: .word MOD04_021D9974
+ arm_func_end MOD04_021DDF40
+
+ arm_func_start MOD04_021DDF4C
+MOD04_021DDF4C: ; 0x021DDF4C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c4
+ ldr r0, _021DE054 ; =UNK04_0221051C
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #0x1c4
+ moveq r0, #0
+ ldmeqia sp!, {pc}
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0xba0]
+ cmp r0, #0
+ addeq sp, sp, #0x1c4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD04_021D988C
+ cmp r0, #0
+ beq _021DDFA4
+ cmp r0, #0x14
+ beq _021DDFE0
+ cmp r0, #0x15
+ beq _021DDFB0
+ b _021DE010
+_021DDFA4:
+ add sp, sp, #0x1c4
+ mov r0, #2
+ ldmfd sp!, {pc}
+_021DDFB0:
+ bl MOD04_021D991C
+ ldr r0, _021DE054 ; =UNK04_0221051C
+ ldr r2, _021DE058 ; =0x00001E1C
+ ldr r1, [r0]
+ mov r0, #4
+ bl MOD04_021DD904
+ ldr r0, _021DE054 ; =UNK04_0221051C
+ mov r1, #0
+ str r1, [r0]
+ add sp, sp, #0x1c4
+ mov r0, #3
+ ldmfd sp!, {pc}
+_021DDFE0:
+ bl MOD04_021D991C
+ ldr r0, _021DE054 ; =UNK04_0221051C
+ ldr r2, _021DE058 ; =0x00001E1C
+ ldr r1, [r0]
+ mov r0, #4
+ bl MOD04_021DD904
+ ldr r0, _021DE054 ; =UNK04_0221051C
+ mov r1, #0
+ str r1, [r0]
+ add sp, sp, #0x1c4
+ mov r0, #5
+ ldmfd sp!, {pc}
+_021DE010:
+ add r0, sp, #0
+ bl MOD04_021D97F8
+ bl MOD04_021D991C
+ ldr r0, _021DE054 ; =UNK04_0221051C
+ ldr r2, _021DE058 ; =0x00001E1C
+ ldr r1, [r0]
+ mov r0, #4
+ bl MOD04_021DD904
+ ldr r1, [sp]
+ ldr r2, _021DE054 ; =UNK04_0221051C
+ mov r3, #0
+ mov r0, #2
+ str r3, [r2]
+ bl MOD04_021DD6B0
+ mov r0, #4
+ add sp, sp, #0x1c4
+ ldmfd sp!, {pc}
+ .align 2, 0
+_021DE054: .word UNK04_0221051C
+_021DE058: .word 0x00001E1C
+ arm_func_end MOD04_021DDF4C
+
+ arm_func_start MOD04_021DE05C
+MOD04_021DE05C: ; 0x021DE05C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _021DE130 ; =UNK04_0221051C
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DE078
+ bl OS_Terminate
+_021DE078:
+ ldr r1, _021DE134 ; =0x00001E1C
+ mov r0, #4
+ bl MOD04_021DD944
+ ldr r1, _021DE130 ; =UNK04_0221051C
+ cmp r0, #0
+ str r0, [r1]
+ bne _021DE0AC
+ ldr r1, _021DE138 ; =0xFFFFB17C
+ mov r0, #9
+ bl MOD04_021DD6B0
+ add sp, sp, #4
+ mov r0, #0
+ ldmfd sp!, {pc}
+_021DE0AC:
+ ldr r2, _021DE134 ; =0x00001E1C
+ mov r1, #0
+ bl MI_CpuFill8
+ ldr r0, _021DE130 ; =UNK04_0221051C
+ ldr r1, _021DE13C ; =0x00001C44
+ ldr r2, [r0]
+ ldr r0, _021DE140 ; =UNK04_0220D2EC
+ add r1, r2, r1
+ mov r2, #9
+ bl MI_CpuCopy8
+ ldr r1, _021DE130 ; =UNK04_0221051C
+ ldr r2, _021DE144 ; =MOD04_021DD944
+ ldr r0, [r1]
+ ldr r3, _021DE148 ; =MOD04_021DD904
+ add r0, r0, #0x1000
+ str r2, [r0, #0xc50]
+ ldr r0, [r1]
+ ldr r2, _021DE14C ; =0x00001C10
+ add r0, r0, #0x1000
+ str r3, [r0, #0xc54]
+ ldr r1, [r1]
+ add r0, r1, r2
+ bl MOD04_021D9ACC
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ ldr r1, _021DE138 ; =0xFFFFB17C
+ mov r0, #9
+ bl MOD04_021DD6B0
+ mov r0, #0
+ add sp, sp, #4
+ ldmfd sp!, {pc}
+ .align 2, 0
+_021DE130: .word UNK04_0221051C
+_021DE134: .word 0x00001E1C
+_021DE138: .word 0xFFFFB17C
+_021DE13C: .word 0x00001C44
+_021DE140: .word UNK04_0220D2EC
+_021DE144: .word MOD04_021DD944
+_021DE148: .word MOD04_021DD904
+_021DE14C: .word 0x00001C10
+ arm_func_end MOD04_021DE05C
+
+ arm_func_start MOD04_021DE150
+MOD04_021DE150: ; 0x021DE150
+ stmdb sp!, {r4, lr}
+ bl MOD04_021DCF00
+ mov r4, r0
+ sub r0, r4, #3
+ cmp r0, #2
+ bhi _021DE16C
+ bl MOD04_021DD26C
+_021DE16C:
+ mov r0, r4
+ ldmia sp!, {r4, pc}
+ arm_func_end MOD04_021DE150
+
+ arm_func_start MOD04_021DE174
+MOD04_021DE174: ; 0x021DE174
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r4, r1
+ ldr r0, _021DE1EC ; =MOD04_021DD944
+ ldr r1, _021DE1F0 ; =MOD04_021DD904
+ bl MOD04_021DD2C4
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, r5
+ bl strlen
+ cmp r0, #0
+ bne _021DE1C0
+ ldr r0, _021DE1F4 ; =UNK04_0220D2F0
+ mov r1, r4
+ bl MOD04_021DCFFC
+ b _021DE1CC
+_021DE1C0:
+ mov r0, r5
+ mov r1, r4
+ bl MOD04_021DCFFC
+_021DE1CC:
+ cmp r0, #0
+ addne sp, sp, #4
+ movne r0, #1
+ ldmneia sp!, {r4, r5, pc}
+ bl MOD04_021DD26C
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_021DE1EC: .word MOD04_021DD944
+_021DE1F0: .word MOD04_021DD904
+_021DE1F4: .word UNK04_0220D2F0
+ arm_func_end MOD04_021DE174
+
+ arm_func_start MOD04_021DE1F8
+MOD04_021DE1F8: ; 0x021DE1F8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r2, _021DE2C4 ; =UNK04_022104F8
+ mov r5, r0
+ ldr r2, [r2]
+ mov r4, r1
+ cmp r2, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ bl RTC_GetDate
+ cmp r0, #0
+ bne _021DE23C
+ mov r0, r4
+ bl RTC_GetTime
+ cmp r0, #0
+ beq _021DE248
+_021DE23C:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DE248:
+ mov r0, r5
+ mov r1, r4
+ bl RTC_ConvertDateTimeToSecond
+ mvn r2, #0
+ cmp r1, r2
+ cmpeq r0, r2
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r2, _021DE2C8 ; =UNK04_022104FC
+ mov ip, #0
+ ldr lr, [r2]
+ ldr r3, [r2, #4]
+ subs r2, r0, lr
+ sbc r3, r1, r3
+ subs r0, r2, ip
+ sbcs r0, r3, ip
+ blt _021DE2A0
+ ldr r0, _021DE2CC ; =0xBC19137F
+ subs r0, r0, r2
+ sbcs r0, ip, r3
+ bge _021DE2AC
+_021DE2A0:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DE2AC:
+ mov r0, r5
+ mov r1, r4
+ bl RTC_ConvertSecondToDateTime
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_021DE2C4: .word UNK04_022104F8
+_021DE2C8: .word UNK04_022104FC
+_021DE2CC: .word 0xBC19137F
+ arm_func_end MOD04_021DE1F8
+
+ .section .data
+
+ .global UNK_0220D2EC
+UNK04_0220D2EC: ; 0x0220D2EC
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_0220D2F0
+UNK04_0220D2F0: ; 0x0220D2F0
+ .asciz "0000"
+
+ .balign 4, 0
+ .section .bss
+
+ .global UNK04_0221051C
+UNK04_0221051C: ; 0x0221051C
+ .space 0x4