summaryrefslogtreecommitdiff
path: root/arm9/modules/63/asm/mod63_021DAE5C.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/63/asm/mod63_021DAE5C.s')
-rw-r--r--arm9/modules/63/asm/mod63_021DAE5C.s794
1 files changed, 794 insertions, 0 deletions
diff --git a/arm9/modules/63/asm/mod63_021DAE5C.s b/arm9/modules/63/asm/mod63_021DAE5C.s
new file mode 100644
index 00000000..81d1816a
--- /dev/null
+++ b/arm9/modules/63/asm/mod63_021DAE5C.s
@@ -0,0 +1,794 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD63_021DAE5C
+MOD63_021DAE5C: ; 0x021DAE5C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021DAE88 ; =MOD63_021DBEAC
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_0201D040
+ mov r0, #1
+ mov r1, #0x4c
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DAE88: .word MOD63_021DBEAC
+ thumb_func_end MOD63_021DAE5C
+
+ thumb_func_start MOD63_021DAE8C
+MOD63_021DAE8C: ; 0x021DAE8C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r6, r2, #0
+ str r1, [sp, #0xc]
+ mov r2, #0x4b
+ str r1, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r2, #0xc
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, r2]
+ add r2, r1, #0
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x28]
+ add r0, r6, #0
+ bl FUN_02008AA4
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r4]
+ str r6, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ mov r0, #1
+ str r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ strh r1, [r4, #0x20]
+ mov r0, #1
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ mov r0, #0x4c
+ str r0, [r4, #0x2c]
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAE8C
+
+ thumb_func_start MOD63_021DAEF8
+MOD63_021DAEF8: ; 0x021DAEF8
+ push {r4, lr}
+ mov r1, #0x7d
+ mov r0, #0x4c
+ lsl r1, r1, #2
+ bl AllocFromHeap
+ mov r2, #0x7d
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl memset
+ add r0, r4, #0
+ bl MOD63_021DAFEC
+ add r0, r4, #0
+ bl MOD63_021DB150
+ add r0, r4, #0
+ pop {r4, pc}
+ thumb_func_end MOD63_021DAEF8
+
+ thumb_func_start MOD63_021DAF20
+MOD63_021DAF20: ; 0x021DAF20
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x4c
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0xc
+ add r6, r5, #0
+ mul r6, r0
+ mov r0, #0x4c
+ add r1, r6, #0
+ bl AllocFromHeap
+ mov r1, #0
+ add r2, r6, #0
+ str r0, [r4, #4]
+ bl memset
+ str r5, [r4]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD63_021DAF20
+
+ thumb_func_start MOD63_021DAF4C
+MOD63_021DAF4C: ; 0x021DAF4C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _021DAF72
+ add r4, r6, #0
+_021DAF5A:
+ ldr r0, [r5, #4]
+ add r0, r0, r4
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _021DAF68
+ bl FUN_0200CAB4
+_021DAF68:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, r0
+ blt _021DAF5A
+_021DAF72:
+ ldr r0, [r5, #4]
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD63_021DAF4C
+
+ thumb_func_start MOD63_021DAF80
+MOD63_021DAF80: ; 0x021DAF80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r4, r0
+ blt _021DAF90
+ bl ErrorHandling
+_021DAF90:
+ mov r0, #0xc
+ ldr r1, [r5, #4]
+ mul r0, r4
+ add r0, r1, r0
+ add r0, r0, #4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DAF80
+
+ thumb_func_start MOD63_021DAF9C
+MOD63_021DAF9C: ; 0x021DAF9C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD63_021DB108
+ mov r6, #0x73
+ mov r4, #0
+ lsl r6, r6, #2
+_021DAFAA:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _021DAFB8
+ bl FUN_0200CAB4
+_021DAFB8:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021DAFAA
+ mov r6, #0x55
+ mov r4, #0
+ mov r7, #0xc
+ lsl r6, r6, #2
+_021DAFCA:
+ add r0, r4, #0
+ mul r0, r7
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _021DAFDA
+ bl FUN_0200CAB4
+_021DAFDA:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xa
+ blo _021DAFCA
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021DAF9C
+
+ thumb_func_start MOD63_021DAFEC
+MOD63_021DAFEC: ; 0x021DAFEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ add r7, r0, #0
+ add r3, r1, #0
+ ldr r0, _021DB0FC ; =0xFFCFFFEF
+ mov r1, #0x10
+ and r3, r0
+ orr r3, r1
+ str r3, [r2]
+ ldr r3, _021DB100 ; =0x04001000
+ ldr r2, [r3]
+ and r0, r2
+ orr r0, r1
+ str r0, [r3]
+ bl MOD63_021DAE5C
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x4c
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0xa
+ add r1, r7, #4
+ mov r2, #0x4c
+ bl FUN_02008C9C
+ ldr r4, _021DB104 ; =MOD63_021DBEBC
+ str r0, [r7]
+ mov r6, #0
+ add r5, r7, #0
+_021DB040:
+ ldrb r0, [r4]
+ add r1, r6, #0
+ mov r2, #0x4c
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _021DB040
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #4
+ bl FUN_02008F34
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #3
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ bl FUN_02008FEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #5
+ bl FUN_020090AC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #6
+ bl FUN_020090AC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ sub r1, #0xc
+ ldr r0, [r7, r1]
+ bl FUN_02009A50
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r7, r0]
+ bl FUN_02009CF0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DB0FC: .word 0xFFCFFFEF
+_021DB100: .word 0x04001000
+_021DB104: .word MOD63_021DBEBC
+ thumb_func_end MOD63_021DAFEC
+
+ thumb_func_start MOD63_021DB108
+MOD63_021DB108: ; 0x021DB108
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009C0C
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02009E04
+ mov r6, #0x4b
+ mov r4, #0
+ lsl r6, r6, #2
+_021DB126:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02008E2C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021DB126
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB108
+
+ thumb_func_start MOD63_021DB150
+MOD63_021DB150: ; 0x021DB150
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r6, #0
+ add r5, r7, #0
+_021DB15C:
+ add r0, r7, #0
+ add r1, sp, #0
+ add r2, sp, #0x30
+ bl MOD63_021DAE8C
+ add r0, sp, #0
+ str r4, [sp, #8]
+ str r4, [sp, #0xc]
+ bl FUN_0201FE94
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ add r6, r6, #1
+ add r4, r4, r0
+ add r5, #0xc
+ cmp r6, #0xa
+ blt _021DB15C
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB150
+
+ thumb_func_start MOD63_021DB1A0
+MOD63_021DB1A0: ; 0x021DB1A0
+ ldr r3, _021DB1A8 ; =FUN_0201FDEC
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB1A8: .word FUN_0201FDEC
+ thumb_func_end MOD63_021DB1A0
+
+ thumb_func_start MOD63_021DB1AC
+MOD63_021DB1AC: ; 0x021DB1AC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ cmp r1, #0xb4
+ bne _021DB1CE
+ mov r2, #3
+ str r2, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD63_021DB1F8
+ b _021DB1E8
+_021DB1CE:
+ ldr r0, _021DB1F4 ; =0x0000011D
+ cmp r1, r0
+ bne _021DB1E8
+ mov r2, #3
+ add r0, #0xb7
+ str r2, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD63_021DB1F8
+_021DB1E8:
+ add r0, r4, #0
+ bl MOD63_021DB1A0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021DB1F4: .word 0x0000011D
+ thumb_func_end MOD63_021DB1AC
+
+ thumb_func_start MOD63_021DB1F8
+MOD63_021DB1F8: ; 0x021DB1F8
+ push {r4, lr}
+ add r4, r0, #0
+ strb r2, [r4]
+ ldr r2, _021DB228 ; =0xFFFFFFF8
+ strb r3, [r4, #1]
+ add r2, sp
+ ldrb r0, [r2, #0x10]
+ strb r0, [r4, #2]
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4, #3]
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ ldrb r0, [r2, #0x14]
+ add r1, r4, #0
+ mov r2, #0xa
+ strb r0, [r4, #5]
+ ldr r0, _021DB22C ; =MOD63_021DB2F8
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_021DB228: .word 0xFFFFFFF8
+_021DB22C: .word MOD63_021DB2F8
+ thumb_func_end MOD63_021DB1F8
+
+ thumb_func_start MOD63_021DB230
+MOD63_021DB230: ; 0x021DB230
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ str r0, [sp]
+ cmp r2, #0
+ bne _021DB240
+ mov r7, #0x40
+ b _021DB242
+_021DB240:
+ mov r7, #0x20
+_021DB242:
+ mov r5, #0
+ cmp r6, #0
+ bls _021DB2BE
+_021DB248:
+ ldr r0, [sp]
+ mov r1, #0xa
+ bl MOD63_021DB2C8
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x19
+ sub r2, r2, r1
+ mov r0, #0x19
+ ror r2, r0
+ add r0, r1, r2
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1a
+ sub r2, r2, r1
+ mov r0, #0x1a
+ ror r2, r0
+ add r0, r1, r2
+ add r0, r7, r0
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ bl FUN_02020044
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _021DB2C4 ; =MOD63_021DB334
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _021DB248
+_021DB2BE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB2C4: .word MOD63_021DB334
+ thumb_func_end MOD63_021DB230
+
+ thumb_func_start MOD63_021DB2C8
+MOD63_021DB2C8: ; 0x021DB2C8
+ push {r4, lr}
+ mov r4, #0
+ mov r2, #0xc
+_021DB2CE:
+ add r1, r4, #0
+ mul r1, r2
+ add r3, r0, r1
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ bne _021DB2E6
+ mov r0, #1
+ strb r0, [r3]
+ mov r0, #0
+ strb r0, [r3, #1]
+ add r0, r3, #0
+ pop {r4, pc}
+_021DB2E6:
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ cmp r4, #0xa
+ blo _021DB2CE
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD63_021DB2C8
+
+ thumb_func_start MOD63_021DB2F8
+MOD63_021DB2F8: ; 0x021DB2F8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #4]
+ add r5, r0, #0
+ add r0, r1, #1
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #1]
+ cmp r1, r0
+ blo _021DB330
+ ldrb r1, [r4]
+ ldrb r2, [r4, #5]
+ ldr r0, [r4, #0xc]
+ bl MOD63_021DB230
+ mov r0, #0
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ ldrb r1, [r4, #3]
+ ldrb r0, [r4, #2]
+ cmp r1, r0
+ blo _021DB330
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #8]
+_021DB330:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB2F8
+
+ thumb_func_start MOD63_021DB334
+MOD63_021DB334: ; 0x021DB334
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ mov r0, #3
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0x50
+ blo _021DB388
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r1, #0
+ str r1, [r4, #8]
+ strb r1, [r4]
+ ldr r0, [r4, #4]
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020200A0
+_021DB388:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD63_021DB334
+
+ thumb_func_start MOD63_021DB38C
+MOD63_021DB38C: ; 0x021DB38C
+ ldr r3, _021DB394 ; =MOD63_021DB398
+ mov r1, #2
+ bx r3
+ nop
+_021DB394: .word MOD63_021DB398
+ thumb_func_end MOD63_021DB38C
+
+ thumb_func_start MOD63_021DB398
+MOD63_021DB398: ; 0x021DB398
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ add r7, r1, #0
+ str r0, [sp]
+ ldr r5, _021DB418 ; =0x00000000
+ beq _021DB414
+_021DB3A8:
+ ldr r0, [sp]
+ ldr r1, [r6]
+ bl MOD63_021DB2C8
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bl LCRandom
+ mov r1, #0xe0
+ bl _s32_div_f
+ add r1, #0xa
+ lsl r0, r1, #0xc
+ str r0, [sp, #4]
+ bl LCRandom
+ mov r1, #0x38
+ bl _s32_div_f
+ ldr r0, _021DB41C ; =0x0000013A
+ add r0, r1, r0
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ bl FUN_02020044
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _021DB420 ; =MOD63_021DB424
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r7
+ blo _021DB3A8
+_021DB414:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB418: .word 0x00000000
+_021DB41C: .word 0x0000013A
+_021DB420: .word MOD63_021DB424
+ thumb_func_end MOD63_021DB398
+
+ thumb_func_start MOD63_021DB424
+MOD63_021DB424: ; 0x021DB424
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #1]
+ add r1, r1, #1
+ strb r1, [r4, #1]
+ ldrb r1, [r4, #1]
+ cmp r1, #8
+ blo _021DB44C
+ bl FUN_0200CAB4
+ mov r1, #0
+ str r1, [r4, #8]
+ strb r1, [r4]
+ ldr r0, [r4, #4]
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020200A0
+_021DB44C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB424
+
+ .section .rodata
+
+ .global MOD63_021DBEAC
+MOD63_021DBEAC: ; 0x021DBEAC
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x4C, 0x00, 0x00, 0x00
+
+ .global MOD63_021DBEBC
+MOD63_021DBEBC: ; 0x021DBEBC
+ .byte 0x01, 0x01, 0x01, 0x01