summaryrefslogtreecommitdiff
path: root/arm9/modules/05/asm/mod05_021E5AB4.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/05/asm/mod05_021E5AB4.s')
-rw-r--r--arm9/modules/05/asm/mod05_021E5AB4.s250
1 files changed, 250 insertions, 0 deletions
diff --git a/arm9/modules/05/asm/mod05_021E5AB4.s b/arm9/modules/05/asm/mod05_021E5AB4.s
new file mode 100644
index 00000000..ff3779f5
--- /dev/null
+++ b/arm9/modules/05/asm/mod05_021E5AB4.s
@@ -0,0 +1,250 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5AB4
+MOD05_021E5AB4: ; 0x021E5AB4
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r1, #0x38
+ add r3, r2, #0
+ add r5, r0, #0
+ bl MOD05_021E4BE8
+ add r4, r0, #0
+ str r5, [r4]
+ bl MOD05_021E5AE0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5AD0
+MOD05_021E5AD0: ; 0x021E5AD0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD05_021E5B18
+ add r0, r4, #0
+ bl MOD05_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E5AE0
+MOD05_021E5AE0: ; 0x021E5AE0
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x28
+ bl MOD05_021E5294
+ ldr r0, [r4]
+ add r1, r4, #4
+ mov r2, #0x3a
+ mov r3, #0
+ bl MOD05_021E5224
+ mov r0, #0x71
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r2, r4, #4
+ add r4, #0x28
+ add r1, #0x14
+ add r3, r4, #0
+ bl MOD05_021E5260
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E5B18
+MOD05_021E5B18: ; 0x021E5B18
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r4, #4
+ bl MOD05_021F52C8
+ add r0, r4, #0
+ add r4, #0x28
+ add r0, #0x14
+ add r1, r4, #0
+ bl MOD05_021F5358
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E5B30
+MOD05_021E5B30: ; 0x021E5B30
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ ldr r0, [r0, #0x3c]
+ add r5, r1, #0
+ mov r1, #8
+ add r4, r3, #0
+ str r0, [sp, #8]
+ bl MOD05_021E4C08
+ str r0, [sp, #0xc]
+ mov r0, #2
+ lsl r1, r5, #0x10
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ mov r0, #0xa
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x14]
+ lsl r0, r4, #0x10
+ str r0, [sp, #0x18]
+ add r0, sp, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, _021E5B78 ; =UNK05_021F768C
+ add r2, sp, #0x10
+ mov r3, #0
+ bl MOD05_021E4DC4
+ ldr r0, _021E5B7C ; =0x00000609
+ bl FUN_020054C8
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_021E5B78: .word UNK05_021F768C
+_021E5B7C: .word 0x00000609
+
+ thumb_func_start MOD05_021E5B80
+MOD05_021E5B80: ; 0x021E5B80
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0206475C
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ mov r2, #1
+ str r1, [r5, #4]
+ str r0, [r5, #8]
+ ldr r0, [r5, #4]
+ mov r1, #0x90
+ mov r3, #0
+ bl MOD05_021E4BE8
+ add r4, r0, #0
+ str r4, [r5]
+ ldr r0, [r5, #4]
+ add r1, r4, #4
+ bl MOD05_021E5294
+ ldr r2, [r5, #8]
+ add r0, r4, #4
+ ldr r1, [r2, #0x18]
+ ldr r2, [r2, #0xc]
+ bl FUN_020BB8D0
+ str r0, [r4]
+ ldr r3, [r5, #8]
+ ldr r1, [r3, #0x18]
+ ldr r2, [r3, #0xc]
+ ldr r3, [r3, #0x10]
+ bl FUN_020B8110
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ add r0, #0x18
+ add r1, r1, #4
+ bl MOD05_021F5400
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0x18
+ bl FUN_020B7EFC
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ add r4, #0x18
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #8]
+ add r0, r4, #0
+ bl MOD05_021F54D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD05_021E5BF8
+MOD05_021E5BF8: ; 0x021E5BF8
+ push {r4, lr}
+ ldr r4, [r1]
+ ldr r1, [r4]
+ add r0, r4, #4
+ bl thunk_FUN_020ae84c
+ add r0, r4, #0
+ bl MOD05_021E4C00
+ pop {r4, pc}
+
+ thumb_func_start MOD05_021E5C0C
+MOD05_021E5C0C: ; 0x021E5C0C
+ push {r4, lr}
+ ldr r1, [r1]
+ ldr r2, [r1]
+ ldr r3, [r1, #0x14]
+ ldr r2, [r2, #8]
+ ldrh r2, [r2, #4]
+ lsl r4, r2, #0xc
+ mov r2, #1
+ lsl r2, r2, #0xc
+ add r2, r3, r2
+ str r2, [r1, #0x14]
+ cmp r2, r4
+ ble _021E5C2C
+ bl MOD05_021E4DE4
+ pop {r4, pc}
+_021E5C2C:
+ ldr r0, [r1]
+ str r2, [r0]
+ pop {r4, pc}
+ .balign 4, 0
+
+ thumb_func_start MOD05_021E5C34
+MOD05_021E5C34: ; 0x021E5C34
+ push {r3, r4, r5, lr}
+ sub sp, #0x48
+ ldr r4, [r1]
+ ldr r5, _021E5C88 ; =UNK05_021F76A0
+ add r3, sp, #0x24
+ mov r2, #4
+_021E5C40:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021E5C40
+ ldr r0, [r5]
+ str r0, [r3]
+ 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
+ add r0, r4, #0
+ add r1, r4, #0
+ add r4, #0x78
+ add r0, #0x18
+ add r1, #0x6c
+ add r2, sp, #0x24
+ add r3, r4, #0
+ bl FUN_0201B26C
+ add sp, #0x48
+ pop {r3, r4, r5, pc}
+ nop
+_021E5C88: .word UNK05_021F76A0
+
+ .section .rodata
+
+ .global UNK05_021F768C
+UNK05_021F768C: ; 0x021F768C
+ .word 0x0000000C, MOD05_021E5B80, MOD05_021E5BF8, MOD05_021E5C0C
+ .word MOD05_021E5C34
+
+ .global UNK05_021F76A0
+UNK05_021F76A0: ; 0x021F76A0
+ .word 0x00001000, 0x00000000, 0x00000000, 0x00000000
+ .word 0x00001000, 0x00000000, 0x00000000, 0x00000000
+ .word 0x00001000