diff options
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/global.inc | 8 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021D9A48.s | 1632 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 1628 |
4 files changed, 1641 insertions, 1628 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 0a45ade3..52499bdd 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -520,6 +520,7 @@ Overlay MODULE_05 Object mod05_021D7F4C.o Object mod05_021D80E8.o Object mod05_021D9320.o + Object mod05_021D9A48.o Object module_05.o } diff --git a/arm9/global.inc b/arm9/global.inc index 1898976b..5f93b499 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -6231,7 +6231,11 @@ .extern MOD05_021D9820 .extern MOD05_021D99F8 .extern MOD05_021D9B54 +.extern MOD05_021D9CEC +.extern MOD05_021D9DC0 +.extern MOD05_021D9E80 .extern MOD05_021D9F48 +.extern MOD05_021D9FB4 .extern MOD05_021DA018 .extern MOD05_021DA03C .extern MOD05_021DA080 @@ -6245,13 +6249,17 @@ .extern MOD05_021DA1A8 .extern MOD05_021DA1AC .extern MOD05_021DA20C +.extern MOD05_021DA220 +.extern MOD05_021DA230 .extern MOD05_021DA430 .extern MOD05_021DA450 .extern MOD05_021DA464 .extern MOD05_021DA4BC .extern MOD05_021DA4EC +.extern MOD05_021DA514 .extern MOD05_021DA54C .extern MOD05_021DA58C +.extern MOD05_021DA5AC .extern MOD05_021DA5B8 .extern MOD05_021DA5C8 .extern MOD05_021DA5D0 diff --git a/arm9/modules/05/asm/mod05_021D9A48.s b/arm9/modules/05/asm/mod05_021D9A48.s new file mode 100644 index 00000000..2e5469f9 --- /dev/null +++ b/arm9/modules/05/asm/mod05_021D9A48.s @@ -0,0 +1,1632 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021D9A48 +MOD05_021D9A48: ; 0x021D9A48 + push {r3, r4, r5, r6, r7, lr} + add r7, r2, #0 + add r6, r0, #0 + add r5, r1, #0 + mov r0, #0 + ldr r1, [r7, #0x18] + mvn r0, r0 + add r4, r3, #0 + cmp r1, r0 + bne _021D9A60 + bl ErrorHandling +_021D9A60: + mov r0, #0 + add r1, r6, #0 +_021D9A64: + ldr r2, [r1] + cmp r2, #0 + beq _021D9A7A + ldr r2, [r1, #0xc] + cmp r4, r2 + bne _021D9A7A + ldr r2, [r1, #4] + cmp r2, r5 + bne _021D9A7A + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9A7A: + add r0, r0, #1 + add r1, #0x10 + cmp r0, #2 + blt _021D9A64 + mov r2, #0 + add r1, r6, #0 +_021D9A86: + ldr r0, [r1] + cmp r0, #0 + bne _021D9A9C + lsl r1, r2, #4 + mov r0, #1 + str r0, [r6, r1] + add r0, r6, r1 + str r4, [r0, #0xc] + str r7, [r0, #8] + str r5, [r0, #4] + b _021D9AA4 +_021D9A9C: + add r2, r2, #1 + add r1, #0x10 + cmp r2, #2 + blt _021D9A86 +_021D9AA4: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021D9AA8 +MOD05_021D9AA8: ; 0x021D9AA8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0 + add r4, r1, #0 + mvn r0, r0 + add r7, r2, #0 + add r5, r3, #0 + cmp r4, r0 + bne _021D9ABE + bl ErrorHandling +_021D9ABE: + add r0, r6, #0 + add r1, r4, #0 + mov r2, #4 + bl NARC_AllocAndReadWholeMember + add r4, r0, #0 + bne _021D9AD0 + bl ErrorHandling +_021D9AD0: + add r0, r4, #0 + mov r1, #0 + bl FUN_020BC4C8 + add r6, r0, #0 + bne _021D9AE0 + bl ErrorHandling +_021D9AE0: + ldr r0, [sp, #0x1c] + add r1, r6, #0 + add r2, r7, #0 + bl FUN_020BB8D0 + str r0, [r5] + cmp r5, #0 + bne _021D9AF4 + bl ErrorHandling +_021D9AF4: + ldr r0, [r5] + ldr r3, [sp, #0x18] + add r1, r6, #0 + add r2, r7, #0 + bl FUN_020B8110 + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021D9B04 +MOD05_021D9B04: ; 0x021D9B04 + push {r3, lr} + cmp r1, #0 + bne _021D9B0E + mov r0, #0 + pop {r3, pc} +_021D9B0E: + cmp r0, #0 + bne _021D9B16 + mov r0, #0 + pop {r3, pc} +_021D9B16: + bl FUN_020B7E28 + mov r0, #1 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021D9B20 +MOD05_021D9B20: ; 0x021D9B20 + push {r4, r5, r6, lr} + mov r4, #0 + add r5, r0, #0 + add r6, r4, #0 +_021D9B28: + ldr r0, [r5] + cmp r0, #0 + beq _021D9B4A + ldr r0, [r5, #8] + bl MOD05_021DA20C + cmp r0, #0 + beq _021D9B4A + ldr r1, [r5, #8] + ldr r0, [r5, #4] + ldr r1, [r1] + bl MOD05_021D9B04 + str r6, [r5] + str r6, [r5, #0xc] + str r6, [r5, #8] + str r6, [r5, #4] +_021D9B4A: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #2 + blt _021D9B28 + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021D9B54 +MOD05_021D9B54: ; 0x021D9B54 + push {r3, r4, r5, r6, r7, lr} + mov r1, #0xae + mov r0, #4 + lsl r1, r1, #2 + bl AllocFromHeap + add r7, r0, #0 + mov r1, #0 + add r2, r7, #0 + add r6, r1, #0 + sub r0, r1, #1 +_021D9B6A: + str r6, [r2, #0x14] + str r6, [r2, #0x20] + str r6, [r2, #0x10] + str r6, [r2, #0x18] + str r6, [r2, #0x1c] + str r6, [r2, #0x24] + str r0, [r2, #0x28] + str r6, [r2, #0x2c] + str r6, [r2, #0x30] + str r6, [r2, #0x34] + add r1, r1, #1 + add r2, #0x28 + cmp r1, #0x10 + blt _021D9B6A + mov r0, #0x29 + lsl r0, r0, #4 + add r2, r0, #0 + add r3, r0, #0 + add r5, r7, #0 + mov r4, #0 + add r1, r0, #4 + add r2, #8 + add r3, #0xc +_021D9B98: + str r4, [r5, r0] + str r4, [r5, r1] + str r4, [r5, r2] + str r4, [r5, r3] + add r6, r6, #1 + add r5, #0x10 + cmp r6, #2 + blt _021D9B98 + mov r1, #4 + add r0, r7, #0 + add r2, r1, #0 + bl FUN_02016B20 + mov r0, #0x6e + mov r1, #4 + bl NARC_ctor + mov r1, #0x2b + lsl r1, r1, #4 + str r0, [r7, r1] + mov r0, #0x6f + mov r1, #4 + bl NARC_ctor + mov r1, #0xad + lsl r1, r1, #2 + str r0, [r7, r1] + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021D9BD4 +MOD05_021D9BD4: ; 0x021D9BD4 + cmp r0, #0 + bne _021D9BDC + mov r0, #0 + bx lr +_021D9BDC: + ldr r0, [r0] + bx lr + + thumb_func_start MOD05_021D9BE0 +MOD05_021D9BE0: ; 0x021D9BE0 + mov r1, #1 + and r0, r1 + cmp r0, #1 + beq _021D9BEA + mov r1, #0 +_021D9BEA: + add r0, r1, #0 + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021D9BF0 +MOD05_021D9BF0: ; 0x021D9BF0 + asr r1, r0, #1 + mov r0, #1 + and r1, r0 + cmp r1, #1 + beq _021D9BFC + mov r0, #0 +_021D9BFC: + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021D9C00 +MOD05_021D9C00: ; 0x021D9C00 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #1 + beq _021D9C0E + bl ErrorHandling +_021D9C0E: + ldr r0, [r4, #0x1c] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021D9C14 +MOD05_021D9C14: ; 0x021D9C14 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r6, r0, #0 + mov r0, #0xad + ldr r7, [sp, #0x4c] + lsl r0, r0, #2 + add r4, r1, #0 + str r2, [sp, #8] + ldr r0, [r7, r0] + add r1, r6, #0 + add r2, sp, #0x10 + add r5, r3, #0 + bl NARC_ReadWholeMember + cmp r4, #4 + blt _021D9C38 + bl ErrorHandling +_021D9C38: + lsl r1, r4, #2 + add r0, sp, #0x14 + ldr r0, [r0, r1] + mov r1, #0 + mvn r1, r1 + str r0, [sp, #0xc] + cmp r0, r1 + bne _021D9C4E + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021D9C4E: + add r0, sp, #0x10 + ldrb r0, [r0, #1] + bl MOD05_021D9BE0 + ldr r1, [sp, #0x40] + cmp r1, r0 + beq _021D9C62 + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021D9C62: + mov r6, #0 + add r4, r7, #0 +_021D9C66: + cmp r5, #0 + beq _021D9C74 + ldr r0, [r4, #0x34] + cmp r5, r0 + bne _021D9C74 + bl ErrorHandling +_021D9C74: + add r6, r6, #1 + add r4, #0x28 + cmp r6, #0x10 + blt _021D9C66 + mov r2, #0 + add r1, r7, #0 +_021D9C80: + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _021D9CD8 + add r4, r2, #0 + mov r0, #0x28 + mul r4, r0 + mov r1, #1 + add r0, r7, r4 + str r1, [r0, #0x14] + ldr r1, [sp, #0x3c] + add r6, r7, #0 + str r1, [r0, #0x20] + add r6, #0x10 + mov r1, #0 + str r1, [r6, r4] + str r1, [r0, #0x18] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x44] + str r1, [r0, #0x1c] + ldr r1, [sp, #0x38] + add r3, r6, r4 + str r1, [r0, #0x30] + str r5, [r0, #0x34] + ldr r0, [sp, #0x48] + ldr r1, [sp, #0xc] + str r0, [sp] + mov r0, #0x2b + str r7, [sp, #4] + lsl r0, r0, #4 + ldr r0, [r7, r0] + bl MOD05_021D9AA8 + add r1, r7, r4 + str r0, [r1, #0x24] + ldr r0, [sp, #8] + str r0, [r1, #0x28] + mov r0, #1 + str r0, [r1, #0x2c] + add r0, r6, r4 + bl MOD05_021DA118 + add sp, #0x24 + add r0, r6, r4 + pop {r4, r5, r6, r7, pc} +_021D9CD8: + add r2, r2, #1 + add r1, #0x28 + cmp r2, #0x10 + blt _021D9C80 + bl ErrorHandling + mov r0, #0 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021D9CEC +MOD05_021D9CEC: ; 0x021D9CEC + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r4, r0, #0 + mov r0, #0xad + add r6, r3, #0 + lsl r0, r0, #2 + str r1, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r6, r0] + add r1, r4, #0 + add r2, sp, #0x20 + bl NARC_ReadWholeMember + add r0, sp, #0x20 + ldrb r0, [r0] + cmp r0, #0 + beq _021D9DBC + mov r0, #0 + str r0, [sp, #0x14] + add r0, sp, #0x20 + str r0, [sp, #0x10] +_021D9D16: + ldr r0, [sp, #0x10] + mov r1, #0 + ldr r0, [r0, #4] + mvn r1, r1 + str r0, [sp, #0x18] + cmp r0, r1 + beq _021D9DBC + add r0, sp, #0x20 + ldrb r0, [r0, #1] + bl MOD05_021D9BE0 + cmp r0, #0 + bne _021D9DBC + mov r4, #0 + add r1, r6, #0 +_021D9D34: + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _021D9D9C + mov r0, #0x28 + add r7, r4, #0 + mul r7, r0 + add r5, r6, r7 + mov r0, #1 + str r0, [r5, #0x14] + mov r1, #0 + str r1, [r5, #0x20] + str r1, [r5, #0x10] + ldr r0, [sp, #0x18] + str r1, [r5, #0x18] + str r0, [r5, #0x1c] + add r0, r6, #0 + str r0, [sp, #0x1c] + add r0, #0x10 + str r0, [sp, #0x1c] + str r1, [r5, #0x30] + str r1, [r5, #0x34] + ldr r0, [sp, #0xc] + ldr r3, [sp, #0x1c] + str r0, [sp] + mov r0, #0x2b + str r6, [sp, #4] + lsl r0, r0, #4 + ldr r0, [r6, r0] + ldr r1, [sp, #0x18] + ldr r2, [sp, #8] + add r3, r3, r7 + bl MOD05_021D9AA8 + str r0, [r5, #0x24] + mov r0, #0 + mvn r0, r0 + str r0, [r5, #0x28] + mov r0, #1 + str r0, [r5, #0x2c] + ldr r0, [sp, #0x1c] + add r0, r0, r7 + bl MOD05_021DA118 + add r0, sp, #0x20 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _021D9DA4 + add r1, r5, #0 + mov r0, #1 + str r0, [r1, #0x20] + str r0, [r1, #0x28] + b _021D9DA4 +_021D9D9C: + add r4, r4, #1 + add r1, #0x28 + cmp r4, #0x10 + blt _021D9D34 +_021D9DA4: + cmp r4, #0x10 + bne _021D9DAC + bl ErrorHandling +_021D9DAC: + ldr r0, [sp, #0x10] + add r0, r0, #4 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + add r0, r0, #1 + str r0, [sp, #0x14] + cmp r0, #4 + blt _021D9D16 +_021D9DBC: + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021D9DC0 +MOD05_021D9DC0: ; 0x021D9DC0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + ldr r6, [sp, #0x30] + add r5, r0, #0 + add r4, r1, #0 + add r7, r2, #0 + str r3, [sp] + cmp r6, #0 + bne _021D9DDC + bl ErrorHandling + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9DDC: + add r0, r6, #0 + bl MOD05_021DA220 + cmp r5, r0 + blt _021D9DEC + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9DEC: + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r6, r0] + add r1, r5, #0 + add r2, sp, #4 + bl NARC_ReadWholeMember + cmp r4, #4 + blt _021D9E02 + bl ErrorHandling +_021D9E02: + lsl r1, r4, #2 + add r0, sp, #8 + ldr r5, [r0, r1] + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + bne _021D9E16 + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9E16: + add r0, sp, #4 + ldrb r0, [r0, #1] + bl MOD05_021D9BF0 + cmp r7, r0 + beq _021D9E28 + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9E28: + mov r4, #0 + add r1, r6, #0 +_021D9E2C: + ldr r0, [r1, #0x1c] + cmp r5, r0 + bne _021D9E70 + add r0, sp, #4 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _021D9E56 + add r2, r6, #0 + mov r3, #0x28 + mov r0, #0x29 + lsl r0, r0, #4 + add r2, #0x10 + mul r3, r4 + add r2, r2, r3 + lsl r3, r5, #0x18 + ldr r1, [sp] + add r0, r6, r0 + lsr r3, r3, #0x18 + bl MOD05_021D9A48 + b _021D9E58 +_021D9E56: + mov r0, #1 +_021D9E58: + cmp r0, #0 + beq _021D9E6A + mov r1, #0x28 + mul r1, r4 + add r1, r6, r1 + ldr r0, [sp] + ldr r1, [r1, #0x10] + bl FUN_020B7EFC +_021D9E6A: + add sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9E70: + add r4, r4, #1 + add r1, #0x28 + cmp r4, #0x10 + blt _021D9E2C + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021D9E80 +MOD05_021D9E80: ; 0x021D9E80 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + ldr r0, _021D9F44 ; =0x00000000 + str r1, [sp, #0xc] + add r4, r2, #0 + str r0, [sp] + bne _021D9E94 + bl ErrorHandling +_021D9E94: + add r0, r4, #0 + bl MOD05_021DA220 + cmp r5, r0 + blt _021D9EA4 + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021D9EA4: + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r5, #0 + add r2, sp, #0x10 + bl NARC_ReadWholeMember + add r0, sp, #0x10 + ldrb r0, [r0, #1] + bl MOD05_021D9BF0 + cmp r0, #0 + beq _021D9EC4 + add sp, #0x24 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021D9EC4: + mov r0, #0 + str r0, [sp, #4] + add r0, r4, #0 + str r0, [sp, #8] + add r0, #0x10 + add r7, sp, #0x10 + str r0, [sp, #8] +_021D9ED2: + mov r0, #0 + ldr r3, [r7, #4] + mvn r0, r0 + cmp r3, r0 + bne _021D9EE2 + ldr r0, [sp] + add sp, #0x24 + pop {r4, r5, r6, r7, pc} +_021D9EE2: + mov r5, #0 + add r1, r4, #0 +_021D9EE6: + ldr r0, [r1, #0x1c] + cmp r3, r0 + bne _021D9F2A + add r0, sp, #0x10 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _021D9F10 + mov r2, #0x28 + add r6, r5, #0 + mov r0, #0x29 + mul r6, r2 + ldr r2, [sp, #8] + lsl r0, r0, #4 + lsl r3, r3, #0x18 + ldr r1, [sp, #0xc] + add r0, r4, r0 + add r2, r2, r6 + lsr r3, r3, #0x18 + bl MOD05_021D9A48 + b _021D9F12 +_021D9F10: + mov r0, #1 +_021D9F12: + cmp r0, #0 + beq _021D9F32 + mov r1, #0x28 + mul r1, r5 + add r1, r4, r1 + ldr r0, [sp, #0xc] + ldr r1, [r1, #0x10] + bl FUN_020B7EFC + mov r0, #1 + str r0, [sp] + b _021D9F32 +_021D9F2A: + add r5, r5, #1 + add r1, #0x28 + cmp r5, #0x10 + blt _021D9EE6 +_021D9F32: + ldr r0, [sp, #4] + add r7, r7, #4 + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #4 + blt _021D9ED2 + ldr r0, [sp] + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021D9F44: .word 0x00000000 + + thumb_func_start MOD05_021D9F48 +MOD05_021D9F48: ; 0x021D9F48 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + beq _021D9F7C + mov r4, #0 + add r5, r6, #0 + add r7, r4, #0 +_021D9F54: + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _021D9F74 + cmp r0, #1 + bne _021D9F6E + ldr r1, [r5, #0x10] + add r0, r6, #0 + bl thunk_FUN_020ae84c + str r7, [r5, #0x10] + ldr r0, [r5, #0x24] + bl FreeToHeap +_021D9F6E: + mov r0, #0 + str r0, [r5, #0x14] + str r0, [r5, #0x34] +_021D9F74: + add r4, r4, #1 + add r5, #0x28 + cmp r4, #0x10 + blt _021D9F54 +_021D9F7C: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021D9F80 +MOD05_021D9F80: ; 0x021D9F80 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + beq _021D9FB2 + cmp r5, #0 + bne _021D9F90 + bl ErrorHandling +_021D9F90: + ldr r0, [r5, #4] + cmp r0, #0 + beq _021D9FB2 + cmp r0, #1 + bne _021D9FAC + ldr r1, [r5] + add r0, r4, #0 + bl thunk_FUN_020ae84c + mov r0, #0 + str r0, [r5] + ldr r0, [r5, #0x14] + bl FreeToHeap +_021D9FAC: + mov r0, #0 + str r0, [r5, #4] + str r0, [r5, #0x24] +_021D9FB2: + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021D9FB4 +MOD05_021D9FB4: ; 0x021D9FB4 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0xad + lsl r0, r0, #2 + add r6, r1, #0 + add r1, r2, #0 + ldr r0, [r4, r0] + add r2, sp, #0 + add r5, r3, #0 + bl NARC_ReadWholeMember + cmp r5, #4 + blt _021D9FD4 + bl ErrorHandling +_021D9FD4: + lsl r1, r5, #2 + add r0, sp, #4 + ldr r5, [r0, r1] + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + bne _021D9FE6 + bl ErrorHandling +_021D9FE6: + mov r0, #0 + mov r2, #0x28 +_021D9FEA: + add r1, r0, #0 + mul r1, r2 + add r1, r4, r1 + ldr r3, [r1, #0x14] + cmp r3, #1 + bne _021DA008 + ldr r3, [r1, #0x1c] + cmp r5, r3 + bne _021DA008 + ldr r1, [r1, #0x10] + add r0, r6, #0 + bl MOD05_021D9B04 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} +_021DA008: + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x10 + blo _021D9FEA + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA018 +MOD05_021DA018: ; 0x021DA018 + push {r4, lr} + add r4, r0, #0 + beq _021DA038 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl NARC_dtor + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl NARC_dtor + add r0, r4, #0 + bl FreeToHeap +_021DA038: + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA03C +MOD05_021DA03C: ; 0x021DA03C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + cmp r5, #0 + bne _021DA04A + bl ErrorHandling +_021DA04A: + mov r6, #0 + add r1, r6, #0 + add r2, r4, #0 +_021DA050: + ldr r0, [r2, #0x34] + cmp r5, r0 + bne _021DA06A + mov r0, #0x28 + add r4, #0x10 + mul r0, r1 + add r6, r4, r0 + ldr r0, [r6, #4] + cmp r0, #0 + bne _021DA072 + bl ErrorHandling + b _021DA072 +_021DA06A: + add r1, r1, #1 + add r2, #0x28 + cmp r1, #0x10 + blt _021DA050 +_021DA072: + cmp r6, #0 + bne _021DA07A + bl ErrorHandling +_021DA07A: + add r0, r6, #0 + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA080 +MOD05_021DA080: ; 0x021DA080 + push {r4, r5, lr} + sub sp, #0x14 + add r3, r0, #0 + mov r0, #0xad + add r5, r2, #0 + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + add r1, r3, #0 + add r2, sp, #0 + bl NARC_ReadWholeMember + cmp r4, #4 + blt _021DA0A0 + bl ErrorHandling +_021DA0A0: + lsl r1, r4, #2 + add r0, sp, #4 + mov r4, #0 + ldr r1, [r0, r1] + add r2, r4, #0 + add r3, r5, #0 +_021DA0AC: + ldr r0, [r3, #0x1c] + cmp r1, r0 + bne _021DA0C6 + mov r0, #0x28 + add r5, #0x10 + mul r0, r2 + add r4, r5, r0 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DA0CE + bl ErrorHandling + b _021DA0CE +_021DA0C6: + add r2, r2, #1 + add r3, #0x28 + cmp r2, #0x10 + blt _021DA0AC +_021DA0CE: + cmp r4, #0 + bne _021DA0D6 + bl ErrorHandling +_021DA0D6: + add r0, r4, #0 + add sp, #0x14 + pop {r4, r5, pc} + + thumb_func_start MOD05_021DA0DC +MOD05_021DA0DC: ; 0x021DA0DC + str r1, [r0, #0x10] + bx lr + + thumb_func_start MOD05_021DA0E0 +MOD05_021DA0E0: ; 0x021DA0E0 + mov r1, #1 + str r1, [r0, #0x1c] + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021DA0E8 +MOD05_021DA0E8: ; 0x021DA0E8 + ldr r1, [r0, #0x20] + ldr r0, [r0] + cmp r1, #0 + bne _021DA10A + ldr r2, [r0] + ldr r0, [r0, #8] + ldrh r0, [r0, #4] + lsl r1, r0, #0xc + mov r0, #1 + lsl r0, r0, #0xc + sub r0, r1, r0 + cmp r2, r0 + blt _021DA106 + mov r0, #1 + bx lr +_021DA106: + mov r0, #0 + bx lr +_021DA10A: + ldr r0, [r0] + cmp r0, #0 + bne _021DA114 + mov r0, #1 + bx lr +_021DA114: + mov r0, #0 + bx lr + + thumb_func_start MOD05_021DA118 +MOD05_021DA118: ; 0x021DA118 + ldr r1, [r0, #0x20] + cmp r1, #0 + bne _021DA126 + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + bx lr +_021DA126: + ldr r2, [r0] + ldr r0, [r2, #8] + ldrh r0, [r0, #4] + lsl r1, r0, #0xc + mov r0, #1 + lsl r0, r0, #0xc + sub r0, r1, r0 + str r0, [r2] + bx lr + + thumb_func_start MOD05_021DA138 +MOD05_021DA138: ; 0x021DA138 + ldr r1, [r0, #0x20] + cmp r1, #0 + bne _021DA150 + ldr r2, [r0] + ldr r0, [r2, #8] + ldrh r0, [r0, #4] + lsl r1, r0, #0xc + mov r0, #1 + lsl r0, r0, #0xc + sub r0, r1, r0 + str r0, [r2] + bx lr +_021DA150: + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + bx lr + + thumb_func_start MOD05_021DA158 +MOD05_021DA158: ; 0x021DA158 + ldr r1, [r0, #0x20] + cmp r1, #0 + bne _021DA17E + ldr r3, [r0] + mov r1, #1 + ldr r2, [r3] + lsl r1, r1, #0xc + add r1, r2, r1 + str r1, [r3] + ldr r2, [r0] + ldr r0, [r2, #8] + ldr r1, [r2] + ldrh r0, [r0, #4] + lsl r0, r0, #0xc + cmp r1, r0 + bne _021DA19E + mov r0, #0 + str r0, [r2] + bx lr +_021DA17E: + ldr r0, [r0] + ldr r2, [r0] + cmp r2, #0 + bgt _021DA196 + ldr r1, [r0, #8] + ldrh r1, [r1, #4] + lsl r2, r1, #0xc + mov r1, #1 + lsl r1, r1, #0xc + sub r1, r2, r1 + str r1, [r0] + bx lr +_021DA196: + mov r1, #1 + lsl r1, r1, #0xc + sub r1, r2, r1 + str r1, [r0] +_021DA19E: + bx lr + + thumb_func_start MOD05_021DA1A0 +MOD05_021DA1A0: ; 0x021DA1A0 + str r1, [r0, #0x20] + bx lr + + thumb_func_start MOD05_021DA1A4 +MOD05_021DA1A4: ; 0x021DA1A4 + str r1, [r0, #0x18] + bx lr + + thumb_func_start MOD05_021DA1A8 +MOD05_021DA1A8: ; 0x021DA1A8 + str r1, [r0, #0x24] + bx lr + + thumb_func_start MOD05_021DA1AC +MOD05_021DA1AC: ; 0x021DA1AC + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + cmp r0, #0 + beq _021DA20A + mov r4, #0 + add r5, r0, #0 + add r5, #0x10 + add r6, r4, #0 + sub r7, r4, #1 +_021DA1BE: + ldr r0, [r5, #4] + cmp r0, #1 + bne _021DA1F6 + ldr r0, [r5, #0x10] + cmp r0, #1 + beq _021DA1F6 + ldr r0, [r5, #0x1c] + cmp r0, #0 + beq _021DA1F6 + add r0, r5, #0 + bl MOD05_021DA158 + ldr r0, [r5, #0x18] + cmp r0, r7 + beq _021DA1F6 + add r0, r5, #0 + bl MOD05_021DA0E8 + cmp r0, #0 + beq _021DA1F6 + ldr r0, [r5, #8] + add r1, r0, #1 + ldr r0, [r5, #0x18] + cmp r1, r0 + blt _021DA1F4 + str r6, [r5, #0x1c] + b _021DA1F6 +_021DA1F4: + str r1, [r5, #8] +_021DA1F6: + add r4, r4, #1 + add r5, #0x28 + cmp r4, #0x10 + blt _021DA1BE + mov r1, #0x29 + ldr r0, [sp] + lsl r1, r1, #4 + add r0, r0, r1 + bl MOD05_021D9B20 +_021DA20A: + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021DA20C +MOD05_021DA20C: ; 0x021DA20C + push {r3, lr} + bl MOD05_021D9C00 + cmp r0, #0 + bne _021DA21A + mov r0, #1 + pop {r3, pc} +_021DA21A: + mov r0, #0 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA220 +MOD05_021DA220: ; 0x021DA220 + mov r1, #0xad + lsl r1, r1, #2 + ldr r3, _021DA22C ; =NARC_GetFileCount + ldr r0, [r0, r1] + bx r3 + nop +_021DA22C: .word NARC_GetFileCount + + thumb_func_start MOD05_021DA230 +MOD05_021DA230: ; 0x021DA230 + push {lr} + sub sp, #0x14 + mov r2, #0xad + lsl r2, r2, #2 + ldr r0, [r0, r2] + add r2, sp, #0 + bl NARC_ReadWholeMember + add r0, sp, #0 + ldrb r0, [r0] + cmp r0, #0 + bne _021DA24E + add sp, #0x14 + mov r0, #0 + pop {pc} +_021DA24E: + mov r0, #0 + add r3, sp, #0 + sub r1, r0, #1 +_021DA254: + lsl r2, r0, #2 + add r2, r3, r2 + ldr r2, [r2, #4] + cmp r2, r1 + beq _021DA268 + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #4 + blo _021DA254 +_021DA268: + add sp, #0x14 + pop {pc} + + thumb_func_start MOD05_021DA26C +MOD05_021DA26C: ; 0x021DA26C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bne _021DA278 + bl ErrorHandling +_021DA278: + mov r1, #0x10 + mov r0, #0 + mov r2, #0x38 +_021DA27E: + cmp r1, #0x10 + bne _021DA292 + add r3, r0, #0 + mul r3, r2 + add r3, r5, r3 + add r3, #0x34 + ldrb r3, [r3] + cmp r3, #0 + bne _021DA292 + add r1, r0, #0 +_021DA292: + add r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x10 + blo _021DA27E + cmp r1, #0x10 + beq _021DA2AE + mov r0, #0x38 + add r2, r1, #0 + mul r2, r0 + add r0, r5, r2 + add r0, #0x34 + strb r4, [r0] + b _021DA2B6 +_021DA2AE: + bl ErrorHandling + mov r0, #0 + pop {r3, r4, r5, pc} +_021DA2B6: + add r0, r5, r2 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA2BC +MOD05_021DA2BC: ; 0x021DA2BC + add r1, r0, #0 + mov r3, #0 + add r1, #0x34 + strb r3, [r1] + str r3, [r0, #0x30] + str r3, [r0, #0x2c] + add r2, r3, #0 +_021DA2CA: + lsl r1, r3, #2 + add r1, r0, r1 + str r2, [r1, #0x14] + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #6 + blo _021DA2CA + bx lr + + thumb_func_start MOD05_021DA2DC +MOD05_021DA2DC: ; 0x021DA2DC + push {r4, r5} + mov r4, #0 + add r3, r4, #0 + add r5, r0, #0 +_021DA2E4: + add r2, r5, #0 + add r2, #0x34 + ldrb r2, [r2] + cmp r1, r2 + bne _021DA2F6 + mov r1, #0x38 + mul r1, r3 + add r4, r0, r1 + b _021DA2FE +_021DA2F6: + add r3, r3, #1 + add r5, #0x38 + cmp r3, #0x10 + blt _021DA2E4 +_021DA2FE: + add r0, r4, #0 + pop {r4, r5} + bx lr + + thumb_func_start MOD05_021DA304 +MOD05_021DA304: ; 0x021DA304 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #4 + ble _021DA314 + bl ErrorHandling +_021DA314: + cmp r5, #0 + beq _021DA31A + str r5, [r6, #0x14] +_021DA31A: + str r4, [r6, #0x10] + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA320 +MOD05_021DA320: ; 0x021DA320 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x10] + add r4, r1, #0 + add r6, r2, #0 + cmp r4, r0 + blt _021DA332 + bl ErrorHandling +_021DA332: + lsl r0, r4, #2 + str r6, [r5, r0] + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021DA338 +MOD05_021DA338: ; 0x021DA338 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5, #0x10] + add r4, r1, #0 + cmp r4, r0 + blt _021DA34A + bl ErrorHandling +_021DA34A: + lsl r0, r4, #2 + ldr r0, [r5, r0] + str r0, [sp, #4] + bl MOD05_021D9BD4 + str r0, [sp] + ldr r0, [r5, #0x2c] + bl MOD05_021D9BD4 + add r7, r0, #0 + mov r4, #0 +_021DA360: + lsl r0, r4, #2 + add r6, r5, r0 + ldr r0, [r6, #0x14] + cmp r0, #0 + beq _021DA378 + add r1, r7, #0 + bl MOD05_021D9B04 + ldr r0, [r6, #0x14] + ldr r1, [sp] + bl FUN_020B7EFC +_021DA378: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #6 + blo _021DA360 + ldr r0, [sp, #4] + str r0, [r5, #0x2c] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA38C +MOD05_021DA38C: ; 0x021DA38C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r0, [sp, #0x18] + ldr r0, [sp, #0x40] + str r1, [sp, #0x1c] + str r0, [sp, #0x40] + ldr r0, [sp, #0x4c] + str r2, [sp, #0x20] + str r0, [sp, #0x4c] + add r0, r3, #0 + mov r5, #0 + str r3, [sp, #0x24] + ldr r6, [sp, #0x44] + ldr r7, [sp, #0x48] + cmp r0, #0 + ble _021DA3E4 +_021DA3AC: + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [sp, #0x1c] + ldr r2, [sp, #0x40] + str r0, [sp, #0xc] + ldr r0, [sp, #0x20] + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + mov r3, #0 + str r7, [sp, #0x14] + bl MOD05_021D9C14 + add r4, r0, #0 + bne _021DA3D2 + bl ErrorHandling +_021DA3D2: + ldr r0, [sp, #0x4c] + add r1, r5, #0 + add r2, r4, #0 + bl MOD05_021DA320 + ldr r0, [sp, #0x24] + add r5, r5, #1 + cmp r5, r0 + blt _021DA3AC +_021DA3E4: + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021DA3E8 +MOD05_021DA3E8: ; 0x021DA3E8 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + str r0, [sp] + ldr r0, [r6, #0x2c] + bl MOD05_021D9BD4 + add r7, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021DA3FA: + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _021DA406 + add r1, r7, #0 + bl MOD05_021D9B04 +_021DA406: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021DA3FA + ldr r0, [r6, #0x10] + mov r5, #0 + cmp r0, #0 + ble _021DA42C + add r4, r6, #0 + add r7, r5, #0 +_021DA41A: + ldr r0, [r4] + ldr r1, [sp] + bl MOD05_021D9F80 + stmia r4!, {r7} + ldr r0, [r6, #0x10] + add r5, r5, #1 + cmp r5, r0 + blt _021DA41A +_021DA42C: + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA430 +MOD05_021DA430: ; 0x021DA430 + push {r4, lr} + mov r1, #0xe + mov r0, #4 + lsl r1, r1, #6 + bl AllocFromHeap + add r4, r0, #0 + mov r2, #0xe + mov r0, #0 + add r1, r4, #0 + lsl r2, r2, #6 + bl MIi_CpuClearFast + add r0, r4, #0 + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA450 +MOD05_021DA450: ; 0x021DA450 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DA462 + bl FreeToHeap + mov r0, #0 + str r0, [r4] +_021DA462: + pop {r4, pc} + + thumb_func_start MOD05_021DA464 +MOD05_021DA464: ; 0x021DA464 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r0, #0 + add r0, r1, #0 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + add r6, r3, #0 + bl MOD05_021DA26C + add r5, r0, #0 + bne _021DA482 + bl ErrorHandling + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_021DA482: + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x34] + add r2, r5, #0 + bl MOD05_021DA304 + add r0, sp, #0x38 + ldrb r4, [r0] + cmp r4, #0 + bne _021DA498 + bl ErrorHandling +_021DA498: + cmp r4, #0 + bne _021DA49E + mov r4, #1 +_021DA49E: + ldr r0, [sp, #0x3c] + str r4, [sp] + str r0, [sp, #4] + str r7, [sp, #8] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x30] + ldr r3, [sp, #0x34] + add r0, r6, #0 + str r5, [sp, #0xc] + bl MOD05_021DA38C + str r6, [r5, #0x30] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA4BC +MOD05_021DA4BC: ; 0x021DA4BC + push {r3, r4, r5, r6, r7, lr} + add r4, r2, #0 + add r5, r0, #0 + add r7, r1, #0 + add r6, r3, #0 + cmp r4, #6 + blo _021DA4CE + bl ErrorHandling +_021DA4CE: + add r0, r5, #0 + add r1, r7, #0 + bl MOD05_021DA2DC + add r5, r0, #0 + add r5, #0x14 + lsl r4, r4, #2 + ldr r0, [r5, r4] + cmp r0, #0 + beq _021DA4E6 + bl ErrorHandling +_021DA4E6: + str r6, [r5, r4] + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA4EC +MOD05_021DA4EC: ; 0x021DA4EC + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #0 + bne _021DA4FC + bl ErrorHandling +_021DA4FC: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021DA2DC + add r1, r6, #0 + bl MOD05_021DA338 + mov r1, #0 + bl MOD05_021DA0DC + pop {r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021DA514 +MOD05_021DA514: ; 0x021DA514 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r6, r0, #0 + add r7, r2, #0 + add r4, r3, #0 + cmp r5, #0 + bne _021DA526 + bl ErrorHandling +_021DA526: + add r0, r6, #0 + add r1, r5, #0 + bl MOD05_021DA2DC + add r1, r7, #0 + bl MOD05_021DA338 + add r5, r0, #0 + cmp r4, #0 + beq _021DA542 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 +_021DA542: + add r0, r5, #0 + mov r1, #0 + bl MOD05_021DA0DC + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start MOD05_021DA54C +MOD05_021DA54C: ; 0x021DA54C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + bne _021DA55A + bl ErrorHandling +_021DA55A: + add r0, r4, #0 + add r1, r6, #0 + bl MOD05_021DA2DC + add r4, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021DA3E8 + add r0, r4, #0 + bl MOD05_021DA2BC + pop {r4, r5, r6, pc} + + thumb_func_start MOD05_021DA574 +MOD05_021DA574: ; 0x021DA574 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bne _021DA580 + bl ErrorHandling +_021DA580: + add r0, r5, #0 + add r1, r4, #0 + bl MOD05_021DA2DC + ldr r0, [r0, #0x2c] + pop {r3, r4, r5, pc} + + thumb_func_start MOD05_021DA58C +MOD05_021DA58C: ; 0x021DA58C + push {r4, lr} + bl MOD05_021DA574 + add r4, r0, #0 + bne _021DA59A + bl ErrorHandling +_021DA59A: + add r0, r4, #0 + bl MOD05_021DA20C + cmp r0, #0 + beq _021DA5A8 + mov r0, #1 + pop {r4, pc} +_021DA5A8: + mov r0, #0 + pop {r4, pc} + + thumb_func_start MOD05_021DA5AC +MOD05_021DA5AC: ; 0x021DA5AC + push {r3, lr} + bl MOD05_021DA2DC + ldr r0, [r0, #0x30] + pop {r3, pc} + .balign 4, 0 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index a86f794b..3eef4bfb 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -3,1634 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD05_021D9A48 -MOD05_021D9A48: ; 0x021D9A48 - push {r3, r4, r5, r6, r7, lr} - add r7, r2, #0 - add r6, r0, #0 - add r5, r1, #0 - mov r0, #0 - ldr r1, [r7, #0x18] - mvn r0, r0 - add r4, r3, #0 - cmp r1, r0 - bne _021D9A60 - bl ErrorHandling -_021D9A60: - mov r0, #0 - add r1, r6, #0 -_021D9A64: - ldr r2, [r1] - cmp r2, #0 - beq _021D9A7A - ldr r2, [r1, #0xc] - cmp r4, r2 - bne _021D9A7A - ldr r2, [r1, #4] - cmp r2, r5 - bne _021D9A7A - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021D9A7A: - add r0, r0, #1 - add r1, #0x10 - cmp r0, #2 - blt _021D9A64 - mov r2, #0 - add r1, r6, #0 -_021D9A86: - ldr r0, [r1] - cmp r0, #0 - bne _021D9A9C - lsl r1, r2, #4 - mov r0, #1 - str r0, [r6, r1] - add r0, r6, r1 - str r4, [r0, #0xc] - str r7, [r0, #8] - str r5, [r0, #4] - b _021D9AA4 -_021D9A9C: - add r2, r2, #1 - add r1, #0x10 - cmp r2, #2 - blt _021D9A86 -_021D9AA4: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021D9AA8 -MOD05_021D9AA8: ; 0x021D9AA8 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - mov r0, #0 - add r4, r1, #0 - mvn r0, r0 - add r7, r2, #0 - add r5, r3, #0 - cmp r4, r0 - bne _021D9ABE - bl ErrorHandling -_021D9ABE: - add r0, r6, #0 - add r1, r4, #0 - mov r2, #4 - bl NARC_AllocAndReadWholeMember - add r4, r0, #0 - bne _021D9AD0 - bl ErrorHandling -_021D9AD0: - add r0, r4, #0 - mov r1, #0 - bl FUN_020BC4C8 - add r6, r0, #0 - bne _021D9AE0 - bl ErrorHandling -_021D9AE0: - ldr r0, [sp, #0x1c] - add r1, r6, #0 - add r2, r7, #0 - bl FUN_020BB8D0 - str r0, [r5] - cmp r5, #0 - bne _021D9AF4 - bl ErrorHandling -_021D9AF4: - ldr r0, [r5] - ldr r3, [sp, #0x18] - add r1, r6, #0 - add r2, r7, #0 - bl FUN_020B8110 - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021D9B04 -MOD05_021D9B04: ; 0x021D9B04 - push {r3, lr} - cmp r1, #0 - bne _021D9B0E - mov r0, #0 - pop {r3, pc} -_021D9B0E: - cmp r0, #0 - bne _021D9B16 - mov r0, #0 - pop {r3, pc} -_021D9B16: - bl FUN_020B7E28 - mov r0, #1 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021D9B20 -MOD05_021D9B20: ; 0x021D9B20 - push {r4, r5, r6, lr} - mov r4, #0 - add r5, r0, #0 - add r6, r4, #0 -_021D9B28: - ldr r0, [r5] - cmp r0, #0 - beq _021D9B4A - ldr r0, [r5, #8] - bl MOD05_021DA20C - cmp r0, #0 - beq _021D9B4A - ldr r1, [r5, #8] - ldr r0, [r5, #4] - ldr r1, [r1] - bl MOD05_021D9B04 - str r6, [r5] - str r6, [r5, #0xc] - str r6, [r5, #8] - str r6, [r5, #4] -_021D9B4A: - add r4, r4, #1 - add r5, #0x10 - cmp r4, #2 - blt _021D9B28 - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021D9B54 -MOD05_021D9B54: ; 0x021D9B54 - push {r3, r4, r5, r6, r7, lr} - mov r1, #0xae - mov r0, #4 - lsl r1, r1, #2 - bl AllocFromHeap - add r7, r0, #0 - mov r1, #0 - add r2, r7, #0 - add r6, r1, #0 - sub r0, r1, #1 -_021D9B6A: - str r6, [r2, #0x14] - str r6, [r2, #0x20] - str r6, [r2, #0x10] - str r6, [r2, #0x18] - str r6, [r2, #0x1c] - str r6, [r2, #0x24] - str r0, [r2, #0x28] - str r6, [r2, #0x2c] - str r6, [r2, #0x30] - str r6, [r2, #0x34] - add r1, r1, #1 - add r2, #0x28 - cmp r1, #0x10 - blt _021D9B6A - mov r0, #0x29 - lsl r0, r0, #4 - add r2, r0, #0 - add r3, r0, #0 - add r5, r7, #0 - mov r4, #0 - add r1, r0, #4 - add r2, #8 - add r3, #0xc -_021D9B98: - str r4, [r5, r0] - str r4, [r5, r1] - str r4, [r5, r2] - str r4, [r5, r3] - add r6, r6, #1 - add r5, #0x10 - cmp r6, #2 - blt _021D9B98 - mov r1, #4 - add r0, r7, #0 - add r2, r1, #0 - bl FUN_02016B20 - mov r0, #0x6e - mov r1, #4 - bl NARC_ctor - mov r1, #0x2b - lsl r1, r1, #4 - str r0, [r7, r1] - mov r0, #0x6f - mov r1, #4 - bl NARC_ctor - mov r1, #0xad - lsl r1, r1, #2 - str r0, [r7, r1] - add r0, r7, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021D9BD4 -MOD05_021D9BD4: ; 0x021D9BD4 - cmp r0, #0 - bne _021D9BDC - mov r0, #0 - bx lr -_021D9BDC: - ldr r0, [r0] - bx lr - - thumb_func_start MOD05_021D9BE0 -MOD05_021D9BE0: ; 0x021D9BE0 - mov r1, #1 - and r0, r1 - cmp r0, #1 - beq _021D9BEA - mov r1, #0 -_021D9BEA: - add r0, r1, #0 - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021D9BF0 -MOD05_021D9BF0: ; 0x021D9BF0 - asr r1, r0, #1 - mov r0, #1 - and r1, r0 - cmp r1, #1 - beq _021D9BFC - mov r0, #0 -_021D9BFC: - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021D9C00 -MOD05_021D9C00: ; 0x021D9C00 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #4] - cmp r0, #1 - beq _021D9C0E - bl ErrorHandling -_021D9C0E: - ldr r0, [r4, #0x1c] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021D9C14 -MOD05_021D9C14: ; 0x021D9C14 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r6, r0, #0 - mov r0, #0xad - ldr r7, [sp, #0x4c] - lsl r0, r0, #2 - add r4, r1, #0 - str r2, [sp, #8] - ldr r0, [r7, r0] - add r1, r6, #0 - add r2, sp, #0x10 - add r5, r3, #0 - bl NARC_ReadWholeMember - cmp r4, #4 - blt _021D9C38 - bl ErrorHandling -_021D9C38: - lsl r1, r4, #2 - add r0, sp, #0x14 - ldr r0, [r0, r1] - mov r1, #0 - mvn r1, r1 - str r0, [sp, #0xc] - cmp r0, r1 - bne _021D9C4E - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021D9C4E: - add r0, sp, #0x10 - ldrb r0, [r0, #1] - bl MOD05_021D9BE0 - ldr r1, [sp, #0x40] - cmp r1, r0 - beq _021D9C62 - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021D9C62: - mov r6, #0 - add r4, r7, #0 -_021D9C66: - cmp r5, #0 - beq _021D9C74 - ldr r0, [r4, #0x34] - cmp r5, r0 - bne _021D9C74 - bl ErrorHandling -_021D9C74: - add r6, r6, #1 - add r4, #0x28 - cmp r6, #0x10 - blt _021D9C66 - mov r2, #0 - add r1, r7, #0 -_021D9C80: - ldr r0, [r1, #0x14] - cmp r0, #0 - bne _021D9CD8 - add r4, r2, #0 - mov r0, #0x28 - mul r4, r0 - mov r1, #1 - add r0, r7, r4 - str r1, [r0, #0x14] - ldr r1, [sp, #0x3c] - add r6, r7, #0 - str r1, [r0, #0x20] - add r6, #0x10 - mov r1, #0 - str r1, [r6, r4] - str r1, [r0, #0x18] - ldr r1, [sp, #0xc] - ldr r2, [sp, #0x44] - str r1, [r0, #0x1c] - ldr r1, [sp, #0x38] - add r3, r6, r4 - str r1, [r0, #0x30] - str r5, [r0, #0x34] - ldr r0, [sp, #0x48] - ldr r1, [sp, #0xc] - str r0, [sp] - mov r0, #0x2b - str r7, [sp, #4] - lsl r0, r0, #4 - ldr r0, [r7, r0] - bl MOD05_021D9AA8 - add r1, r7, r4 - str r0, [r1, #0x24] - ldr r0, [sp, #8] - str r0, [r1, #0x28] - mov r0, #1 - str r0, [r1, #0x2c] - add r0, r6, r4 - bl MOD05_021DA118 - add sp, #0x24 - add r0, r6, r4 - pop {r4, r5, r6, r7, pc} -_021D9CD8: - add r2, r2, #1 - add r1, #0x28 - cmp r2, #0x10 - blt _021D9C80 - bl ErrorHandling - mov r0, #0 - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021D9CEC -MOD05_021D9CEC: ; 0x021D9CEC - push {r4, r5, r6, r7, lr} - sub sp, #0x34 - add r4, r0, #0 - mov r0, #0xad - add r6, r3, #0 - lsl r0, r0, #2 - str r1, [sp, #8] - str r2, [sp, #0xc] - ldr r0, [r6, r0] - add r1, r4, #0 - add r2, sp, #0x20 - bl NARC_ReadWholeMember - add r0, sp, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _021D9DBC - mov r0, #0 - str r0, [sp, #0x14] - add r0, sp, #0x20 - str r0, [sp, #0x10] -_021D9D16: - ldr r0, [sp, #0x10] - mov r1, #0 - ldr r0, [r0, #4] - mvn r1, r1 - str r0, [sp, #0x18] - cmp r0, r1 - beq _021D9DBC - add r0, sp, #0x20 - ldrb r0, [r0, #1] - bl MOD05_021D9BE0 - cmp r0, #0 - bne _021D9DBC - mov r4, #0 - add r1, r6, #0 -_021D9D34: - ldr r0, [r1, #0x14] - cmp r0, #0 - bne _021D9D9C - mov r0, #0x28 - add r7, r4, #0 - mul r7, r0 - add r5, r6, r7 - mov r0, #1 - str r0, [r5, #0x14] - mov r1, #0 - str r1, [r5, #0x20] - str r1, [r5, #0x10] - ldr r0, [sp, #0x18] - str r1, [r5, #0x18] - str r0, [r5, #0x1c] - add r0, r6, #0 - str r0, [sp, #0x1c] - add r0, #0x10 - str r0, [sp, #0x1c] - str r1, [r5, #0x30] - str r1, [r5, #0x34] - ldr r0, [sp, #0xc] - ldr r3, [sp, #0x1c] - str r0, [sp] - mov r0, #0x2b - str r6, [sp, #4] - lsl r0, r0, #4 - ldr r0, [r6, r0] - ldr r1, [sp, #0x18] - ldr r2, [sp, #8] - add r3, r3, r7 - bl MOD05_021D9AA8 - str r0, [r5, #0x24] - mov r0, #0 - mvn r0, r0 - str r0, [r5, #0x28] - mov r0, #1 - str r0, [r5, #0x2c] - ldr r0, [sp, #0x1c] - add r0, r0, r7 - bl MOD05_021DA118 - add r0, sp, #0x20 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _021D9DA4 - add r1, r5, #0 - mov r0, #1 - str r0, [r1, #0x20] - str r0, [r1, #0x28] - b _021D9DA4 -_021D9D9C: - add r4, r4, #1 - add r1, #0x28 - cmp r4, #0x10 - blt _021D9D34 -_021D9DA4: - cmp r4, #0x10 - bne _021D9DAC - bl ErrorHandling -_021D9DAC: - ldr r0, [sp, #0x10] - add r0, r0, #4 - str r0, [sp, #0x10] - ldr r0, [sp, #0x14] - add r0, r0, #1 - str r0, [sp, #0x14] - cmp r0, #4 - blt _021D9D16 -_021D9DBC: - add sp, #0x34 - pop {r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021D9DC0 -MOD05_021D9DC0: ; 0x021D9DC0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - ldr r6, [sp, #0x30] - add r5, r0, #0 - add r4, r1, #0 - add r7, r2, #0 - str r3, [sp] - cmp r6, #0 - bne _021D9DDC - bl ErrorHandling - add sp, #0x18 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021D9DDC: - add r0, r6, #0 - bl MOD05_021DA220 - cmp r5, r0 - blt _021D9DEC - add sp, #0x18 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021D9DEC: - mov r0, #0xad - lsl r0, r0, #2 - ldr r0, [r6, r0] - add r1, r5, #0 - add r2, sp, #4 - bl NARC_ReadWholeMember - cmp r4, #4 - blt _021D9E02 - bl ErrorHandling -_021D9E02: - lsl r1, r4, #2 - add r0, sp, #8 - ldr r5, [r0, r1] - mov r0, #0 - mvn r0, r0 - cmp r5, r0 - bne _021D9E16 - add sp, #0x18 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021D9E16: - add r0, sp, #4 - ldrb r0, [r0, #1] - bl MOD05_021D9BF0 - cmp r7, r0 - beq _021D9E28 - add sp, #0x18 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_021D9E28: - mov r4, #0 - add r1, r6, #0 -_021D9E2C: - ldr r0, [r1, #0x1c] - cmp r5, r0 - bne _021D9E70 - add r0, sp, #4 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _021D9E56 - add r2, r6, #0 - mov r3, #0x28 - mov r0, #0x29 - lsl r0, r0, #4 - add r2, #0x10 - mul r3, r4 - add r2, r2, r3 - lsl r3, r5, #0x18 - ldr r1, [sp] - add r0, r6, r0 - lsr r3, r3, #0x18 - bl MOD05_021D9A48 - b _021D9E58 -_021D9E56: - mov r0, #1 -_021D9E58: - cmp r0, #0 - beq _021D9E6A - mov r1, #0x28 - mul r1, r4 - add r1, r6, r1 - ldr r0, [sp] - ldr r1, [r1, #0x10] - bl FUN_020B7EFC -_021D9E6A: - add sp, #0x18 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_021D9E70: - add r4, r4, #1 - add r1, #0x28 - cmp r4, #0x10 - blt _021D9E2C - mov r0, #0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021D9E80 -MOD05_021D9E80: ; 0x021D9E80 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r5, r0, #0 - ldr r0, _021D9F44 ; =0x00000000 - str r1, [sp, #0xc] - add r4, r2, #0 - str r0, [sp] - bne _021D9E94 - bl ErrorHandling -_021D9E94: - add r0, r4, #0 - bl MOD05_021DA220 - cmp r5, r0 - blt _021D9EA4 - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021D9EA4: - mov r0, #0xad - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, r5, #0 - add r2, sp, #0x10 - bl NARC_ReadWholeMember - add r0, sp, #0x10 - ldrb r0, [r0, #1] - bl MOD05_021D9BF0 - cmp r0, #0 - beq _021D9EC4 - add sp, #0x24 - mov r0, #0 - pop {r4, r5, r6, r7, pc} -_021D9EC4: - mov r0, #0 - str r0, [sp, #4] - add r0, r4, #0 - str r0, [sp, #8] - add r0, #0x10 - add r7, sp, #0x10 - str r0, [sp, #8] -_021D9ED2: - mov r0, #0 - ldr r3, [r7, #4] - mvn r0, r0 - cmp r3, r0 - bne _021D9EE2 - ldr r0, [sp] - add sp, #0x24 - pop {r4, r5, r6, r7, pc} -_021D9EE2: - mov r5, #0 - add r1, r4, #0 -_021D9EE6: - ldr r0, [r1, #0x1c] - cmp r3, r0 - bne _021D9F2A - add r0, sp, #0x10 - ldrb r0, [r0, #2] - cmp r0, #0 - beq _021D9F10 - mov r2, #0x28 - add r6, r5, #0 - mov r0, #0x29 - mul r6, r2 - ldr r2, [sp, #8] - lsl r0, r0, #4 - lsl r3, r3, #0x18 - ldr r1, [sp, #0xc] - add r0, r4, r0 - add r2, r2, r6 - lsr r3, r3, #0x18 - bl MOD05_021D9A48 - b _021D9F12 -_021D9F10: - mov r0, #1 -_021D9F12: - cmp r0, #0 - beq _021D9F32 - mov r1, #0x28 - mul r1, r5 - add r1, r4, r1 - ldr r0, [sp, #0xc] - ldr r1, [r1, #0x10] - bl FUN_020B7EFC - mov r0, #1 - str r0, [sp] - b _021D9F32 -_021D9F2A: - add r5, r5, #1 - add r1, #0x28 - cmp r5, #0x10 - blt _021D9EE6 -_021D9F32: - ldr r0, [sp, #4] - add r7, r7, #4 - add r0, r0, #1 - str r0, [sp, #4] - cmp r0, #4 - blt _021D9ED2 - ldr r0, [sp] - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021D9F44: .word 0x00000000 - - thumb_func_start MOD05_021D9F48 -MOD05_021D9F48: ; 0x021D9F48 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - beq _021D9F7C - mov r4, #0 - add r5, r6, #0 - add r7, r4, #0 -_021D9F54: - ldr r0, [r5, #0x14] - cmp r0, #0 - beq _021D9F74 - cmp r0, #1 - bne _021D9F6E - ldr r1, [r5, #0x10] - add r0, r6, #0 - bl thunk_FUN_020ae84c - str r7, [r5, #0x10] - ldr r0, [r5, #0x24] - bl FreeToHeap -_021D9F6E: - mov r0, #0 - str r0, [r5, #0x14] - str r0, [r5, #0x34] -_021D9F74: - add r4, r4, #1 - add r5, #0x28 - cmp r4, #0x10 - blt _021D9F54 -_021D9F7C: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021D9F80 -MOD05_021D9F80: ; 0x021D9F80 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - beq _021D9FB2 - cmp r5, #0 - bne _021D9F90 - bl ErrorHandling -_021D9F90: - ldr r0, [r5, #4] - cmp r0, #0 - beq _021D9FB2 - cmp r0, #1 - bne _021D9FAC - ldr r1, [r5] - add r0, r4, #0 - bl thunk_FUN_020ae84c - mov r0, #0 - str r0, [r5] - ldr r0, [r5, #0x14] - bl FreeToHeap -_021D9FAC: - mov r0, #0 - str r0, [r5, #4] - str r0, [r5, #0x24] -_021D9FB2: - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021D9FB4 -MOD05_021D9FB4: ; 0x021D9FB4 - push {r3, r4, r5, r6, lr} - sub sp, #0x14 - add r4, r0, #0 - mov r0, #0xad - lsl r0, r0, #2 - add r6, r1, #0 - add r1, r2, #0 - ldr r0, [r4, r0] - add r2, sp, #0 - add r5, r3, #0 - bl NARC_ReadWholeMember - cmp r5, #4 - blt _021D9FD4 - bl ErrorHandling -_021D9FD4: - lsl r1, r5, #2 - add r0, sp, #4 - ldr r5, [r0, r1] - mov r0, #0 - mvn r0, r0 - cmp r5, r0 - bne _021D9FE6 - bl ErrorHandling -_021D9FE6: - mov r0, #0 - mov r2, #0x28 -_021D9FEA: - add r1, r0, #0 - mul r1, r2 - add r1, r4, r1 - ldr r3, [r1, #0x14] - cmp r3, #1 - bne _021DA008 - ldr r3, [r1, #0x1c] - cmp r5, r3 - bne _021DA008 - ldr r1, [r1, #0x10] - add r0, r6, #0 - bl MOD05_021D9B04 - add sp, #0x14 - pop {r3, r4, r5, r6, pc} -_021DA008: - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x10 - blo _021D9FEA - add sp, #0x14 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA018 -MOD05_021DA018: ; 0x021DA018 - push {r4, lr} - add r4, r0, #0 - beq _021DA038 - mov r0, #0x2b - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl NARC_dtor - mov r0, #0xad - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl NARC_dtor - add r0, r4, #0 - bl FreeToHeap -_021DA038: - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA03C -MOD05_021DA03C: ; 0x021DA03C - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - cmp r5, #0 - bne _021DA04A - bl ErrorHandling -_021DA04A: - mov r6, #0 - add r1, r6, #0 - add r2, r4, #0 -_021DA050: - ldr r0, [r2, #0x34] - cmp r5, r0 - bne _021DA06A - mov r0, #0x28 - add r4, #0x10 - mul r0, r1 - add r6, r4, r0 - ldr r0, [r6, #4] - cmp r0, #0 - bne _021DA072 - bl ErrorHandling - b _021DA072 -_021DA06A: - add r1, r1, #1 - add r2, #0x28 - cmp r1, #0x10 - blt _021DA050 -_021DA072: - cmp r6, #0 - bne _021DA07A - bl ErrorHandling -_021DA07A: - add r0, r6, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA080 -MOD05_021DA080: ; 0x021DA080 - push {r4, r5, lr} - sub sp, #0x14 - add r3, r0, #0 - mov r0, #0xad - add r5, r2, #0 - lsl r0, r0, #2 - add r4, r1, #0 - ldr r0, [r5, r0] - add r1, r3, #0 - add r2, sp, #0 - bl NARC_ReadWholeMember - cmp r4, #4 - blt _021DA0A0 - bl ErrorHandling -_021DA0A0: - lsl r1, r4, #2 - add r0, sp, #4 - mov r4, #0 - ldr r1, [r0, r1] - add r2, r4, #0 - add r3, r5, #0 -_021DA0AC: - ldr r0, [r3, #0x1c] - cmp r1, r0 - bne _021DA0C6 - mov r0, #0x28 - add r5, #0x10 - mul r0, r2 - add r4, r5, r0 - ldr r0, [r4, #4] - cmp r0, #0 - bne _021DA0CE - bl ErrorHandling - b _021DA0CE -_021DA0C6: - add r2, r2, #1 - add r3, #0x28 - cmp r2, #0x10 - blt _021DA0AC -_021DA0CE: - cmp r4, #0 - bne _021DA0D6 - bl ErrorHandling -_021DA0D6: - add r0, r4, #0 - add sp, #0x14 - pop {r4, r5, pc} - - thumb_func_start MOD05_021DA0DC -MOD05_021DA0DC: ; 0x021DA0DC - str r1, [r0, #0x10] - bx lr - - thumb_func_start MOD05_021DA0E0 -MOD05_021DA0E0: ; 0x021DA0E0 - mov r1, #1 - str r1, [r0, #0x1c] - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021DA0E8 -MOD05_021DA0E8: ; 0x021DA0E8 - ldr r1, [r0, #0x20] - ldr r0, [r0] - cmp r1, #0 - bne _021DA10A - ldr r2, [r0] - ldr r0, [r0, #8] - ldrh r0, [r0, #4] - lsl r1, r0, #0xc - mov r0, #1 - lsl r0, r0, #0xc - sub r0, r1, r0 - cmp r2, r0 - blt _021DA106 - mov r0, #1 - bx lr -_021DA106: - mov r0, #0 - bx lr -_021DA10A: - ldr r0, [r0] - cmp r0, #0 - bne _021DA114 - mov r0, #1 - bx lr -_021DA114: - mov r0, #0 - bx lr - - thumb_func_start MOD05_021DA118 -MOD05_021DA118: ; 0x021DA118 - ldr r1, [r0, #0x20] - cmp r1, #0 - bne _021DA126 - ldr r0, [r0] - mov r1, #0 - str r1, [r0] - bx lr -_021DA126: - ldr r2, [r0] - ldr r0, [r2, #8] - ldrh r0, [r0, #4] - lsl r1, r0, #0xc - mov r0, #1 - lsl r0, r0, #0xc - sub r0, r1, r0 - str r0, [r2] - bx lr - - thumb_func_start MOD05_021DA138 -MOD05_021DA138: ; 0x021DA138 - ldr r1, [r0, #0x20] - cmp r1, #0 - bne _021DA150 - ldr r2, [r0] - ldr r0, [r2, #8] - ldrh r0, [r0, #4] - lsl r1, r0, #0xc - mov r0, #1 - lsl r0, r0, #0xc - sub r0, r1, r0 - str r0, [r2] - bx lr -_021DA150: - ldr r0, [r0] - mov r1, #0 - str r1, [r0] - bx lr - - thumb_func_start MOD05_021DA158 -MOD05_021DA158: ; 0x021DA158 - ldr r1, [r0, #0x20] - cmp r1, #0 - bne _021DA17E - ldr r3, [r0] - mov r1, #1 - ldr r2, [r3] - lsl r1, r1, #0xc - add r1, r2, r1 - str r1, [r3] - ldr r2, [r0] - ldr r0, [r2, #8] - ldr r1, [r2] - ldrh r0, [r0, #4] - lsl r0, r0, #0xc - cmp r1, r0 - bne _021DA19E - mov r0, #0 - str r0, [r2] - bx lr -_021DA17E: - ldr r0, [r0] - ldr r2, [r0] - cmp r2, #0 - bgt _021DA196 - ldr r1, [r0, #8] - ldrh r1, [r1, #4] - lsl r2, r1, #0xc - mov r1, #1 - lsl r1, r1, #0xc - sub r1, r2, r1 - str r1, [r0] - bx lr -_021DA196: - mov r1, #1 - lsl r1, r1, #0xc - sub r1, r2, r1 - str r1, [r0] -_021DA19E: - bx lr - - thumb_func_start MOD05_021DA1A0 -MOD05_021DA1A0: ; 0x021DA1A0 - str r1, [r0, #0x20] - bx lr - - thumb_func_start MOD05_021DA1A4 -MOD05_021DA1A4: ; 0x021DA1A4 - str r1, [r0, #0x18] - bx lr - - thumb_func_start MOD05_021DA1A8 -MOD05_021DA1A8: ; 0x021DA1A8 - str r1, [r0, #0x24] - bx lr - - thumb_func_start MOD05_021DA1AC -MOD05_021DA1AC: ; 0x021DA1AC - push {r3, r4, r5, r6, r7, lr} - str r0, [sp] - cmp r0, #0 - beq _021DA20A - mov r4, #0 - add r5, r0, #0 - add r5, #0x10 - add r6, r4, #0 - sub r7, r4, #1 -_021DA1BE: - ldr r0, [r5, #4] - cmp r0, #1 - bne _021DA1F6 - ldr r0, [r5, #0x10] - cmp r0, #1 - beq _021DA1F6 - ldr r0, [r5, #0x1c] - cmp r0, #0 - beq _021DA1F6 - add r0, r5, #0 - bl MOD05_021DA158 - ldr r0, [r5, #0x18] - cmp r0, r7 - beq _021DA1F6 - add r0, r5, #0 - bl MOD05_021DA0E8 - cmp r0, #0 - beq _021DA1F6 - ldr r0, [r5, #8] - add r1, r0, #1 - ldr r0, [r5, #0x18] - cmp r1, r0 - blt _021DA1F4 - str r6, [r5, #0x1c] - b _021DA1F6 -_021DA1F4: - str r1, [r5, #8] -_021DA1F6: - add r4, r4, #1 - add r5, #0x28 - cmp r4, #0x10 - blt _021DA1BE - mov r1, #0x29 - ldr r0, [sp] - lsl r1, r1, #4 - add r0, r0, r1 - bl MOD05_021D9B20 -_021DA20A: - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021DA20C -MOD05_021DA20C: ; 0x021DA20C - push {r3, lr} - bl MOD05_021D9C00 - cmp r0, #0 - bne _021DA21A - mov r0, #1 - pop {r3, pc} -_021DA21A: - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA220 -MOD05_021DA220: ; 0x021DA220 - mov r1, #0xad - lsl r1, r1, #2 - ldr r3, _021DA22C ; =NARC_GetFileCount - ldr r0, [r0, r1] - bx r3 - nop -_021DA22C: .word NARC_GetFileCount - - thumb_func_start MOD05_021DA230 -MOD05_021DA230: ; 0x021DA230 - push {lr} - sub sp, #0x14 - mov r2, #0xad - lsl r2, r2, #2 - ldr r0, [r0, r2] - add r2, sp, #0 - bl NARC_ReadWholeMember - add r0, sp, #0 - ldrb r0, [r0] - cmp r0, #0 - bne _021DA24E - add sp, #0x14 - mov r0, #0 - pop {pc} -_021DA24E: - mov r0, #0 - add r3, sp, #0 - sub r1, r0, #1 -_021DA254: - lsl r2, r0, #2 - add r2, r3, r2 - ldr r2, [r2, #4] - cmp r2, r1 - beq _021DA268 - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #4 - blo _021DA254 -_021DA268: - add sp, #0x14 - pop {pc} - - thumb_func_start MOD05_021DA26C -MOD05_021DA26C: ; 0x021DA26C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bne _021DA278 - bl ErrorHandling -_021DA278: - mov r1, #0x10 - mov r0, #0 - mov r2, #0x38 -_021DA27E: - cmp r1, #0x10 - bne _021DA292 - add r3, r0, #0 - mul r3, r2 - add r3, r5, r3 - add r3, #0x34 - ldrb r3, [r3] - cmp r3, #0 - bne _021DA292 - add r1, r0, #0 -_021DA292: - add r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x10 - blo _021DA27E - cmp r1, #0x10 - beq _021DA2AE - mov r0, #0x38 - add r2, r1, #0 - mul r2, r0 - add r0, r5, r2 - add r0, #0x34 - strb r4, [r0] - b _021DA2B6 -_021DA2AE: - bl ErrorHandling - mov r0, #0 - pop {r3, r4, r5, pc} -_021DA2B6: - add r0, r5, r2 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA2BC -MOD05_021DA2BC: ; 0x021DA2BC - add r1, r0, #0 - mov r3, #0 - add r1, #0x34 - strb r3, [r1] - str r3, [r0, #0x30] - str r3, [r0, #0x2c] - add r2, r3, #0 -_021DA2CA: - lsl r1, r3, #2 - add r1, r0, r1 - str r2, [r1, #0x14] - add r1, r3, #1 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - cmp r3, #6 - blo _021DA2CA - bx lr - - thumb_func_start MOD05_021DA2DC -MOD05_021DA2DC: ; 0x021DA2DC - push {r4, r5} - mov r4, #0 - add r3, r4, #0 - add r5, r0, #0 -_021DA2E4: - add r2, r5, #0 - add r2, #0x34 - ldrb r2, [r2] - cmp r1, r2 - bne _021DA2F6 - mov r1, #0x38 - mul r1, r3 - add r4, r0, r1 - b _021DA2FE -_021DA2F6: - add r3, r3, #1 - add r5, #0x38 - cmp r3, #0x10 - blt _021DA2E4 -_021DA2FE: - add r0, r4, #0 - pop {r4, r5} - bx lr - - thumb_func_start MOD05_021DA304 -MOD05_021DA304: ; 0x021DA304 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - add r6, r2, #0 - cmp r4, #4 - ble _021DA314 - bl ErrorHandling -_021DA314: - cmp r5, #0 - beq _021DA31A - str r5, [r6, #0x14] -_021DA31A: - str r4, [r6, #0x10] - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA320 -MOD05_021DA320: ; 0x021DA320 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, [r5, #0x10] - add r4, r1, #0 - add r6, r2, #0 - cmp r4, r0 - blt _021DA332 - bl ErrorHandling -_021DA332: - lsl r0, r4, #2 - str r6, [r5, r0] - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021DA338 -MOD05_021DA338: ; 0x021DA338 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - ldr r0, [r5, #0x10] - add r4, r1, #0 - cmp r4, r0 - blt _021DA34A - bl ErrorHandling -_021DA34A: - lsl r0, r4, #2 - ldr r0, [r5, r0] - str r0, [sp, #4] - bl MOD05_021D9BD4 - str r0, [sp] - ldr r0, [r5, #0x2c] - bl MOD05_021D9BD4 - add r7, r0, #0 - mov r4, #0 -_021DA360: - lsl r0, r4, #2 - add r6, r5, r0 - ldr r0, [r6, #0x14] - cmp r0, #0 - beq _021DA378 - add r1, r7, #0 - bl MOD05_021D9B04 - ldr r0, [r6, #0x14] - ldr r1, [sp] - bl FUN_020B7EFC -_021DA378: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #6 - blo _021DA360 - ldr r0, [sp, #4] - str r0, [r5, #0x2c] - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA38C -MOD05_021DA38C: ; 0x021DA38C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x28 - str r0, [sp, #0x18] - ldr r0, [sp, #0x40] - str r1, [sp, #0x1c] - str r0, [sp, #0x40] - ldr r0, [sp, #0x4c] - str r2, [sp, #0x20] - str r0, [sp, #0x4c] - add r0, r3, #0 - mov r5, #0 - str r3, [sp, #0x24] - ldr r6, [sp, #0x44] - ldr r7, [sp, #0x48] - cmp r0, #0 - ble _021DA3E4 -_021DA3AC: - str r6, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - ldr r0, [sp, #0x1c] - ldr r2, [sp, #0x40] - str r0, [sp, #0xc] - ldr r0, [sp, #0x20] - add r1, r5, #0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x18] - mov r3, #0 - str r7, [sp, #0x14] - bl MOD05_021D9C14 - add r4, r0, #0 - bne _021DA3D2 - bl ErrorHandling -_021DA3D2: - ldr r0, [sp, #0x4c] - add r1, r5, #0 - add r2, r4, #0 - bl MOD05_021DA320 - ldr r0, [sp, #0x24] - add r5, r5, #1 - cmp r5, r0 - blt _021DA3AC -_021DA3E4: - add sp, #0x28 - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021DA3E8 -MOD05_021DA3E8: ; 0x021DA3E8 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - str r0, [sp] - ldr r0, [r6, #0x2c] - bl MOD05_021D9BD4 - add r7, r0, #0 - mov r4, #0 - add r5, r6, #0 -_021DA3FA: - ldr r0, [r5, #0x14] - cmp r0, #0 - beq _021DA406 - add r1, r7, #0 - bl MOD05_021D9B04 -_021DA406: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #6 - blt _021DA3FA - ldr r0, [r6, #0x10] - mov r5, #0 - cmp r0, #0 - ble _021DA42C - add r4, r6, #0 - add r7, r5, #0 -_021DA41A: - ldr r0, [r4] - ldr r1, [sp] - bl MOD05_021D9F80 - stmia r4!, {r7} - ldr r0, [r6, #0x10] - add r5, r5, #1 - cmp r5, r0 - blt _021DA41A -_021DA42C: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA430 -MOD05_021DA430: ; 0x021DA430 - push {r4, lr} - mov r1, #0xe - mov r0, #4 - lsl r1, r1, #6 - bl AllocFromHeap - add r4, r0, #0 - mov r2, #0xe - mov r0, #0 - add r1, r4, #0 - lsl r2, r2, #6 - bl MIi_CpuClearFast - add r0, r4, #0 - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA450 -MOD05_021DA450: ; 0x021DA450 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _021DA462 - bl FreeToHeap - mov r0, #0 - str r0, [r4] -_021DA462: - pop {r4, pc} - - thumb_func_start MOD05_021DA464 -MOD05_021DA464: ; 0x021DA464 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r7, r0, #0 - add r0, r1, #0 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - add r6, r3, #0 - bl MOD05_021DA26C - add r5, r0, #0 - bne _021DA482 - bl ErrorHandling - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} -_021DA482: - ldr r0, [sp, #0x28] - ldr r1, [sp, #0x34] - add r2, r5, #0 - bl MOD05_021DA304 - add r0, sp, #0x38 - ldrb r4, [r0] - cmp r4, #0 - bne _021DA498 - bl ErrorHandling -_021DA498: - cmp r4, #0 - bne _021DA49E - mov r4, #1 -_021DA49E: - ldr r0, [sp, #0x3c] - str r4, [sp] - str r0, [sp, #4] - str r7, [sp, #8] - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x30] - ldr r3, [sp, #0x34] - add r0, r6, #0 - str r5, [sp, #0xc] - bl MOD05_021DA38C - str r6, [r5, #0x30] - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA4BC -MOD05_021DA4BC: ; 0x021DA4BC - push {r3, r4, r5, r6, r7, lr} - add r4, r2, #0 - add r5, r0, #0 - add r7, r1, #0 - add r6, r3, #0 - cmp r4, #6 - blo _021DA4CE - bl ErrorHandling -_021DA4CE: - add r0, r5, #0 - add r1, r7, #0 - bl MOD05_021DA2DC - add r5, r0, #0 - add r5, #0x14 - lsl r4, r4, #2 - ldr r0, [r5, r4] - cmp r0, #0 - beq _021DA4E6 - bl ErrorHandling -_021DA4E6: - str r6, [r5, r4] - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA4EC -MOD05_021DA4EC: ; 0x021DA4EC - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - add r6, r2, #0 - cmp r4, #0 - bne _021DA4FC - bl ErrorHandling -_021DA4FC: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021DA2DC - add r1, r6, #0 - bl MOD05_021DA338 - mov r1, #0 - bl MOD05_021DA0DC - pop {r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021DA514 -MOD05_021DA514: ; 0x021DA514 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - add r6, r0, #0 - add r7, r2, #0 - add r4, r3, #0 - cmp r5, #0 - bne _021DA526 - bl ErrorHandling -_021DA526: - add r0, r6, #0 - add r1, r5, #0 - bl MOD05_021DA2DC - add r1, r7, #0 - bl MOD05_021DA338 - add r5, r0, #0 - cmp r4, #0 - beq _021DA542 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_020054C8 -_021DA542: - add r0, r5, #0 - mov r1, #0 - bl MOD05_021DA0DC - pop {r3, r4, r5, r6, r7, pc} - - thumb_func_start MOD05_021DA54C -MOD05_021DA54C: ; 0x021DA54C - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - add r6, r2, #0 - bne _021DA55A - bl ErrorHandling -_021DA55A: - add r0, r4, #0 - add r1, r6, #0 - bl MOD05_021DA2DC - add r4, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021DA3E8 - add r0, r4, #0 - bl MOD05_021DA2BC - pop {r4, r5, r6, pc} - - thumb_func_start MOD05_021DA574 -MOD05_021DA574: ; 0x021DA574 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bne _021DA580 - bl ErrorHandling -_021DA580: - add r0, r5, #0 - add r1, r4, #0 - bl MOD05_021DA2DC - ldr r0, [r0, #0x2c] - pop {r3, r4, r5, pc} - - thumb_func_start MOD05_021DA58C -MOD05_021DA58C: ; 0x021DA58C - push {r4, lr} - bl MOD05_021DA574 - add r4, r0, #0 - bne _021DA59A - bl ErrorHandling -_021DA59A: - add r0, r4, #0 - bl MOD05_021DA20C - cmp r0, #0 - beq _021DA5A8 - mov r0, #1 - pop {r4, pc} -_021DA5A8: - mov r0, #0 - pop {r4, pc} - - thumb_func_start MOD05_021DA5AC -MOD05_021DA5AC: ; 0x021DA5AC - push {r3, lr} - bl MOD05_021DA2DC - ldr r0, [r0, #0x30] - pop {r3, pc} - .balign 4, 0 - thumb_func_start MOD05_021DA5B8 MOD05_021DA5B8: ; 0x021DA5B8 push {r3, lr} |