diff options
author | red031000 <rubenru09@aol.com> | 2021-08-13 15:45:20 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2021-08-16 14:26:20 +0100 |
commit | d3a9506d773546cf353440448cee7fd9d447bc1d (patch) | |
tree | 4209751aecd9c4853e6032cf0dcc95aebfca2468 | |
parent | 3e824244c8d3a0f43a687d8412651a244b50a65d (diff) |
two more mod04 files
-rw-r--r-- | arm9/arm9.lsf | 2 | ||||
-rw-r--r-- | arm9/global.inc | 7 | ||||
-rw-r--r-- | arm9/modules/04/asm/arm_04.s | 746 | ||||
-rw-r--r-- | arm9/modules/04/asm/mod04_021DC8A4.s | 240 | ||||
-rw-r--r-- | arm9/modules/04/asm/mod04_021DCCC8.s | 545 |
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 |