summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2021-08-13 15:45:20 +0100
committerred031000 <rubenru09@aol.com>2021-08-16 14:26:20 +0100
commitd3a9506d773546cf353440448cee7fd9d447bc1d (patch)
tree4209751aecd9c4853e6032cf0dcc95aebfca2468
parent3e824244c8d3a0f43a687d8412651a244b50a65d (diff)
two more mod04 files
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/global.inc7
-rw-r--r--arm9/modules/04/asm/arm_04.s746
-rw-r--r--arm9/modules/04/asm/mod04_021DC8A4.s240
-rw-r--r--arm9/modules/04/asm/mod04_021DCCC8.s545
5 files changed, 794 insertions, 746 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 834780fa..e8652298 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -662,6 +662,8 @@ Overlay MODULE_04
Object mod04_021D9C2C.o
Object mod04_021DA260.o
Object mod04_021DB730.o
+ Object mod04_021DC8A4.o
+ Object mod04_021DCCC8.o
Object arm_04.o
}
diff --git a/arm9/global.inc b/arm9/global.inc
index 18dca976..9a3575cb 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -6137,8 +6137,13 @@
.extern MOD04_021DC870
.extern MOD04_021DC970
.extern MOD04_021DCA84
+.extern MOD04_021DCF00
+.extern MOD04_021DCFFC
+.extern MOD04_021DD26C
+.extern MOD04_021DD2C4
.extern MOD04_021DD36C
.extern MOD04_021DD4FC
+.extern MOD04_021DD6B0
.extern MOD04_021DD6F0
.extern MOD04_021DD718
.extern MOD04_021DD808
@@ -8291,6 +8296,8 @@
.extern UNK04_02210484
.extern UNK04_02210488
.extern UNK04_0221048C
+.extern UNK04_022104F8
+.extern UNK04_022104FC
.extern UNK05_021F64C8
.extern UNK05_021F8B84
.extern UNK05_021F8B88
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s
index 26b8d60b..43c06600 100644
--- a/arm9/modules/04/asm/arm_04.s
+++ b/arm9/modules/04/asm/arm_04.s
@@ -3,632 +3,6 @@
.section .text
.balign 4, 0
- arm_func_start MOD04_021DCA84
-MOD04_021DCA84: ; 0x021DCA84
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- sub sp, sp, #0x40
- mov r6, r0
- bl strlen
- mov r4, r0
- ldr r0, _021DCCB4 ; =UNK04_0220C580
- bl strlen
- cmp r4, r0
- bne _021DCCA8
- ldrsb r0, [r6, #7]
- cmp r0, #0x20
- bne _021DCCA8
- ldrsb r0, [r6, #0xb]
- cmp r0, #0x20
- bne _021DCCA8
- ldrsb r0, [r6, #0x10]
- cmp r0, #0x20
- bne _021DCCA8
- ldrsb r0, [r6, #0x13]
- cmp r0, #0x3a
- bne _021DCCA8
- ldrsb r0, [r6, #0x16]
- cmp r0, #0x3a
- bne _021DCCA8
- ldrsb r0, [r6, #0x19]
- cmp r0, #0x20
- bne _021DCCA8
- add r0, sp, #0
- bl RTC_GetDate
- cmp r0, #0
- bne _021DCCA8
- add r0, sp, #0x10
- bl RTC_GetTime
- cmp r0, #0
- bne _021DCCA8
- add r0, sp, #0
- add r1, sp, #0x10
- bl RTC_ConvertDateTimeToSecond
- mov r4, r0
- mov r5, r1
- mvn r0, #0
- cmp r5, r0
- cmpeq r4, r0
- beq _021DCCA8
- add r0, sp, #0x1c
- mov r1, r6
- bl strcpy
- mov r2, #0
- ldr r1, _021DCCB8 ; =errno
- add r0, sp, #0x28
- strb r2, [sp, #0x23]
- strb r2, [sp, #0x27]
- strb r2, [sp, #0x2c]
- strb r2, [sp, #0x2f]
- strb r2, [sp, #0x32]
- strb r2, [sp, #0x35]
- str r2, [r1]
- bl atol
- ldr r1, _021DCCB8 ; =errno
- str r0, [sp]
- ldr r1, [r1]
- cmp r1, #0x22
- beq _021DCCA8
- sub r1, r0, #0x7d0
- mov r0, #0xd
- str r1, [sp]
- str r0, [sp, #4]
- mov r8, #0
- ldr r7, _021DCCBC ; =UNK04_0220C550
- add r6, sp, #0x24
-_021DCB9C:
- ldr r0, [r7, r8, lsl #2]
- mov r1, r6
- bl strcmp
- cmp r0, #0
- addeq r0, r8, #1
- streq r0, [sp, #4]
- beq _021DCBC4
- add r8, r8, #1
- cmp r8, #0xc
- blt _021DCB9C
-_021DCBC4:
- ldr r0, [sp, #4]
- cmp r0, #0xc
- bhi _021DCCA8
- ldr r1, _021DCCB8 ; =errno
- mov r2, #0
- add r0, sp, #0x21
- str r2, [r1]
- bl atol
- ldr r1, _021DCCB8 ; =errno
- str r0, [sp, #8]
- ldr r0, [r1]
- cmp r0, #0x22
- beq _021DCCA8
- mov r2, #0
- add r0, sp, #0x2d
- str r2, [r1]
- bl atol
- ldr r1, _021DCCB8 ; =errno
- str r0, [sp, #0x10]
- ldr r0, [r1]
- cmp r0, #0x22
- beq _021DCCA8
- mov r2, #0
- add r0, sp, #0x30
- str r2, [r1]
- bl atol
- ldr r1, _021DCCB8 ; =errno
- str r0, [sp, #0x14]
- ldr r0, [r1]
- cmp r0, #0x22
- beq _021DCCA8
- mov r2, #0
- add r0, sp, #0x33
- str r2, [r1]
- bl atol
- ldr r1, _021DCCB8 ; =errno
- str r0, [sp, #0x18]
- ldr r0, [r1]
- cmp r0, #0x22
- beq _021DCCA8
- add r0, sp, #0
- add r1, sp, #0x10
- bl RTC_ConvertDateTimeToSecond
- mvn r2, #0
- cmp r1, r2
- cmpeq r0, r2
- beq _021DCCA8
- subs r4, r4, r0
- ldr r2, _021DCCC0 ; =UNK04_022104FC
- sbc r3, r5, r1
- ldr r1, _021DCCC4 ; =UNK04_022104F8
- mov r0, #1
- str r3, [r2, #4]
- str r0, [r1]
- add sp, sp, #0x40
- str r4, [r2]
- ldmia sp!, {r4, r5, r6, r7, r8, pc}
-_021DCCA8:
- mov r0, #0
- add sp, sp, #0x40
- ldmia sp!, {r4, r5, r6, r7, r8, pc}
- .align 2, 0
-_021DCCB4: .word UNK04_0220C580
-_021DCCB8: .word errno
-_021DCCBC: .word UNK04_0220C550
-_021DCCC0: .word UNK04_022104FC
-_021DCCC4: .word UNK04_022104F8
- arm_func_end MOD04_021DCA84
-
- arm_func_start MOD04_021DCCC8
-MOD04_021DCCC8: ; 0x021DCCC8
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- ldr r0, _021DCED4 ; =UNK04_02210504
- mov r1, #0
- ldr r0, [r0]
- add r4, r0, #8
- mov r0, r4
- bl MOD04_021DA3DC
- cmp r0, #0
- bne _021DCD08
- ldr r1, _021DCED8 ; =0xFFFF9DF3
- mov r0, #0x10
- bl MOD04_021DD6B0
- add sp, sp, #8
- mov r0, #0
- ldmia sp!, {r4, pc}
-_021DCD08:
- ldr r1, _021DCEDC ; =UNK04_0220C5A0
- mov r0, r4
- bl MOD04_021DA388
- cmp r0, #0
- beq _021DCD20
- bl MOD04_021DCA84
-_021DCD20:
- ldr r1, _021DCEE0 ; =UNK04_0220C5A8
- mov r0, r4
- bl MOD04_021DA388
- cmp r0, #0
- bne _021DCD4C
- ldr r1, _021DCED8 ; =0xFFFF9DF3
- mov r0, #0x10
- bl MOD04_021DD6B0
- add sp, sp, #8
- mov r0, #0
- ldmia sp!, {r4, pc}
-_021DCD4C:
- bl atol
- ldr r1, _021DCEE4 ; =errno
- mov r2, r0
- ldr r0, [r1]
- cmp r0, #0x22
- bne _021DCD7C
- ldr r1, _021DCED8 ; =0xFFFF9DF3
- mov r0, #0x10
- bl MOD04_021DD6B0
- add sp, sp, #8
- mov r0, #0
- ldmia sp!, {r4, pc}
-_021DCD7C:
- cmp r2, #0xc8
- beq _021DCDA0
- ldr r1, _021DCEE8 ; =0xFFFF9E58
- mov r0, #0x10
- sub r1, r1, r2
- bl MOD04_021DD6B0
- add sp, sp, #8
- mov r0, #0
- ldmia sp!, {r4, pc}
-_021DCDA0:
- ldr r1, _021DCEEC ; =UNK04_0220C5B4
- add r2, sp, #0
- mov r0, r4
- mov r3, #4
- bl MOD04_021DA334
- cmp r0, #0
- bgt _021DCDD4
- ldr r1, _021DCED8 ; =0xFFFF9DF3
- mov r0, #0x10
- bl MOD04_021DD6B0
- add sp, sp, #8
- mov r0, #0
- ldmia sp!, {r4, pc}
-_021DCDD4:
- add r0, sp, #0
- bl atol
- ldr r1, _021DCEE4 ; =errno
- mov r2, r0
- ldr r0, [r1]
- cmp r0, #0x22
- bne _021DCE08
- ldr r1, _021DCED8 ; =0xFFFF9DF3
- mov r0, #0x10
- bl MOD04_021DD6B0
- add sp, sp, #8
- mov r0, #0
- ldmia sp!, {r4, pc}
-_021DCE08:
- cmp r2, #0x64
- blt _021DCE2C
- ldr r1, _021DCEF0 ; =0xFFFFA240
- mov r0, #0x10
- sub r1, r1, r2
- bl MOD04_021DD6B0
- add sp, sp, #8
- mov r0, #0
- ldmia sp!, {r4, pc}
-_021DCE2C:
- ldr r0, _021DCED4 ; =UNK04_02210504
- ldr r1, _021DCEF4 ; =UNK04_0220C5C0
- ldr r2, [r0]
- mov r0, r4
- add r2, r2, #0x1000
- ldr r2, [r2, #0xc18]
- mov r3, #0x40
- add r2, r2, #4
- bl MOD04_021DA334
- ldr r0, _021DCED4 ; =UNK04_02210504
- ldr r1, _021DCEF8 ; =UNK04_0220C5C8
- ldr r2, [r0]
- mov r0, r4
- add r2, r2, #0x1000
- ldr r2, [r2, #0xc18]
- mov r3, #0x12c
- add r2, r2, #0x45
- bl MOD04_021DA334
- ldr r1, _021DCEFC ; =UNK04_0220C5D8
- add r2, sp, #0
- mov r0, r4
- mov r3, #1
- bl MOD04_021DA334
- ldrsb r0, [sp]
- cmp r0, #0x59
- bne _021DCEB0
- ldr r0, _021DCED4 ; =UNK04_02210504
- mov r1, #1
- ldr r0, [r0]
- add r0, r0, #0x1000
- ldr r0, [r0, #0xc18]
- str r1, [r0]
- b _021DCEC8
-_021DCEB0:
- ldr r0, _021DCED4 ; =UNK04_02210504
- mov r1, #0
- ldr r0, [r0]
- add r0, r0, #0x1000
- ldr r0, [r0, #0xc18]
- str r1, [r0]
-_021DCEC8:
- mov r0, #1
- add sp, sp, #8
- ldmia sp!, {r4, pc}
- .align 2, 0
-_021DCED4: .word UNK04_02210504
-_021DCED8: .word 0xFFFF9DF3
-_021DCEDC: .word UNK04_0220C5A0
-_021DCEE0: .word UNK04_0220C5A8
-_021DCEE4: .word errno
-_021DCEE8: .word 0xFFFF9E58
-_021DCEEC: .word UNK04_0220C5B4
-_021DCEF0: .word 0xFFFFA240
-_021DCEF4: .word UNK04_0220C5C0
-_021DCEF8: .word UNK04_0220C5C8
-_021DCEFC: .word UNK04_0220C5D8
- arm_func_end MOD04_021DCCC8
-
- arm_func_start MOD04_021DCF00
-MOD04_021DCF00: ; 0x021DCF00
- stmdb sp!, {lr}
- sub sp, sp, #4
- ldr r0, _021DCFF0 ; =UNK04_02210504
- ldr r1, [r0]
- cmp r1, #0
- addeq sp, sp, #4
- moveq r0, #0
- ldmeqia sp!, {pc}
- add r0, r1, #0x1000
- ldr r0, [r0, #0xba8]
- cmp r0, #0
- addeq sp, sp, #4
- moveq r0, #1
- ldmeqia sp!, {pc}
- ldr r0, _021DCFF4 ; =0x00001B3C
- add r0, r1, r0
- bl OS_IsThreadTerminated
- cmp r0, #1
- bne _021DCFE4
- ldr r0, _021DCFF0 ; =UNK04_02210504
- ldr r1, [r0]
- add r0, r1, #0x1000
- ldr r0, [r0, #0x28]
- cmp r0, #7
- beq _021DCFB0
- cmp r0, #8
- bne _021DCFC4
- bl MOD04_021DCCC8
- cmp r0, #0
- bne _021DCF94
- ldr r0, _021DCFF0 ; =UNK04_02210504
- ldr r0, [r0]
- add r0, r0, #8
- bl MOD04_021DAE4C
- add sp, sp, #4
- mov r0, #4
- ldmfd sp!, {pc}
-_021DCF94:
- ldr r0, _021DCFF0 ; =UNK04_02210504
- ldr r0, [r0]
- add r0, r0, #8
- bl MOD04_021DAE4C
- add sp, sp, #4
- mov r0, #3
- ldmfd sp!, {pc}
-_021DCFB0:
- add r0, r1, #8
- bl MOD04_021DAE4C
- add sp, sp, #4
- mov r0, #5
- ldmfd sp!, {pc}
-_021DCFC4:
- add r0, r1, #8
- bl MOD04_021DAE4C
- ldr r1, _021DCFF8 ; =0xFFFFA1DB
- mov r0, #0x11
- bl MOD04_021DD6B0
- add sp, sp, #4
- mov r0, #4
- ldmfd sp!, {pc}
-_021DCFE4:
- mov r0, #2
- add sp, sp, #4
- ldmfd sp!, {pc}
- .align 2, 0
-_021DCFF0: .word UNK04_02210504
-_021DCFF4: .word 0x00001B3C
-_021DCFF8: .word 0xFFFFA1DB
- arm_func_end MOD04_021DCF00
-
- arm_func_start MOD04_021DCFFC
-MOD04_021DCFFC: ; 0x021DCFFC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #0xb4
- ldr r2, _021DD244 ; =UNK04_02210504
- mov r5, r0
- ldr r2, [r2]
- mov r0, r1
- add r2, r2, #0x1000
- str r1, [r2, #0xc18]
- mov r1, #0
- mov r2, #0x174
- bl MI_CpuFill8
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r1, [r0]
- add r0, r1, #0x1000
- ldr r0, [r0, #0xba8]
- cmp r0, #0
- beq _021DD058
- ldr r0, _021DD248 ; =0x00001B3C
- add r0, r1, r0
- bl OS_IsThreadTerminated
- cmp r0, #0
- bne _021DD058
- bl OS_Terminate
-_021DD058:
- ldr r0, _021DD24C ; =UNK04_0220BEB4
- ldr r1, _021DD244 ; =UNK04_02210504
- ldr r0, [r0]
- mov r3, #0
- ldr r4, [r1]
- mov r2, #0x1000
- str r0, [sp]
- str r3, [sp, #4]
- str r2, [sp, #8]
- ldr r2, [r4]
- ldr r1, _021DD250 ; =UNK04_0220C5E4
- str r2, [sp, #0xc]
- ldr r2, [r4, #4]
- str r2, [sp, #0x10]
- bl strcmp
- cmp r0, #0
- movne r0, #1
- strne r0, [sp, #0x14]
- moveq r0, #0
- ldr r2, _021DD254 ; =0x00004E20
- streq r0, [sp, #0x14]
- add r1, sp, #0
- add r0, r4, #8
- str r2, [sp, #0x18]
- bl MOD04_021DB608
- cmp r0, #0
- beq _021DD0DC
- ldr r1, _021DD258 ; =0xFFFFA1DC
- mov r0, #9
- bl MOD04_021DD6B0
- add sp, sp, #0xb4
- mov r0, #0
- ldmia sp!, {r4, r5, pc}
-_021DD0DC:
- add r0, sp, #0x1c
- bl MOD04_021DA238
- cmp r0, #0
- beq _021DD10C
- ldr r0, _021DD244 ; =UNK04_02210504
- add r1, sp, #0x1c
- ldr r0, [r0]
- mov r2, #0
- add r0, r0, #8
- bl MOD04_021D9C2C
- cmp r0, #0
- bne _021DD134
-_021DD10C:
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r0, [r0]
- add r0, r0, #8
- bl MOD04_021DAE4C
- ldr r1, _021DD258 ; =0xFFFFA1DC
- mov r0, #9
- bl MOD04_021DD6B0
- add sp, sp, #0xb4
- mov r0, #0
- ldmia sp!, {r4, r5, pc}
-_021DD134:
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r1, _021DD25C ; =UNK04_0220C604
- ldr r0, [r0]
- ldr r2, _021DD260 ; =UNK04_0220C60C
- add r0, r0, #8
- mov r3, #6
- bl MOD04_021DAB68
- cmp r0, #0
- bne _021DD17C
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r1, _021DD264 ; =UNK04_0220C614
- ldr r0, [r0]
- mov r2, r5
- add r0, r0, #8
- mov r3, #4
- bl MOD04_021DAB68
- cmp r0, #0
- beq _021DD1A4
-_021DD17C:
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r0, [r0]
- add r0, r0, #8
- bl MOD04_021DAE4C
- ldr r1, _021DD258 ; =0xFFFFA1DC
- mov r0, #9
- bl MOD04_021DD6B0
- add sp, sp, #0xb4
- mov r0, #0
- ldmia sp!, {r4, r5, pc}
-_021DD1A4:
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r0, [r0]
- add r0, r0, #8
- bl MOD04_021DB570
- cmp r0, #0
- beq _021DD1E4
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r0, [r0]
- add r0, r0, #8
- bl MOD04_021DAE4C
- ldr r1, _021DD258 ; =0xFFFFA1DC
- mov r0, #9
- bl MOD04_021DD6B0
- add sp, sp, #0xb4
- mov r0, #0
- ldmia sp!, {r4, r5, pc}
-_021DD1E4:
- ldr r0, _021DD268 ; =OSi_ThreadInfo
- ldr r0, [r0, #4]
- bl OS_GetThreadPriority
- ldr r1, _021DD244 ; =UNK04_02210504
- ldr r2, [r1]
- sub r1, r0, #1
- add r0, r2, #8
- bl MOD04_021DB4A4
- ldr r0, _021DD244 ; =UNK04_02210504
- ldr r1, [r0]
- add r0, r1, #0x1000
- ldr r0, [r0, #0xba8]
- cmp r0, #0
- addne sp, sp, #0xb4
- movne r0, #1
- ldmneia sp!, {r4, r5, pc}
- add r0, r1, #8
- bl MOD04_021DAE4C
- ldr r1, _021DD258 ; =0xFFFFA1DC
- mov r0, #9
- bl MOD04_021DD6B0
- mov r0, #0
- add sp, sp, #0xb4
- ldmia sp!, {r4, r5, pc}
- .align 2, 0
-_021DD244: .word UNK04_02210504
-_021DD248: .word 0x00001B3C
-_021DD24C: .word UNK04_0220BEB4
-_021DD250: .word UNK04_0220C5E4
-_021DD254: .word 0x00004E20
-_021DD258: .word 0xFFFFA1DC
-_021DD25C: .word UNK04_0220C604
-_021DD260: .word UNK04_0220C60C
-_021DD264: .word UNK04_0220C614
-_021DD268: .word OSi_ThreadInfo
- arm_func_end MOD04_021DCFFC
-
- arm_func_start MOD04_021DD26C
-MOD04_021DD26C: ; 0x021DD26C
- stmdb sp!, {lr}
- sub sp, sp, #4
- ldr r0, _021DD2BC ; =UNK04_02210504
- ldr r0, [r0]
- cmp r0, #0
- addeq sp, sp, #4
- ldmeqia sp!, {pc}
- add r0, r0, #8
- bl MOD04_021DAE4C
- ldr r1, _021DD2BC ; =UNK04_02210504
- ldr r0, _021DD2C0 ; =UNK04_0220C618
- ldr r1, [r1]
- mov r2, #0
- ldr r3, [r1, #4]
- blx r3
- ldr r0, _021DD2BC ; =UNK04_02210504
- mov r1, #0
- str r1, [r0]
- add sp, sp, #4
- ldmfd sp!, {pc}
- .align 2, 0
-_021DD2BC: .word UNK04_02210504
-_021DD2C0: .word UNK04_0220C618
- arm_func_end MOD04_021DD26C
-
- arm_func_start MOD04_021DD2C4
-MOD04_021DD2C4: ; 0x021DD2C4
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- ldr r2, _021DD35C ; =UNK04_02210504
- mov r5, r0
- ldr r0, [r2]
- mov r4, r1
- cmp r0, #0
- beq _021DD2FC
- ldr r1, _021DD360 ; =0xFFFFA1DC
- mov r0, #9
- bl MOD04_021DD6B0
- add sp, sp, #4
- mov r0, #0
- ldmia sp!, {r4, r5, pc}
-_021DD2FC:
- ldr r0, _021DD364 ; =UNK04_0220C628
- ldr r1, _021DD368 ; =0x00001C1C
- blx r5
- ldr r1, _021DD35C ; =UNK04_02210504
- cmp r0, #0
- str r0, [r1]
- bne _021DD330
- ldr r1, _021DD360 ; =0xFFFFA1DC
- mov r0, #9
- bl MOD04_021DD6B0
- add sp, sp, #4
- mov r0, #0
- ldmia sp!, {r4, r5, pc}
-_021DD330:
- ldr r2, _021DD368 ; =0x00001C1C
- mov r1, #0
- bl MI_CpuFill8
- ldr r1, _021DD35C ; =UNK04_02210504
- mov r0, #1
- ldr r2, [r1]
- str r5, [r2]
- ldr r1, [r1]
- str r4, [r1, #4]
- add sp, sp, #4
- ldmia sp!, {r4, r5, pc}
- .align 2, 0
-_021DD35C: .word UNK04_02210504
-_021DD360: .word 0xFFFFA1DC
-_021DD364: .word UNK04_0220C628
-_021DD368: .word 0x00001C1C
- arm_func_end MOD04_021DD2C4
-
arm_func_start MOD04_021DD36C
MOD04_021DD36C: ; 0x021DD36C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
@@ -55815,114 +55189,6 @@ UNK04_0220BE70: ; 0x0220BE70
.section .data
- .global UNK04_0220C520
-UNK04_0220C520: ; 0x0220C520
- .byte 0x44, 0x65, 0x63, 0x00
-
- .global UNK_0220C524
-UNK04_0220C524: ; 0x0220C524
- .byte 0x4A, 0x75, 0x6C, 0x00
-
- .global UNK_0220C528
-UNK04_0220C528: ; 0x0220C528
- .byte 0x4F, 0x63, 0x74, 0x00
-
- .global UNK_0220C52C
-UNK04_0220C52C: ; 0x0220C52C
- .byte 0x53, 0x65, 0x70, 0x00
-
- .global UNK_0220C530
-UNK04_0220C530: ; 0x0220C530
- .byte 0x41, 0x75, 0x67, 0x00
-
- .global UNK_0220C534
-UNK04_0220C534: ; 0x0220C534
- .byte 0x4E, 0x6F, 0x76, 0x00
-
- .global UNK_0220C538
-UNK04_0220C538: ; 0x0220C538
- .byte 0x4A, 0x75, 0x6E, 0x00
-
- .global UNK_0220C53C
-UNK04_0220C53C: ; 0x0220C53C
- .byte 0x4D, 0x61, 0x79, 0x00
-
- .global UNK_0220C540
-UNK04_0220C540: ; 0x0220C540
- .byte 0x41, 0x70, 0x72, 0x00
-
- .global UNK_0220C544
-UNK04_0220C544: ; 0x0220C544
- .byte 0x4D, 0x61, 0x72, 0x00
-
- .global UNK_0220C548
-UNK04_0220C548: ; 0x0220C548
- .byte 0x46, 0x65, 0x62, 0x00
-
- .global UNK_0220C54C
-UNK04_0220C54C: ; 0x0220C54C
- .byte 0x4A, 0x61, 0x6E, 0x00
-
- .global UNK_0220C550
-UNK04_0220C550: ; 0x0220C550
- .word UNK04_0220C54C, UNK04_0220C548, UNK04_0220C544, UNK04_0220C540
- .word UNK04_0220C53C, UNK04_0220C538, UNK04_0220C524, UNK04_0220C530
- .word UNK04_0220C52C, UNK04_0220C528, UNK04_0220C534, UNK04_0220C520
-
- .global UNK_0220C580
-UNK04_0220C580: ; 0x0220C580
- .byte 0x46, 0x72, 0x69, 0x2C, 0x20, 0x30, 0x33, 0x20, 0x4D, 0x61, 0x72, 0x20, 0x32, 0x30, 0x30, 0x36
- .byte 0x20, 0x30, 0x31, 0x3A, 0x32, 0x38, 0x3A, 0x31, 0x33, 0x20, 0x47, 0x4D, 0x54, 0x00, 0x00, 0x00
-
- .global UNK_0220C5A0
-UNK04_0220C5A0: ; 0x0220C5A0
- .byte 0x44, 0x61, 0x74, 0x65, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_0220C5A8
-UNK04_0220C5A8: ; 0x0220C5A8
- .byte 0x68, 0x74, 0x74, 0x70, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x00
-
- .global UNK_0220C5B4
-UNK04_0220C5B4: ; 0x0220C5B4
- .byte 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x63, 0x64, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_0220C5C0
-UNK04_0220C5C0: ; 0x0220C5C0
- .byte 0x73, 0x76, 0x63, 0x68, 0x6F, 0x73, 0x74, 0x00
-
- .global UNK_0220C5C8
-UNK04_0220C5C8: ; 0x0220C5C8
- .byte 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x74, 0x6F, 0x6B, 0x65, 0x6E, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_0220C5D8
-UNK04_0220C5D8: ; 0x0220C5D8
- .byte 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00
-
- .global UNK_0220C5E4
-UNK04_0220C5E4: ; 0x0220C5E4
- .byte 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x6E, 0x61, 0x73, 0x2E, 0x6E, 0x69, 0x6E, 0x74
- .byte 0x65, 0x6E, 0x64, 0x6F, 0x77, 0x69, 0x66, 0x69, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x61, 0x63, 0x00
-
- .global UNK_0220C604
-UNK04_0220C604: ; 0x0220C604
- .byte 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x00
-
- .global UNK_0220C60C
-UNK04_0220C60C: ; 0x0220C60C
- .byte 0x53, 0x56, 0x43, 0x4C, 0x4F, 0x43, 0x00, 0x00
-
- .global UNK_0220C614
-UNK04_0220C614: ; 0x0220C614
- .byte 0x73, 0x76, 0x63, 0x00
-
- .global UNK_0220C618
-UNK04_0220C618: ; 0x0220C618
- .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x69, 0x6E, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_0220C628
-UNK04_0220C628: ; 0x0220C628
- .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x69, 0x6E, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x00, 0x00, 0x00
-
.global UNK_0220C638
UNK04_0220C638: ; 0x0220C638
.word UNK04_0220C63C
@@ -58991,18 +58257,6 @@ UNK04_0220FBA4: ; 0x0220FBA4
.section .bss
- .global UNK04_022104F8
-UNK04_022104F8: ; 0x022104F8
- .space 0x4
-
- .global UNK04_022104FC
-UNK04_022104FC: ; 0x022104FC
- .space 0x8
-
- .global UNK04_02210504
-UNK04_02210504: ; 0x02210504
- .space 0x4
-
.global UNK04_02210508
UNK04_02210508: ; 0x02210508
.space 0x4
diff --git a/arm9/modules/04/asm/mod04_021DC8A4.s b/arm9/modules/04/asm/mod04_021DC8A4.s
new file mode 100644
index 00000000..7668cb10
--- /dev/null
+++ b/arm9/modules/04/asm/mod04_021DC8A4.s
@@ -0,0 +1,240 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ arm_func_start MOD04_021DCA84
+MOD04_021DCA84: ; 0x021DCA84
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x40
+ mov r6, r0
+ bl strlen
+ mov r4, r0
+ ldr r0, _021DCCB4 ; =UNK04_0220C580
+ bl strlen
+ cmp r4, r0
+ bne _021DCCA8
+ ldrsb r0, [r6, #7]
+ cmp r0, #0x20
+ bne _021DCCA8
+ ldrsb r0, [r6, #0xb]
+ cmp r0, #0x20
+ bne _021DCCA8
+ ldrsb r0, [r6, #0x10]
+ cmp r0, #0x20
+ bne _021DCCA8
+ ldrsb r0, [r6, #0x13]
+ cmp r0, #0x3a
+ bne _021DCCA8
+ ldrsb r0, [r6, #0x16]
+ cmp r0, #0x3a
+ bne _021DCCA8
+ ldrsb r0, [r6, #0x19]
+ cmp r0, #0x20
+ bne _021DCCA8
+ add r0, sp, #0
+ bl RTC_GetDate
+ cmp r0, #0
+ bne _021DCCA8
+ add r0, sp, #0x10
+ bl RTC_GetTime
+ cmp r0, #0
+ bne _021DCCA8
+ add r0, sp, #0
+ add r1, sp, #0x10
+ bl RTC_ConvertDateTimeToSecond
+ mov r4, r0
+ mov r5, r1
+ mvn r0, #0
+ cmp r5, r0
+ cmpeq r4, r0
+ beq _021DCCA8
+ add r0, sp, #0x1c
+ mov r1, r6
+ bl strcpy
+ mov r2, #0
+ ldr r1, _021DCCB8 ; =errno
+ add r0, sp, #0x28
+ strb r2, [sp, #0x23]
+ strb r2, [sp, #0x27]
+ strb r2, [sp, #0x2c]
+ strb r2, [sp, #0x2f]
+ strb r2, [sp, #0x32]
+ strb r2, [sp, #0x35]
+ str r2, [r1]
+ bl atol
+ ldr r1, _021DCCB8 ; =errno
+ str r0, [sp]
+ ldr r1, [r1]
+ cmp r1, #0x22
+ beq _021DCCA8
+ sub r1, r0, #0x7d0
+ mov r0, #0xd
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r8, #0
+ ldr r7, _021DCCBC ; =UNK04_0220C550
+ add r6, sp, #0x24
+_021DCB9C:
+ ldr r0, [r7, r8, lsl #2]
+ mov r1, r6
+ bl strcmp
+ cmp r0, #0
+ addeq r0, r8, #1
+ streq r0, [sp, #4]
+ beq _021DCBC4
+ add r8, r8, #1
+ cmp r8, #0xc
+ blt _021DCB9C
+_021DCBC4:
+ ldr r0, [sp, #4]
+ cmp r0, #0xc
+ bhi _021DCCA8
+ ldr r1, _021DCCB8 ; =errno
+ mov r2, #0
+ add r0, sp, #0x21
+ str r2, [r1]
+ bl atol
+ ldr r1, _021DCCB8 ; =errno
+ str r0, [sp, #8]
+ ldr r0, [r1]
+ cmp r0, #0x22
+ beq _021DCCA8
+ mov r2, #0
+ add r0, sp, #0x2d
+ str r2, [r1]
+ bl atol
+ ldr r1, _021DCCB8 ; =errno
+ str r0, [sp, #0x10]
+ ldr r0, [r1]
+ cmp r0, #0x22
+ beq _021DCCA8
+ mov r2, #0
+ add r0, sp, #0x30
+ str r2, [r1]
+ bl atol
+ ldr r1, _021DCCB8 ; =errno
+ str r0, [sp, #0x14]
+ ldr r0, [r1]
+ cmp r0, #0x22
+ beq _021DCCA8
+ mov r2, #0
+ add r0, sp, #0x33
+ str r2, [r1]
+ bl atol
+ ldr r1, _021DCCB8 ; =errno
+ str r0, [sp, #0x18]
+ ldr r0, [r1]
+ cmp r0, #0x22
+ beq _021DCCA8
+ add r0, sp, #0
+ add r1, sp, #0x10
+ bl RTC_ConvertDateTimeToSecond
+ mvn r2, #0
+ cmp r1, r2
+ cmpeq r0, r2
+ beq _021DCCA8
+ subs r4, r4, r0
+ ldr r2, _021DCCC0 ; =UNK04_022104FC
+ sbc r3, r5, r1
+ ldr r1, _021DCCC4 ; =UNK04_022104F8
+ mov r0, #1
+ str r3, [r2, #4]
+ str r0, [r1]
+ add sp, sp, #0x40
+ str r4, [r2]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_021DCCA8:
+ mov r0, #0
+ add sp, sp, #0x40
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_021DCCB4: .word UNK04_0220C580
+_021DCCB8: .word errno
+_021DCCBC: .word UNK04_0220C550
+_021DCCC0: .word UNK04_022104FC
+_021DCCC4: .word UNK04_022104F8
+ arm_func_end MOD04_021DCA84
+
+ .section .data
+
+ .global UNK04_0220C520
+UNK04_0220C520: ; 0x0220C520
+ .asciz "Dec"
+
+ .balign 4, 0
+ .global UNK04_0220C524
+UNK04_0220C524: ; 0x0220C524
+ .asciz "Jul"
+
+ .balign 4, 0
+ .global UNK04_0220C528
+UNK04_0220C528: ; 0x0220C528
+ .asciz "Oct"
+
+ .balign 4, 0
+ .global UNK04_0220C52C
+UNK04_0220C52C: ; 0x0220C52C
+ .asciz "Sep"
+
+ .balign 4, 0
+ .global UNK04_0220C530
+UNK04_0220C530: ; 0x0220C530
+ .asciz "Aug"
+
+ .balign 4, 0
+ .global UNK04_0220C534
+UNK04_0220C534: ; 0x0220C534
+ .asciz "Nov"
+
+ .balign 4, 0
+ .global UNK04_0220C538
+UNK04_0220C538: ; 0x0220C538
+ .asciz "Jun"
+
+ .balign 4, 0
+ .global UNK04_0220C53C
+UNK04_0220C53C: ; 0x0220C53C
+ .asciz "May"
+
+ .balign 4, 0
+ .global UNK04_0220C540
+UNK04_0220C540: ; 0x0220C540
+ .asciz "Apr"
+
+ .balign 4, 0
+ .global UNK04_0220C544
+UNK04_0220C544: ; 0x0220C544
+ .asciz "Mar"
+
+ .balign 4, 0
+ .global UNK04_0220C548
+UNK04_0220C548: ; 0x0220C548
+ .asciz "Feb"
+
+ .balign 4, 0
+ .global UNK04_0220C54C
+UNK04_0220C54C: ; 0x0220C54C
+ .asciz "Jan"
+
+ .balign 4, 0
+ .global UNK04_0220C550
+UNK04_0220C550: ; 0x0220C550
+ .word UNK04_0220C54C, UNK04_0220C548, UNK04_0220C544, UNK04_0220C540
+ .word UNK04_0220C53C, UNK04_0220C538, UNK04_0220C524, UNK04_0220C530
+ .word UNK04_0220C52C, UNK04_0220C528, UNK04_0220C534, UNK04_0220C520
+
+ .global UNK04_0220C580
+UNK04_0220C580: ; 0x0220C580
+ .asciz "Fri, 03 Mar 2006 01:28:13 GMT"
+
+ .balign 4, 0
+ .section .bss
+
+ .global UNK04_022104F8
+UNK04_022104F8: ; 0x022104F8
+ .space 0x4
+
+ .global UNK04_022104FC
+UNK04_022104FC: ; 0x022104FC
+ .space 0x8
diff --git a/arm9/modules/04/asm/mod04_021DCCC8.s b/arm9/modules/04/asm/mod04_021DCCC8.s
new file mode 100644
index 00000000..a182f7c3
--- /dev/null
+++ b/arm9/modules/04/asm/mod04_021DCCC8.s
@@ -0,0 +1,545 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ arm_func_start MOD04_021DCCC8
+MOD04_021DCCC8: ; 0x021DCCC8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r0, _021DCED4 ; =UNK04_02210504
+ mov r1, #0
+ ldr r0, [r0]
+ add r4, r0, #8
+ mov r0, r4
+ bl MOD04_021DA3DC
+ cmp r0, #0
+ bne _021DCD08
+ ldr r1, _021DCED8 ; =0xFFFF9DF3
+ mov r0, #0x10
+ bl MOD04_021DD6B0
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_021DCD08:
+ ldr r1, _021DCEDC ; =UNK04_0220C5A0
+ mov r0, r4
+ bl MOD04_021DA388
+ cmp r0, #0
+ beq _021DCD20
+ bl MOD04_021DCA84
+_021DCD20:
+ ldr r1, _021DCEE0 ; =UNK04_0220C5A8
+ mov r0, r4
+ bl MOD04_021DA388
+ cmp r0, #0
+ bne _021DCD4C
+ ldr r1, _021DCED8 ; =0xFFFF9DF3
+ mov r0, #0x10
+ bl MOD04_021DD6B0
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_021DCD4C:
+ bl atol
+ ldr r1, _021DCEE4 ; =errno
+ mov r2, r0
+ ldr r0, [r1]
+ cmp r0, #0x22
+ bne _021DCD7C
+ ldr r1, _021DCED8 ; =0xFFFF9DF3
+ mov r0, #0x10
+ bl MOD04_021DD6B0
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_021DCD7C:
+ cmp r2, #0xc8
+ beq _021DCDA0
+ ldr r1, _021DCEE8 ; =0xFFFF9E58
+ mov r0, #0x10
+ sub r1, r1, r2
+ bl MOD04_021DD6B0
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_021DCDA0:
+ ldr r1, _021DCEEC ; =UNK04_0220C5B4
+ add r2, sp, #0
+ mov r0, r4
+ mov r3, #4
+ bl MOD04_021DA334
+ cmp r0, #0
+ bgt _021DCDD4
+ ldr r1, _021DCED8 ; =0xFFFF9DF3
+ mov r0, #0x10
+ bl MOD04_021DD6B0
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_021DCDD4:
+ add r0, sp, #0
+ bl atol
+ ldr r1, _021DCEE4 ; =errno
+ mov r2, r0
+ ldr r0, [r1]
+ cmp r0, #0x22
+ bne _021DCE08
+ ldr r1, _021DCED8 ; =0xFFFF9DF3
+ mov r0, #0x10
+ bl MOD04_021DD6B0
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_021DCE08:
+ cmp r2, #0x64
+ blt _021DCE2C
+ ldr r1, _021DCEF0 ; =0xFFFFA240
+ mov r0, #0x10
+ sub r1, r1, r2
+ bl MOD04_021DD6B0
+ add sp, sp, #8
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_021DCE2C:
+ ldr r0, _021DCED4 ; =UNK04_02210504
+ ldr r1, _021DCEF4 ; =UNK04_0220C5C0
+ ldr r2, [r0]
+ mov r0, r4
+ add r2, r2, #0x1000
+ ldr r2, [r2, #0xc18]
+ mov r3, #0x40
+ add r2, r2, #4
+ bl MOD04_021DA334
+ ldr r0, _021DCED4 ; =UNK04_02210504
+ ldr r1, _021DCEF8 ; =UNK04_0220C5C8
+ ldr r2, [r0]
+ mov r0, r4
+ add r2, r2, #0x1000
+ ldr r2, [r2, #0xc18]
+ mov r3, #0x12c
+ add r2, r2, #0x45
+ bl MOD04_021DA334
+ ldr r1, _021DCEFC ; =UNK04_0220C5D8
+ add r2, sp, #0
+ mov r0, r4
+ mov r3, #1
+ bl MOD04_021DA334
+ ldrsb r0, [sp]
+ cmp r0, #0x59
+ bne _021DCEB0
+ ldr r0, _021DCED4 ; =UNK04_02210504
+ mov r1, #1
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0xc18]
+ str r1, [r0]
+ b _021DCEC8
+_021DCEB0:
+ ldr r0, _021DCED4 ; =UNK04_02210504
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0xc18]
+ str r1, [r0]
+_021DCEC8:
+ mov r0, #1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_021DCED4: .word UNK04_02210504
+_021DCED8: .word 0xFFFF9DF3
+_021DCEDC: .word UNK04_0220C5A0
+_021DCEE0: .word UNK04_0220C5A8
+_021DCEE4: .word errno
+_021DCEE8: .word 0xFFFF9E58
+_021DCEEC: .word UNK04_0220C5B4
+_021DCEF0: .word 0xFFFFA240
+_021DCEF4: .word UNK04_0220C5C0
+_021DCEF8: .word UNK04_0220C5C8
+_021DCEFC: .word UNK04_0220C5D8
+ arm_func_end MOD04_021DCCC8
+
+ arm_func_start MOD04_021DCF00
+MOD04_021DCF00: ; 0x021DCF00
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _021DCFF0 ; =UNK04_02210504
+ ldr r1, [r0]
+ cmp r1, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {pc}
+ add r0, r1, #0x1000
+ ldr r0, [r0, #0xba8]
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ ldr r0, _021DCFF4 ; =0x00001B3C
+ add r0, r1, r0
+ bl OS_IsThreadTerminated
+ cmp r0, #1
+ bne _021DCFE4
+ ldr r0, _021DCFF0 ; =UNK04_02210504
+ ldr r1, [r0]
+ add r0, r1, #0x1000
+ ldr r0, [r0, #0x28]
+ cmp r0, #7
+ beq _021DCFB0
+ cmp r0, #8
+ bne _021DCFC4
+ bl MOD04_021DCCC8
+ cmp r0, #0
+ bne _021DCF94
+ ldr r0, _021DCFF0 ; =UNK04_02210504
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD04_021DAE4C
+ add sp, sp, #4
+ mov r0, #4
+ ldmfd sp!, {pc}
+_021DCF94:
+ ldr r0, _021DCFF0 ; =UNK04_02210504
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD04_021DAE4C
+ add sp, sp, #4
+ mov r0, #3
+ ldmfd sp!, {pc}
+_021DCFB0:
+ add r0, r1, #8
+ bl MOD04_021DAE4C
+ add sp, sp, #4
+ mov r0, #5
+ ldmfd sp!, {pc}
+_021DCFC4:
+ add r0, r1, #8
+ bl MOD04_021DAE4C
+ ldr r1, _021DCFF8 ; =0xFFFFA1DB
+ mov r0, #0x11
+ bl MOD04_021DD6B0
+ add sp, sp, #4
+ mov r0, #4
+ ldmfd sp!, {pc}
+_021DCFE4:
+ mov r0, #2
+ add sp, sp, #4
+ ldmfd sp!, {pc}
+ .align 2, 0
+_021DCFF0: .word UNK04_02210504
+_021DCFF4: .word 0x00001B3C
+_021DCFF8: .word 0xFFFFA1DB
+ arm_func_end MOD04_021DCF00
+
+ arm_func_start MOD04_021DCFFC
+MOD04_021DCFFC: ; 0x021DCFFC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0xb4
+ ldr r2, _021DD244 ; =UNK04_02210504
+ mov r5, r0
+ ldr r2, [r2]
+ mov r0, r1
+ add r2, r2, #0x1000
+ str r1, [r2, #0xc18]
+ mov r1, #0
+ mov r2, #0x174
+ bl MI_CpuFill8
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r1, [r0]
+ add r0, r1, #0x1000
+ ldr r0, [r0, #0xba8]
+ cmp r0, #0
+ beq _021DD058
+ ldr r0, _021DD248 ; =0x00001B3C
+ add r0, r1, r0
+ bl OS_IsThreadTerminated
+ cmp r0, #0
+ bne _021DD058
+ bl OS_Terminate
+_021DD058:
+ ldr r0, _021DD24C ; =UNK04_0220BEB4
+ ldr r1, _021DD244 ; =UNK04_02210504
+ ldr r0, [r0]
+ mov r3, #0
+ ldr r4, [r1]
+ mov r2, #0x1000
+ str r0, [sp]
+ str r3, [sp, #4]
+ str r2, [sp, #8]
+ ldr r2, [r4]
+ ldr r1, _021DD250 ; =UNK04_0220C5E4
+ str r2, [sp, #0xc]
+ ldr r2, [r4, #4]
+ str r2, [sp, #0x10]
+ bl strcmp
+ cmp r0, #0
+ movne r0, #1
+ strne r0, [sp, #0x14]
+ moveq r0, #0
+ ldr r2, _021DD254 ; =0x00004E20
+ streq r0, [sp, #0x14]
+ add r1, sp, #0
+ add r0, r4, #8
+ str r2, [sp, #0x18]
+ bl MOD04_021DB608
+ cmp r0, #0
+ beq _021DD0DC
+ ldr r1, _021DD258 ; =0xFFFFA1DC
+ mov r0, #9
+ bl MOD04_021DD6B0
+ add sp, sp, #0xb4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DD0DC:
+ add r0, sp, #0x1c
+ bl MOD04_021DA238
+ cmp r0, #0
+ beq _021DD10C
+ ldr r0, _021DD244 ; =UNK04_02210504
+ add r1, sp, #0x1c
+ ldr r0, [r0]
+ mov r2, #0
+ add r0, r0, #8
+ bl MOD04_021D9C2C
+ cmp r0, #0
+ bne _021DD134
+_021DD10C:
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD04_021DAE4C
+ ldr r1, _021DD258 ; =0xFFFFA1DC
+ mov r0, #9
+ bl MOD04_021DD6B0
+ add sp, sp, #0xb4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DD134:
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r1, _021DD25C ; =UNK04_0220C604
+ ldr r0, [r0]
+ ldr r2, _021DD260 ; =UNK04_0220C60C
+ add r0, r0, #8
+ mov r3, #6
+ bl MOD04_021DAB68
+ cmp r0, #0
+ bne _021DD17C
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r1, _021DD264 ; =UNK04_0220C614
+ ldr r0, [r0]
+ mov r2, r5
+ add r0, r0, #8
+ mov r3, #4
+ bl MOD04_021DAB68
+ cmp r0, #0
+ beq _021DD1A4
+_021DD17C:
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD04_021DAE4C
+ ldr r1, _021DD258 ; =0xFFFFA1DC
+ mov r0, #9
+ bl MOD04_021DD6B0
+ add sp, sp, #0xb4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DD1A4:
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD04_021DB570
+ cmp r0, #0
+ beq _021DD1E4
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD04_021DAE4C
+ ldr r1, _021DD258 ; =0xFFFFA1DC
+ mov r0, #9
+ bl MOD04_021DD6B0
+ add sp, sp, #0xb4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DD1E4:
+ ldr r0, _021DD268 ; =OSi_ThreadInfo
+ ldr r0, [r0, #4]
+ bl OS_GetThreadPriority
+ ldr r1, _021DD244 ; =UNK04_02210504
+ ldr r2, [r1]
+ sub r1, r0, #1
+ add r0, r2, #8
+ bl MOD04_021DB4A4
+ ldr r0, _021DD244 ; =UNK04_02210504
+ ldr r1, [r0]
+ add r0, r1, #0x1000
+ ldr r0, [r0, #0xba8]
+ cmp r0, #0
+ addne sp, sp, #0xb4
+ movne r0, #1
+ ldmneia sp!, {r4, r5, pc}
+ add r0, r1, #8
+ bl MOD04_021DAE4C
+ ldr r1, _021DD258 ; =0xFFFFA1DC
+ mov r0, #9
+ bl MOD04_021DD6B0
+ mov r0, #0
+ add sp, sp, #0xb4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_021DD244: .word UNK04_02210504
+_021DD248: .word 0x00001B3C
+_021DD24C: .word UNK04_0220BEB4
+_021DD250: .word UNK04_0220C5E4
+_021DD254: .word 0x00004E20
+_021DD258: .word 0xFFFFA1DC
+_021DD25C: .word UNK04_0220C604
+_021DD260: .word UNK04_0220C60C
+_021DD264: .word UNK04_0220C614
+_021DD268: .word OSi_ThreadInfo
+ arm_func_end MOD04_021DCFFC
+
+ arm_func_start MOD04_021DD26C
+MOD04_021DD26C: ; 0x021DD26C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _021DD2BC ; =UNK04_02210504
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ add r0, r0, #8
+ bl MOD04_021DAE4C
+ ldr r1, _021DD2BC ; =UNK04_02210504
+ ldr r0, _021DD2C0 ; =UNK04_0220C618
+ ldr r1, [r1]
+ mov r2, #0
+ ldr r3, [r1, #4]
+ blx r3
+ ldr r0, _021DD2BC ; =UNK04_02210504
+ mov r1, #0
+ str r1, [r0]
+ add sp, sp, #4
+ ldmfd sp!, {pc}
+ .align 2, 0
+_021DD2BC: .word UNK04_02210504
+_021DD2C0: .word UNK04_0220C618
+ arm_func_end MOD04_021DD26C
+
+ arm_func_start MOD04_021DD2C4
+MOD04_021DD2C4: ; 0x021DD2C4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r2, _021DD35C ; =UNK04_02210504
+ mov r5, r0
+ ldr r0, [r2]
+ mov r4, r1
+ cmp r0, #0
+ beq _021DD2FC
+ ldr r1, _021DD360 ; =0xFFFFA1DC
+ mov r0, #9
+ bl MOD04_021DD6B0
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DD2FC:
+ ldr r0, _021DD364 ; =UNK04_0220C628
+ ldr r1, _021DD368 ; =0x00001C1C
+ blx r5
+ ldr r1, _021DD35C ; =UNK04_02210504
+ cmp r0, #0
+ str r0, [r1]
+ bne _021DD330
+ ldr r1, _021DD360 ; =0xFFFFA1DC
+ mov r0, #9
+ bl MOD04_021DD6B0
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_021DD330:
+ ldr r2, _021DD368 ; =0x00001C1C
+ mov r1, #0
+ bl MI_CpuFill8
+ ldr r1, _021DD35C ; =UNK04_02210504
+ mov r0, #1
+ ldr r2, [r1]
+ str r5, [r2]
+ ldr r1, [r1]
+ str r4, [r1, #4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_021DD35C: .word UNK04_02210504
+_021DD360: .word 0xFFFFA1DC
+_021DD364: .word UNK04_0220C628
+_021DD368: .word 0x00001C1C
+ arm_func_end MOD04_021DD2C4
+
+ .section .data
+
+ .global UNK04_0220C5A0
+UNK04_0220C5A0: ; 0x0220C5A0
+ .asciz "Date"
+
+ .balign 4, 0
+ .global UNK04_0220C5A8
+UNK04_0220C5A8: ; 0x0220C5A8
+ .asciz "httpresult"
+
+ .balign 4, 0
+ .global UNK04_0220C5B4
+UNK04_0220C5B4: ; 0x0220C5B4
+ .asciz "returncd"
+
+ .balign 4, 0
+ .global UNK04_0220C5C0
+UNK04_0220C5C0: ; 0x0220C5C0
+ .asciz "svchost"
+
+ .balign 4, 0
+ .global UNK04_0220C5C8
+UNK04_0220C5C8: ; 0x0220C5C8
+ .asciz "servicetoken"
+
+ .balign 4, 0
+ .global UNK04_0220C5D8
+UNK04_0220C5D8: ; 0x0220C5D8
+ .asciz "statusdata"
+
+ .balign 4, 0
+ .global UNK04_0220C5E4
+UNK04_0220C5E4: ; 0x0220C5E4
+ .asciz "https://nas.nintendowifi.net/ac"
+
+ .balign 4, 0
+ .global UNK04_0220C604
+UNK04_0220C604: ; 0x0220C604
+ .asciz "action"
+
+ .balign 4, 0
+ .global UNK04_0220C60C
+UNK04_0220C60C: ; 0x0220C60C
+ .asciz "SVCLOC"
+
+ .balign 4, 0
+ .global UNK04_0220C614
+UNK04_0220C614: ; 0x0220C614
+ .asciz "svc"
+
+ .balign 4, 0
+ .global UNK04_0220C618
+UNK04_0220C618: ; 0x0220C618
+ .asciz "FREE intwork"
+
+ .balign 4, 0
+ .global UNK04_0220C628
+UNK04_0220C628: ; 0x0220C628
+ .asciz "ALLOC intwork"
+
+ .balign 4, 0
+ .section .bss
+
+ .global UNK04_02210504
+UNK04_02210504: ; 0x02210504
+ .space 0x4