diff options
author | red031000 <rubenru09@aol.com> | 2021-08-09 02:58:29 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2021-08-16 14:26:20 +0100 |
commit | 3e824244c8d3a0f43a687d8412651a244b50a65d (patch) | |
tree | 2ed294d1f9ea64c3ffa8f9c12069e44a47d66b54 | |
parent | 2d33b678c305e8daaf3ebac503ea1a50eaf0ae8a (diff) |
another mod04 file
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/global.inc | 5 | ||||
-rw-r--r-- | arm9/modules/04/asm/arm_04.s | 1494 | ||||
-rw-r--r-- | arm9/modules/04/asm/mod04_021DB730.s | 1512 |
4 files changed, 1522 insertions, 1490 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index b0cf06f4..834780fa 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -661,6 +661,7 @@ Overlay MODULE_04 Object mod04_021D8D18.o Object mod04_021D9C2C.o Object mod04_021DA260.o + Object mod04_021DB730.o Object arm_04.o } diff --git a/arm9/global.inc b/arm9/global.inc index 81856abb..18dca976 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -6131,6 +6131,11 @@ .extern MOD04_021DB4A4 .extern MOD04_021DB570 .extern MOD04_021DB608 +.extern MOD04_021DC794 +.extern MOD04_021DC7AC +.extern MOD04_021DC7F0 +.extern MOD04_021DC870 +.extern MOD04_021DC970 .extern MOD04_021DCA84 .extern MOD04_021DD36C .extern MOD04_021DD4FC diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s index 7d791941..26b8d60b 100644 --- a/arm9/modules/04/asm/arm_04.s +++ b/arm9/modules/04/asm/arm_04.s @@ -3,1364 +3,6 @@ .section .text .balign 4, 0 - arm_func_start MOD04_021DB730 -MOD04_021DB730: ; 0x021DB730 - stmdb sp!, {r4, lr} - ldr r2, _021DB770 ; =UNK04_02210484 - ldr r1, _021DB774 ; =0x000011DC - ldr r2, [r2] - mov r4, r0 - add r0, r2, r1 - bl OS_LockMutex - ldr r2, _021DB770 ; =UNK04_02210484 - ldr r1, _021DB774 ; =0x000011DC - ldr r0, [r2] - add r0, r0, #0x1000 - str r4, [r0] - ldr r0, [r2] - add r0, r0, r1 - bl OS_UnlockMutex - ldmia sp!, {r4, pc} - .align 2, 0 -_021DB770: .word UNK04_02210484 -_021DB774: .word 0x000011DC - arm_func_end MOD04_021DB730 - - arm_func_start MOD04_021DB778 -MOD04_021DB778: ; 0x021DB778 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2d4 - ldr r5, _021DC670 ; =UNK04_02210484 - mov r0, #0 - str r0, [sp] - ldr r0, [r5] - ldr r7, [sp] - add r0, r0, #0x1000 - ldr sb, [r0, #0x108] - ldr r8, [r0, #0x10c] - mov r0, r7 - str r0, [sp, #8] - str r0, [sp, #0x1c] - mvn r0, #2 - str r0, [sp, #0x20] - mov r0, r7 - str r0, [sp, #0x24] - mvn r0, #3 - str r0, [sp, #0x28] - mov r0, r7 - str r0, [sp, #0x2c] - mov r0, #0x1000 - str r0, [sp, #0x14] - mov r0, #5 - str r0, [sp, #0x30] - mov r0, r7 - str r0, [sp, #0x34] - str r0, [sp, #0x38] - str r0, [sp, #0x3c] - mov r0, #4 - str r0, [sp, #0x40] - mov r0, r7 - str r0, [sp, #0x44] - str r0, [sp, #0x48] - str r0, [sp, #0x4c] - str r0, [sp, #0x50] - str r0, [sp, #0x58] - str r0, [sp, #0x54] - mvn r0, #4 - str r0, [sp, #0x5c] - mov r0, r7 - str r0, [sp, #0x60] - mvn r0, #1 - ldr r4, _021DC674 ; =UNK04_02210490 - mov r6, #1 - str r0, [sp, #0x18] -_021DB830: - ldr r0, _021DC678 ; =UNK04_02210494 - ldr r1, [sp, #0x14] - str r6, [r0, #4] - str r1, [r0, #8] - ldr r1, _021DC67C ; =0x00004E20 - str sb, [r0, #0xc] - str r1, [r0, #0x18] - str r8, [r0, #0x10] - ldr r0, _021DC680 ; =UNK04_0220C36C - ldr r1, [r5] - ldr r2, [r0] - ldr r0, _021DC678 ; =UNK04_02210494 - add r1, r1, #0x1000 - str r2, [r0] - ldr r0, [sp, #0x18] - str r0, [r1, #4] - ldr r0, [r4] - ldr r1, _021DC678 ; =UNK04_02210494 - bl MOD04_021DB608 - cmp r0, #0 - beq _021DB89C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DB89C: - ldr r0, [r4] - bl MOD04_021DB570 - cmp r0, #0 - beq _021DB8C4 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DB8C4: - ldr r0, _021DC684 ; =OSi_ThreadInfo - ldr r0, [r0, #4] - bl OS_GetThreadPriority - sub r1, r0, #1 - ldr r0, [r4] - bl MOD04_021DB4A4 - ldr r1, [r4] - add r0, r1, #0x1000 - ldr r0, [r0, #0xba0] - cmp r0, #0 - beq _021DB8FC - ldr r0, _021DC688 ; =0x00001B34 - add r0, r1, r0 - bl OS_JoinThread -_021DB8FC: - ldr r0, [r4] - add r1, r0, #0x1000 - ldr r1, [r1, #0x20] - cmp r1, #2 - beq _021DB91C - cmp r1, #8 - beq _021DB948 - b _021DB930 -_021DB91C: - ldr r0, _021DC670 ; =UNK04_02210484 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] -_021DB930: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #3 - bl MOD04_021DB730 - b _021DC614 -_021DB948: - ldr r1, [sp, #0x1c] - bl MOD04_021DA3DC - cmp r0, #1 - beq _021DB970 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DB970: - ldr r0, [r4] - ldr r1, _021DC68C ; =UNK04_0220C418 - bl MOD04_021DA388 - bl atol - mov sl, r0 - ldr r0, _021DC690 ; =errno - ldr r0, [r0] - cmp r0, #0x22 - bne _021DB9A0 - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DB9A0: - cmp sl, #0xc8 - beq _021DBCB4 - ldr r0, _021DC694 ; =0x0000012E - cmp sl, r0 - bne _021DBC9C - ldr r0, _021DC698 ; =UNK04_0221048C - str r6, [r0] - ldr r0, [r5] - add r0, r0, #0x1000 - ldr r1, [r0, #0x118] - cmp r1, #0 - beq _021DBC0C - ldr r1, _021DC674 ; =UNK04_02210490 - mvn r2, #5 - str r2, [r0, #4] - ldr r0, [r1] - bl MOD04_021DAE4C - ldr r2, _021DC678 ; =UNK04_02210494 - ldr r0, _021DC69C ; =UNK04_0220BEB4 - ldr r3, _021DC67C ; =0x00004E20 - ldr r0, [r0] - mov r5, #0 - mov r4, #0x200 - ldr r1, _021DC6A0 ; =UNK04_0220C424 - str r0, [r2] - str r5, [r2, #4] - str r4, [r2, #8] - str sb, [r2, #0xc] - str r8, [r2, #0x10] - str r3, [r2, #0x18] - bl strcmp - cmp r0, #0 - ldrne r0, _021DC678 ; =UNK04_02210494 - movne r1, #1 - strne r1, [r0, #0x14] - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r1, _021DC678 ; =UNK04_02210494 - ldr r0, [r0] - bl MOD04_021DB608 - cmp r0, #0 - beq _021DBA5C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DBA5C: - add r0, sp, #0x240 - bl MOD04_021DA238 - cmp r0, #0 - beq _021DBA88 - ldr r0, _021DC674 ; =UNK04_02210490 - add r1, sp, #0x240 - ldr r0, [r0] - mov r2, #1 - bl MOD04_021D9C2C - cmp r0, #0 - bne _021DBAA0 -_021DBA88: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #8 - bl MOD04_021DB730 - b _021DC614 -_021DBAA0: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r1, _021DC6A4 ; =UNK04_0220C444 - ldr r0, [r0] - ldr r2, _021DC6A8 ; =UNK04_0220C44C - mov r3, #7 - bl MOD04_021DAB68 - cmp r0, #0 - bne _021DBAF8 - ldr r0, _021DC670 ; =UNK04_02210484 - ldr r0, [r0] - add r0, r0, #0x1000 - ldr r4, [r0, #0x118] - mov r0, r4 - bl strlen - ldr r1, _021DC674 ; =UNK04_02210490 - mov r3, r0 - ldr r0, [r1] - ldr r1, _021DC6AC ; =UNK04_0220C454 - mov r2, r4 - bl MOD04_021DAB68 - cmp r0, #0 - beq _021DBB10 -_021DBAF8: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #8 - bl MOD04_021DB730 - b _021DC614 -_021DBB10: - ldr r1, _021DC670 ; =UNK04_02210484 - ldr r0, _021DC6B0 ; =UNK04_0220C464 - ldr r1, [r1] - mov r2, #0 - add r1, r1, #0x1000 - ldr r1, [r1, #0x118] - blx r8 - ldr r0, _021DC670 ; =UNK04_02210484 - mov r2, #0 - ldr r0, [r0] - ldr r1, _021DC674 ; =UNK04_02210490 - add r0, r0, #0x1000 - str r2, [r0, #0x118] - ldr r0, [r1] - bl MOD04_021DB570 - cmp r0, #0 - beq _021DBB6C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DBB6C: - ldr r0, _021DC684 ; =OSi_ThreadInfo - ldr r0, [r0, #4] - bl OS_GetThreadPriority - ldr r2, _021DC674 ; =UNK04_02210490 - sub r1, r0, #1 - ldr r0, [r2] - bl MOD04_021DB4A4 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r1, [r0] - add r0, r1, #0x1000 - ldr r0, [r0, #0xba0] - cmp r0, #0 - beq _021DBBAC - ldr r0, _021DC688 ; =0x00001B34 - add r0, r1, r0 - bl OS_JoinThread -_021DBBAC: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - add r1, r0, #0x1000 - ldr r1, [r1, #0x20] - cmp r1, #2 - beq _021DBBD0 - cmp r1, #8 - beq _021DBBFC - b _021DBBE4 -_021DBBD0: - ldr r0, _021DC670 ; =UNK04_02210484 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] -_021DBBE4: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #3 - bl MOD04_021DB730 - b _021DC614 -_021DBBFC: - bl MOD04_021DAE4C - mov r0, #7 - bl MOD04_021DB730 - b _021DC614 -_021DBC0C: - ldr r0, [r4] - add r1, r0, #0x1000 - ldr fp, [r1, #0xa04] - cmp fp, #0 - bne _021DBC30 - bl MOD04_021DAE4C - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DBC30: - mov r0, fp - bl strlen - add r1, r0, #1 - ldr r0, _021DC6B4 ; =UNK04_0220C394 - blx sb - ldr r1, [r5] - add r1, r1, #0x1000 - str r0, [r1, #0x114] - ldr r0, [r5] - add r0, r0, #0x1000 - ldr r0, [r0, #0x114] - str r0, [sp, #0xc] - cmp r0, #0 - bne _021DBC80 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #4 - bl MOD04_021DB730 - b _021DC614 -_021DBC80: - mov r0, fp - bl strlen - mov r2, r0 - ldr r0, [sp, #0xc] - mov r1, fp - bl strncpy - b _021DBCB4 -_021DBC9C: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #0xa - bl MOD04_021DB730 - b _021DC614 -_021DBCB4: - ldr r0, [r4] - bl MOD04_021DAE4C - add r0, sp, #0x68 - bl DWCi_BM_GetWiFiInfo - ldr r2, [sp, #0x68] - ldr r1, [sp, #0x6c] - mov r0, #0 - cmp r1, r0 - cmpeq r2, r0 - bne _021DBDEC - ldr r1, [r5] - ldr r0, _021DC6B8 ; =UNK04_022104B0 - add r2, r1, #0x1000 - ldr r1, [sp, #0x20] - str r1, [r2, #4] - ldr r2, [sp, #0x24] - mov r1, r0 - strh r2, [r1] - strb r2, [r1, #0x34] - ldr r2, [r5] - ldr r1, [r4] - add r3, r2, #0x1000 - ldr fp, [r3, #0x108] - mov r2, r0 - str fp, [r2, #0x40] - ldr r3, [r3, #0x10c] - str r3, [r2, #0x44] - bl MOD04_021D9ACC - cmp r0, #0 - beq _021DBD38 - mov r0, #5 - bl MOD04_021DB730 - b _021DC614 -_021DBD38: - bl MOD04_021D98DC - bl MOD04_021D988C - cmp r0, #0x15 - beq _021DBDE8 - bl MOD04_021D988C - cmp r0, #9 - bne _021DBD6C - ldr r0, _021DC670 ; =UNK04_02210484 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] - b _021DBDD8 -_021DBD6C: - add r0, sp, #0x7c - bl MOD04_021D97F8 - ldr r0, _021DC6BC ; =UNK04_02210488 - ldr r0, [r0] - cmp r0, #1 - bne _021DBDC4 - ldr r1, [sp, #0x7c] - ldr r0, _021DC6C0 ; =0xFFFFA4FA - cmp r1, r0 - beq _021DBDA0 - bl MOD04_021D988C - cmp r0, #0xb - bne _021DBDC4 -_021DBDA0: - ldr r0, _021DC670 ; =UNK04_02210484 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] - bl MOD04_021D991C - mov r0, #0xb - bl MOD04_021DB730 - b _021DC614 -_021DBDC4: - ldr r0, _021DC670 ; =UNK04_02210484 - ldr r1, [sp, #0x7c] - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] -_021DBDD8: - bl MOD04_021D991C - mov r0, #6 - bl MOD04_021DB730 - b _021DC614 -_021DBDE8: - bl MOD04_021D991C -_021DBDEC: - cmp sl, #0xc8 - bne _021DBE14 - ldr r0, _021DC670 ; =UNK04_02210484 - mov r2, #0 - ldr r1, [r0] - mov r0, #0xb - add r1, r1, #0x1000 - str r2, [r1, #4] - bl MOD04_021DB730 - b _021DC614 -_021DBE14: - ldr r0, [r5] - ldr r1, _021DC6A0 ; =UNK04_0220C424 - add r2, r0, #0x1000 - ldr r0, [sp, #0x28] - str r0, [r2, #4] - ldr r0, _021DC678 ; =UNK04_02210494 - ldr r2, [sp, #0x2c] - str sb, [r0, #0xc] - str r2, [r0, #4] - ldr r2, [sp, #0x14] - str r8, [r0, #0x10] - str r2, [r0, #8] - ldr r2, _021DC6C4 ; =0x00009C40 - str r2, [r0, #0x18] - ldr r0, _021DC69C ; =UNK04_0220BEB4 - ldr r2, _021DC678 ; =UNK04_02210494 - ldr r0, [r0] - str r0, [r2] - bl strcmp - cmp r0, #0 - ldrne r0, _021DC678 ; =UNK04_02210494 - ldr r1, _021DC678 ; =UNK04_02210494 - strne r6, [r0, #0x14] - ldr r0, [r4] - bl MOD04_021DB608 - cmp r0, #0 - beq _021DBE98 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DBE98: - add r0, sp, #0x240 - bl MOD04_021DA238 - cmp r0, #0 - beq _021DBEC0 - ldr r0, [r4] - add r1, sp, #0x240 - mov r2, r6 - bl MOD04_021D9C2C - cmp r0, #0 - bne _021DBED8 -_021DBEC0: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #8 - bl MOD04_021DB730 - b _021DC614 -_021DBED8: - ldr r0, [r4] - ldr r1, _021DC6A4 ; =UNK04_0220C444 - ldr r2, _021DC6C8 ; =UNK04_0220C484 - ldr r3, [sp, #0x30] - bl MOD04_021DAB68 - cmp r0, #0 - bne _021DBF24 - ldr r0, [r5] - add r0, r0, #0x1000 - ldr sl, [r0, #0x114] - mov r0, sl - bl strlen - mov r3, r0 - ldr r0, [r4] - ldr r1, _021DC6CC ; =UNK04_0220C48C - mov r2, sl - bl MOD04_021DAB68 - cmp r0, #0 - beq _021DBF3C -_021DBF24: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #8 - bl MOD04_021DB730 - b _021DC614 -_021DBF3C: - ldr r1, [r5] - ldr r0, _021DC6D0 ; =UNK04_0220C3B0 - add r1, r1, #0x1000 - ldr r2, [sp, #0x34] - ldr r1, [r1, #0x114] - blx r8 - ldr r0, [r5] - add r1, r0, #0x1000 - ldr r0, [sp, #0x38] - str r0, [r1, #0x114] - ldr r0, [r4] - bl MOD04_021DB570 - cmp r0, #0 - beq _021DBF8C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DBF8C: - ldr r0, _021DC684 ; =OSi_ThreadInfo - ldr r0, [r0, #4] - bl OS_GetThreadPriority - sub r1, r0, #1 - ldr r0, [r4] - bl MOD04_021DB4A4 - ldr r1, [r4] - add r0, r1, #0x1000 - ldr r0, [r0, #0xba0] - cmp r0, #0 - beq _021DBFC4 - ldr r0, _021DC688 ; =0x00001B34 - add r0, r1, r0 - bl OS_JoinThread -_021DBFC4: - ldr r0, [r4] - add r1, r0, #0x1000 - ldr r1, [r1, #0x20] - cmp r1, #2 - beq _021DC02C - cmp r1, #3 - beq _021DBFEC - cmp r1, #8 - beq _021DC058 - b _021DC040 -_021DBFEC: - bl MOD04_021DAE4C - ldr r0, _021DC6BC ; =UNK04_02210488 - ldr r0, [r0] - cmp r0, #1 - bne _021DC020 - ldr r0, _021DC670 ; =UNK04_02210484 - mov r2, #0 - ldr r1, [r0] - mov r0, #0xb - add r1, r1, #0x1000 - str r2, [r1, #4] - bl MOD04_021DB730 - b _021DC614 -_021DC020: - mov r0, #3 - bl MOD04_021DB730 - b _021DC614 -_021DC02C: - ldr r0, _021DC670 ; =UNK04_02210484 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] -_021DC040: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #3 - bl MOD04_021DB730 - b _021DC614 -_021DC058: - ldr r1, [sp, #0x3c] - bl MOD04_021DA3DC - cmp r0, #1 - beq _021DC080 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DC080: - ldr r0, [r4] - ldr r1, _021DC68C ; =UNK04_0220C418 - bl MOD04_021DA388 - bl atol - mov sl, r0 - ldr r0, _021DC690 ; =errno - ldr r0, [r0] - cmp r0, #0x22 - bne _021DC0BC - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DC0BC: - cmp sl, #0xc8 - beq _021DC118 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - ldr r0, _021DC6BC ; =UNK04_02210488 - ldr r0, [r0] - cmp r0, #1 - bne _021DC10C - ldr r0, _021DC694 ; =0x0000012E - cmp sl, r0 - bne _021DC10C - ldr r0, _021DC670 ; =UNK04_02210484 - mov r2, #0 - ldr r1, [r0] - mov r0, #0xb - add r1, r1, #0x1000 - str r2, [r1, #4] - bl MOD04_021DB730 - b _021DC614 -_021DC10C: - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DC118: - ldr r0, [r4] - ldr r1, _021DC6D4 ; =UNK04_0220C494 - ldr r3, [sp, #0x40] - add r2, sp, #0x64 - bl MOD04_021DA334 - cmp r0, #0 - bgt _021DC14C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC14C: - add r0, sp, #0x64 - bl atol - ldr r1, _021DC690 ; =errno - ldr r1, [r1] - cmp r1, #0x22 - bne _021DC17C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC17C: - ldr r1, _021DC6BC ; =UNK04_02210488 - ldr r1, [r1] - cmp r1, #1 - bne _021DC1B4 - cmp r0, #0x72 - bne _021DC1B4 - ldr r0, _021DC670 ; =UNK04_02210484 - mov r2, #0 - ldr r1, [r0] - mov r0, #0xb - add r1, r1, #0x1000 - str r2, [r1, #4] - bl MOD04_021DB730 - b _021DC614 -_021DC1B4: - cmp r0, #0x64 - blt _021DC1D4 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #6 - bl MOD04_021DB730 - b _021DC614 -_021DC1D4: - ldr r2, [sp, #0x44] - ldr r0, [r4] - ldr r1, _021DC6D8 ; =UNK04_0220C4A0 - mov r3, r2 - bl MOD04_021DA334 - mov fp, r0 - cmp fp, #0 - bgt _021DC20C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC20C: - ldr r2, [sp, #0x48] - ldr r0, [r4] - ldr r1, _021DC6DC ; =UNK04_0220C4A4 - mov r3, r2 - bl MOD04_021DA334 - str r0, [sp, #4] - cmp r0, #0 - bgt _021DC244 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC244: - ldr r2, [sp, #0x4c] - ldr r0, [r4] - ldr r1, _021DC6E0 ; =UNK04_0220C4AC - mov r3, r2 - bl MOD04_021DA334 - mov sl, r0 - ldr r0, _021DC6E4 ; =UNK04_0220C3CC - add r1, fp, #1 - blx sb - str r0, [sp] - cmp r0, #0 - bne _021DC28C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #4 - bl MOD04_021DB730 - b _021DC614 -_021DC28C: - ldr r1, [sp, #4] - ldr r0, _021DC6E8 ; =UNK04_0220C3D8 - add r1, r1, #1 - blx sb - movs r7, r0 - bne _021DC2BC - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #4 - bl MOD04_021DB730 - b _021DC614 -_021DC2BC: - cmp sl, #0 - ble _021DC2F4 - ldr r0, _021DC6EC ; =UNK04_0220C3E8 - add r1, sl, #1 - blx sb - str r0, [sp, #8] - cmp r0, #0 - bne _021DC2F4 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #4 - bl MOD04_021DB730 - b _021DC614 -_021DC2F4: - ldr r0, [r4] - ldr r1, _021DC6D8 ; =UNK04_0220C4A0 - ldr r2, [sp] - add r3, fp, #1 - bl MOD04_021DA334 - cmp r0, #0 - bge _021DC328 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC328: - ldr r1, [sp, #4] - ldr r2, [sp, #0x50] - add r3, r1, #1 - ldr r1, [sp] - strb r2, [r1, r0] - ldr r0, [r4] - ldr r1, _021DC6DC ; =UNK04_0220C4A4 - mov r2, r7 - bl MOD04_021DA334 - cmp r0, #0 - bge _021DC36C - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC36C: - ldr r1, [sp, #0x54] - cmp sl, #0 - strb r1, [r7, r0] - mov fp, r1 - ble _021DC404 - ldr r0, [r4] - ldr r1, _021DC6E0 ; =UNK04_0220C4AC - ldr r2, [sp, #8] - add r3, sl, #1 - bl MOD04_021DA334 - cmp r0, #0 - bge _021DC3B4 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC3B4: - ldr r2, [sp, #0x58] - ldr r1, [sp, #8] - strb r2, [r1, r0] - mov r0, r1 - bl atol - ldr r1, _021DC690 ; =errno - ldr r1, [r1] - cmp r1, #0x22 - bne _021DC3F0 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #9 - bl MOD04_021DB730 - b _021DC614 -_021DC3F0: - mov r1, #0x3e8 - mul fp, r0, r1 - ldr r0, _021DC6F0 ; =0x0002BF20 - cmp fp, r0 - movgt fp, r0 -_021DC404: - ldr r0, [r4] - bl MOD04_021DAE4C - ldr r0, [r5] - ldr r1, _021DC678 ; =UNK04_02210494 - add r2, r0, #0x1000 - ldr r0, [sp, #0x5c] - str r0, [r2, #4] - mov r0, r1 - ldr r2, [sp] - str sb, [r0, #0xc] - str r2, [r0] - ldr r2, [sp, #0x60] - str r8, [r0, #0x10] - str r2, [r0, #4] - ldr r2, [sp, #0x14] - str r2, [r0, #8] - ldr r2, _021DC6F4 ; =0x0001D4C0 - str r2, [r0, #0x18] - ldr r0, [r4] - bl MOD04_021DB608 - cmp r0, #0 - beq _021DC474 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DC474: - ldr r0, [r4] - mov r1, r7 - bl MOD04_021DAACC - cmp r0, #0 - beq _021DC4A0 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #8 - bl MOD04_021DB730 - b _021DC614 -_021DC4A0: - ldr r0, [r4] - bl MOD04_021DB570 - cmp r0, #0 - beq _021DC4C8 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #1 - bl MOD04_021DB730 - b _021DC614 -_021DC4C8: - ldr r0, _021DC684 ; =OSi_ThreadInfo - ldr r0, [r0, #4] - bl OS_GetThreadPriority - sub r1, r0, #1 - ldr r0, [r4] - bl MOD04_021DB4A4 - ldr r1, [r4] - add r0, r1, #0x1000 - ldr r0, [r0, #0xba0] - cmp r0, #0 - beq _021DC500 - ldr r0, _021DC688 ; =0x00001B34 - add r0, r1, r0 - bl OS_JoinThread -_021DC500: - ldr r0, [r4] - add r1, r0, #0x1000 - ldr r1, [r1, #0x20] - cmp r1, #2 - beq _021DC520 - cmp r1, #8 - beq _021DC54C - b _021DC534 -_021DC520: - ldr r0, _021DC670 ; =UNK04_02210484 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] -_021DC534: - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #3 - bl MOD04_021DB730 - b _021DC614 -_021DC54C: - mov r1, r6 - bl MOD04_021DA3DC - cmp r0, #1 - beq _021DC574 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DC574: - ldr r0, [r4] - add r1, r0, #0x1000 - ldr sl, [r1, #0xa04] - cmp sl, #0 - bne _021DC598 - bl MOD04_021DAE4C - mov r0, #2 - bl MOD04_021DB730 - b _021DC614 -_021DC598: - mov r0, sl - bl strlen - add r1, r0, #1 - ldr r0, _021DC6F8 ; =UNK04_0220C3F8 - blx sb - ldr r1, [r5] - add r1, r1, #0x1000 - str r0, [r1, #0x118] - ldr r0, [r5] - add r0, r0, #0x1000 - ldr r0, [r0, #0x118] - str r0, [sp, #0x10] - cmp r0, #0 - bne _021DC5E8 - ldr r0, _021DC674 ; =UNK04_02210490 - ldr r0, [r0] - bl MOD04_021DAE4C - mov r0, #4 - bl MOD04_021DB730 - b _021DC614 -_021DC5E8: - mov r0, sl - bl strlen - mov r2, r0 - ldr r0, [sp, #0x10] - mov r1, sl - bl strncpy - ldr r0, [r4] - bl MOD04_021DAE4C - mov r0, fp - bl OS_Sleep - b _021DB830 -_021DC614: - ldr r0, [sp] - cmp r0, #0 - beq _021DC630 - ldr r0, _021DC6FC ; =UNK04_0220C4B4 - ldr r1, [sp] - mov r2, #0 - blx r8 -_021DC630: - cmp r7, #0 - beq _021DC648 - ldr r0, _021DC700 ; =UNK04_0220C4C0 - mov r1, r7 - mov r2, #0 - blx r8 -_021DC648: - ldr r0, [sp, #8] - cmp r0, #0 - addeq sp, sp, #0x2d4 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, _021DC704 ; =UNK04_0220C4CC - ldr r1, [sp, #8] - mov r2, #0 - blx r8 - add sp, sp, #0x2d4 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_021DC670: .word UNK04_02210484 -_021DC674: .word UNK04_02210490 -_021DC678: .word UNK04_02210494 -_021DC67C: .word 0x00004E20 -_021DC680: .word UNK04_0220C36C -_021DC684: .word OSi_ThreadInfo -_021DC688: .word 0x00001B34 -_021DC68C: .word UNK04_0220C418 -_021DC690: .word errno -_021DC694: .word 0x0000012E -_021DC698: .word UNK04_0221048C -_021DC69C: .word UNK04_0220BEB4 -_021DC6A0: .word UNK04_0220C424 -_021DC6A4: .word UNK04_0220C444 -_021DC6A8: .word UNK04_0220C44C -_021DC6AC: .word UNK04_0220C454 -_021DC6B0: .word UNK04_0220C464 -_021DC6B4: .word UNK04_0220C394 -_021DC6B8: .word UNK04_022104B0 -_021DC6BC: .word UNK04_02210488 -_021DC6C0: .word 0xFFFFA4FA -_021DC6C4: .word 0x00009C40 -_021DC6C8: .word UNK04_0220C484 -_021DC6CC: .word UNK04_0220C48C -_021DC6D0: .word UNK04_0220C3B0 -_021DC6D4: .word UNK04_0220C494 -_021DC6D8: .word UNK04_0220C4A0 -_021DC6DC: .word UNK04_0220C4A4 -_021DC6E0: .word UNK04_0220C4AC -_021DC6E4: .word UNK04_0220C3CC -_021DC6E8: .word UNK04_0220C3D8 -_021DC6EC: .word UNK04_0220C3E8 -_021DC6F0: .word 0x0002BF20 -_021DC6F4: .word 0x0001D4C0 -_021DC6F8: .word UNK04_0220C3F8 -_021DC6FC: .word UNK04_0220C4B4 -_021DC700: .word UNK04_0220C4C0 -_021DC704: .word UNK04_0220C4CC - arm_func_end MOD04_021DB778 - - arm_func_start MOD04_021DC708 -MOD04_021DC708: ; 0x021DC708 - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr r0, _021DC788 ; =UNK04_02210484 - ldr r1, [r0] - add r0, r1, #0x1000 - ldr r0, [r0, #0x188] - cmp r0, #0 - beq _021DC740 - ldr r0, _021DC78C ; =0x0000111C - add r0, r1, r0 - bl OS_IsThreadTerminated - cmp r0, #0 - addeq sp, sp, #0xc - ldmeqia sp!, {pc} -_021DC740: - ldr r1, _021DC788 ; =UNK04_02210484 - ldr r0, _021DC78C ; =0x0000111C - ldr r2, [r1] - mov r3, #0x1000 - ldr r1, _021DC790 ; =MOD04_021DB778 - str r3, [sp] - mov ip, #0x10 - add r0, r2, r0 - add r3, r2, #0x1000 - str ip, [sp, #4] - bl OS_CreateThread - ldr r1, _021DC788 ; =UNK04_02210484 - ldr r0, _021DC78C ; =0x0000111C - ldr r1, [r1] - add r0, r1, r0 - bl OS_WakeupThreadDirect - add sp, sp, #0xc - ldmfd sp!, {pc} - .align 2, 0 -_021DC788: .word UNK04_02210484 -_021DC78C: .word 0x0000111C -_021DC790: .word MOD04_021DB778 - arm_func_end MOD04_021DC708 - - arm_func_start MOD04_021DC794 -MOD04_021DC794: ; 0x021DC794 - ldr r0, _021DC7A8 ; =UNK04_02210484 - ldr r0, [r0] - add r0, r0, #0x1000 - ldr r0, [r0, #4] - bx lr - .align 2, 0 -_021DC7A8: .word UNK04_02210484 - arm_func_end MOD04_021DC794 - - arm_func_start MOD04_021DC7AC -MOD04_021DC7AC: ; 0x021DC7AC - stmdb sp!, {r4, lr} - ldr r1, _021DC7E8 ; =UNK04_02210484 - ldr r0, _021DC7EC ; =0x000011DC - ldr r1, [r1] - add r0, r1, r0 - bl OS_LockMutex - ldr r1, _021DC7E8 ; =UNK04_02210484 - ldr r0, _021DC7EC ; =0x000011DC - ldr r2, [r1] - add r1, r2, #0x1000 - add r0, r2, r0 - ldr r4, [r1] - bl OS_UnlockMutex - mov r0, r4 - ldmia sp!, {r4, pc} - .align 2, 0 -_021DC7E8: .word UNK04_02210484 -_021DC7EC: .word 0x000011DC - arm_func_end MOD04_021DC7AC - - arm_func_start MOD04_021DC7F0 -MOD04_021DC7F0: ; 0x021DC7F0 - stmdb sp!, {lr} - sub sp, sp, #4 - ldr r0, _021DC864 ; =UNK04_02210484 - ldr r0, [r0] - cmp r0, #0 - addeq sp, sp, #4 - ldmeqia sp!, {pc} - ldr r0, _021DC868 ; =UNK04_02210490 - ldr r0, [r0] - cmp r0, #0 - beq _021DC820 - bl MOD04_021DB440 -_021DC820: - bl MOD04_021D9974 - ldr r0, _021DC864 ; =UNK04_02210484 - ldr r1, [r0] - add r0, r1, #0x1000 - ldr r0, [r0, #0x188] - cmp r0, #0 - beq _021DC848 - ldr r0, _021DC86C ; =0x0000111C - add r0, r1, r0 - bl OS_JoinThread -_021DC848: - ldr r0, _021DC864 ; =UNK04_02210484 - mvn r1, #6 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #4] - add sp, sp, #4 - ldmfd sp!, {pc} - .align 2, 0 -_021DC864: .word UNK04_02210484 -_021DC868: .word UNK04_02210490 -_021DC86C: .word 0x0000111C - arm_func_end MOD04_021DC7F0 - - arm_func_start MOD04_021DC870 -MOD04_021DC870: ; 0x021DC870 - stmdb sp!, {r4, lr} - ldr r1, _021DC958 ; =UNK04_02210484 - ldr r0, _021DC95C ; =UNK04_02210490 - ldr r1, [r1] - ldr r0, [r0] - add r1, r1, #0x1000 - cmp r0, #0 - ldr r4, [r1, #0x10c] - beq _021DC8B8 - bl MOD04_021DAE4C - ldr r1, _021DC95C ; =UNK04_02210490 - ldr r0, _021DC960 ; =UNK04_0220C4D8 - ldr r1, [r1] - mov r2, #0 - blx r4 - ldr r0, _021DC95C ; =UNK04_02210490 - mov r1, #0 - str r1, [r0] -_021DC8B8: - bl MOD04_021D991C - ldr r0, _021DC958 ; =UNK04_02210484 - ldr r0, [r0] - cmp r0, #0 - ldmeqia sp!, {r4, pc} - add r0, r0, #0x1000 - ldr r1, [r0, #0x114] - cmp r1, #0 - beq _021DC8FC - ldr r0, _021DC964 ; =UNK04_0220C3B0 - mov r2, #0 - blx r4 - ldr r0, _021DC958 ; =UNK04_02210484 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #0x114] -_021DC8FC: - ldr r0, _021DC958 ; =UNK04_02210484 - ldr r0, [r0] - add r0, r0, #0x1000 - ldr r1, [r0, #0x118] - cmp r1, #0 - beq _021DC934 - ldr r0, _021DC968 ; =UNK04_0220C464 - mov r2, #0 - blx r4 - ldr r0, _021DC958 ; =UNK04_02210484 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #0x118] -_021DC934: - ldr r1, _021DC958 ; =UNK04_02210484 - ldr r0, _021DC96C ; =UNK04_0220C4E8 - ldr r1, [r1] - mov r2, #0 - blx r4 - ldr r0, _021DC958 ; =UNK04_02210484 - mov r1, #0 - str r1, [r0] - ldmia sp!, {r4, pc} - .align 2, 0 -_021DC958: .word UNK04_02210484 -_021DC95C: .word UNK04_02210490 -_021DC960: .word UNK04_0220C4D8 -_021DC964: .word UNK04_0220C3B0 -_021DC968: .word UNK04_0220C464 -_021DC96C: .word UNK04_0220C4E8 - arm_func_end MOD04_021DC870 - - arm_func_start MOD04_021DC970 -MOD04_021DC970: ; 0x021DC970 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #4 - ldr r1, _021DCA5C ; =UNK04_02210484 - mov r5, r0 - ldr r0, [r1] - ldr r4, [r5] - cmp r0, #0 - addne sp, sp, #4 - movne r0, #4 - ldmneia sp!, {r4, r5, pc} - ldr r0, _021DCA60 ; =UNK04_0220C4FC - ldr r1, _021DCA64 ; =0x000011F4 - blx r4 - ldr r1, _021DCA5C ; =UNK04_02210484 - cmp r0, #0 - str r0, [r1] - addeq sp, sp, #4 - moveq r0, #4 - ldmeqia sp!, {r4, r5, pc} - ldr r2, _021DCA64 ; =0x000011F4 - mov r1, #0 - bl MI_CpuFill8 - ldr r1, _021DCA5C ; =UNK04_02210484 - ldr r2, _021DCA68 ; =0xFFFE7961 - ldr r0, [r1] - ldr r3, _021DCA6C ; =0x00001108 - add r0, r0, #0x1000 - str r2, [r0, #4] - ldr ip, [r1] - ldmia r5, {r0, r1, r2} - add r3, ip, r3 - stmia r3, {r0, r1, r2} - ldr r0, _021DCA70 ; =UNK04_02210490 - ldr r0, [r0] - cmp r0, #0 - addne sp, sp, #4 - movne r0, #4 - ldmneia sp!, {r4, r5, pc} - ldr r0, _021DCA74 ; =UNK04_0220C510 - ldr r1, _021DCA78 ; =0x00001C10 - blx r4 - ldr r1, _021DCA70 ; =UNK04_02210490 - cmp r0, #0 - str r0, [r1] - addeq sp, sp, #4 - moveq r0, #4 - ldmeqia sp!, {r4, r5, pc} - ldr r1, _021DCA5C ; =UNK04_02210484 - ldr r0, _021DCA7C ; =0x000011DC - ldr r2, [r1] - ldr r1, _021DCA80 ; =UNK04_0221048C - mov r3, #0 - add r0, r2, r0 - str r3, [r1] - bl OS_InitMutex - bl MOD04_021DC708 - mov r0, #0 - add sp, sp, #4 - ldmia sp!, {r4, r5, pc} - .align 2, 0 -_021DCA5C: .word UNK04_02210484 -_021DCA60: .word UNK04_0220C4FC -_021DCA64: .word 0x000011F4 -_021DCA68: .word 0xFFFE7961 -_021DCA6C: .word 0x00001108 -_021DCA70: .word UNK04_02210490 -_021DCA74: .word UNK04_0220C510 -_021DCA78: .word 0x00001C10 -_021DCA7C: .word 0x000011DC -_021DCA80: .word UNK04_0221048C - arm_func_end MOD04_021DC970 - arm_func_start MOD04_021DCA84 MOD04_021DCA84: ; 0x021DCA84 stmdb sp!, {r4, r5, r6, r7, r8, lr} @@ -57015,12 +55657,13 @@ _0220BAB8: arm_func_end MOD04_url_strlen .section .rodata - .global UNK_0220BAC4 + + .global UNK04_0220BAC4 UNK04_0220BAC4: ; 0x0220BAC4 .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .global UNK_0220BADC + .global UNK04_0220BADC UNK04_0220BADC: ; 0x0220BADC .byte 0x57, 0x61, 0x79, 0x70, 0x6F, 0x72, 0x74, 0x32 @@ -57172,124 +55815,7 @@ UNK04_0220BE70: ; 0x0220BE70 .section .data - .global UNK_0220C36C -UNK04_0220C36C: ; 0x0220C36C - .word UNK04_0220C370 - - .global UNK_0220C370 -UNK04_0220C370: ; 0x0220C370 - .byte 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x6F, 0x6E, 0x6E, 0x74 - .byte 0x65, 0x73, 0x74, 0x2E, 0x6E, 0x69, 0x6E, 0x74, 0x65, 0x6E, 0x64, 0x6F, 0x77, 0x69, 0x66, 0x69 - .byte 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x00, 0x00, 0x00 - - .global UNK_0220C394 -UNK04_0220C394: ; 0x0220C394 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x44, 0x57, 0x43, 0x6E, 0x65, 0x74, 0x63, 0x68, 0x65, 0x63 - .byte 0x6B, 0x2D, 0x3E, 0x62, 0x6F, 0x64, 0x79, 0x5F, 0x33, 0x30, 0x32, 0x00 - - .global UNK_0220C3B0 -UNK04_0220C3B0: ; 0x0220C3B0 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x44, 0x57, 0x43, 0x6E, 0x65, 0x74, 0x63, 0x68, 0x65, 0x63, 0x6B - .byte 0x2D, 0x3E, 0x62, 0x6F, 0x64, 0x79, 0x5F, 0x33, 0x30, 0x32, 0x00, 0x00 - - .global UNK_0220C3CC -UNK04_0220C3CC: ; 0x0220C3CC - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x75, 0x72, 0x6C, 0x00, 0x00, 0x00 - - .global UNK_0220C3D8 -UNK04_0220C3D8: ; 0x0220C3D8 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x6C, 0x65, 0x6E, 0x00, 0x00 - - .global UNK_0220C3E8 -UNK04_0220C3E8: ; 0x0220C3E8 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x77, 0x61, 0x69, 0x74, 0x5F, 0x6C, 0x65, 0x6E, 0x00, 0x00 - - .global UNK_0220C3F8 -UNK04_0220C3F8: ; 0x0220C3F8 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x44, 0x57, 0x43, 0x6E, 0x65, 0x74, 0x63, 0x68, 0x65, 0x63 - .byte 0x6B, 0x2D, 0x3E, 0x62, 0x6F, 0x64, 0x79, 0x5F, 0x77, 0x61, 0x79, 0x70, 0x6F, 0x72, 0x74, 0x00 - - .global UNK_0220C418 -UNK04_0220C418: ; 0x0220C418 - .byte 0x68, 0x74, 0x74, 0x70, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x00 - - .global UNK_0220C424 -UNK04_0220C424: ; 0x0220C424 - .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_0220C444 -UNK04_0220C444: ; 0x0220C444 - .byte 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x00 - - .global UNK_0220C44C -UNK04_0220C44C: ; 0x0220C44C - .byte 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x00 - - .global UNK_0220C454 -UNK04_0220C454: ; 0x0220C454 - .byte 0x48, 0x6F, 0x74, 0x53, 0x70, 0x6F, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73, 0x65, 0x00 - - .global UNK_0220C464 -UNK04_0220C464: ; 0x0220C464 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x44, 0x57, 0x43, 0x6E, 0x65, 0x74, 0x63, 0x68, 0x65, 0x63, 0x6B - .byte 0x2D, 0x3E, 0x62, 0x6F, 0x64, 0x79, 0x5F, 0x77, 0x61, 0x79, 0x70, 0x6F, 0x72, 0x74, 0x00, 0x00 - - .global UNK_0220C484 -UNK04_0220C484: ; 0x0220C484 - .byte 0x70, 0x61, 0x72, 0x73, 0x65, 0x00, 0x00, 0x00 - - .global UNK_0220C48C -UNK04_0220C48C: ; 0x0220C48C - .byte 0x48, 0x54, 0x4D, 0x4C, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C494 -UNK04_0220C494: ; 0x0220C494 - .byte 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x63, 0x64, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C4A0 -UNK04_0220C4A0: ; 0x0220C4A0 - .byte 0x75, 0x72, 0x6C, 0x00 - - .global UNK_0220C4A4 -UNK04_0220C4A4: ; 0x0220C4A4 - .byte 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C4AC -UNK04_0220C4AC: ; 0x0220C4AC - .byte 0x77, 0x61, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C4B4 -UNK04_0220C4B4: ; 0x0220C4B4 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x75, 0x72, 0x6C, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C4C0 -UNK04_0220C4C0: ; 0x0220C4C0 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00 - - .global UNK_0220C4CC -UNK04_0220C4CC: ; 0x0220C4CC - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x77, 0x61, 0x69, 0x74, 0x00, 0x00, 0x00 - - .global UNK_0220C4D8 -UNK04_0220C4D8: ; 0x0220C4D8 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x44, 0x57, 0x43, 0x68, 0x74, 0x74, 0x70, 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C4E8 -UNK04_0220C4E8: ; 0x0220C4E8 - .byte 0x46, 0x52, 0x45, 0x45, 0x20, 0x44, 0x57, 0x43, 0x6E, 0x65, 0x74, 0x63, 0x68, 0x65, 0x63, 0x6B - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_0220C4FC -UNK04_0220C4FC: ; 0x0220C4FC - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x44, 0x57, 0x43, 0x6E, 0x65, 0x74, 0x63, 0x68, 0x65, 0x63 - .byte 0x6B, 0x00, 0x00, 0x00 - - .global UNK_0220C510 -UNK04_0220C510: ; 0x0220C510 - .byte 0x41, 0x4C, 0x4C, 0x4F, 0x43, 0x20, 0x44, 0x57, 0x43, 0x68, 0x74, 0x74, 0x70, 0x00, 0x00, 0x00 - - .global UNK_0220C520 + .global UNK04_0220C520 UNK04_0220C520: ; 0x0220C520 .byte 0x44, 0x65, 0x63, 0x00 @@ -60465,18 +58991,6 @@ UNK04_0220FBA4: ; 0x0220FBA4 .section .bss - .global UNK04_02210490 -UNK04_02210490: ; 0x02210490 - .space 0x4 - - .global UNK04_02210494 -UNK04_02210494: ; 0x02210494 - .space 0x1C - - .global UNK04_022104B0 -UNK04_022104B0: ; 0x022104B0 - .space 0x48 - .global UNK04_022104F8 UNK04_022104F8: ; 0x022104F8 .space 0x4 diff --git a/arm9/modules/04/asm/mod04_021DB730.s b/arm9/modules/04/asm/mod04_021DB730.s new file mode 100644 index 00000000..c506ed71 --- /dev/null +++ b/arm9/modules/04/asm/mod04_021DB730.s @@ -0,0 +1,1512 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + arm_func_start MOD04_021DB730 +MOD04_021DB730: ; 0x021DB730 + stmdb sp!, {r4, lr} + ldr r2, _021DB770 ; =UNK04_02210484 + ldr r1, _021DB774 ; =0x000011DC + ldr r2, [r2] + mov r4, r0 + add r0, r2, r1 + bl OS_LockMutex + ldr r2, _021DB770 ; =UNK04_02210484 + ldr r1, _021DB774 ; =0x000011DC + ldr r0, [r2] + add r0, r0, #0x1000 + str r4, [r0] + ldr r0, [r2] + add r0, r0, r1 + bl OS_UnlockMutex + ldmia sp!, {r4, pc} + .align 2, 0 +_021DB770: .word UNK04_02210484 +_021DB774: .word 0x000011DC + arm_func_end MOD04_021DB730 + + arm_func_start MOD04_021DB778 +MOD04_021DB778: ; 0x021DB778 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x2d4 + ldr r5, _021DC670 ; =UNK04_02210484 + mov r0, #0 + str r0, [sp] + ldr r0, [r5] + ldr r7, [sp] + add r0, r0, #0x1000 + ldr sb, [r0, #0x108] + ldr r8, [r0, #0x10c] + mov r0, r7 + str r0, [sp, #8] + str r0, [sp, #0x1c] + mvn r0, #2 + str r0, [sp, #0x20] + mov r0, r7 + str r0, [sp, #0x24] + mvn r0, #3 + str r0, [sp, #0x28] + mov r0, r7 + str r0, [sp, #0x2c] + mov r0, #0x1000 + str r0, [sp, #0x14] + mov r0, #5 + str r0, [sp, #0x30] + mov r0, r7 + str r0, [sp, #0x34] + str r0, [sp, #0x38] + str r0, [sp, #0x3c] + mov r0, #4 + str r0, [sp, #0x40] + mov r0, r7 + str r0, [sp, #0x44] + str r0, [sp, #0x48] + str r0, [sp, #0x4c] + str r0, [sp, #0x50] + str r0, [sp, #0x58] + str r0, [sp, #0x54] + mvn r0, #4 + str r0, [sp, #0x5c] + mov r0, r7 + str r0, [sp, #0x60] + mvn r0, #1 + ldr r4, _021DC674 ; =UNK04_02210490 + mov r6, #1 + str r0, [sp, #0x18] +_021DB830: + ldr r0, _021DC678 ; =UNK04_02210494 + ldr r1, [sp, #0x14] + str r6, [r0, #4] + str r1, [r0, #8] + ldr r1, _021DC67C ; =0x00004E20 + str sb, [r0, #0xc] + str r1, [r0, #0x18] + str r8, [r0, #0x10] + ldr r0, _021DC680 ; =UNK04_0220C36C + ldr r1, [r5] + ldr r2, [r0] + ldr r0, _021DC678 ; =UNK04_02210494 + add r1, r1, #0x1000 + str r2, [r0] + ldr r0, [sp, #0x18] + str r0, [r1, #4] + ldr r0, [r4] + ldr r1, _021DC678 ; =UNK04_02210494 + bl MOD04_021DB608 + cmp r0, #0 + beq _021DB89C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DB89C: + ldr r0, [r4] + bl MOD04_021DB570 + cmp r0, #0 + beq _021DB8C4 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DB8C4: + ldr r0, _021DC684 ; =OSi_ThreadInfo + ldr r0, [r0, #4] + bl OS_GetThreadPriority + sub r1, r0, #1 + ldr r0, [r4] + bl MOD04_021DB4A4 + ldr r1, [r4] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba0] + cmp r0, #0 + beq _021DB8FC + ldr r0, _021DC688 ; =0x00001B34 + add r0, r1, r0 + bl OS_JoinThread +_021DB8FC: + ldr r0, [r4] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _021DB91C + cmp r1, #8 + beq _021DB948 + b _021DB930 +_021DB91C: + ldr r0, _021DC670 ; =UNK04_02210484 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_021DB930: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #3 + bl MOD04_021DB730 + b _021DC614 +_021DB948: + ldr r1, [sp, #0x1c] + bl MOD04_021DA3DC + cmp r0, #1 + beq _021DB970 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DB970: + ldr r0, [r4] + ldr r1, _021DC68C ; =UNK04_0220C418 + bl MOD04_021DA388 + bl atol + mov sl, r0 + ldr r0, _021DC690 ; =errno + ldr r0, [r0] + cmp r0, #0x22 + bne _021DB9A0 + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DB9A0: + cmp sl, #0xc8 + beq _021DBCB4 + ldr r0, _021DC694 ; =0x0000012E + cmp sl, r0 + bne _021DBC9C + ldr r0, _021DC698 ; =UNK04_0221048C + str r6, [r0] + ldr r0, [r5] + add r0, r0, #0x1000 + ldr r1, [r0, #0x118] + cmp r1, #0 + beq _021DBC0C + ldr r1, _021DC674 ; =UNK04_02210490 + mvn r2, #5 + str r2, [r0, #4] + ldr r0, [r1] + bl MOD04_021DAE4C + ldr r2, _021DC678 ; =UNK04_02210494 + ldr r0, _021DC69C ; =UNK04_0220BEB4 + ldr r3, _021DC67C ; =0x00004E20 + ldr r0, [r0] + mov r5, #0 + mov r4, #0x200 + ldr r1, _021DC6A0 ; =UNK04_0220C424 + str r0, [r2] + str r5, [r2, #4] + str r4, [r2, #8] + str sb, [r2, #0xc] + str r8, [r2, #0x10] + str r3, [r2, #0x18] + bl strcmp + cmp r0, #0 + ldrne r0, _021DC678 ; =UNK04_02210494 + movne r1, #1 + strne r1, [r0, #0x14] + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r1, _021DC678 ; =UNK04_02210494 + ldr r0, [r0] + bl MOD04_021DB608 + cmp r0, #0 + beq _021DBA5C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DBA5C: + add r0, sp, #0x240 + bl MOD04_021DA238 + cmp r0, #0 + beq _021DBA88 + ldr r0, _021DC674 ; =UNK04_02210490 + add r1, sp, #0x240 + ldr r0, [r0] + mov r2, #1 + bl MOD04_021D9C2C + cmp r0, #0 + bne _021DBAA0 +_021DBA88: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #8 + bl MOD04_021DB730 + b _021DC614 +_021DBAA0: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r1, _021DC6A4 ; =UNK04_0220C444 + ldr r0, [r0] + ldr r2, _021DC6A8 ; =UNK04_0220C44C + mov r3, #7 + bl MOD04_021DAB68 + cmp r0, #0 + bne _021DBAF8 + ldr r0, _021DC670 ; =UNK04_02210484 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r4, [r0, #0x118] + mov r0, r4 + bl strlen + ldr r1, _021DC674 ; =UNK04_02210490 + mov r3, r0 + ldr r0, [r1] + ldr r1, _021DC6AC ; =UNK04_0220C454 + mov r2, r4 + bl MOD04_021DAB68 + cmp r0, #0 + beq _021DBB10 +_021DBAF8: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #8 + bl MOD04_021DB730 + b _021DC614 +_021DBB10: + ldr r1, _021DC670 ; =UNK04_02210484 + ldr r0, _021DC6B0 ; =UNK04_0220C464 + ldr r1, [r1] + mov r2, #0 + add r1, r1, #0x1000 + ldr r1, [r1, #0x118] + blx r8 + ldr r0, _021DC670 ; =UNK04_02210484 + mov r2, #0 + ldr r0, [r0] + ldr r1, _021DC674 ; =UNK04_02210490 + add r0, r0, #0x1000 + str r2, [r0, #0x118] + ldr r0, [r1] + bl MOD04_021DB570 + cmp r0, #0 + beq _021DBB6C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DBB6C: + ldr r0, _021DC684 ; =OSi_ThreadInfo + ldr r0, [r0, #4] + bl OS_GetThreadPriority + ldr r2, _021DC674 ; =UNK04_02210490 + sub r1, r0, #1 + ldr r0, [r2] + bl MOD04_021DB4A4 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba0] + cmp r0, #0 + beq _021DBBAC + ldr r0, _021DC688 ; =0x00001B34 + add r0, r1, r0 + bl OS_JoinThread +_021DBBAC: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _021DBBD0 + cmp r1, #8 + beq _021DBBFC + b _021DBBE4 +_021DBBD0: + ldr r0, _021DC670 ; =UNK04_02210484 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_021DBBE4: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #3 + bl MOD04_021DB730 + b _021DC614 +_021DBBFC: + bl MOD04_021DAE4C + mov r0, #7 + bl MOD04_021DB730 + b _021DC614 +_021DBC0C: + ldr r0, [r4] + add r1, r0, #0x1000 + ldr fp, [r1, #0xa04] + cmp fp, #0 + bne _021DBC30 + bl MOD04_021DAE4C + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DBC30: + mov r0, fp + bl strlen + add r1, r0, #1 + ldr r0, _021DC6B4 ; =UNK04_0220C394 + blx sb + ldr r1, [r5] + add r1, r1, #0x1000 + str r0, [r1, #0x114] + ldr r0, [r5] + add r0, r0, #0x1000 + ldr r0, [r0, #0x114] + str r0, [sp, #0xc] + cmp r0, #0 + bne _021DBC80 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #4 + bl MOD04_021DB730 + b _021DC614 +_021DBC80: + mov r0, fp + bl strlen + mov r2, r0 + ldr r0, [sp, #0xc] + mov r1, fp + bl strncpy + b _021DBCB4 +_021DBC9C: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #0xa + bl MOD04_021DB730 + b _021DC614 +_021DBCB4: + ldr r0, [r4] + bl MOD04_021DAE4C + add r0, sp, #0x68 + bl DWCi_BM_GetWiFiInfo + ldr r2, [sp, #0x68] + ldr r1, [sp, #0x6c] + mov r0, #0 + cmp r1, r0 + cmpeq r2, r0 + bne _021DBDEC + ldr r1, [r5] + ldr r0, _021DC6B8 ; =UNK04_022104B0 + add r2, r1, #0x1000 + ldr r1, [sp, #0x20] + str r1, [r2, #4] + ldr r2, [sp, #0x24] + mov r1, r0 + strh r2, [r1] + strb r2, [r1, #0x34] + ldr r2, [r5] + ldr r1, [r4] + add r3, r2, #0x1000 + ldr fp, [r3, #0x108] + mov r2, r0 + str fp, [r2, #0x40] + ldr r3, [r3, #0x10c] + str r3, [r2, #0x44] + bl MOD04_021D9ACC + cmp r0, #0 + beq _021DBD38 + mov r0, #5 + bl MOD04_021DB730 + b _021DC614 +_021DBD38: + bl MOD04_021D98DC + bl MOD04_021D988C + cmp r0, #0x15 + beq _021DBDE8 + bl MOD04_021D988C + cmp r0, #9 + bne _021DBD6C + ldr r0, _021DC670 ; =UNK04_02210484 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] + b _021DBDD8 +_021DBD6C: + add r0, sp, #0x7c + bl MOD04_021D97F8 + ldr r0, _021DC6BC ; =UNK04_02210488 + ldr r0, [r0] + cmp r0, #1 + bne _021DBDC4 + ldr r1, [sp, #0x7c] + ldr r0, _021DC6C0 ; =0xFFFFA4FA + cmp r1, r0 + beq _021DBDA0 + bl MOD04_021D988C + cmp r0, #0xb + bne _021DBDC4 +_021DBDA0: + ldr r0, _021DC670 ; =UNK04_02210484 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] + bl MOD04_021D991C + mov r0, #0xb + bl MOD04_021DB730 + b _021DC614 +_021DBDC4: + ldr r0, _021DC670 ; =UNK04_02210484 + ldr r1, [sp, #0x7c] + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_021DBDD8: + bl MOD04_021D991C + mov r0, #6 + bl MOD04_021DB730 + b _021DC614 +_021DBDE8: + bl MOD04_021D991C +_021DBDEC: + cmp sl, #0xc8 + bne _021DBE14 + ldr r0, _021DC670 ; =UNK04_02210484 + mov r2, #0 + ldr r1, [r0] + mov r0, #0xb + add r1, r1, #0x1000 + str r2, [r1, #4] + bl MOD04_021DB730 + b _021DC614 +_021DBE14: + ldr r0, [r5] + ldr r1, _021DC6A0 ; =UNK04_0220C424 + add r2, r0, #0x1000 + ldr r0, [sp, #0x28] + str r0, [r2, #4] + ldr r0, _021DC678 ; =UNK04_02210494 + ldr r2, [sp, #0x2c] + str sb, [r0, #0xc] + str r2, [r0, #4] + ldr r2, [sp, #0x14] + str r8, [r0, #0x10] + str r2, [r0, #8] + ldr r2, _021DC6C4 ; =0x00009C40 + str r2, [r0, #0x18] + ldr r0, _021DC69C ; =UNK04_0220BEB4 + ldr r2, _021DC678 ; =UNK04_02210494 + ldr r0, [r0] + str r0, [r2] + bl strcmp + cmp r0, #0 + ldrne r0, _021DC678 ; =UNK04_02210494 + ldr r1, _021DC678 ; =UNK04_02210494 + strne r6, [r0, #0x14] + ldr r0, [r4] + bl MOD04_021DB608 + cmp r0, #0 + beq _021DBE98 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DBE98: + add r0, sp, #0x240 + bl MOD04_021DA238 + cmp r0, #0 + beq _021DBEC0 + ldr r0, [r4] + add r1, sp, #0x240 + mov r2, r6 + bl MOD04_021D9C2C + cmp r0, #0 + bne _021DBED8 +_021DBEC0: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #8 + bl MOD04_021DB730 + b _021DC614 +_021DBED8: + ldr r0, [r4] + ldr r1, _021DC6A4 ; =UNK04_0220C444 + ldr r2, _021DC6C8 ; =UNK04_0220C484 + ldr r3, [sp, #0x30] + bl MOD04_021DAB68 + cmp r0, #0 + bne _021DBF24 + ldr r0, [r5] + add r0, r0, #0x1000 + ldr sl, [r0, #0x114] + mov r0, sl + bl strlen + mov r3, r0 + ldr r0, [r4] + ldr r1, _021DC6CC ; =UNK04_0220C48C + mov r2, sl + bl MOD04_021DAB68 + cmp r0, #0 + beq _021DBF3C +_021DBF24: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #8 + bl MOD04_021DB730 + b _021DC614 +_021DBF3C: + ldr r1, [r5] + ldr r0, _021DC6D0 ; =UNK04_0220C3B0 + add r1, r1, #0x1000 + ldr r2, [sp, #0x34] + ldr r1, [r1, #0x114] + blx r8 + ldr r0, [r5] + add r1, r0, #0x1000 + ldr r0, [sp, #0x38] + str r0, [r1, #0x114] + ldr r0, [r4] + bl MOD04_021DB570 + cmp r0, #0 + beq _021DBF8C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DBF8C: + ldr r0, _021DC684 ; =OSi_ThreadInfo + ldr r0, [r0, #4] + bl OS_GetThreadPriority + sub r1, r0, #1 + ldr r0, [r4] + bl MOD04_021DB4A4 + ldr r1, [r4] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba0] + cmp r0, #0 + beq _021DBFC4 + ldr r0, _021DC688 ; =0x00001B34 + add r0, r1, r0 + bl OS_JoinThread +_021DBFC4: + ldr r0, [r4] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _021DC02C + cmp r1, #3 + beq _021DBFEC + cmp r1, #8 + beq _021DC058 + b _021DC040 +_021DBFEC: + bl MOD04_021DAE4C + ldr r0, _021DC6BC ; =UNK04_02210488 + ldr r0, [r0] + cmp r0, #1 + bne _021DC020 + ldr r0, _021DC670 ; =UNK04_02210484 + mov r2, #0 + ldr r1, [r0] + mov r0, #0xb + add r1, r1, #0x1000 + str r2, [r1, #4] + bl MOD04_021DB730 + b _021DC614 +_021DC020: + mov r0, #3 + bl MOD04_021DB730 + b _021DC614 +_021DC02C: + ldr r0, _021DC670 ; =UNK04_02210484 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_021DC040: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #3 + bl MOD04_021DB730 + b _021DC614 +_021DC058: + ldr r1, [sp, #0x3c] + bl MOD04_021DA3DC + cmp r0, #1 + beq _021DC080 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DC080: + ldr r0, [r4] + ldr r1, _021DC68C ; =UNK04_0220C418 + bl MOD04_021DA388 + bl atol + mov sl, r0 + ldr r0, _021DC690 ; =errno + ldr r0, [r0] + cmp r0, #0x22 + bne _021DC0BC + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DC0BC: + cmp sl, #0xc8 + beq _021DC118 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + ldr r0, _021DC6BC ; =UNK04_02210488 + ldr r0, [r0] + cmp r0, #1 + bne _021DC10C + ldr r0, _021DC694 ; =0x0000012E + cmp sl, r0 + bne _021DC10C + ldr r0, _021DC670 ; =UNK04_02210484 + mov r2, #0 + ldr r1, [r0] + mov r0, #0xb + add r1, r1, #0x1000 + str r2, [r1, #4] + bl MOD04_021DB730 + b _021DC614 +_021DC10C: + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DC118: + ldr r0, [r4] + ldr r1, _021DC6D4 ; =UNK04_0220C494 + ldr r3, [sp, #0x40] + add r2, sp, #0x64 + bl MOD04_021DA334 + cmp r0, #0 + bgt _021DC14C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC14C: + add r0, sp, #0x64 + bl atol + ldr r1, _021DC690 ; =errno + ldr r1, [r1] + cmp r1, #0x22 + bne _021DC17C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC17C: + ldr r1, _021DC6BC ; =UNK04_02210488 + ldr r1, [r1] + cmp r1, #1 + bne _021DC1B4 + cmp r0, #0x72 + bne _021DC1B4 + ldr r0, _021DC670 ; =UNK04_02210484 + mov r2, #0 + ldr r1, [r0] + mov r0, #0xb + add r1, r1, #0x1000 + str r2, [r1, #4] + bl MOD04_021DB730 + b _021DC614 +_021DC1B4: + cmp r0, #0x64 + blt _021DC1D4 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #6 + bl MOD04_021DB730 + b _021DC614 +_021DC1D4: + ldr r2, [sp, #0x44] + ldr r0, [r4] + ldr r1, _021DC6D8 ; =UNK04_0220C4A0 + mov r3, r2 + bl MOD04_021DA334 + mov fp, r0 + cmp fp, #0 + bgt _021DC20C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC20C: + ldr r2, [sp, #0x48] + ldr r0, [r4] + ldr r1, _021DC6DC ; =UNK04_0220C4A4 + mov r3, r2 + bl MOD04_021DA334 + str r0, [sp, #4] + cmp r0, #0 + bgt _021DC244 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC244: + ldr r2, [sp, #0x4c] + ldr r0, [r4] + ldr r1, _021DC6E0 ; =UNK04_0220C4AC + mov r3, r2 + bl MOD04_021DA334 + mov sl, r0 + ldr r0, _021DC6E4 ; =UNK04_0220C3CC + add r1, fp, #1 + blx sb + str r0, [sp] + cmp r0, #0 + bne _021DC28C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #4 + bl MOD04_021DB730 + b _021DC614 +_021DC28C: + ldr r1, [sp, #4] + ldr r0, _021DC6E8 ; =UNK04_0220C3D8 + add r1, r1, #1 + blx sb + movs r7, r0 + bne _021DC2BC + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #4 + bl MOD04_021DB730 + b _021DC614 +_021DC2BC: + cmp sl, #0 + ble _021DC2F4 + ldr r0, _021DC6EC ; =UNK04_0220C3E8 + add r1, sl, #1 + blx sb + str r0, [sp, #8] + cmp r0, #0 + bne _021DC2F4 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #4 + bl MOD04_021DB730 + b _021DC614 +_021DC2F4: + ldr r0, [r4] + ldr r1, _021DC6D8 ; =UNK04_0220C4A0 + ldr r2, [sp] + add r3, fp, #1 + bl MOD04_021DA334 + cmp r0, #0 + bge _021DC328 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC328: + ldr r1, [sp, #4] + ldr r2, [sp, #0x50] + add r3, r1, #1 + ldr r1, [sp] + strb r2, [r1, r0] + ldr r0, [r4] + ldr r1, _021DC6DC ; =UNK04_0220C4A4 + mov r2, r7 + bl MOD04_021DA334 + cmp r0, #0 + bge _021DC36C + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC36C: + ldr r1, [sp, #0x54] + cmp sl, #0 + strb r1, [r7, r0] + mov fp, r1 + ble _021DC404 + ldr r0, [r4] + ldr r1, _021DC6E0 ; =UNK04_0220C4AC + ldr r2, [sp, #8] + add r3, sl, #1 + bl MOD04_021DA334 + cmp r0, #0 + bge _021DC3B4 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC3B4: + ldr r2, [sp, #0x58] + ldr r1, [sp, #8] + strb r2, [r1, r0] + mov r0, r1 + bl atol + ldr r1, _021DC690 ; =errno + ldr r1, [r1] + cmp r1, #0x22 + bne _021DC3F0 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #9 + bl MOD04_021DB730 + b _021DC614 +_021DC3F0: + mov r1, #0x3e8 + mul fp, r0, r1 + ldr r0, _021DC6F0 ; =0x0002BF20 + cmp fp, r0 + movgt fp, r0 +_021DC404: + ldr r0, [r4] + bl MOD04_021DAE4C + ldr r0, [r5] + ldr r1, _021DC678 ; =UNK04_02210494 + add r2, r0, #0x1000 + ldr r0, [sp, #0x5c] + str r0, [r2, #4] + mov r0, r1 + ldr r2, [sp] + str sb, [r0, #0xc] + str r2, [r0] + ldr r2, [sp, #0x60] + str r8, [r0, #0x10] + str r2, [r0, #4] + ldr r2, [sp, #0x14] + str r2, [r0, #8] + ldr r2, _021DC6F4 ; =0x0001D4C0 + str r2, [r0, #0x18] + ldr r0, [r4] + bl MOD04_021DB608 + cmp r0, #0 + beq _021DC474 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DC474: + ldr r0, [r4] + mov r1, r7 + bl MOD04_021DAACC + cmp r0, #0 + beq _021DC4A0 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #8 + bl MOD04_021DB730 + b _021DC614 +_021DC4A0: + ldr r0, [r4] + bl MOD04_021DB570 + cmp r0, #0 + beq _021DC4C8 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #1 + bl MOD04_021DB730 + b _021DC614 +_021DC4C8: + ldr r0, _021DC684 ; =OSi_ThreadInfo + ldr r0, [r0, #4] + bl OS_GetThreadPriority + sub r1, r0, #1 + ldr r0, [r4] + bl MOD04_021DB4A4 + ldr r1, [r4] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba0] + cmp r0, #0 + beq _021DC500 + ldr r0, _021DC688 ; =0x00001B34 + add r0, r1, r0 + bl OS_JoinThread +_021DC500: + ldr r0, [r4] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _021DC520 + cmp r1, #8 + beq _021DC54C + b _021DC534 +_021DC520: + ldr r0, _021DC670 ; =UNK04_02210484 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_021DC534: + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #3 + bl MOD04_021DB730 + b _021DC614 +_021DC54C: + mov r1, r6 + bl MOD04_021DA3DC + cmp r0, #1 + beq _021DC574 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DC574: + ldr r0, [r4] + add r1, r0, #0x1000 + ldr sl, [r1, #0xa04] + cmp sl, #0 + bne _021DC598 + bl MOD04_021DAE4C + mov r0, #2 + bl MOD04_021DB730 + b _021DC614 +_021DC598: + mov r0, sl + bl strlen + add r1, r0, #1 + ldr r0, _021DC6F8 ; =UNK04_0220C3F8 + blx sb + ldr r1, [r5] + add r1, r1, #0x1000 + str r0, [r1, #0x118] + ldr r0, [r5] + add r0, r0, #0x1000 + ldr r0, [r0, #0x118] + str r0, [sp, #0x10] + cmp r0, #0 + bne _021DC5E8 + ldr r0, _021DC674 ; =UNK04_02210490 + ldr r0, [r0] + bl MOD04_021DAE4C + mov r0, #4 + bl MOD04_021DB730 + b _021DC614 +_021DC5E8: + mov r0, sl + bl strlen + mov r2, r0 + ldr r0, [sp, #0x10] + mov r1, sl + bl strncpy + ldr r0, [r4] + bl MOD04_021DAE4C + mov r0, fp + bl OS_Sleep + b _021DB830 +_021DC614: + ldr r0, [sp] + cmp r0, #0 + beq _021DC630 + ldr r0, _021DC6FC ; =UNK04_0220C4B4 + ldr r1, [sp] + mov r2, #0 + blx r8 +_021DC630: + cmp r7, #0 + beq _021DC648 + ldr r0, _021DC700 ; =UNK04_0220C4C0 + mov r1, r7 + mov r2, #0 + blx r8 +_021DC648: + ldr r0, [sp, #8] + cmp r0, #0 + addeq sp, sp, #0x2d4 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, _021DC704 ; =UNK04_0220C4CC + ldr r1, [sp, #8] + mov r2, #0 + blx r8 + add sp, sp, #0x2d4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_021DC670: .word UNK04_02210484 +_021DC674: .word UNK04_02210490 +_021DC678: .word UNK04_02210494 +_021DC67C: .word 0x00004E20 +_021DC680: .word UNK04_0220C36C +_021DC684: .word OSi_ThreadInfo +_021DC688: .word 0x00001B34 +_021DC68C: .word UNK04_0220C418 +_021DC690: .word errno +_021DC694: .word 0x0000012E +_021DC698: .word UNK04_0221048C +_021DC69C: .word UNK04_0220BEB4 +_021DC6A0: .word UNK04_0220C424 +_021DC6A4: .word UNK04_0220C444 +_021DC6A8: .word UNK04_0220C44C +_021DC6AC: .word UNK04_0220C454 +_021DC6B0: .word UNK04_0220C464 +_021DC6B4: .word UNK04_0220C394 +_021DC6B8: .word UNK04_022104B0 +_021DC6BC: .word UNK04_02210488 +_021DC6C0: .word 0xFFFFA4FA +_021DC6C4: .word 0x00009C40 +_021DC6C8: .word UNK04_0220C484 +_021DC6CC: .word UNK04_0220C48C +_021DC6D0: .word UNK04_0220C3B0 +_021DC6D4: .word UNK04_0220C494 +_021DC6D8: .word UNK04_0220C4A0 +_021DC6DC: .word UNK04_0220C4A4 +_021DC6E0: .word UNK04_0220C4AC +_021DC6E4: .word UNK04_0220C3CC +_021DC6E8: .word UNK04_0220C3D8 +_021DC6EC: .word UNK04_0220C3E8 +_021DC6F0: .word 0x0002BF20 +_021DC6F4: .word 0x0001D4C0 +_021DC6F8: .word UNK04_0220C3F8 +_021DC6FC: .word UNK04_0220C4B4 +_021DC700: .word UNK04_0220C4C0 +_021DC704: .word UNK04_0220C4CC + arm_func_end MOD04_021DB778 + + arm_func_start MOD04_021DC708 +MOD04_021DC708: ; 0x021DC708 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r0, _021DC788 ; =UNK04_02210484 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x188] + cmp r0, #0 + beq _021DC740 + ldr r0, _021DC78C ; =0x0000111C + add r0, r1, r0 + bl OS_IsThreadTerminated + cmp r0, #0 + addeq sp, sp, #0xc + ldmeqia sp!, {pc} +_021DC740: + ldr r1, _021DC788 ; =UNK04_02210484 + ldr r0, _021DC78C ; =0x0000111C + ldr r2, [r1] + mov r3, #0x1000 + ldr r1, _021DC790 ; =MOD04_021DB778 + str r3, [sp] + mov ip, #0x10 + add r0, r2, r0 + add r3, r2, #0x1000 + str ip, [sp, #4] + bl OS_CreateThread + ldr r1, _021DC788 ; =UNK04_02210484 + ldr r0, _021DC78C ; =0x0000111C + ldr r1, [r1] + add r0, r1, r0 + bl OS_WakeupThreadDirect + add sp, sp, #0xc + ldmfd sp!, {pc} + .align 2, 0 +_021DC788: .word UNK04_02210484 +_021DC78C: .word 0x0000111C +_021DC790: .word MOD04_021DB778 + arm_func_end MOD04_021DC708 + + arm_func_start MOD04_021DC794 +MOD04_021DC794: ; 0x021DC794 + ldr r0, _021DC7A8 ; =UNK04_02210484 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_021DC7A8: .word UNK04_02210484 + arm_func_end MOD04_021DC794 + + arm_func_start MOD04_021DC7AC +MOD04_021DC7AC: ; 0x021DC7AC + stmdb sp!, {r4, lr} + ldr r1, _021DC7E8 ; =UNK04_02210484 + ldr r0, _021DC7EC ; =0x000011DC + ldr r1, [r1] + add r0, r1, r0 + bl OS_LockMutex + ldr r1, _021DC7E8 ; =UNK04_02210484 + ldr r0, _021DC7EC ; =0x000011DC + ldr r2, [r1] + add r1, r2, #0x1000 + add r0, r2, r0 + ldr r4, [r1] + bl OS_UnlockMutex + mov r0, r4 + ldmia sp!, {r4, pc} + .align 2, 0 +_021DC7E8: .word UNK04_02210484 +_021DC7EC: .word 0x000011DC + arm_func_end MOD04_021DC7AC + + arm_func_start MOD04_021DC7F0 +MOD04_021DC7F0: ; 0x021DC7F0 + stmdb sp!, {lr} + sub sp, sp, #4 + ldr r0, _021DC864 ; =UNK04_02210484 + ldr r0, [r0] + cmp r0, #0 + addeq sp, sp, #4 + ldmeqia sp!, {pc} + ldr r0, _021DC868 ; =UNK04_02210490 + ldr r0, [r0] + cmp r0, #0 + beq _021DC820 + bl MOD04_021DB440 +_021DC820: + bl MOD04_021D9974 + ldr r0, _021DC864 ; =UNK04_02210484 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x188] + cmp r0, #0 + beq _021DC848 + ldr r0, _021DC86C ; =0x0000111C + add r0, r1, r0 + bl OS_JoinThread +_021DC848: + ldr r0, _021DC864 ; =UNK04_02210484 + mvn r1, #6 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] + add sp, sp, #4 + ldmfd sp!, {pc} + .align 2, 0 +_021DC864: .word UNK04_02210484 +_021DC868: .word UNK04_02210490 +_021DC86C: .word 0x0000111C + arm_func_end MOD04_021DC7F0 + + arm_func_start MOD04_021DC870 +MOD04_021DC870: ; 0x021DC870 + stmdb sp!, {r4, lr} + ldr r1, _021DC958 ; =UNK04_02210484 + ldr r0, _021DC95C ; =UNK04_02210490 + ldr r1, [r1] + ldr r0, [r0] + add r1, r1, #0x1000 + cmp r0, #0 + ldr r4, [r1, #0x10c] + beq _021DC8B8 + bl MOD04_021DAE4C + ldr r1, _021DC95C ; =UNK04_02210490 + ldr r0, _021DC960 ; =UNK04_0220C4D8 + ldr r1, [r1] + mov r2, #0 + blx r4 + ldr r0, _021DC95C ; =UNK04_02210490 + mov r1, #0 + str r1, [r0] +_021DC8B8: + bl MOD04_021D991C + ldr r0, _021DC958 ; =UNK04_02210484 + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + add r0, r0, #0x1000 + ldr r1, [r0, #0x114] + cmp r1, #0 + beq _021DC8FC + ldr r0, _021DC964 ; =UNK04_0220C3B0 + mov r2, #0 + blx r4 + ldr r0, _021DC958 ; =UNK04_02210484 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0x114] +_021DC8FC: + ldr r0, _021DC958 ; =UNK04_02210484 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r1, [r0, #0x118] + cmp r1, #0 + beq _021DC934 + ldr r0, _021DC968 ; =UNK04_0220C464 + mov r2, #0 + blx r4 + ldr r0, _021DC958 ; =UNK04_02210484 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0x118] +_021DC934: + ldr r1, _021DC958 ; =UNK04_02210484 + ldr r0, _021DC96C ; =UNK04_0220C4E8 + ldr r1, [r1] + mov r2, #0 + blx r4 + ldr r0, _021DC958 ; =UNK04_02210484 + mov r1, #0 + str r1, [r0] + ldmia sp!, {r4, pc} + .align 2, 0 +_021DC958: .word UNK04_02210484 +_021DC95C: .word UNK04_02210490 +_021DC960: .word UNK04_0220C4D8 +_021DC964: .word UNK04_0220C3B0 +_021DC968: .word UNK04_0220C464 +_021DC96C: .word UNK04_0220C4E8 + arm_func_end MOD04_021DC870 + + arm_func_start MOD04_021DC970 +MOD04_021DC970: ; 0x021DC970 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + ldr r1, _021DCA5C ; =UNK04_02210484 + mov r5, r0 + ldr r0, [r1] + ldr r4, [r5] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #4 + ldmneia sp!, {r4, r5, pc} + ldr r0, _021DCA60 ; =UNK04_0220C4FC + ldr r1, _021DCA64 ; =0x000011F4 + blx r4 + ldr r1, _021DCA5C ; =UNK04_02210484 + cmp r0, #0 + str r0, [r1] + addeq sp, sp, #4 + moveq r0, #4 + ldmeqia sp!, {r4, r5, pc} + ldr r2, _021DCA64 ; =0x000011F4 + mov r1, #0 + bl MI_CpuFill8 + ldr r1, _021DCA5C ; =UNK04_02210484 + ldr r2, _021DCA68 ; =0xFFFE7961 + ldr r0, [r1] + ldr r3, _021DCA6C ; =0x00001108 + add r0, r0, #0x1000 + str r2, [r0, #4] + ldr ip, [r1] + ldmia r5, {r0, r1, r2} + add r3, ip, r3 + stmia r3, {r0, r1, r2} + ldr r0, _021DCA70 ; =UNK04_02210490 + ldr r0, [r0] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #4 + ldmneia sp!, {r4, r5, pc} + ldr r0, _021DCA74 ; =UNK04_0220C510 + ldr r1, _021DCA78 ; =0x00001C10 + blx r4 + ldr r1, _021DCA70 ; =UNK04_02210490 + cmp r0, #0 + str r0, [r1] + addeq sp, sp, #4 + moveq r0, #4 + ldmeqia sp!, {r4, r5, pc} + ldr r1, _021DCA5C ; =UNK04_02210484 + ldr r0, _021DCA7C ; =0x000011DC + ldr r2, [r1] + ldr r1, _021DCA80 ; =UNK04_0221048C + mov r3, #0 + add r0, r2, r0 + str r3, [r1] + bl OS_InitMutex + bl MOD04_021DC708 + mov r0, #0 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_021DCA5C: .word UNK04_02210484 +_021DCA60: .word UNK04_0220C4FC +_021DCA64: .word 0x000011F4 +_021DCA68: .word 0xFFFE7961 +_021DCA6C: .word 0x00001108 +_021DCA70: .word UNK04_02210490 +_021DCA74: .word UNK04_0220C510 +_021DCA78: .word 0x00001C10 +_021DCA7C: .word 0x000011DC +_021DCA80: .word UNK04_0221048C + arm_func_end MOD04_021DC970 + + .section .data + + .global UNK04_0220C36C +UNK04_0220C36C: ; 0x0220C36C + .word UNK04_0220C370 + + .global UNK04_0220C370 +UNK04_0220C370: ; 0x0220C370 + .asciz "http://conntest.nintendowifi.net/" + + .balign 4, 0 + .global UNK04_0220C394 +UNK04_0220C394: ; 0x0220C394 + .asciz "ALLOC DWCnetcheck->body_302" + + .balign 4, 0 + .global UNK04_0220C3B0 +UNK04_0220C3B0: ; 0x0220C3B0 + .asciz "FREE DWCnetcheck->body_302" + + .balign 4, 0 + .global UNK04_0220C3CC +UNK04_0220C3CC: ; 0x0220C3CC + .asciz "ALLOC url" + + .balign 4, 0 + .global UNK04_0220C3D8 +UNK04_0220C3D8: ; 0x0220C3D8 + .asciz "ALLOC data_len" + + .balign 4, 0 + .global UNK04_0220C3E8 +UNK04_0220C3E8: ; 0x0220C3E8 + .asciz "ALLOC wait_len" + + .balign 4, 0 + .global UNK04_0220C3F8 +UNK04_0220C3F8: ; 0x0220C3F8 + .asciz "ALLOC DWCnetcheck->body_wayport" + + .balign 4, 0 + .global UNK04_0220C418 +UNK04_0220C418: ; 0x0220C418 + .asciz "httpresult" + + .balign 4, 0 + .global UNK04_0220C424 +UNK04_0220C424: ; 0x0220C424 + .asciz "https://nas.nintendowifi.net/ac" + + .balign 4, 0 + .global UNK04_0220C444 +UNK04_0220C444: ; 0x0220C444 + .asciz "action" + + .balign 4, 0 + .global UNK04_0220C44C +UNK04_0220C44C: ; 0x0220C44C + .asciz "message" + + .balign 4, 0 + .global UNK04_0220C454 +UNK04_0220C454: ; 0x0220C454 + .asciz "HotSpotResponse" + + .balign 4, 0 + .global UNK04_0220C464 +UNK04_0220C464: ; 0x0220C464 + .asciz "FREE DWCnetcheck->body_wayport" + + .balign 4, 0 + .global UNK04_0220C484 +UNK04_0220C484: ; 0x0220C484 + .asciz "parse" + + .balign 4, 0 + .global UNK04_0220C48C +UNK04_0220C48C: ; 0x0220C48C + .asciz "HTML" + + .balign 4, 0 + .global UNK04_0220C494 +UNK04_0220C494: ; 0x0220C494 + .asciz "returncd" + + .balign 4, 0 + .global UNK04_0220C4A0 +UNK04_0220C4A0: ; 0x0220C4A0 + .asciz "url" + + .balign 4, 0 + .global UNK04_0220C4A4 +UNK04_0220C4A4: ; 0x0220C4A4 + .asciz "data" + + .balign 4, 0 + .global UNK04_0220C4AC +UNK04_0220C4AC: ; 0x0220C4AC + .asciz "wait" + + .balign 4, 0 + .global UNK04_0220C4B4 +UNK04_0220C4B4: ; 0x0220C4B4 + .asciz "FREE url" + + .balign 4, 0 + .global UNK04_0220C4C0 +UNK04_0220C4C0: ; 0x0220C4C0 + .asciz "FREE data" + + .balign 4, 0 + .global UNK04_0220C4CC +UNK04_0220C4CC: ; 0x0220C4CC + .asciz "FREE wait" + + .balign 4, 0 + .global UNK04_0220C4D8 +UNK04_0220C4D8: ; 0x0220C4D8 + .asciz "FREE DWChttp" + + .balign 4, 0 + .global UNK04_0220C4E8 +UNK04_0220C4E8: ; 0x0220C4E8 + .asciz "FREE DWCnetcheck" + + .balign 4, 0 + .global UNK04_0220C4FC +UNK04_0220C4FC: ; 0x0220C4FC + .asciz "ALLOC DWCnetcheck" + + .balign 4, 0 + .global UNK04_0220C510 +UNK04_0220C510: ; 0x0220C510 + .asciz "ALLOC DWChttp" + + .balign 4, 0 + .section .bss + + .global UNK04_02210490 +UNK04_02210490: ; 0x02210490 + .space 0x4 + + .global UNK04_02210494 +UNK04_02210494: ; 0x02210494 + .space 0x1C + + .global UNK04_022104B0 +UNK04_022104B0: ; 0x022104B0 + .space 0x48 |