summaryrefslogtreecommitdiff
path: root/arm9/modules/05/asm/mod05_021E55BC.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/05/asm/mod05_021E55BC.s')
-rw-r--r--arm9/modules/05/asm/mod05_021E55BC.s251
1 files changed, 251 insertions, 0 deletions
diff --git a/arm9/modules/05/asm/mod05_021E55BC.s b/arm9/modules/05/asm/mod05_021E55BC.s
new file mode 100644
index 00000000..43186ebe
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021E55BC.s
@@ -0,0 +1,251 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E55BC
+MOD05_021E55BC: ; 0x021E55BC
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x6c
+ add r3, r2, #0
+ add r5, r0, #0
+ bl MOD05_021E4BE8
+ add r4, r0, #0
+ str r5, [r4, #8]
+ bl MOD05_021E55E8
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E55D8
+MOD05_021E55D8: ; 0x021E55D8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD05_021E5608
+ add r0, r4, #0
+ bl MOD05_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E55E8
+MOD05_021E55E8: ; 0x021E55E8
+ push {r3, lr}
+ sub sp, #8
+ add r3, r0, #0
+ add r0, #0x60
+ str r0, [sp]
+ add r0, r3, #0
+ add r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, [r3, #8]
+ mov r1, #0x16
+ mov r2, #0
+ add r3, #0xc
+ bl MOD05_021E51EC
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD05_021E5608
+MOD05_021E5608: ; 0x021E5608
+ ldr r3, _021E5610 ; =MOD05_021E4C00
+ ldr r0, [r0, #0x64]
+ bx r3
+ nop
+_021E5610: .word MOD05_021E4C00
+
+ thumb_func_start MOD05_021E5614
+MOD05_021E5614: ; 0x021E5614
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl MOD05_021E4C24
+ add r4, r0, #0
+ mov r1, #5
+ str r4, [sp, #0x14]
+ bl MOD05_021E4C08
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #8
+ str r5, [sp, #0x1c]
+ bl FUN_02058B5C
+ add r0, sp, #0x14
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r1, _021E564C ; =UNK05_021F75C0
+ add r0, r4, #0
+ add r2, sp, #8
+ mov r3, #0
+ bl MOD05_021E4DC4
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+_021E564C: .word UNK05_021F75C0
+
+ thumb_func_start MOD05_021E5650
+MOD05_021E5650: ; 0x021E5650
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x30
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [r4, #0x38]
+ bl FUN_02058448
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x38]
+ bl FUN_02058450
+ str r0, [r4, #0xc]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x38]
+ add r1, sp, #0
+ bl FUN_02058B5C
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5698
+MOD05_021E5698: ; 0x021E5698
+ bx lr
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E569C
+MOD05_021E569C: ; 0x021E569C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r6, [r4, #0x38]
+ ldr r1, [r4, #8]
+ add r5, r0, #0
+ ldr r2, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_020582A8
+ cmp r0, #0
+ bne _021E56B8
+ bl ErrorHandling
+_021E56B8:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021E56C8
+ cmp r0, #1
+ beq _021E56E6
+ add sp, #0xc
+ cmp r0, #2
+ pop {r3, r4, r5, r6, pc}
+_021E56C8:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_02058B5C
+ mov r0, #0xa
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0206476C
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021E56E6:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #0x1e
+ blt _021E56F6
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021E56F6:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E56FC
+MOD05_021E56FC: ; 0x021E56FC
+ push {r4, r5, r6, lr}
+ sub sp, #0x60
+ ldr r5, _021E5774 ; =UNK05_021F75B4
+ add r2, r0, #0
+ add r4, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x48
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r6, _021E5778 ; =UNK05_021F75D4
+ str r0, [r3]
+ add r5, sp, #0x24
+ mov r3, #4
+_021E5716:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r3, r3, #1
+ bne _021E5716
+ ldr r0, [r6]
+ add r1, sp, #0x54
+ str r0, [r5]
+ add r0, r2, #0
+ bl FUN_0206477C
+ mov r0, #0x19
+ ldr r1, [sp, #0x58]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x58]
+ mov r0, #5
+ ldr r1, [sp, #0x5c]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #0x5c]
+ bl FUN_020B8344
+ mov r2, #0
+ add r5, r0, #0
+ add r0, sp, #0x24
+ mov r1, #0x5a
+ add r3, r2, #0
+ bl FUN_0201CB20
+ add r0, r5, #0
+ add r1, sp, #0
+ bl MI_Copy36B
+ add r0, sp, #0x24
+ add r1, sp, #0
+ add r2, r0, #0
+ bl MTX_Concat33
+ ldr r0, [r4, #0x34]
+ add r1, sp, #0x54
+ add r0, #0xc
+ add r2, sp, #0x24
+ add r3, sp, #0x48
+ bl FUN_0201B2A8
+ add sp, #0x60
+ pop {r4, r5, r6, pc}
+ .balign 4, 0
+_021E5774: .word UNK05_021F75B4
+_021E5778: .word UNK05_021F75D4
+
+ .section .rodata
+
+ .global UNK05_021F75B4
+UNK05_021F75B4: ; 0x021F75B4
+ .word 0x00001000, 0x00001000, 0x00001000
+
+ .global UNK05_021F75C0
+UNK05_021F75C0: ; 0x021F75C0
+ .word 0x0000003C, MOD05_021E5650, MOD05_021E5698, MOD05_021E569C
+ .word MOD05_021E56FC
+
+ .global UNK05_021F75D4
+UNK05_021F75D4: ; 0x021F75D4
+ .word 0x00001000, 0x00000000, 0x00000000, 0x00000000
+ .word 0x00001000, 0x00000000, 0x00000000, 0x00000000
+ .word 0x00001000