diff options
-rw-r--r-- | arm9/arm9.lsf | 2 | ||||
-rw-r--r-- | arm9/global.inc | 6 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E779C.s | 621 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E7C00.s | 708 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 1317 |
5 files changed, 1337 insertions, 1317 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index d77a4c21..84d10f58 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -556,6 +556,8 @@ Overlay MODULE_05 Object mod05_021E5FD8.o Object mod05_021E72FC.o Object mod05_021E7504.o + Object mod05_021E779C.o + Object mod05_021E7C00.o Object module_05.o } diff --git a/arm9/global.inc b/arm9/global.inc index 0a00bc9b..65781a0c 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -6511,12 +6511,16 @@ .extern MOD05_021E72FC .extern MOD05_021E7358 .extern MOD05_021E7750 +.extern MOD05_021E779C +.extern MOD05_021E77B0 .extern MOD05_021E799C .extern MOD05_021E7AC0 .extern MOD05_021E7C00 .extern MOD05_021E7C14 .extern MOD05_021E7C1C .extern MOD05_021E7C80 +.extern MOD05_021E7CD8 +.extern MOD05_021E7DD8 .extern MOD05_021E7E9C .extern MOD05_021E7EA0 .extern MOD05_021E7EB0 @@ -6677,8 +6681,10 @@ .extern MOD05_021F4BF8 .extern MOD05_021F4C74 .extern MOD05_021F4C88 +.extern MOD05_021F4C9C .extern MOD05_021F4CBC .extern MOD05_021F4CD4 +.extern MOD05_021F4CE4 .extern MOD05_021F4CF8 .extern MOD05_021F4D1C .extern MOD05_021F4D2C diff --git a/arm9/modules/05/asm/mod05_021E779C.s b/arm9/modules/05/asm/mod05_021E779C.s new file mode 100644 index 00000000..ad4118ff --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E779C.s @@ -0,0 +1,621 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E779C +MOD05_021E779C: ; 0x021E779C + push {r4, lr} + mov r2, #0 + mov r1, #0x14 + add r3, r2, #0 + add r4, r0, #0 + bl MOD05_021E4BE8 + str r4, [r0, #0x10] + pop {r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E77B0 +MOD05_021E77B0: ; 0x021E77B0 + push {r4, lr} + add r4, r0, #0 + bl MOD05_021E78B4 + add r0, r4, #0 + bl MOD05_021E4C00 + pop {r4, pc} + + thumb_func_start MOD05_021E77C0 +MOD05_021E77C0: ; 0x021E77C0 + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + bx lr + + thumb_func_start MOD05_021E77C8 +MOD05_021E77C8: ; 0x021E77C8 + push {r3, lr} + ldr r1, [r0] + sub r1, r1, #1 + str r1, [r0] + bpl _021E77D6 + bl ErrorHandling +_021E77D6: + pop {r3, pc} + + thumb_func_start MOD05_021E77D8 +MOD05_021E77D8: ; 0x021E77D8 + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] + bx lr + + thumb_func_start MOD05_021E77E0 +MOD05_021E77E0: ; 0x021E77E0 + push {r3, lr} + ldr r1, [r0, #4] + sub r1, r1, #1 + str r1, [r0, #4] + bpl _021E77EE + bl ErrorHandling +_021E77EE: + pop {r3, pc} + + thumb_func_start MOD05_021E77F0 +MOD05_021E77F0: ; 0x021E77F0 + push {r3, lr} + cmp r1, #0 + bne _021E77FC + bl MOD05_021E77C0 + pop {r3, pc} +_021E77FC: + bl MOD05_021E77D8 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7804 +MOD05_021E7804: ; 0x021E7804 + push {r3, lr} + cmp r1, #0 + bne _021E7810 + bl MOD05_021E77C8 + pop {r3, pc} +_021E7810: + bl MOD05_021E77E0 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7818 +MOD05_021E7818: ; 0x021E7818 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #8] + cmp r0, #0 + bne _021E785C + mov r1, #1 + str r1, [r4, #8] + ldr r0, [r4, #0x10] + mov r2, #0x55 + bl MOD05_021E5078 + ldr r0, [r4, #0x10] + mov r1, #1 + mov r2, #0x75 + bl MOD05_021E50AC + mov r1, #1 + ldr r0, [r4, #0x10] + mov r2, #4 + add r3, r1, #0 + bl MOD05_021E50D4 + mov r1, #1 + str r1, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _021E7860 ; =UNK05_021F7854 + add r2, r1, #0 + str r0, [sp, #8] + ldr r0, [r4, #0x10] + add r3, r1, #0 + bl MOD05_021E4EFC +_021E785C: + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 +_021E7860: .word UNK05_021F7854 + + thumb_func_start MOD05_021E7864 +MOD05_021E7864: ; 0x021E7864 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + bne _021E78AC + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #0x10] + mov r1, #0xa + mov r2, #0x6c + bl MOD05_021E5078 + ldr r0, [r4, #0x10] + mov r1, #0xa + mov r2, #0x75 + bl MOD05_021E50AC + ldr r0, [r4, #0x10] + mov r1, #0xb + mov r2, #0xd + mov r3, #1 + bl MOD05_021E50D4 + mov r0, #0xb + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _021E78B0 ; =UNK05_021F7854 + mov r2, #0xa + str r0, [sp, #8] + ldr r0, [r4, #0x10] + mov r1, #0xc + add r3, r2, #0 + bl MOD05_021E4EFC +_021E78AC: + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 +_021E78B0: .word UNK05_021F7854 + + thumb_func_start MOD05_021E78B4 +MOD05_021E78B4: ; 0x021E78B4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + cmp r0, #1 + bne _021E78E2 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4, #0x10] + mov r1, #1 + bl MOD05_021E50A0 + ldr r0, [r4, #0x10] + mov r1, #1 + bl MOD05_021E50C8 + ldr r0, [r4, #0x10] + mov r1, #1 + bl MOD05_021E5114 + ldr r0, [r4, #0x10] + mov r1, #1 + bl MOD05_021E506C +_021E78E2: + pop {r4, pc} + + thumb_func_start MOD05_021E78E4 +MOD05_021E78E4: ; 0x021E78E4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #1 + bne _021E7912 + mov r0, #0 + str r0, [r4, #0xc] + ldr r0, [r4, #0x10] + mov r1, #0xa + bl MOD05_021E50A0 + ldr r0, [r4, #0x10] + mov r1, #0xa + bl MOD05_021E50C8 + ldr r0, [r4, #0x10] + mov r1, #0xb + bl MOD05_021E5114 + ldr r0, [r4, #0x10] + mov r1, #0xc + bl MOD05_021E506C +_021E7912: + pop {r4, pc} + + thumb_func_start MOD05_021E7914 +MOD05_021E7914: ; 0x021E7914 + push {r3, lr} + ldr r1, [r0] + cmp r1, #0 + bne _021E7920 + bl MOD05_021E7818 +_021E7920: + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7924 +MOD05_021E7924: ; 0x021E7924 + push {r3, lr} + ldr r1, [r0, #4] + cmp r1, #0 + bne _021E7930 + bl MOD05_021E7864 +_021E7930: + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7934 +MOD05_021E7934: ; 0x021E7934 + push {r3, lr} + ldr r1, [r0] + cmp r1, #0 + bne _021E7940 + bl MOD05_021E78B4 +_021E7940: + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7944 +MOD05_021E7944: ; 0x021E7944 + push {r3, lr} + ldr r1, [r0, #4] + cmp r1, #0 + bne _021E7950 + bl MOD05_021E78E4 +_021E7950: + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7954 +MOD05_021E7954: ; 0x021E7954 + push {r3, lr} + cmp r1, #0 + bne _021E7960 + bl MOD05_021E7914 + pop {r3, pc} +_021E7960: + bl MOD05_021E7924 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7968 +MOD05_021E7968: ; 0x021E7968 + push {r3, lr} + cmp r1, #0 + bne _021E7974 + bl MOD05_021E7934 + pop {r3, pc} +_021E7974: + bl MOD05_021E7944 + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E797C +MOD05_021E797C: ; 0x021E797C + push {r3, r4, r5, lr} + sub sp, #8 + ldr r3, _021E7998 ; =UNK05_021F7824 + add r4, sp, #0 + ldr r5, [r3] + ldr r3, [r3, #4] + str r5, [sp] + str r3, [sp, #4] + lsl r1, r1, #2 + ldr r1, [r4, r1] + bl MOD05_021E4EE4 + add sp, #8 + pop {r3, r4, r5, pc} + .balign 4, 0 +_021E7998: .word UNK05_021F7824 + + thumb_func_start MOD05_021E799C +MOD05_021E799C: ; 0x021E799C + push {r3, lr} + bl FUN_02064738 + ldr r0, [r0, #0x14] + pop {r3, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E79A8 +MOD05_021E79A8: ; 0x021E79A8 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + bl FUN_0206475C + add r2, r4, #0 + add r3, r0, #0 + add r2, #0x30 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r0, #6 + lsl r0, r0, #0xc + str r0, [r4, #0x28] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x30] + bl MOD05_021E7954 + add r0, r5, #0 + add r1, sp, #0 + bl FUN_0206477C + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x30] + add r2, sp, #0 + bl MOD05_021E797C + str r0, [r4, #0x40] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x30] + bl MOD05_021E77F0 + add r0, r5, #0 + bl FUN_02064754 + cmp r0, #1 + bne _021E79FC + ldr r0, _021E7A04 ; =0x000005DD + bl FUN_020054C8 +_021E79FC: + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + nop +_021E7A04: .word 0x000005DD + + thumb_func_start MOD05_021E7A08 +MOD05_021E7A08: ; 0x021E7A08 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r1, sp, #0 + add r5, r0, #0 + bl FUN_0206477C + ldr r0, [r4] + cmp r0, #0 + beq _021E7A24 + cmp r0, #1 + beq _021E7A46 + cmp r0, #2 + b _021E7A5E +_021E7A24: + ldr r1, [r4, #0x1c] + ldr r0, [r4, #0x28] + add r0, r1, r0 + str r0, [r4, #0x1c] + beq _021E7A3A + mov r0, #2 + ldr r1, [r4, #0x28] + lsl r0, r0, #0xc + sub r0, r1, r0 + str r0, [r4, #0x28] + b _021E7A5E +_021E7A3A: + mov r0, #0 + str r0, [r4, #0x28] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E7A5E +_021E7A46: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + cmp r0, #0x1e + blt _021E7A5E + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #0x14] +_021E7A5E: + add r0, r5, #0 + add r1, sp, #0 + bl FUN_0206476C + add sp, #0xc + pop {r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7A6C +MOD05_021E7A6C: ; 0x021E7A6C + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x40] + bl FUN_0201F744 + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x30] + bl MOD05_021E7804 + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x30] + bl MOD05_021E7968 + pop {r4, pc} + + thumb_func_start MOD05_021E7A88 +MOD05_021E7A88: ; 0x021E7A88 + push {r3, r4, lr} + sub sp, #0xc + add r4, r1, #0 + ldr r1, [r4, #0x10] + cmp r1, #1 + beq _021E7ABA + add r1, sp, #0 + bl FUN_0206477C + ldr r1, [sp] + ldr r0, [r4, #0x18] + add r0, r1, r0 + str r0, [sp] + ldr r1, [sp, #4] + ldr r0, [r4, #0x1c] + add r0, r1, r0 + str r0, [sp, #4] + ldr r1, [sp, #8] + ldr r0, [r4, #0x20] + add r0, r1, r0 + str r0, [sp, #8] + ldr r0, [r4, #0x40] + add r1, sp, #0 + bl FUN_0201F7C8 +_021E7ABA: + add sp, #0xc + pop {r3, r4, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7AC0 +MOD05_021E7AC0: ; 0x021E7AC0 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + add r6, r1, #0 + add r7, r2, #0 + bl MOD05_021E4C24 + add r4, r0, #0 + mov r1, #0x16 + str r6, [sp, #0x14] + str r4, [sp, #0x18] + bl MOD05_021E4C08 + str r0, [sp, #0x1c] + add r0, r5, #0 + add r1, sp, #8 + str r5, [sp, #0x20] + bl FUN_02058B5C + add r0, r5, #0 + bl FUN_02058744 + add r1, r0, #1 + add r0, sp, #0x14 + str r0, [sp] + str r1, [sp, #4] + ldr r1, _021E7B04 ; =UNK05_021F7840 + add r0, r4, #0 + add r2, sp, #8 + add r3, r7, #0 + bl MOD05_021E4DC4 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 +_021E7B04: .word UNK05_021F7840 + + thumb_func_start MOD05_021E7B08 +MOD05_021E7B08: ; 0x021E7B08 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + bl FUN_0206475C + add r2, r4, #0 + add r3, r0, #0 + add r2, #0x30 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r4, #0x3c] + bl FUN_02058448 + str r0, [r4, #8] + ldr r0, [r4, #0x3c] + bl FUN_02058450 + str r0, [r4, #0xc] + mov r0, #6 + lsl r0, r0, #0xc + str r0, [r4, #0x28] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x30] + bl MOD05_021E7954 + add r0, r5, #0 + add r1, sp, #0 + bl FUN_0206477C + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x30] + add r2, sp, #0 + bl MOD05_021E797C + str r0, [r4, #0x40] + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x30] + bl MOD05_021E77F0 + add r0, r5, #0 + bl FUN_02064754 + cmp r0, #1 + bne _021E7B6C + ldr r0, _021E7B74 ; =0x000005DD + bl FUN_020054C8 +_021E7B6C: + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + nop +_021E7B74: .word 0x000005DD + + thumb_func_start MOD05_021E7B78 +MOD05_021E7B78: ; 0x021E7B78 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + ldr r6, [r4, #0x3c] + ldr r1, [r4, #8] + add r5, r0, #0 + ldr r2, [r4, #0xc] + add r0, r6, #0 + bl FUN_020582A8 + cmp r0, #0 + bne _021E7B94 + bl ErrorHandling +_021E7B94: + add r0, r6, #0 + add r1, sp, #0 + bl MOD05_021F1E64 + mov r0, #2 + ldr r1, [sp, #4] + lsl r0, r0, #0x10 + add r1, r1, r0 + str r1, [sp, #4] + ldr r2, [sp, #8] + lsr r1, r0, #5 + add r1, r2, r1 + str r1, [sp, #8] + ldr r1, [r4] + cmp r1, #0 + beq _021E7BBC + cmp r1, #1 + beq _021E7BDC + cmp r1, #2 + b _021E7BF4 +_021E7BBC: + ldr r2, [r4, #0x1c] + ldr r1, [r4, #0x28] + add r1, r2, r1 + str r1, [r4, #0x1c] + beq _021E7BD0 + ldr r1, [r4, #0x28] + lsr r0, r0, #4 + sub r0, r1, r0 + str r0, [r4, #0x28] + b _021E7BF4 +_021E7BD0: + mov r0, #0 + str r0, [r4, #0x28] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021E7BF4 +_021E7BDC: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + cmp r0, #0x1e + blt _021E7BF4 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #0x14] +_021E7BF4: + add r0, r5, #0 + add r1, sp, #0 + bl FUN_0206476C + add sp, #0xc + pop {r3, r4, r5, r6, pc} + + .section .rodata + + .global UNK05_021F7824 +UNK05_021F7824: ; 0x021F7824 + .word 0x00000001, 0x0000000C, 0x00000044, MOD05_021E79A8 + .word MOD05_021E7A6C, MOD05_021E7A08, MOD05_021E7A88 + + .global UNK05_021F7840 +UNK05_021F7840: ; 0x021F7840 + .word 0x00000044, MOD05_021E7B08, MOD05_021E7A6C, MOD05_021E7B78 + .word MOD05_021E7A88 + + .global UNK05_021F7854 +UNK05_021F7854: ; 0x021F7854 + .word 0x00000000, 0x00000001, 0x00000000, 0x00000000 + .word 0x00000000, 0x00000002 diff --git a/arm9/modules/05/asm/mod05_021E7C00.s b/arm9/modules/05/asm/mod05_021E7C00.s new file mode 100644 index 00000000..2e968e4f --- /dev/null +++ b/arm9/modules/05/asm/mod05_021E7C00.s @@ -0,0 +1,708 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD05_021E7C00 +MOD05_021E7C00: ; 0x021E7C00 + push {r4, lr} + mov r1, #0x46 + lsl r1, r1, #6 + bl AllocFromHeap + add r4, r0, #0 + bl MOD05_021E7C1C + add r0, r4, #0 + pop {r4, pc} + + thumb_func_start MOD05_021E7C14 +MOD05_021E7C14: ; 0x021E7C14 + ldr r3, _021E7C18 ; =FreeToHeap + bx r3 + .balign 4, 0 +_021E7C18: .word FreeToHeap + + thumb_func_start MOD05_021E7C1C +MOD05_021E7C1C: ; 0x021E7C1C + push {r3, r4, r5, r6, r7} + sub sp, #0xc + mov r4, #0 + mov ip, r0 + add r7, sp, #0 + add r3, r4, #0 +_021E7C28: + str r3, [r7] + str r3, [r7, #4] + mov r0, #0x8c + add r1, r4, #0 + mul r1, r0 + mov r0, ip + add r2, r0, r1 + add r5, r2, #0 + str r3, [r7, #8] + mov r0, ip + str r3, [r0, r1] + str r3, [r2, #4] + str r3, [r2, #8] + str r3, [r2, #0xc] + add r6, r7, #0 + ldmia r6!, {r0, r1} + add r5, #0x68 + stmia r5!, {r0, r1} + ldr r0, [r6] + add r6, r7, #0 + str r0, [r5] + add r5, r2, #0 + ldmia r6!, {r0, r1} + add r5, #0x74 + stmia r5!, {r0, r1} + ldr r0, [r6] + add r6, r7, #0 + str r0, [r5] + add r5, r2, #0 + ldmia r6!, {r0, r1} + add r5, #0x80 + stmia r5!, {r0, r1} + ldr r0, [r6] + str r0, [r5] + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + str r3, [r2, #0x64] + cmp r4, #0x20 + blo _021E7C28 + add sp, #0xc + pop {r3, r4, r5, r6, r7} + bx lr + .balign 4, 0 + + thumb_func_start MOD05_021E7C80 +MOD05_021E7C80: ; 0x021E7C80 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r1, #0 + cmp r5, #0x20 + blt _021E7C90 + bl ErrorHandling +_021E7C90: + add r6, sp, #0 + mov r3, #0 + str r3, [r6] + str r3, [r6, #4] + mov r0, #0x8c + mul r0, r5 + str r3, [r6, #8] + str r3, [r4, r0] + add r2, r4, r0 + str r3, [r2, #4] + str r3, [r2, #8] + add r4, r2, #0 + str r3, [r2, #0xc] + add r5, r6, #0 + ldmia r5!, {r0, r1} + add r4, #0x68 + stmia r4!, {r0, r1} + ldr r0, [r5] + add r5, r6, #0 + str r0, [r4] + add r4, r2, #0 + ldmia r5!, {r0, r1} + add r4, #0x74 + stmia r4!, {r0, r1} + ldr r0, [r5] + str r0, [r4] + add r4, r2, #0 + ldmia r6!, {r0, r1} + add r4, #0x80 + stmia r4!, {r0, r1} + ldr r0, [r6] + str r0, [r4] + str r3, [r2, #0x64] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7CD8 +MOD05_021E7CD8: ; 0x021E7CD8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + ldr r0, [sp, #0x28] + add r4, r1, #0 + str r0, [sp, #0x28] + mov r0, #0 + add r7, r2, #0 + add r5, r3, #0 + str r0, [sp, #4] + cmp r4, #0 + beq _021E7D0E + mov r0, #4 + bl AllocFromHeapAtEnd + str r0, [sp, #4] + ldr r2, [sp, #4] + add r0, r6, #0 + add r1, r4, #0 + bl NARC_ReadFile + add r0, r4, #0 + mov r1, #0x30 + bl _u32_div_f + str r0, [sp] + b _021E7D10 +_021E7D0E: + str r0, [sp] +_021E7D10: + ldr r4, [sp, #4] + mov r6, #0 +_021E7D14: + ldr r0, [sp] + cmp r6, r0 + bhs _021E7D82 + ldr r0, [r4] + add r2, r5, #0 + str r0, [r5] + mov r0, #1 + str r0, [r5, #4] + mov r0, #0 + add r3, r4, #4 + str r0, [r5, #0xc] + ldmia r3!, {r0, r1} + add r2, #0x68 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r3, r4, #0 + str r0, [r2] + add r3, #0x10 + add r2, r5, #0 + ldmia r3!, {r0, r1} + add r2, #0x74 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r3, r4, #0 + str r0, [r2] + add r3, #0x1c + add r2, r5, #0 + ldmia r3!, {r0, r1} + add r2, #0x80 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r3, r5, #0 + str r0, [r2] + add r2, r5, #0 + ldr r0, [r5] + add r1, r7, #0 + add r2, #0x10 + add r3, #0x64 + bl MOD05_021E7F10 + ldr r1, [r5] + add r0, r7, #0 + bl MOD05_021F4CE4 + cmp r0, #0 + bne _021E7D74 + mov r0, #0 + str r0, [r5] +_021E7D74: + add r1, r5, #0 + ldr r0, [r5] + ldr r2, [sp, #0x28] + add r1, #0x10 + bl MOD05_021D9E80 + b _021E7DBE +_021E7D82: + mov r1, #0 + add r0, sp, #8 + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + add r0, r1, #0 + str r0, [r5] + str r0, [r5, #4] + add r2, r5, #0 + add r3, sp, #8 + str r0, [r5, #0xc] + ldmia r3!, {r0, r1} + add r2, #0x68 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r3, sp, #8 + str r0, [r2] + add r2, r5, #0 + ldmia r3!, {r0, r1} + add r2, #0x74 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r3, sp, #8 + str r0, [r2] + add r2, r5, #0 + ldmia r3!, {r0, r1} + add r2, #0x80 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] +_021E7DBE: + add r6, r6, #1 + add r5, #0x8c + add r4, #0x30 + cmp r6, #0x20 + blt _021E7D14 + ldr r0, [sp, #4] + cmp r0, #0 + beq _021E7DD2 + bl FreeToHeap +_021E7DD2: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7DD8 +MOD05_021E7DD8: ; 0x021E7DD8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x48 + ldr r4, _021E7E94 ; =UNK05_021F7878 + str r2, [sp, #0xc] + str r3, [sp, #0x10] + add r6, r0, #0 + str r1, [sp, #8] + add r3, sp, #0x18 + mov r2, #4 +_021E7DEA: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021E7DEA + ldr r0, [r4] + ldr r5, [sp, #0x60] + str r0, [r3] + mov r7, #0 +_021E7DFA: + ldr r0, [r5, #4] + cmp r0, #0 + beq _021E7E86 + ldr r0, [r5, #8] + cmp r0, #0 + bne _021E7E86 + add r4, r5, #0 + add r4, #0x68 + ldmia r4!, {r0, r1} + add r3, sp, #0x3c + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r4] + str r0, [r3] + ldr r1, [sp, #0x3c] + ldr r0, [r6] + add r3, r5, #0 + add r0, r1, r0 + str r0, [sp, #0x3c] + ldr r1, [sp, #0x44] + ldr r0, [r6, #8] + add r3, #0x80 + add r0, r1, r0 + str r0, [sp, #0x44] + add r1, r2, #0 + ldr r0, [r5, #0x64] + add r2, sp, #0x18 + bl FUN_0201B6D0 + cmp r0, #0 + beq _021E7E86 + ldr r0, [sp, #8] + bl MOD05_021F4C9C + add r4, r0, #0 + ldr r0, [sp, #0xc] + cmp r0, #1 + bne _021E7E50 + ldr r0, [sp, #0x10] + ldr r1, [r5, #0x64] + ldr r2, _021E7E98 ; =0x00000F33 + bl MOD05_021DBB8C +_021E7E50: + ldr r0, [r5] + add r1, r4, #0 + add r2, sp, #0x14 + bl MOD05_021DB9D4 + add r0, sp, #0x14 + ldrh r0, [r0] + add r1, sp, #0x3c + cmp r0, #0 + bne _021E7E74 + add r0, r5, #0 + add r3, r5, #0 + add r0, #0x10 + add r2, sp, #0x18 + add r3, #0x80 + bl FUN_0201B26C + b _021E7E86 +_021E7E74: + str r4, [sp] + ldr r0, [r5] + add r3, r5, #0 + str r0, [sp, #4] + ldr r0, [r5, #0x64] + add r2, sp, #0x18 + add r3, #0x80 + bl MOD05_021E7F34 +_021E7E86: + add r7, r7, #1 + add r5, #0x8c + cmp r7, #0x20 + blt _021E7DFA + add sp, #0x48 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7E94: .word UNK05_021F7878 +_021E7E98: .word 0x00000F33 + + thumb_func_start MOD05_021E7E9C +MOD05_021E7E9C: ; 0x021E7E9C + add r0, #0x74 + bx lr + + thumb_func_start MOD05_021E7EA0 +MOD05_021E7EA0: ; 0x021E7EA0 + add r2, r1, #0 + add r2, #0x68 + add r3, r0, #0 + ldmia r2!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r2] + str r0, [r3] + bx lr + + thumb_func_start MOD05_021E7EB0 +MOD05_021E7EB0: ; 0x021E7EB0 + add r3, r1, #0 + add r2, r0, #0 + ldmia r3!, {r0, r1} + add r2, #0x68 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + bx lr + + thumb_func_start MOD05_021E7EC0 +MOD05_021E7EC0: ; 0x021E7EC0 + str r1, [r0, #8] + bx lr + + thumb_func_start MOD05_021E7EC4 +MOD05_021E7EC4: ; 0x021E7EC4 + ldr r0, [r0] + bx lr + + thumb_func_start MOD05_021E7EC8 +MOD05_021E7EC8: ; 0x021E7EC8 + add r0, #0x10 + bx lr + + thumb_func_start MOD05_021E7ECC +MOD05_021E7ECC: ; 0x021E7ECC + ldr r0, [r0, #0x64] + bx lr + + thumb_func_start MOD05_021E7ED0 +MOD05_021E7ED0: ; 0x021E7ED0 + mov r2, #0x8c + mul r2, r1 + add r0, r0, r2 + bx lr + + thumb_func_start MOD05_021E7ED8 +MOD05_021E7ED8: ; 0x021E7ED8 + mov r3, #0 +_021E7EDA: + ldr r2, [r0] + cmp r2, r1 + beq _021E7EEA + add r3, r3, #1 + add r0, #0x8c + cmp r3, #0x20 + blt _021E7EDA + mov r0, #0 +_021E7EEA: + bx lr + + thumb_func_start MOD05_021E7EEC +MOD05_021E7EEC: ; 0x021E7EEC + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + cmp r4, #0x20 + blt _021E7EFA + bl ErrorHandling +_021E7EFA: + mov r0, #0x8c + mul r0, r4 + add r4, r5, r0 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021E7F0A + bl ErrorHandling +_021E7F0A: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7F10 +MOD05_021E7F10: ; 0x021E7F10 + push {r3, r4, r5, lr} + add r5, r2, #0 + add r4, r3, #0 + bl MOD05_021F4BD0 + ldr r0, [r0] + bl FUN_020BC13C + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r1, r0, r1 + add r0, r5, #0 + str r1, [r4] + bl FUN_020B80B4 + pop {r3, r4, r5, pc} + .balign 4, 0 + + thumb_func_start MOD05_021E7F34 +MOD05_021E7F34: ; 0x021E7F34 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r0, r1, #0 + add r4, r2, #0 + add r5, r3, #0 + bl FUN_020B8474 + ldr r1, _021E7FB4 ; =UNK_021CEDD4 + add r0, r4, #0 + bl MI_Copy36B + ldr r1, _021E7FB8 ; =UNK_021CED98 + mov r0, #0xa4 + ldr r2, [r1, #0x7c] + bic r2, r0 + add r0, r5, #0 + str r2, [r1, #0x7c] + bl FUN_020B844C + bl FUN_020B849C + add r2, sp, #0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + add r2, #2 + add r3, sp, #0 + bl MOD05_021DB9E0 + add r0, sp, #0 + ldrh r0, [r0] + ldr r1, [sp, #0x18] + bl MOD05_021DB9F8 + add r6, r0, #0 + add r0, sp, #0 + ldrh r0, [r0, #2] + mov r5, #0xff + mov r4, #0 + cmp r0, #0 + ble _021E7FB0 +_021E7F84: + lsl r0, r4, #2 + add r2, r6, r0 + ldrh r0, [r6, r0] + cmp r5, r0 + beq _021E7F96 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + mov r3, #1 + b _021E7F98 +_021E7F96: + mov r3, #0 +_021E7F98: + ldrh r2, [r2, #2] + add r0, r7, #0 + add r1, r5, #0 + bl FUN_020BAFB8 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r0, sp, #0 + ldrh r0, [r0, #2] + cmp r4, r0 + blt _021E7F84 +_021E7FB0: + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7FB4: .word UNK_021CEDD4 +_021E7FB8: .word UNK_021CED98 + + thumb_func_start MOD05_021E7FBC +MOD05_021E7FBC: ; 0x021E7FBC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r5, _021E8058 ; =UNK05_021F786C + add r6, r0, #0 + add r7, r1, #0 + ldmia r5!, {r0, r1} + add r4, sp, #4 + stmia r4!, {r0, r1} + ldr r0, [r5] + str r0, [r4] + mov r4, #0 + mov r0, #0x8c +_021E7FD4: + add r1, r4, #0 + mul r1, r0 + add r5, r6, r1 + ldr r1, [r5, #4] + cmp r1, #0 + bne _021E8044 + mov r0, #1 + str r0, [r5, #4] + add r6, r5, #0 + ldmia r3!, {r0, r1} + add r6, #0x68 + stmia r6!, {r0, r1} + ldr r0, [r3] + str r0, [r6] + ldr r6, [sp, #0x28] + cmp r6, #0 + beq _021E8008 + mov r0, #1 + str r0, [r5, #0xc] + add r3, r5, #0 + ldmia r6!, {r0, r1} + add r3, #0x74 + stmia r3!, {r0, r1} + ldr r0, [r6] + str r0, [r3] + b _021E800C +_021E8008: + mov r0, #0 + str r0, [r5, #0xc] +_021E800C: + add r6, sp, #4 + add r3, r5, #0 + ldmia r6!, {r0, r1} + add r3, #0x80 + stmia r3!, {r0, r1} + ldr r0, [r6] + add r1, r7, #0 + str r0, [r3] + add r3, r5, #0 + str r2, [r5] + add r0, r2, #0 + add r2, r5, #0 + add r2, #0x10 + add r3, #0x64 + bl MOD05_021E7F10 + ldr r0, [sp, #0x2c] + mov r1, #0 + str r0, [sp] + ldr r0, [r5] + add r5, #0x10 + add r2, r1, #0 + add r3, r5, #0 + bl MOD05_021D9DC0 + add sp, #0x10 + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} +_021E8044: + add r1, r4, #1 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + cmp r4, #0x20 + blo _021E7FD4 + bl ErrorHandling + mov r0, #0x20 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .balign 4, 0 +_021E8058: .word UNK05_021F786C + + thumb_func_start MOD05_021E805C +MOD05_021E805C: ; 0x021E805C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + ldr r4, _021E80F4 ; =UNK05_021F789C + str r0, [sp, #8] + str r1, [sp, #0xc] + add r3, sp, #0x14 + mov r2, #4 +_021E806A: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021E806A + ldr r0, [r4] + mov r4, #0 + str r0, [r3] + add r7, sp, #0x14 +_021E807A: + mov r0, #0x8c + add r1, r4, #0 + mul r1, r0 + ldr r0, [sp, #8] + add r5, r0, r1 + ldr r0, [r5, #4] + cmp r0, #0 + beq _021E80E4 + ldr r0, [r5, #8] + cmp r0, #0 + bne _021E80E4 + ldr r0, [sp, #0xc] + bl MOD05_021F4C9C + add r6, r0, #0 + ldr r0, [r5] + add r1, r6, #0 + add r2, sp, #0x10 + bl MOD05_021DB9D4 + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _021E80B2 + add r1, r5, #0 + add r0, r7, #0 + add r1, #0x74 + bl FUN_0201CAA8 +_021E80B2: + add r0, sp, #0x10 + ldrh r0, [r0] + cmp r0, #0 + bne _021E80CE + add r0, r5, #0 + add r1, r5, #0 + add r5, #0x80 + add r0, #0x10 + add r1, #0x68 + add r2, r7, #0 + add r3, r5, #0 + bl FUN_0201B26C + b _021E80E4 +_021E80CE: + str r6, [sp] + ldr r0, [r5] + add r1, r5, #0 + str r0, [sp, #4] + ldr r0, [r5, #0x64] + add r5, #0x80 + add r1, #0x68 + add r2, r7, #0 + add r3, r5, #0 + bl MOD05_021E7F34 +_021E80E4: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x20 + blo _021E807A + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E80F4: .word UNK05_021F789C + + .section .rodata + + .global UNK05_021F786C +UNK05_021F786C: ; 0x021F786C + .word 0x00001000, 0x00001000, 0x00001000 + + .global UNK05_021F7878 +UNK05_021F7878: ; 0x021F7878 + .byte 0x00, 0x10, 0x00, 0x00 ;word + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + + .global UNK05_021F789C +UNK05_021F789C: ; 0x021F789C + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;word + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 38ca97a9..96673023 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -3,1292 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD05_021E779C -MOD05_021E779C: ; 0x021E779C - push {r4, lr} - mov r2, #0 - mov r1, #0x14 - add r3, r2, #0 - add r4, r0, #0 - bl MOD05_021E4BE8 - str r4, [r0, #0x10] - pop {r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E77B0 -MOD05_021E77B0: ; 0x021E77B0 - push {r4, lr} - add r4, r0, #0 - bl MOD05_021E78B4 - add r0, r4, #0 - bl MOD05_021E4C00 - pop {r4, pc} - - thumb_func_start MOD05_021E77C0 -MOD05_021E77C0: ; 0x021E77C0 - ldr r1, [r0] - add r1, r1, #1 - str r1, [r0] - bx lr - - thumb_func_start MOD05_021E77C8 -MOD05_021E77C8: ; 0x021E77C8 - push {r3, lr} - ldr r1, [r0] - sub r1, r1, #1 - str r1, [r0] - bpl _021E77D6 - bl ErrorHandling -_021E77D6: - pop {r3, pc} - - thumb_func_start MOD05_021E77D8 -MOD05_021E77D8: ; 0x021E77D8 - ldr r1, [r0, #4] - add r1, r1, #1 - str r1, [r0, #4] - bx lr - - thumb_func_start MOD05_021E77E0 -MOD05_021E77E0: ; 0x021E77E0 - push {r3, lr} - ldr r1, [r0, #4] - sub r1, r1, #1 - str r1, [r0, #4] - bpl _021E77EE - bl ErrorHandling -_021E77EE: - pop {r3, pc} - - thumb_func_start MOD05_021E77F0 -MOD05_021E77F0: ; 0x021E77F0 - push {r3, lr} - cmp r1, #0 - bne _021E77FC - bl MOD05_021E77C0 - pop {r3, pc} -_021E77FC: - bl MOD05_021E77D8 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7804 -MOD05_021E7804: ; 0x021E7804 - push {r3, lr} - cmp r1, #0 - bne _021E7810 - bl MOD05_021E77C8 - pop {r3, pc} -_021E7810: - bl MOD05_021E77E0 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7818 -MOD05_021E7818: ; 0x021E7818 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldr r0, [r4, #8] - cmp r0, #0 - bne _021E785C - mov r1, #1 - str r1, [r4, #8] - ldr r0, [r4, #0x10] - mov r2, #0x55 - bl MOD05_021E5078 - ldr r0, [r4, #0x10] - mov r1, #1 - mov r2, #0x75 - bl MOD05_021E50AC - mov r1, #1 - ldr r0, [r4, #0x10] - mov r2, #4 - add r3, r1, #0 - bl MOD05_021E50D4 - mov r1, #1 - str r1, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _021E7860 ; =UNK05_021F7854 - add r2, r1, #0 - str r0, [sp, #8] - ldr r0, [r4, #0x10] - add r3, r1, #0 - bl MOD05_021E4EFC -_021E785C: - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021E7860: .word UNK05_021F7854 - - thumb_func_start MOD05_021E7864 -MOD05_021E7864: ; 0x021E7864 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldr r0, [r4, #0xc] - cmp r0, #0 - bne _021E78AC - mov r0, #1 - str r0, [r4, #0xc] - ldr r0, [r4, #0x10] - mov r1, #0xa - mov r2, #0x6c - bl MOD05_021E5078 - ldr r0, [r4, #0x10] - mov r1, #0xa - mov r2, #0x75 - bl MOD05_021E50AC - ldr r0, [r4, #0x10] - mov r1, #0xb - mov r2, #0xd - mov r3, #1 - bl MOD05_021E50D4 - mov r0, #0xb - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _021E78B0 ; =UNK05_021F7854 - mov r2, #0xa - str r0, [sp, #8] - ldr r0, [r4, #0x10] - mov r1, #0xc - add r3, r2, #0 - bl MOD05_021E4EFC -_021E78AC: - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 -_021E78B0: .word UNK05_021F7854 - - thumb_func_start MOD05_021E78B4 -MOD05_021E78B4: ; 0x021E78B4 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - cmp r0, #1 - bne _021E78E2 - mov r0, #0 - str r0, [r4, #8] - ldr r0, [r4, #0x10] - mov r1, #1 - bl MOD05_021E50A0 - ldr r0, [r4, #0x10] - mov r1, #1 - bl MOD05_021E50C8 - ldr r0, [r4, #0x10] - mov r1, #1 - bl MOD05_021E5114 - ldr r0, [r4, #0x10] - mov r1, #1 - bl MOD05_021E506C -_021E78E2: - pop {r4, pc} - - thumb_func_start MOD05_021E78E4 -MOD05_021E78E4: ; 0x021E78E4 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0xc] - cmp r0, #1 - bne _021E7912 - mov r0, #0 - str r0, [r4, #0xc] - ldr r0, [r4, #0x10] - mov r1, #0xa - bl MOD05_021E50A0 - ldr r0, [r4, #0x10] - mov r1, #0xa - bl MOD05_021E50C8 - ldr r0, [r4, #0x10] - mov r1, #0xb - bl MOD05_021E5114 - ldr r0, [r4, #0x10] - mov r1, #0xc - bl MOD05_021E506C -_021E7912: - pop {r4, pc} - - thumb_func_start MOD05_021E7914 -MOD05_021E7914: ; 0x021E7914 - push {r3, lr} - ldr r1, [r0] - cmp r1, #0 - bne _021E7920 - bl MOD05_021E7818 -_021E7920: - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7924 -MOD05_021E7924: ; 0x021E7924 - push {r3, lr} - ldr r1, [r0, #4] - cmp r1, #0 - bne _021E7930 - bl MOD05_021E7864 -_021E7930: - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7934 -MOD05_021E7934: ; 0x021E7934 - push {r3, lr} - ldr r1, [r0] - cmp r1, #0 - bne _021E7940 - bl MOD05_021E78B4 -_021E7940: - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7944 -MOD05_021E7944: ; 0x021E7944 - push {r3, lr} - ldr r1, [r0, #4] - cmp r1, #0 - bne _021E7950 - bl MOD05_021E78E4 -_021E7950: - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7954 -MOD05_021E7954: ; 0x021E7954 - push {r3, lr} - cmp r1, #0 - bne _021E7960 - bl MOD05_021E7914 - pop {r3, pc} -_021E7960: - bl MOD05_021E7924 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7968 -MOD05_021E7968: ; 0x021E7968 - push {r3, lr} - cmp r1, #0 - bne _021E7974 - bl MOD05_021E7934 - pop {r3, pc} -_021E7974: - bl MOD05_021E7944 - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E797C -MOD05_021E797C: ; 0x021E797C - push {r3, r4, r5, lr} - sub sp, #8 - ldr r3, _021E7998 ; =UNK05_021F7824 - add r4, sp, #0 - ldr r5, [r3] - ldr r3, [r3, #4] - str r5, [sp] - str r3, [sp, #4] - lsl r1, r1, #2 - ldr r1, [r4, r1] - bl MOD05_021E4EE4 - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 -_021E7998: .word UNK05_021F7824 - - thumb_func_start MOD05_021E799C -MOD05_021E799C: ; 0x021E799C - push {r3, lr} - bl FUN_02064738 - ldr r0, [r0, #0x14] - pop {r3, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E79A8 -MOD05_021E79A8: ; 0x021E79A8 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r5, r0, #0 - bl FUN_0206475C - add r2, r4, #0 - add r3, r0, #0 - add r2, #0x30 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - mov r0, #6 - lsl r0, r0, #0xc - str r0, [r4, #0x28] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl MOD05_021E7954 - add r0, r5, #0 - add r1, sp, #0 - bl FUN_0206477C - ldr r0, [r4, #0x34] - ldr r1, [r4, #0x30] - add r2, sp, #0 - bl MOD05_021E797C - str r0, [r4, #0x40] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl MOD05_021E77F0 - add r0, r5, #0 - bl FUN_02064754 - cmp r0, #1 - bne _021E79FC - ldr r0, _021E7A04 ; =0x000005DD - bl FUN_020054C8 -_021E79FC: - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - nop -_021E7A04: .word 0x000005DD - - thumb_func_start MOD05_021E7A08 -MOD05_021E7A08: ; 0x021E7A08 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r1, sp, #0 - add r5, r0, #0 - bl FUN_0206477C - ldr r0, [r4] - cmp r0, #0 - beq _021E7A24 - cmp r0, #1 - beq _021E7A46 - cmp r0, #2 - b _021E7A5E -_021E7A24: - ldr r1, [r4, #0x1c] - ldr r0, [r4, #0x28] - add r0, r1, r0 - str r0, [r4, #0x1c] - beq _021E7A3A - mov r0, #2 - ldr r1, [r4, #0x28] - lsl r0, r0, #0xc - sub r0, r1, r0 - str r0, [r4, #0x28] - b _021E7A5E -_021E7A3A: - mov r0, #0 - str r0, [r4, #0x28] - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E7A5E -_021E7A46: - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] - cmp r0, #0x1e - blt _021E7A5E - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - mov r0, #1 - str r0, [r4, #0x14] -_021E7A5E: - add r0, r5, #0 - add r1, sp, #0 - bl FUN_0206476C - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7A6C -MOD05_021E7A6C: ; 0x021E7A6C - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x40] - bl FUN_0201F744 - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl MOD05_021E7804 - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl MOD05_021E7968 - pop {r4, pc} - - thumb_func_start MOD05_021E7A88 -MOD05_021E7A88: ; 0x021E7A88 - push {r3, r4, lr} - sub sp, #0xc - add r4, r1, #0 - ldr r1, [r4, #0x10] - cmp r1, #1 - beq _021E7ABA - add r1, sp, #0 - bl FUN_0206477C - ldr r1, [sp] - ldr r0, [r4, #0x18] - add r0, r1, r0 - str r0, [sp] - ldr r1, [sp, #4] - ldr r0, [r4, #0x1c] - add r0, r1, r0 - str r0, [sp, #4] - ldr r1, [sp, #8] - ldr r0, [r4, #0x20] - add r0, r1, r0 - str r0, [sp, #8] - ldr r0, [r4, #0x40] - add r1, sp, #0 - bl FUN_0201F7C8 -_021E7ABA: - add sp, #0xc - pop {r3, r4, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7AC0 -MOD05_021E7AC0: ; 0x021E7AC0 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r5, r0, #0 - add r6, r1, #0 - add r7, r2, #0 - bl MOD05_021E4C24 - add r4, r0, #0 - mov r1, #0x16 - str r6, [sp, #0x14] - str r4, [sp, #0x18] - bl MOD05_021E4C08 - str r0, [sp, #0x1c] - add r0, r5, #0 - add r1, sp, #8 - str r5, [sp, #0x20] - bl FUN_02058B5C - add r0, r5, #0 - bl FUN_02058744 - add r1, r0, #1 - add r0, sp, #0x14 - str r0, [sp] - str r1, [sp, #4] - ldr r1, _021E7B04 ; =UNK05_021F7840 - add r0, r4, #0 - add r2, sp, #8 - add r3, r7, #0 - bl MOD05_021E4DC4 - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_021E7B04: .word UNK05_021F7840 - - thumb_func_start MOD05_021E7B08 -MOD05_021E7B08: ; 0x021E7B08 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r5, r0, #0 - bl FUN_0206475C - add r2, r4, #0 - add r3, r0, #0 - add r2, #0x30 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r4, #0x3c] - bl FUN_02058448 - str r0, [r4, #8] - ldr r0, [r4, #0x3c] - bl FUN_02058450 - str r0, [r4, #0xc] - mov r0, #6 - lsl r0, r0, #0xc - str r0, [r4, #0x28] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl MOD05_021E7954 - add r0, r5, #0 - add r1, sp, #0 - bl FUN_0206477C - ldr r0, [r4, #0x34] - ldr r1, [r4, #0x30] - add r2, sp, #0 - bl MOD05_021E797C - str r0, [r4, #0x40] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl MOD05_021E77F0 - add r0, r5, #0 - bl FUN_02064754 - cmp r0, #1 - bne _021E7B6C - ldr r0, _021E7B74 ; =0x000005DD - bl FUN_020054C8 -_021E7B6C: - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - nop -_021E7B74: .word 0x000005DD - - thumb_func_start MOD05_021E7B78 -MOD05_021E7B78: ; 0x021E7B78 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - ldr r6, [r4, #0x3c] - ldr r1, [r4, #8] - add r5, r0, #0 - ldr r2, [r4, #0xc] - add r0, r6, #0 - bl FUN_020582A8 - cmp r0, #0 - bne _021E7B94 - bl ErrorHandling -_021E7B94: - add r0, r6, #0 - add r1, sp, #0 - bl MOD05_021F1E64 - mov r0, #2 - ldr r1, [sp, #4] - lsl r0, r0, #0x10 - add r1, r1, r0 - str r1, [sp, #4] - ldr r2, [sp, #8] - lsr r1, r0, #5 - add r1, r2, r1 - str r1, [sp, #8] - ldr r1, [r4] - cmp r1, #0 - beq _021E7BBC - cmp r1, #1 - beq _021E7BDC - cmp r1, #2 - b _021E7BF4 -_021E7BBC: - ldr r2, [r4, #0x1c] - ldr r1, [r4, #0x28] - add r1, r2, r1 - str r1, [r4, #0x1c] - beq _021E7BD0 - ldr r1, [r4, #0x28] - lsr r0, r0, #4 - sub r0, r1, r0 - str r0, [r4, #0x28] - b _021E7BF4 -_021E7BD0: - mov r0, #0 - str r0, [r4, #0x28] - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - b _021E7BF4 -_021E7BDC: - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] - cmp r0, #0x1e - blt _021E7BF4 - ldr r0, [r4] - add r0, r0, #1 - str r0, [r4] - mov r0, #0 - str r0, [r4, #4] - mov r0, #1 - str r0, [r4, #0x14] -_021E7BF4: - add r0, r5, #0 - add r1, sp, #0 - bl FUN_0206476C - add sp, #0xc - pop {r3, r4, r5, r6, pc} - - thumb_func_start MOD05_021E7C00 -MOD05_021E7C00: ; 0x021E7C00 - push {r4, lr} - mov r1, #0x46 - lsl r1, r1, #6 - bl AllocFromHeap - add r4, r0, #0 - bl MOD05_021E7C1C - add r0, r4, #0 - pop {r4, pc} - - thumb_func_start MOD05_021E7C14 -MOD05_021E7C14: ; 0x021E7C14 - ldr r3, _021E7C18 ; =FreeToHeap - bx r3 - .balign 4, 0 -_021E7C18: .word FreeToHeap - - thumb_func_start MOD05_021E7C1C -MOD05_021E7C1C: ; 0x021E7C1C - push {r3, r4, r5, r6, r7} - sub sp, #0xc - mov r4, #0 - mov ip, r0 - add r7, sp, #0 - add r3, r4, #0 -_021E7C28: - str r3, [r7] - str r3, [r7, #4] - mov r0, #0x8c - add r1, r4, #0 - mul r1, r0 - mov r0, ip - add r2, r0, r1 - add r5, r2, #0 - str r3, [r7, #8] - mov r0, ip - str r3, [r0, r1] - str r3, [r2, #4] - str r3, [r2, #8] - str r3, [r2, #0xc] - add r6, r7, #0 - ldmia r6!, {r0, r1} - add r5, #0x68 - stmia r5!, {r0, r1} - ldr r0, [r6] - add r6, r7, #0 - str r0, [r5] - add r5, r2, #0 - ldmia r6!, {r0, r1} - add r5, #0x74 - stmia r5!, {r0, r1} - ldr r0, [r6] - add r6, r7, #0 - str r0, [r5] - add r5, r2, #0 - ldmia r6!, {r0, r1} - add r5, #0x80 - stmia r5!, {r0, r1} - ldr r0, [r6] - str r0, [r5] - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - str r3, [r2, #0x64] - cmp r4, #0x20 - blo _021E7C28 - add sp, #0xc - pop {r3, r4, r5, r6, r7} - bx lr - .balign 4, 0 - - thumb_func_start MOD05_021E7C80 -MOD05_021E7C80: ; 0x021E7C80 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r5, r0, #0 - add r4, r1, #0 - cmp r5, #0x20 - blt _021E7C90 - bl ErrorHandling -_021E7C90: - add r6, sp, #0 - mov r3, #0 - str r3, [r6] - str r3, [r6, #4] - mov r0, #0x8c - mul r0, r5 - str r3, [r6, #8] - str r3, [r4, r0] - add r2, r4, r0 - str r3, [r2, #4] - str r3, [r2, #8] - add r4, r2, #0 - str r3, [r2, #0xc] - add r5, r6, #0 - ldmia r5!, {r0, r1} - add r4, #0x68 - stmia r4!, {r0, r1} - ldr r0, [r5] - add r5, r6, #0 - str r0, [r4] - add r4, r2, #0 - ldmia r5!, {r0, r1} - add r4, #0x74 - stmia r4!, {r0, r1} - ldr r0, [r5] - str r0, [r4] - add r4, r2, #0 - ldmia r6!, {r0, r1} - add r4, #0x80 - stmia r4!, {r0, r1} - ldr r0, [r6] - str r0, [r4] - str r3, [r2, #0x64] - add sp, #0xc - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7CD8 -MOD05_021E7CD8: ; 0x021E7CD8 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r6, r0, #0 - ldr r0, [sp, #0x28] - add r4, r1, #0 - str r0, [sp, #0x28] - mov r0, #0 - add r7, r2, #0 - add r5, r3, #0 - str r0, [sp, #4] - cmp r4, #0 - beq _021E7D0E - mov r0, #4 - bl AllocFromHeapAtEnd - str r0, [sp, #4] - ldr r2, [sp, #4] - add r0, r6, #0 - add r1, r4, #0 - bl NARC_ReadFile - add r0, r4, #0 - mov r1, #0x30 - bl _u32_div_f - str r0, [sp] - b _021E7D10 -_021E7D0E: - str r0, [sp] -_021E7D10: - ldr r4, [sp, #4] - mov r6, #0 -_021E7D14: - ldr r0, [sp] - cmp r6, r0 - bhs _021E7D82 - ldr r0, [r4] - add r2, r5, #0 - str r0, [r5] - mov r0, #1 - str r0, [r5, #4] - mov r0, #0 - add r3, r4, #4 - str r0, [r5, #0xc] - ldmia r3!, {r0, r1} - add r2, #0x68 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r3, r4, #0 - str r0, [r2] - add r3, #0x10 - add r2, r5, #0 - ldmia r3!, {r0, r1} - add r2, #0x74 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r3, r4, #0 - str r0, [r2] - add r3, #0x1c - add r2, r5, #0 - ldmia r3!, {r0, r1} - add r2, #0x80 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r3, r5, #0 - str r0, [r2] - add r2, r5, #0 - ldr r0, [r5] - add r1, r7, #0 - add r2, #0x10 - add r3, #0x64 - bl MOD05_021E7F10 - ldr r1, [r5] - add r0, r7, #0 - bl MOD05_021F4CE4 - cmp r0, #0 - bne _021E7D74 - mov r0, #0 - str r0, [r5] -_021E7D74: - add r1, r5, #0 - ldr r0, [r5] - ldr r2, [sp, #0x28] - add r1, #0x10 - bl MOD05_021D9E80 - b _021E7DBE -_021E7D82: - mov r1, #0 - add r0, sp, #8 - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - add r0, r1, #0 - str r0, [r5] - str r0, [r5, #4] - add r2, r5, #0 - add r3, sp, #8 - str r0, [r5, #0xc] - ldmia r3!, {r0, r1} - add r2, #0x68 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r3, sp, #8 - str r0, [r2] - add r2, r5, #0 - ldmia r3!, {r0, r1} - add r2, #0x74 - stmia r2!, {r0, r1} - ldr r0, [r3] - add r3, sp, #8 - str r0, [r2] - add r2, r5, #0 - ldmia r3!, {r0, r1} - add r2, #0x80 - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] -_021E7DBE: - add r6, r6, #1 - add r5, #0x8c - add r4, #0x30 - cmp r6, #0x20 - blt _021E7D14 - ldr r0, [sp, #4] - cmp r0, #0 - beq _021E7DD2 - bl FreeToHeap -_021E7DD2: - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7DD8 -MOD05_021E7DD8: ; 0x021E7DD8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x48 - ldr r4, _021E7E94 ; =UNK05_021F7878 - str r2, [sp, #0xc] - str r3, [sp, #0x10] - add r6, r0, #0 - str r1, [sp, #8] - add r3, sp, #0x18 - mov r2, #4 -_021E7DEA: - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - sub r2, r2, #1 - bne _021E7DEA - ldr r0, [r4] - ldr r5, [sp, #0x60] - str r0, [r3] - mov r7, #0 -_021E7DFA: - ldr r0, [r5, #4] - cmp r0, #0 - beq _021E7E86 - ldr r0, [r5, #8] - cmp r0, #0 - bne _021E7E86 - add r4, r5, #0 - add r4, #0x68 - ldmia r4!, {r0, r1} - add r3, sp, #0x3c - add r2, r3, #0 - stmia r3!, {r0, r1} - ldr r0, [r4] - str r0, [r3] - ldr r1, [sp, #0x3c] - ldr r0, [r6] - add r3, r5, #0 - add r0, r1, r0 - str r0, [sp, #0x3c] - ldr r1, [sp, #0x44] - ldr r0, [r6, #8] - add r3, #0x80 - add r0, r1, r0 - str r0, [sp, #0x44] - add r1, r2, #0 - ldr r0, [r5, #0x64] - add r2, sp, #0x18 - bl FUN_0201B6D0 - cmp r0, #0 - beq _021E7E86 - ldr r0, [sp, #8] - bl MOD05_021F4C9C - add r4, r0, #0 - ldr r0, [sp, #0xc] - cmp r0, #1 - bne _021E7E50 - ldr r0, [sp, #0x10] - ldr r1, [r5, #0x64] - ldr r2, _021E7E98 ; =0x00000F33 - bl MOD05_021DBB8C -_021E7E50: - ldr r0, [r5] - add r1, r4, #0 - add r2, sp, #0x14 - bl MOD05_021DB9D4 - add r0, sp, #0x14 - ldrh r0, [r0] - add r1, sp, #0x3c - cmp r0, #0 - bne _021E7E74 - add r0, r5, #0 - add r3, r5, #0 - add r0, #0x10 - add r2, sp, #0x18 - add r3, #0x80 - bl FUN_0201B26C - b _021E7E86 -_021E7E74: - str r4, [sp] - ldr r0, [r5] - add r3, r5, #0 - str r0, [sp, #4] - ldr r0, [r5, #0x64] - add r2, sp, #0x18 - add r3, #0x80 - bl MOD05_021E7F34 -_021E7E86: - add r7, r7, #1 - add r5, #0x8c - cmp r7, #0x20 - blt _021E7DFA - add sp, #0x48 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E7E94: .word UNK05_021F7878 -_021E7E98: .word 0x00000F33 - - thumb_func_start MOD05_021E7E9C -MOD05_021E7E9C: ; 0x021E7E9C - add r0, #0x74 - bx lr - - thumb_func_start MOD05_021E7EA0 -MOD05_021E7EA0: ; 0x021E7EA0 - add r2, r1, #0 - add r2, #0x68 - add r3, r0, #0 - ldmia r2!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r2] - str r0, [r3] - bx lr - - thumb_func_start MOD05_021E7EB0 -MOD05_021E7EB0: ; 0x021E7EB0 - add r3, r1, #0 - add r2, r0, #0 - ldmia r3!, {r0, r1} - add r2, #0x68 - stmia r2!, {r0, r1} - ldr r0, [r3] - str r0, [r2] - bx lr - - thumb_func_start MOD05_021E7EC0 -MOD05_021E7EC0: ; 0x021E7EC0 - str r1, [r0, #8] - bx lr - - thumb_func_start MOD05_021E7EC4 -MOD05_021E7EC4: ; 0x021E7EC4 - ldr r0, [r0] - bx lr - - thumb_func_start MOD05_021E7EC8 -MOD05_021E7EC8: ; 0x021E7EC8 - add r0, #0x10 - bx lr - - thumb_func_start MOD05_021E7ECC -MOD05_021E7ECC: ; 0x021E7ECC - ldr r0, [r0, #0x64] - bx lr - - thumb_func_start MOD05_021E7ED0 -MOD05_021E7ED0: ; 0x021E7ED0 - mov r2, #0x8c - mul r2, r1 - add r0, r0, r2 - bx lr - - thumb_func_start MOD05_021E7ED8 -MOD05_021E7ED8: ; 0x021E7ED8 - mov r3, #0 -_021E7EDA: - ldr r2, [r0] - cmp r2, r1 - beq _021E7EEA - add r3, r3, #1 - add r0, #0x8c - cmp r3, #0x20 - blt _021E7EDA - mov r0, #0 -_021E7EEA: - bx lr - - thumb_func_start MOD05_021E7EEC -MOD05_021E7EEC: ; 0x021E7EEC - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - cmp r4, #0x20 - blt _021E7EFA - bl ErrorHandling -_021E7EFA: - mov r0, #0x8c - mul r0, r4 - add r4, r5, r0 - ldr r0, [r4, #4] - cmp r0, #0 - bne _021E7F0A - bl ErrorHandling -_021E7F0A: - add r0, r4, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7F10 -MOD05_021E7F10: ; 0x021E7F10 - push {r3, r4, r5, lr} - add r5, r2, #0 - add r4, r3, #0 - bl MOD05_021F4BD0 - ldr r0, [r0] - bl FUN_020BC13C - ldrh r1, [r0, #0xe] - add r1, r0, r1 - ldr r1, [r1, #0xc] - add r1, r0, r1 - add r0, r5, #0 - str r1, [r4] - bl FUN_020B80B4 - pop {r3, r4, r5, pc} - .balign 4, 0 - - thumb_func_start MOD05_021E7F34 -MOD05_021E7F34: ; 0x021E7F34 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - add r0, r1, #0 - add r4, r2, #0 - add r5, r3, #0 - bl FUN_020B8474 - ldr r1, _021E7FB4 ; =UNK_021CEDD4 - add r0, r4, #0 - bl MI_Copy36B - ldr r1, _021E7FB8 ; =UNK_021CED98 - mov r0, #0xa4 - ldr r2, [r1, #0x7c] - bic r2, r0 - add r0, r5, #0 - str r2, [r1, #0x7c] - bl FUN_020B844C - bl FUN_020B849C - add r2, sp, #0 - ldr r0, [sp, #0x1c] - ldr r1, [sp, #0x18] - add r2, #2 - add r3, sp, #0 - bl MOD05_021DB9E0 - add r0, sp, #0 - ldrh r0, [r0] - ldr r1, [sp, #0x18] - bl MOD05_021DB9F8 - add r6, r0, #0 - add r0, sp, #0 - ldrh r0, [r0, #2] - mov r5, #0xff - mov r4, #0 - cmp r0, #0 - ble _021E7FB0 -_021E7F84: - lsl r0, r4, #2 - add r2, r6, r0 - ldrh r0, [r6, r0] - cmp r5, r0 - beq _021E7F96 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - mov r3, #1 - b _021E7F98 -_021E7F96: - mov r3, #0 -_021E7F98: - ldrh r2, [r2, #2] - add r0, r7, #0 - add r1, r5, #0 - bl FUN_020BAFB8 - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - add r0, sp, #0 - ldrh r0, [r0, #2] - cmp r4, r0 - blt _021E7F84 -_021E7FB0: - pop {r3, r4, r5, r6, r7, pc} - nop -_021E7FB4: .word UNK_021CEDD4 -_021E7FB8: .word UNK_021CED98 - - thumb_func_start MOD05_021E7FBC -MOD05_021E7FBC: ; 0x021E7FBC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - ldr r5, _021E8058 ; =UNK05_021F786C - add r6, r0, #0 - add r7, r1, #0 - ldmia r5!, {r0, r1} - add r4, sp, #4 - stmia r4!, {r0, r1} - ldr r0, [r5] - str r0, [r4] - mov r4, #0 - mov r0, #0x8c -_021E7FD4: - add r1, r4, #0 - mul r1, r0 - add r5, r6, r1 - ldr r1, [r5, #4] - cmp r1, #0 - bne _021E8044 - mov r0, #1 - str r0, [r5, #4] - add r6, r5, #0 - ldmia r3!, {r0, r1} - add r6, #0x68 - stmia r6!, {r0, r1} - ldr r0, [r3] - str r0, [r6] - ldr r6, [sp, #0x28] - cmp r6, #0 - beq _021E8008 - mov r0, #1 - str r0, [r5, #0xc] - add r3, r5, #0 - ldmia r6!, {r0, r1} - add r3, #0x74 - stmia r3!, {r0, r1} - ldr r0, [r6] - str r0, [r3] - b _021E800C -_021E8008: - mov r0, #0 - str r0, [r5, #0xc] -_021E800C: - add r6, sp, #4 - add r3, r5, #0 - ldmia r6!, {r0, r1} - add r3, #0x80 - stmia r3!, {r0, r1} - ldr r0, [r6] - add r1, r7, #0 - str r0, [r3] - add r3, r5, #0 - str r2, [r5] - add r0, r2, #0 - add r2, r5, #0 - add r2, #0x10 - add r3, #0x64 - bl MOD05_021E7F10 - ldr r0, [sp, #0x2c] - mov r1, #0 - str r0, [sp] - ldr r0, [r5] - add r5, #0x10 - add r2, r1, #0 - add r3, r5, #0 - bl MOD05_021D9DC0 - add sp, #0x10 - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} -_021E8044: - add r1, r4, #1 - lsl r1, r1, #0x18 - lsr r4, r1, #0x18 - cmp r4, #0x20 - blo _021E7FD4 - bl ErrorHandling - mov r0, #0x20 - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_021E8058: .word UNK05_021F786C - - thumb_func_start MOD05_021E805C -MOD05_021E805C: ; 0x021E805C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x38 - ldr r4, _021E80F4 ; =UNK05_021F789C - str r0, [sp, #8] - str r1, [sp, #0xc] - add r3, sp, #0x14 - mov r2, #4 -_021E806A: - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - sub r2, r2, #1 - bne _021E806A - ldr r0, [r4] - mov r4, #0 - str r0, [r3] - add r7, sp, #0x14 -_021E807A: - mov r0, #0x8c - add r1, r4, #0 - mul r1, r0 - ldr r0, [sp, #8] - add r5, r0, r1 - ldr r0, [r5, #4] - cmp r0, #0 - beq _021E80E4 - ldr r0, [r5, #8] - cmp r0, #0 - bne _021E80E4 - ldr r0, [sp, #0xc] - bl MOD05_021F4C9C - add r6, r0, #0 - ldr r0, [r5] - add r1, r6, #0 - add r2, sp, #0x10 - bl MOD05_021DB9D4 - ldr r0, [r5, #0xc] - cmp r0, #0 - beq _021E80B2 - add r1, r5, #0 - add r0, r7, #0 - add r1, #0x74 - bl FUN_0201CAA8 -_021E80B2: - add r0, sp, #0x10 - ldrh r0, [r0] - cmp r0, #0 - bne _021E80CE - add r0, r5, #0 - add r1, r5, #0 - add r5, #0x80 - add r0, #0x10 - add r1, #0x68 - add r2, r7, #0 - add r3, r5, #0 - bl FUN_0201B26C - b _021E80E4 -_021E80CE: - str r6, [sp] - ldr r0, [r5] - add r1, r5, #0 - str r0, [sp, #4] - ldr r0, [r5, #0x64] - add r5, #0x80 - add r1, #0x68 - add r2, r7, #0 - add r3, r5, #0 - bl MOD05_021E7F34 -_021E80E4: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x20 - blo _021E807A - add sp, #0x38 - pop {r3, r4, r5, r6, r7, pc} - nop -_021E80F4: .word UNK05_021F789C - thumb_func_start MOD05_021E80F8 MOD05_021E80F8: ; 0x021E80F8 push {r3, lr} @@ -30518,37 +29232,6 @@ _021F6428: .word MOD05_021F57F0 .section .rodata - .global UNK05_021F7824 -UNK05_021F7824: ; 0x021F7824 - .word 0x00000001, 0x0000000C, 0x00000044, MOD05_021E79A8 - .word MOD05_021E7A6C, MOD05_021E7A08, MOD05_021E7A88 - - .global UNK05_021F7840 -UNK05_021F7840: ; 0x021F7840 - .word 0x00000044, MOD05_021E7B08, MOD05_021E7A6C, MOD05_021E7B78 - .word MOD05_021E7A88 - - .global UNK05_021F7854 -UNK05_021F7854: ; 0x021F7854 - .word 0x00000000, 0x00000001, 0x00000000, 0x00000000 - .word 0x00000000, 0x00000002 - - .global UNK05_021F786C -UNK05_021F786C: ; 0x021F786C - .word 0x00001000, 0x00001000, 0x00001000 - - .global UNK05_021F7878 -UNK05_021F7878: ; 0x021F7878 - .byte 0x00, 0x10, 0x00, 0x00 ;word - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - - .global UNK05_021F789C -UNK05_021F789C: ; 0x021F789C - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;word - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .global UNK05_021F78C4 UNK05_021F78C4: ; 0x021F78C4 .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |