summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-07-16 17:12:56 +0100
committerred031000 <rubenru09@aol.com>2020-07-16 17:14:20 +0100
commit8435a3ee7e5311202a56af1412fe6390b1cb43ae (patch)
tree2319fdb7fe19c75966a840896f6f6ac0adaa0187
parent0d298c2352cb9a4ceb7d5564fe5239eb49691536 (diff)
split mod05_021D9320
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/modules/05/asm/mod05_021D9320.s920
-rw-r--r--arm9/modules/05/asm/module_05.s914
3 files changed, 921 insertions, 914 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index d59f7e0b..0a45ade3 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -519,6 +519,7 @@ Overlay MODULE_05
Object mod05_021D74E0.o
Object mod05_021D7F4C.o
Object mod05_021D80E8.o
+ Object mod05_021D9320.o
Object module_05.o
}
diff --git a/arm9/modules/05/asm/mod05_021D9320.s b/arm9/modules/05/asm/mod05_021D9320.s
new file mode 100644
index 00000000..4d0220e5
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021D9320.s
@@ -0,0 +1,920 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021D9320
+MOD05_021D9320: ; 0x021D9320
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ str r1, [sp, #0x10]
+ add r4, r3, #0
+ add r0, r2, #0
+ add r1, r5, #4
+ add r2, r4, #0
+ bl FUN_02008C9C
+ str r0, [r5]
+ ldr r1, _021D94B0 ; =0x00000162
+ ldr r0, [sp, #0x10]
+ strh r4, [r5, r1]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ bne _021D9346
+ mov r2, #4
+ b _021D9348
+_021D9346:
+ mov r2, #6
+_021D9348:
+ sub r0, r1, #2
+ strh r2, [r5, r0]
+ bl FUN_0200965C
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldrh r2, [r5, r1]
+ add r3, r0, #0
+ add r0, r4, #0
+ add r1, r2, #0
+ mul r1, r3
+ bl AllocFromHeap
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ bls _021D93AA
+ ldr r6, [sp, #0x10]
+_021D9374:
+ ldr r1, [sp, #0x1c]
+ add r0, r7, #0
+ bl FUN_02009660
+ str r0, [sp, #0x20]
+ ldr r1, [r6]
+ add r0, r4, #0
+ bl FUN_020161A4
+ ldr r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ add r2, r4, #0
+ bl FUN_02009668
+ ldr r0, [sp, #0x24]
+ bl FreeToHeap
+ ldr r0, [sp, #0x1c]
+ add r6, r6, #4
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r0, [r5, r0]
+ ldr r1, [sp, #0x1c]
+ cmp r1, r0
+ blo _021D9374
+_021D93AA:
+ mov r6, #0
+ cmp r0, #0
+ bls _021D93E0
+ str r5, [sp, #0x18]
+_021D93B2:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_02009660
+ bl FUN_020096CC
+ add r1, r6, #0
+ add r2, r4, #0
+ bl FUN_02008DEC
+ mov r1, #0x13
+ ldr r2, [sp, #0x18]
+ lsl r1, r1, #4
+ str r0, [r2, r1]
+ add r0, r2, #0
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ add r0, r1, #0
+ add r0, #0x30
+ ldrh r0, [r5, r0]
+ add r6, r6, #1
+ cmp r6, r0
+ blo _021D93B2
+_021D93E0:
+ mov r1, #0
+ str r1, [sp, #0x14]
+ cmp r0, #0
+ bls _021D942C
+ add r6, r5, #0
+_021D93EA:
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl FUN_02009660
+ str r0, [sp, #0x28]
+ bl FUN_020096CC
+ add r1, r4, #0
+ bl FUN_02009424
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ add r0, r1, #0
+ mov r2, #0x52
+ sub r0, #0x18
+ lsl r2, r2, #2
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #0x28]
+ ldr r2, [r6, r2]
+ add r3, r4, #0
+ bl FUN_020093A8
+ ldr r0, [sp, #0x14]
+ add r6, r6, #4
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r0, [r5, r0]
+ ldr r1, [sp, #0x14]
+ cmp r1, r0
+ blo _021D93EA
+_021D942C:
+ mov r6, #0
+ cmp r0, #0
+ bls _021D944A
+_021D9432:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_02009660
+ bl FUN_020096B4
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r0, [r5, r0]
+ add r6, r6, #1
+ cmp r6, r0
+ blo _021D9432
+_021D944A:
+ add r0, r7, #0
+ bl FreeToHeap
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009B44
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009DAC
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ ldr r1, [r1, #0x18]
+ bl FUN_020161A4
+ mov r3, #0x4e
+ lsl r3, r3, #2
+ ldr r1, [r5, r3]
+ add r2, r3, #0
+ str r1, [sp]
+ add r1, r3, #4
+ ldr r1, [r5, r1]
+ sub r2, #8
+ str r1, [sp, #4]
+ add r1, r3, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ add r6, r0, #0
+ str r1, [sp, #8]
+ add r1, r3, #0
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ sub r3, r3, #4
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r1, r4, #0
+ bl FUN_02008BE0
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl FreeToHeap
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D94B0: .word 0x00000162
+
+ thumb_func_start MOD05_021D94B4
+MOD05_021D94B4: ; 0x021D94B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008C80
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009C30
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009E28
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r0, [r5, r0]
+ mov r6, #0
+ cmp r0, #0
+ bls _021D950C
+ mov r7, #0x16
+ add r4, r5, #0
+ lsl r7, r7, #4
+_021D94EE:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02009448
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02008E2C
+ ldrh r0, [r5, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blo _021D94EE
+_021D950C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021D9510
+MOD05_021D9510: ; 0x021D9510
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ add r2, r0, #0
+ add r4, r1, #0
+ mov r0, #4
+ ldrsh r0, [r4, r0]
+ mov r3, #0x4b
+ lsl r3, r3, #2
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ mov r0, #6
+ ldrsh r0, [r4, r0]
+ add r6, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #8
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r3]
+ ldr r1, [r4]
+ ldr r5, [r0]
+ mov r0, #0x24
+ mul r0, r1
+ add r0, r5, r0
+ str r0, [sp, #0x10]
+ ldmia r6!, {r0, r1}
+ add r5, sp, #0x14
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ ldr r6, _021D9598 ; =UNK05_021F64D8
+ str r0, [r5]
+ ldmia r6!, {r0, r1}
+ add r5, sp, #0x20
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ mov r1, #0
+ str r0, [r5]
+ add r0, sp, #0
+ strh r1, [r0, #0x2c]
+ ldr r0, [r4, #0xc]
+ add r3, #0x36
+ str r0, [sp, #0x30]
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x34]
+ ldrh r0, [r2, r3]
+ str r0, [sp, #0x38]
+ add r0, sp, #0xc
+ bl FUN_0201FE94
+ add r5, r0, #0
+ bne _021D9580
+ bl ErrorHandling
+_021D9580:
+ ldrh r1, [r4, #0xa]
+ add r0, r5, #0
+ bl FUN_02020130
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0202027C
+ add r0, r5, #0
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D9598: .word UNK05_021F64D8
+
+ thumb_func_start MOD05_021D959C
+MOD05_021D959C: ; 0x021D959C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ str r1, [sp]
+ add r0, r2, #0
+ str r3, [sp, #4]
+ add r1, r7, #4
+ add r2, r3, #0
+ bl FUN_02008C9C
+ str r0, [r7]
+ ldr r1, _021D9678 ; =0x00000162
+ ldr r0, [sp, #4]
+ strh r0, [r7, r1]
+ ldr r0, [sp]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _021D95C8
+ ldr r0, [sp]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D95DE
+_021D95C8:
+ mov r1, #0x16
+ mov r0, #4
+ lsl r1, r1, #4
+ strh r0, [r7, r1]
+ add r0, r1, #0
+ mov r2, #0
+ sub r0, #0x20
+ str r2, [r7, r0]
+ sub r1, #0x1c
+ str r2, [r7, r1]
+ b _021D95E4
+_021D95DE:
+ mov r2, #6
+ sub r0, r1, #2
+ strh r2, [r7, r0]
+_021D95E4:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r1, [r7, r0]
+ mov r4, #0
+ cmp r1, #0
+ bls _021D9614
+ ldr r5, [sp]
+ add r6, r7, #0
+_021D95F4:
+ ldr r0, [r5]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ bl FUN_02008DEC
+ mov r1, #0x13
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ add r0, r1, #0
+ add r0, #0x30
+ ldrh r1, [r7, r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, r6, #4
+ cmp r4, r1
+ blo _021D95F4
+_021D9614:
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r1, #0
+ bls _021D9672
+ mov r6, #0x52
+ add r5, r7, #0
+ add r4, r0, #0
+ lsl r6, r6, #2
+_021D9624:
+ ldr r0, [sp]
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D9658
+ ldr r1, [sp, #4]
+ bl FUN_02009424
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r3, [r5, r0]
+ mov r1, #0
+ ldr r0, [r3, #4]
+ cmp r0, #0
+ bls _021D9658
+ add r2, r1, #0
+_021D9648:
+ ldr r0, [r3]
+ add r1, r1, #1
+ str r4, [r0, r2]
+ ldr r3, [r5, r6]
+ add r2, r2, #4
+ ldr r0, [r3, #4]
+ cmp r1, r0
+ blo _021D9648
+_021D9658:
+ ldr r0, [sp]
+ add r5, r5, #4
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r1, [r7, r0]
+ ldr r0, [sp, #8]
+ cmp r0, r1
+ blo _021D9624
+_021D9672:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9678: .word 0x00000162
+
+ thumb_func_start MOD05_021D967C
+MOD05_021D967C: ; 0x021D967C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x30]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0200945C
+ cmp r0, #0
+ bne _021D96A0
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_021D96A0:
+ ldr r0, [sp, #0x30]
+ add r2, r6, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r3, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #8]
+ ldr r0, _021D96F0 ; =0x00000162
+ ldrh r1, [r5, r0]
+ sub r0, #0x2e
+ str r1, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02008FEC
+ add r4, r0, #0
+ beq _021D96E8
+ bl FUN_02009D68
+ cmp r0, #1
+ beq _021D96D0
+ bl ErrorHandling
+_021D96D0:
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl MOD05_021D9780
+ ldr r1, [sp, #0x2c]
+ add r0, r4, #0
+ bl FUN_02009E88
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_021D96E8:
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .balign 4, 0
+_021D96F0: .word 0x00000162
+
+ thumb_func_start MOD05_021D96F4
+MOD05_021D96F4: ; 0x021D96F4
+ push {r4, lr}
+ sub sp, #8
+ mov r4, #2
+ str r4, [sp]
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #4]
+ bl MOD05_021D97B4
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021D9708
+MOD05_021D9708: ; 0x021D9708
+ push {r4, lr}
+ sub sp, #8
+ mov r4, #3
+ str r4, [sp]
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #4]
+ bl MOD05_021D97B4
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021D971C
+MOD05_021D971C: ; 0x021D971C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x24]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0200945C
+ cmp r0, #0
+ bne _021D9740
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D9740:
+ ldr r0, [sp, #0x24]
+ add r2, r6, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ add r3, r7, #0
+ str r0, [sp, #4]
+ ldr r0, _021D977C ; =0x00000162
+ ldrh r1, [r5, r0]
+ sub r0, #0x32
+ str r1, [sp, #8]
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02008F34
+ add r4, r0, #0
+ beq _021D9774
+ bl FUN_02009B04
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl MOD05_021D9780
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D9774:
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .balign 4, 0
+_021D977C: .word 0x00000162
+
+ thumb_func_start MOD05_021D9780
+MOD05_021D9780: ; 0x021D9780
+ push {r3, r4, r5, r6}
+ ldr r6, [r0, #4]
+ mov r3, #0
+ cmp r6, #0
+ ble _021D97AC
+ ldr r5, [r0]
+ add r4, r5, #0
+_021D978E:
+ ldr r2, [r4]
+ cmp r2, #0
+ bne _021D97A4
+ lsl r2, r3, #2
+ str r1, [r5, r2]
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ mov r0, #1
+ pop {r3, r4, r5, r6}
+ bx lr
+_021D97A4:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, r6
+ blt _021D978E
+_021D97AC:
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021D97B4
+MOD05_021D97B4: ; 0x021D97B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [sp, #0x28]
+ add r7, r1, #0
+ lsl r4, r0, #2
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r6, r5, r0
+ ldr r0, [r6, r4]
+ ldr r1, [sp, #0x2c]
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ bl FUN_0200945C
+ cmp r0, #0
+ bne _021D97DE
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_021D97DE:
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0xc]
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ ldr r3, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r0, _021D981C ; =0x00000162
+ add r1, r7, #0
+ ldrh r0, [r5, r0]
+ str r0, [sp, #8]
+ ldr r0, [r6, r4]
+ bl FUN_020090AC
+ add r1, r0, #0
+ beq _021D9814
+ mov r0, #0x52
+ add r2, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ bl MOD05_021D9780
+ cmp r0, #1
+ beq _021D9818
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_021D9814:
+ bl ErrorHandling
+_021D9818:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .balign 4, 0
+_021D981C: .word 0x00000162
+
+ thumb_func_start MOD05_021D9820
+MOD05_021D9820: ; 0x021D9820
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x74
+ add r5, r0, #0
+ ldr r0, _021D99F4 ; =0x00000162
+ add r4, r1, #0
+ ldrh r0, [r5, r0]
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r6, r0, #0
+ ldr r0, _021D99F4 ; =0x00000162
+ mov r1, #8
+ ldrh r0, [r5, r0]
+ bl AllocFromHeap
+ str r0, [r6, #8]
+ ldr r0, _021D99F4 ; =0x00000162
+ mov r1, #0x24
+ ldrh r0, [r5, r0]
+ bl AllocFromHeap
+ ldr r1, [r6, #8]
+ add r2, r4, #0
+ str r0, [r1]
+ ldr r0, [r6, #8]
+ mov r1, #0
+ ldr r0, [r0]
+ add r3, sp, #0x2c
+ str r0, [r6, #4]
+_021D985A:
+ ldr r0, [r2, #0x14]
+ add r1, r1, #1
+ add r2, r2, #4
+ stmia r3!, {r0}
+ cmp r1, #6
+ blt _021D985A
+ mov r1, #5
+ lsl r1, r1, #6
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ beq _021D9878
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ cmp r1, #0
+ bne _021D9882
+_021D9878:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ b _021D98B8
+_021D9882:
+ mov r2, #0
+ ldr r1, [sp, #0x3c]
+ mvn r2, r2
+ cmp r1, r2
+ beq _021D989A
+ bl FUN_0200945C
+ cmp r0, #0
+ bne _021D989A
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x3c]
+_021D989A:
+ mov r0, #0
+ ldr r1, [sp, #0x40]
+ mvn r0, r0
+ cmp r1, r0
+ beq _021D98B8
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200945C
+ cmp r0, #0
+ bne _021D98B8
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x40]
+_021D98B8:
+ ldr r0, [sp, #0x38]
+ str r0, [sp]
+ ldr r0, [sp, #0x3c]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x40]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x2c]
+ str r0, [sp, #0x10]
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ str r1, [sp, #0x14]
+ add r1, r0, #4
+ ldr r1, [r5, r1]
+ str r1, [sp, #0x18]
+ add r1, r0, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ str r1, [sp, #0x1c]
+ add r1, r0, #0
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ str r1, [sp, #0x20]
+ add r1, r0, #0
+ add r1, #0x10
+ ldr r1, [r5, r1]
+ add r0, #0x14
+ str r1, [sp, #0x24]
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x28]
+ ldr r0, [r6, #4]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x30]
+ ldr r3, [sp, #0x34]
+ bl FUN_02008AA4
+ ldr r0, [r5]
+ str r0, [sp, #0x44]
+ ldr r0, [r6, #4]
+ str r0, [sp, #0x48]
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _021D9926
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9934
+_021D9926:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9934:
+ bl _ffix
+ str r0, [sp, #0x4c]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _021D9954
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9962
+_021D9954:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9962:
+ bl _ffix
+ str r0, [sp, #0x50]
+ mov r0, #4
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _021D9982
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9990
+_021D9982:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9990:
+ bl _ffix
+ str r0, [sp, #0x54]
+ ldr r0, [r4, #0x10]
+ cmp r0, #2
+ bne _021D99A6
+ mov r0, #3
+ ldr r1, [sp, #0x50]
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0x50]
+_021D99A6:
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0x60]
+ mov r1, #0
+ add r0, sp, #0x2c
+ strh r1, [r0, #0x38]
+ ldr r0, [r4, #8]
+ str r0, [sp, #0x68]
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #0x6c]
+ ldr r0, _021D99F4 ; =0x00000162
+ ldrh r0, [r5, r0]
+ str r0, [sp, #0x70]
+ add r0, sp, #0x44
+ bl FUN_0201FE94
+ str r0, [r6]
+ cmp r0, #0
+ beq _021D99EA
+ bl FUN_020202A0
+ add r5, r0, #0
+ ldrh r1, [r4, #6]
+ ldr r0, [r6]
+ bl FUN_02020130
+ ldr r1, [r4, #0xc]
+ ldr r0, [r6]
+ add r1, r5, r1
+ bl FUN_02020248
+ b _021D99EE
+_021D99EA:
+ bl ErrorHandling
+_021D99EE:
+ add r0, r6, #0
+ add sp, #0x74
+ pop {r3, r4, r5, r6, pc}
+ .balign 4, 0
+_021D99F4: .word 0x00000162
+
+ thumb_func_start MOD05_021D99F8
+MOD05_021D99F8: ; 0x021D99F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_0201FD58
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C30
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E28
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldrh r0, [r6, r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _021D9A46
+ mov r7, #0x16
+ add r5, r6, #0
+ lsl r7, r7, #4
+_021D9A28:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009448
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ ldrh r0, [r6, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blo _021D9A28
+_021D9A46:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ .section .rodata
+
+ .global UNK05_021F64D8
+UNK05_021F64D8: ; 0x021F64D8
+ .word 0x00001000, 0x00001000, 0x00001000
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 62ffaa6d..a86f794b 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -3,916 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD05_021D9320
-MOD05_021D9320: ; 0x021D9320
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r0, #0
- str r1, [sp, #0x10]
- add r4, r3, #0
- add r0, r2, #0
- add r1, r5, #4
- add r2, r4, #0
- bl FUN_02008C9C
- str r0, [r5]
- ldr r1, _021D94B0 ; =0x00000162
- ldr r0, [sp, #0x10]
- strh r4, [r5, r1]
- ldr r0, [r0, #0x10]
- cmp r0, #0
- bne _021D9346
- mov r2, #4
- b _021D9348
-_021D9346:
- mov r2, #6
-_021D9348:
- sub r0, r1, #2
- strh r2, [r5, r0]
- bl FUN_0200965C
- mov r1, #0x16
- lsl r1, r1, #4
- ldrh r2, [r5, r1]
- add r3, r0, #0
- add r0, r4, #0
- add r1, r2, #0
- mul r1, r3
- bl AllocFromHeap
- add r7, r0, #0
- mov r0, #0
- str r0, [sp, #0x1c]
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r0, [r5, r0]
- cmp r0, #0
- bls _021D93AA
- ldr r6, [sp, #0x10]
-_021D9374:
- ldr r1, [sp, #0x1c]
- add r0, r7, #0
- bl FUN_02009660
- str r0, [sp, #0x20]
- ldr r1, [r6]
- add r0, r4, #0
- bl FUN_020161A4
- ldr r1, [sp, #0x20]
- str r0, [sp, #0x24]
- add r2, r4, #0
- bl FUN_02009668
- ldr r0, [sp, #0x24]
- bl FreeToHeap
- ldr r0, [sp, #0x1c]
- add r6, r6, #4
- add r0, r0, #1
- str r0, [sp, #0x1c]
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r0, [r5, r0]
- ldr r1, [sp, #0x1c]
- cmp r1, r0
- blo _021D9374
-_021D93AA:
- mov r6, #0
- cmp r0, #0
- bls _021D93E0
- str r5, [sp, #0x18]
-_021D93B2:
- add r0, r7, #0
- add r1, r6, #0
- bl FUN_02009660
- bl FUN_020096CC
- add r1, r6, #0
- add r2, r4, #0
- bl FUN_02008DEC
- mov r1, #0x13
- ldr r2, [sp, #0x18]
- lsl r1, r1, #4
- str r0, [r2, r1]
- add r0, r2, #0
- add r0, r0, #4
- str r0, [sp, #0x18]
- add r0, r1, #0
- add r0, #0x30
- ldrh r0, [r5, r0]
- add r6, r6, #1
- cmp r6, r0
- blo _021D93B2
-_021D93E0:
- mov r1, #0
- str r1, [sp, #0x14]
- cmp r0, #0
- bls _021D942C
- add r6, r5, #0
-_021D93EA:
- ldr r1, [sp, #0x14]
- add r0, r7, #0
- bl FUN_02009660
- str r0, [sp, #0x28]
- bl FUN_020096CC
- add r1, r4, #0
- bl FUN_02009424
- mov r1, #0x52
- lsl r1, r1, #2
- str r0, [r6, r1]
- add r0, r1, #0
- mov r2, #0x52
- sub r0, #0x18
- lsl r2, r2, #2
- ldr r0, [r6, r0]
- ldr r1, [sp, #0x28]
- ldr r2, [r6, r2]
- add r3, r4, #0
- bl FUN_020093A8
- ldr r0, [sp, #0x14]
- add r6, r6, #4
- add r0, r0, #1
- str r0, [sp, #0x14]
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r0, [r5, r0]
- ldr r1, [sp, #0x14]
- cmp r1, r0
- blo _021D93EA
-_021D942C:
- mov r6, #0
- cmp r0, #0
- bls _021D944A
-_021D9432:
- add r0, r7, #0
- add r1, r6, #0
- bl FUN_02009660
- bl FUN_020096B4
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r0, [r5, r0]
- add r6, r6, #1
- cmp r6, r0
- blo _021D9432
-_021D944A:
- add r0, r7, #0
- bl FreeToHeap
- mov r0, #0x52
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02009B44
- mov r0, #0x53
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02009DAC
- ldr r1, [sp, #0x10]
- add r0, r4, #0
- ldr r1, [r1, #0x18]
- bl FUN_020161A4
- mov r3, #0x4e
- lsl r3, r3, #2
- ldr r1, [r5, r3]
- add r2, r3, #0
- str r1, [sp]
- add r1, r3, #4
- ldr r1, [r5, r1]
- sub r2, #8
- str r1, [sp, #4]
- add r1, r3, #0
- add r1, #8
- ldr r1, [r5, r1]
- add r6, r0, #0
- str r1, [sp, #8]
- add r1, r3, #0
- add r1, #0xc
- ldr r1, [r5, r1]
- sub r3, r3, #4
- str r1, [sp, #0xc]
- ldr r2, [r5, r2]
- ldr r3, [r5, r3]
- add r1, r4, #0
- bl FUN_02008BE0
- mov r1, #0x4b
- lsl r1, r1, #2
- str r0, [r5, r1]
- add r0, r6, #0
- bl FreeToHeap
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_021D94B0: .word 0x00000162
-
- thumb_func_start MOD05_021D94B4
-MOD05_021D94B4: ; 0x021D94B4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- bl FUN_0201FD58
- mov r0, #0x4b
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02008C80
- mov r0, #0x52
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02009C30
- mov r0, #0x53
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02009E28
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r0, [r5, r0]
- mov r6, #0
- cmp r0, #0
- bls _021D950C
- mov r7, #0x16
- add r4, r5, #0
- lsl r7, r7, #4
-_021D94EE:
- mov r0, #0x52
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_02009448
- mov r0, #0x13
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FUN_02008E2C
- ldrh r0, [r5, r7]
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, r0
- blo _021D94EE
-_021D950C:
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-
- thumb_func_start MOD05_021D9510
-MOD05_021D9510: ; 0x021D9510
- push {r3, r4, r5, r6, lr}
- sub sp, #0x3c
- add r2, r0, #0
- add r4, r1, #0
- mov r0, #4
- ldrsh r0, [r4, r0]
- mov r3, #0x4b
- lsl r3, r3, #2
- lsl r0, r0, #0xc
- str r0, [sp]
- mov r0, #6
- ldrsh r0, [r4, r0]
- add r6, sp, #0
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- mov r0, #8
- ldrsh r0, [r4, r0]
- lsl r0, r0, #0xc
- str r0, [sp, #8]
- ldr r0, [r2]
- str r0, [sp, #0xc]
- ldr r0, [r2, r3]
- ldr r1, [r4]
- ldr r5, [r0]
- mov r0, #0x24
- mul r0, r1
- add r0, r5, r0
- str r0, [sp, #0x10]
- ldmia r6!, {r0, r1}
- add r5, sp, #0x14
- stmia r5!, {r0, r1}
- ldr r0, [r6]
- ldr r6, _021D9598 ; =UNK05_021F64D8
- str r0, [r5]
- ldmia r6!, {r0, r1}
- add r5, sp, #0x20
- stmia r5!, {r0, r1}
- ldr r0, [r6]
- mov r1, #0
- str r0, [r5]
- add r0, sp, #0
- strh r1, [r0, #0x2c]
- ldr r0, [r4, #0xc]
- add r3, #0x36
- str r0, [sp, #0x30]
- ldr r0, [r4, #0x14]
- str r0, [sp, #0x34]
- ldrh r0, [r2, r3]
- str r0, [sp, #0x38]
- add r0, sp, #0xc
- bl FUN_0201FE94
- add r5, r0, #0
- bne _021D9580
- bl ErrorHandling
-_021D9580:
- ldrh r1, [r4, #0xa]
- add r0, r5, #0
- bl FUN_02020130
- ldr r1, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0202027C
- add r0, r5, #0
- add sp, #0x3c
- pop {r3, r4, r5, r6, pc}
- nop
-_021D9598: .word UNK05_021F64D8
-
- thumb_func_start MOD05_021D959C
-MOD05_021D959C: ; 0x021D959C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r0, #0
- str r1, [sp]
- add r0, r2, #0
- str r3, [sp, #4]
- add r1, r7, #4
- add r2, r3, #0
- bl FUN_02008C9C
- str r0, [r7]
- ldr r1, _021D9678 ; =0x00000162
- ldr r0, [sp, #4]
- strh r0, [r7, r1]
- ldr r0, [sp]
- ldr r0, [r0, #0x10]
- cmp r0, #0
- beq _021D95C8
- ldr r0, [sp]
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _021D95DE
-_021D95C8:
- mov r1, #0x16
- mov r0, #4
- lsl r1, r1, #4
- strh r0, [r7, r1]
- add r0, r1, #0
- mov r2, #0
- sub r0, #0x20
- str r2, [r7, r0]
- sub r1, #0x1c
- str r2, [r7, r1]
- b _021D95E4
-_021D95DE:
- mov r2, #6
- sub r0, r1, #2
- strh r2, [r7, r0]
-_021D95E4:
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r1, [r7, r0]
- mov r4, #0
- cmp r1, #0
- bls _021D9614
- ldr r5, [sp]
- add r6, r7, #0
-_021D95F4:
- ldr r0, [r5]
- ldr r2, [sp, #4]
- add r1, r4, #0
- bl FUN_02008DEC
- mov r1, #0x13
- lsl r1, r1, #4
- str r0, [r6, r1]
- add r0, r1, #0
- add r0, #0x30
- ldrh r1, [r7, r0]
- add r4, r4, #1
- add r5, r5, #4
- add r6, r6, #4
- cmp r4, r1
- blo _021D95F4
-_021D9614:
- mov r0, #0
- str r0, [sp, #8]
- cmp r1, #0
- bls _021D9672
- mov r6, #0x52
- add r5, r7, #0
- add r4, r0, #0
- lsl r6, r6, #2
-_021D9624:
- ldr r0, [sp]
- ldr r0, [r0]
- cmp r0, #0
- beq _021D9658
- ldr r1, [sp, #4]
- bl FUN_02009424
- mov r1, #0x52
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #0x52
- lsl r0, r0, #2
- ldr r3, [r5, r0]
- mov r1, #0
- ldr r0, [r3, #4]
- cmp r0, #0
- bls _021D9658
- add r2, r1, #0
-_021D9648:
- ldr r0, [r3]
- add r1, r1, #1
- str r4, [r0, r2]
- ldr r3, [r5, r6]
- add r2, r2, #4
- ldr r0, [r3, #4]
- cmp r1, r0
- blo _021D9648
-_021D9658:
- ldr r0, [sp]
- add r5, r5, #4
- add r0, r0, #4
- str r0, [sp]
- ldr r0, [sp, #8]
- add r0, r0, #1
- str r0, [sp, #8]
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r1, [r7, r0]
- ldr r0, [sp, #8]
- cmp r0, r1
- blo _021D9624
-_021D9672:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_021D9678: .word 0x00000162
-
- thumb_func_start MOD05_021D967C
-MOD05_021D967C: ; 0x021D967C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r0, #0
- mov r0, #0x4d
- lsl r0, r0, #2
- add r4, r1, #0
- ldr r0, [r5, r0]
- ldr r1, [sp, #0x30]
- add r6, r2, #0
- add r7, r3, #0
- bl FUN_0200945C
- cmp r0, #0
- bne _021D96A0
- bl ErrorHandling
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
-_021D96A0:
- ldr r0, [sp, #0x30]
- add r2, r6, #0
- str r0, [sp]
- ldr r0, [sp, #0x2c]
- add r3, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x28]
- str r0, [sp, #8]
- ldr r0, _021D96F0 ; =0x00000162
- ldrh r1, [r5, r0]
- sub r0, #0x2e
- str r1, [sp, #0xc]
- ldr r0, [r5, r0]
- add r1, r4, #0
- bl FUN_02008FEC
- add r4, r0, #0
- beq _021D96E8
- bl FUN_02009D68
- cmp r0, #1
- beq _021D96D0
- bl ErrorHandling
-_021D96D0:
- mov r0, #0x53
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r1, r4, #0
- bl MOD05_021D9780
- ldr r1, [sp, #0x2c]
- add r0, r4, #0
- bl FUN_02009E88
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
-_021D96E8:
- bl ErrorHandling
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .balign 4, 0
-_021D96F0: .word 0x00000162
-
- thumb_func_start MOD05_021D96F4
-MOD05_021D96F4: ; 0x021D96F4
- push {r4, lr}
- sub sp, #8
- mov r4, #2
- str r4, [sp]
- ldr r4, [sp, #0x10]
- str r4, [sp, #4]
- bl MOD05_021D97B4
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD05_021D9708
-MOD05_021D9708: ; 0x021D9708
- push {r4, lr}
- sub sp, #8
- mov r4, #3
- str r4, [sp]
- ldr r4, [sp, #0x10]
- str r4, [sp, #4]
- bl MOD05_021D97B4
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD05_021D971C
-MOD05_021D971C: ; 0x021D971C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- mov r0, #0x13
- lsl r0, r0, #4
- add r4, r1, #0
- ldr r0, [r5, r0]
- ldr r1, [sp, #0x24]
- add r6, r2, #0
- add r7, r3, #0
- bl FUN_0200945C
- cmp r0, #0
- bne _021D9740
- bl ErrorHandling
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_021D9740:
- ldr r0, [sp, #0x24]
- add r2, r6, #0
- str r0, [sp]
- ldr r0, [sp, #0x20]
- add r3, r7, #0
- str r0, [sp, #4]
- ldr r0, _021D977C ; =0x00000162
- ldrh r1, [r5, r0]
- sub r0, #0x32
- str r1, [sp, #8]
- ldr r0, [r5, r0]
- add r1, r4, #0
- bl FUN_02008F34
- add r4, r0, #0
- beq _021D9774
- bl FUN_02009B04
- mov r0, #0x52
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r1, r4, #0
- bl MOD05_021D9780
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_021D9774:
- bl ErrorHandling
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .balign 4, 0
-_021D977C: .word 0x00000162
-
- thumb_func_start MOD05_021D9780
-MOD05_021D9780: ; 0x021D9780
- push {r3, r4, r5, r6}
- ldr r6, [r0, #4]
- mov r3, #0
- cmp r6, #0
- ble _021D97AC
- ldr r5, [r0]
- add r4, r5, #0
-_021D978E:
- ldr r2, [r4]
- cmp r2, #0
- bne _021D97A4
- lsl r2, r3, #2
- str r1, [r5, r2]
- ldr r1, [r0, #8]
- add r1, r1, #1
- str r1, [r0, #8]
- mov r0, #1
- pop {r3, r4, r5, r6}
- bx lr
-_021D97A4:
- add r3, r3, #1
- add r4, r4, #4
- cmp r3, r6
- blt _021D978E
-_021D97AC:
- mov r0, #0
- pop {r3, r4, r5, r6}
- bx lr
- .balign 4, 0
-
- thumb_func_start MOD05_021D97B4
-MOD05_021D97B4: ; 0x021D97B4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- ldr r0, [sp, #0x28]
- add r7, r1, #0
- lsl r4, r0, #2
- mov r0, #0x13
- lsl r0, r0, #4
- add r6, r5, r0
- ldr r0, [r6, r4]
- ldr r1, [sp, #0x2c]
- str r2, [sp, #0xc]
- str r3, [sp, #0x10]
- bl FUN_0200945C
- cmp r0, #0
- bne _021D97DE
- bl ErrorHandling
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-_021D97DE:
- ldr r0, [sp, #0x2c]
- ldr r2, [sp, #0xc]
- str r0, [sp]
- ldr r0, [sp, #0x28]
- ldr r3, [sp, #0x10]
- str r0, [sp, #4]
- ldr r0, _021D981C ; =0x00000162
- add r1, r7, #0
- ldrh r0, [r5, r0]
- str r0, [sp, #8]
- ldr r0, [r6, r4]
- bl FUN_020090AC
- add r1, r0, #0
- beq _021D9814
- mov r0, #0x52
- add r2, r5, r4
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- bl MOD05_021D9780
- cmp r0, #1
- beq _021D9818
- bl ErrorHandling
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-_021D9814:
- bl ErrorHandling
-_021D9818:
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .balign 4, 0
-_021D981C: .word 0x00000162
-
- thumb_func_start MOD05_021D9820
-MOD05_021D9820: ; 0x021D9820
- push {r3, r4, r5, r6, lr}
- sub sp, #0x74
- add r5, r0, #0
- ldr r0, _021D99F4 ; =0x00000162
- add r4, r1, #0
- ldrh r0, [r5, r0]
- mov r1, #0x10
- bl AllocFromHeap
- add r6, r0, #0
- ldr r0, _021D99F4 ; =0x00000162
- mov r1, #8
- ldrh r0, [r5, r0]
- bl AllocFromHeap
- str r0, [r6, #8]
- ldr r0, _021D99F4 ; =0x00000162
- mov r1, #0x24
- ldrh r0, [r5, r0]
- bl AllocFromHeap
- ldr r1, [r6, #8]
- add r2, r4, #0
- str r0, [r1]
- ldr r0, [r6, #8]
- mov r1, #0
- ldr r0, [r0]
- add r3, sp, #0x2c
- str r0, [r6, #4]
-_021D985A:
- ldr r0, [r2, #0x14]
- add r1, r1, #1
- add r2, r2, #4
- stmia r3!, {r0}
- cmp r1, #6
- blt _021D985A
- mov r1, #5
- lsl r1, r1, #6
- ldr r0, [r5, r1]
- cmp r0, #0
- beq _021D9878
- add r1, r1, #4
- ldr r1, [r5, r1]
- cmp r1, #0
- bne _021D9882
-_021D9878:
- mov r0, #0
- mvn r0, r0
- str r0, [sp, #0x3c]
- str r0, [sp, #0x40]
- b _021D98B8
-_021D9882:
- mov r2, #0
- ldr r1, [sp, #0x3c]
- mvn r2, r2
- cmp r1, r2
- beq _021D989A
- bl FUN_0200945C
- cmp r0, #0
- bne _021D989A
- mov r0, #0
- mvn r0, r0
- str r0, [sp, #0x3c]
-_021D989A:
- mov r0, #0
- ldr r1, [sp, #0x40]
- mvn r0, r0
- cmp r1, r0
- beq _021D98B8
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_0200945C
- cmp r0, #0
- bne _021D98B8
- mov r0, #0
- mvn r0, r0
- str r0, [sp, #0x40]
-_021D98B8:
- ldr r0, [sp, #0x38]
- str r0, [sp]
- ldr r0, [sp, #0x3c]
- str r0, [sp, #4]
- ldr r0, [sp, #0x40]
- str r0, [sp, #8]
- ldr r0, [r4, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x2c]
- str r0, [sp, #0x10]
- mov r0, #0x13
- lsl r0, r0, #4
- ldr r1, [r5, r0]
- str r1, [sp, #0x14]
- add r1, r0, #4
- ldr r1, [r5, r1]
- str r1, [sp, #0x18]
- add r1, r0, #0
- add r1, #8
- ldr r1, [r5, r1]
- str r1, [sp, #0x1c]
- add r1, r0, #0
- add r1, #0xc
- ldr r1, [r5, r1]
- str r1, [sp, #0x20]
- add r1, r0, #0
- add r1, #0x10
- ldr r1, [r5, r1]
- add r0, #0x14
- str r1, [sp, #0x24]
- ldr r0, [r5, r0]
- str r0, [sp, #0x28]
- ldr r0, [r6, #4]
- ldr r1, [sp, #0x2c]
- ldr r2, [sp, #0x30]
- ldr r3, [sp, #0x34]
- bl FUN_02008AA4
- ldr r0, [r5]
- str r0, [sp, #0x44]
- ldr r0, [r6, #4]
- str r0, [sp, #0x48]
- mov r0, #0
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _021D9926
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _021D9934
-_021D9926:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_021D9934:
- bl _ffix
- str r0, [sp, #0x4c]
- mov r0, #2
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _021D9954
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _021D9962
-_021D9954:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_021D9962:
- bl _ffix
- str r0, [sp, #0x50]
- mov r0, #4
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _021D9982
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _021D9990
-_021D9982:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_021D9990:
- bl _ffix
- str r0, [sp, #0x54]
- ldr r0, [r4, #0x10]
- cmp r0, #2
- bne _021D99A6
- mov r0, #3
- ldr r1, [sp, #0x50]
- lsl r0, r0, #0x12
- add r0, r1, r0
- str r0, [sp, #0x50]
-_021D99A6:
- mov r0, #1
- lsl r0, r0, #0xc
- str r0, [sp, #0x58]
- str r0, [sp, #0x5c]
- str r0, [sp, #0x60]
- mov r1, #0
- add r0, sp, #0x2c
- strh r1, [r0, #0x38]
- ldr r0, [r4, #8]
- str r0, [sp, #0x68]
- ldr r0, [r4, #0x10]
- str r0, [sp, #0x6c]
- ldr r0, _021D99F4 ; =0x00000162
- ldrh r0, [r5, r0]
- str r0, [sp, #0x70]
- add r0, sp, #0x44
- bl FUN_0201FE94
- str r0, [r6]
- cmp r0, #0
- beq _021D99EA
- bl FUN_020202A0
- add r5, r0, #0
- ldrh r1, [r4, #6]
- ldr r0, [r6]
- bl FUN_02020130
- ldr r1, [r4, #0xc]
- ldr r0, [r6]
- add r1, r5, r1
- bl FUN_02020248
- b _021D99EE
-_021D99EA:
- bl ErrorHandling
-_021D99EE:
- add r0, r6, #0
- add sp, #0x74
- pop {r3, r4, r5, r6, pc}
- .balign 4, 0
-_021D99F4: .word 0x00000162
-
- thumb_func_start MOD05_021D99F8
-MOD05_021D99F8: ; 0x021D99F8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6]
- bl FUN_0201FD58
- mov r0, #0x52
- lsl r0, r0, #2
- ldr r0, [r6, r0]
- bl FUN_02009C30
- mov r0, #0x53
- lsl r0, r0, #2
- ldr r0, [r6, r0]
- bl FUN_02009E28
- mov r0, #0x16
- lsl r0, r0, #4
- ldrh r0, [r6, r0]
- mov r4, #0
- cmp r0, #0
- bls _021D9A46
- mov r7, #0x16
- add r5, r6, #0
- lsl r7, r7, #4
-_021D9A28:
- mov r0, #0x52
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02009448
- mov r0, #0x13
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- bl FUN_02008E2C
- ldrh r0, [r6, r7]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blo _021D9A28
-_021D9A46:
- pop {r3, r4, r5, r6, r7, pc}
-
thumb_func_start MOD05_021D9A48
MOD05_021D9A48: ; 0x021D9A48
push {r3, r4, r5, r6, r7, lr}
@@ -60260,10 +59350,6 @@ _021F6428: .word MOD05_021F57F0
.section .rodata
- .global UNK05_021F64D8
-UNK05_021F64D8: ; 0x021F64D8
- .word 0x00001000, 0x00001000, 0x00001000
-
.global UNK05_021F64E4
UNK05_021F64E4: ; 0x021F64E4
.word 0x0000012F, 0x00000130