summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-12 15:55:46 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-12 15:55:46 -0400
commit9c63afbeb9e5516ff99d86ca03b8ea4c88891861 (patch)
tree1eeec90c132f89f9704b526e8ca0ca6c4d04b040 /arm9/modules
parent6c8216cd6f18a8365c4787fb7416b8202ca80785 (diff)
Disassemble module 60
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/05/asm/module_05.s4
-rw-r--r--arm9/modules/60/asm/module_60.s1491
2 files changed, 1493 insertions, 2 deletions
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 9b34c034..cbfe382b 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -9489,7 +9489,7 @@ MOD05_021DBEA0: ; 0x021DBEA0
mov r1, #2
bl HandleLoadOverlay
add r0, r4, #0
- bl FUN_02254A68
+ bl MOD51_02254A68
add r4, #0x80
str r0, [r4]
pop {r4, pc}
@@ -9515,7 +9515,7 @@ MOD05_021DBECC: ; 0x021DBECC
push {r3, lr}
add r0, #0x80
ldr r0, [r0]
- bl FUN_02254AB8
+ bl MOD51_02254AB8
ldr r0, _021DBEE0 ; =SDK_OVERLAY_MODULE_51_ID
bl UnloadOverlayByID
pop {r3, pc}
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
new file mode 100644
index 00000000..6318e002
--- /dev/null
+++ b/arm9/modules/60/asm/module_60.s
@@ -0,0 +1,1491 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD60_021D74E0
+MOD60_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0200628C
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x26
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0xad
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x26
+ bl FUN_02006268
+ mov r2, #0xad
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_02024FD8
+ ldrh r1, [r4, #0x18]
+ mov r2, #0xf
+ lsl r0, r0, #0x10
+ bic r1, r2
+ lsr r2, r0, #0x10
+ mov r0, #0xf
+ and r0, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_0202502C
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x40
+ lsr r0, r0, #0x19
+ bic r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025048
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025010
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1e
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x30
+ lsr r0, r0, #0x1a
+ bic r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025064
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1e
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D75A8 ; =0xFFFFFCFF
+ lsr r0, r0, #0x16
+ and r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025084
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1b
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D75AC ; =0xFFFF83FF
+ lsr r0, r0, #0x11
+ and r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ mov r0, #0x26
+ str r0, [r4]
+ str r5, [r4, #0x1c]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D75A8: .word 0xFFFFFCFF
+_021D75AC: .word 0xFFFF83FF
+ thumb_func_end MOD60_021D74E0
+
+ thumb_func_start MOD60_021D75B0
+MOD60_021D75B0: ; 0x021D75B0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r0, #1
+ bne _021D7680
+ ldrh r1, [r4, #0x18]
+ mov r0, #0xf
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0x5e
+ ldrh r2, [r0]
+ mov r0, #0xf
+ and r2, r0
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x40
+ add r0, #0xf7
+ bic r1, r2
+ add r2, r4, #0
+ add r2, #0xb2
+ ldrh r2, [r2]
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x19
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r0, [r4, r0]
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x80
+ lsl r0, r0, #0x1f
+ bic r1, r2
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x18]
+ mov r0, #0x30
+ bic r1, r0
+ ldr r0, _021D76AC ; =0x0000015A
+ ldrh r2, [r4, r0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1a
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D76B0 ; =0xFFFFFCFF
+ and r1, r2
+ add r2, r0, #0
+ add r2, #0x54
+ ldrh r2, [r4, r2]
+ add r0, #0xa8
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x16
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r0, [r4, r0]
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D76B4 ; =0xFFFF83FF
+ lsl r0, r0, #0x1b
+ and r1, r2
+ lsr r0, r0, #0x11
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bl FUN_02024FE0
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1f
+ bl FUN_02025034
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1f
+ bl FUN_02025050
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1e
+ bl FUN_02025018
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1e
+ bl FUN_0202506C
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1b
+ bl FUN_0202508C
+ b _021D769A
+_021D7680:
+ cmp r0, #2
+ bne _021D769A
+ ldrh r0, [r4, #0x18]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ bl FUN_02004D60
+ ldrh r1, [r4, #0x18]
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1e
+ bl FUN_02024F9C
+_021D769A:
+ add r0, r5, #0
+ bl FUN_0200627C
+ ldr r0, [r4]
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D76AC: .word 0x0000015A
+_021D76B0: .word 0xFFFFFCFF
+_021D76B4: .word 0xFFFF83FF
+ thumb_func_end MOD60_021D75B0
+
+ thumb_func_start MOD60_021D76B8
+MOD60_021D76B8: ; 0x021D76B8
+ push {r3, r4, lr}
+ sub sp, #0xc
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #4
+ bhi _021D77A0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D76D4: ; jump table
+ .short _021D76DE - _021D76D4 - 2 ; case 0
+ .short _021D7706 - _021D76D4 - 2 ; case 1
+ .short _021D7714 - _021D76D4 - 2 ; case 2
+ .short _021D777E - _021D76D4 - 2 ; case 3
+ .short _021D778C - _021D76D4 - 2 ; case 4
+_021D76DE:
+ bl MOD60_021D7834
+ cmp r0, #0
+ bne _021D76EC
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D76EC:
+ mov r3, #0
+ str r3, [r4, #0xc]
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ bl FUN_0200E1D0
+ b _021D77A0
+_021D7706:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D77A0
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D7714:
+ ldr r0, _021D77AC ; =0x021C48B8
+ mov r1, #1
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _021D773C
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ cmp r1, #6
+ bne _021D773C
+ ldr r0, _021D77B0 ; =0x0000061B
+ bl FUN_020054C8
+ ldr r1, [r4, #0x10]
+ mov r0, #3
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ str r0, [r4, #0x10]
+ b _021D774E
+_021D773C:
+ mov r1, #2
+ tst r0, r1
+ beq _021D774E
+ ldr r2, [r4, #0x10]
+ mov r0, #3
+ bic r2, r0
+ add r0, r2, #0
+ orr r0, r1
+ str r0, [r4, #0x10]
+_021D774E:
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ beq _021D7772
+ mov r1, #0
+ str r1, [r4, #0xc]
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ b _021D77A0
+_021D7772:
+ add r0, r4, #0
+ bl MOD60_021D801C
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D777E:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D77A0
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D778C:
+ bl MOD60_021D78E8
+ cmp r0, #0
+ beq _021D779A
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D779A:
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D77A0:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D77AC: .word 0x021C48B8
+_021D77B0: .word 0x0000061B
+ thumb_func_end MOD60_021D76B8
+
+ thumb_func_start MOD60_021D77B4
+MOD60_021D77B4: ; 0x021D77B4
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D77D0 ; =0x021D8140
+ add r3, sp, #0
+ mov r2, #5
+_021D77BE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D77BE
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D77D0: .word 0x021D8140
+ thumb_func_end MOD60_021D77B4
+
+ thumb_func_start MOD60_021D77D4
+MOD60_021D77D4: ; 0x021D77D4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1f
+ beq _021D7804
+ ldr r2, _021D7824 ; =0x00000202
+ mov r1, #1
+ ldrh r0, [r4, r2]
+ add r2, #0x39
+ mov r3, #0xf
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200CD68
+ ldr r1, [r4, #0x10]
+ ldr r0, _021D7828 ; =0xFFDFFFFF
+ and r0, r1
+ str r0, [r4, #0x10]
+_021D7804:
+ bl FUN_0200BC30
+ bl FUN_020AEEB8
+ ldr r0, [r4, #0x14]
+ bl FUN_0201AB60
+ ldr r3, _021D782C ; =0x027E0000
+ ldr r1, _021D7830 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021D7824: .word 0x00000202
+_021D7828: .word 0xFFDFFFFF
+_021D782C: .word 0x027E0000
+_021D7830: .word 0x00003FF8
+ thumb_func_end MOD60_021D77D4
+
+ thumb_func_start MOD60_021D7834
+MOD60_021D7834: ; 0x021D7834
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _021D7848
+ cmp r1, #1
+ beq _021D7888
+ cmp r1, #2
+ beq _021D78A2
+ b _021D78D0
+_021D7848:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D78DC ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D78E0 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ bl MOD60_021D77B4
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ add r0, r4, #0
+ bl MOD60_021D7990
+ b _021D78D0
+_021D7888:
+ bl MOD60_021D7A40
+ ldr r3, [r4]
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0xce
+ bl FUN_0200A86C
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ bl MOD60_021D7DF8
+ b _021D78D0
+_021D78A2:
+ bl MOD60_021D7BA4
+ add r0, r4, #0
+ bl MOD60_021D7D18
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ bl FUN_02033F20
+ ldr r0, _021D78E4 ; =MOD60_021D77D4
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+_021D78D0:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D78DC: .word 0xFFFFE0FF
+_021D78E0: .word 0x04001000
+_021D78E4: .word MOD60_021D77D4
+ thumb_func_end MOD60_021D7834
+
+ thumb_func_start MOD60_021D78E8
+MOD60_021D78E8: ; 0x021D78E8
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _021D78F8
+ cmp r0, #1
+ beq _021D7946
+ b _021D7978
+_021D78F8:
+ bl FUN_0201C29C
+ ldr r0, [sp]
+ bl MOD60_021D7CD4
+ ldr r6, [sp]
+ mov r7, #0
+_021D7906:
+ add r0, r6, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D7928
+ add r5, r6, #0
+_021D7914:
+ ldr r0, [r5, #0x60]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _021D7914
+_021D7928:
+ add r7, r7, #1
+ add r6, #0x54
+ cmp r7, #7
+ blt _021D7906
+ ldr r0, [sp]
+ ldr r0, [r0, #0x20]
+ bl FUN_0200A8B8
+ ldr r0, [sp]
+ bl MOD60_021D7B98
+ ldr r0, [sp]
+ bl MOD60_021D7A14
+ b _021D7978
+_021D7946:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7988 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D798C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #8]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7978:
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0, #8]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7988: .word 0xFFFFE0FF
+_021D798C: .word 0x04001000
+ thumb_func_end MOD60_021D78E8
+
+ thumb_func_start MOD60_021D7990
+MOD60_021D7990: ; 0x021D7990
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x80
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_02016B94
+ add r3, sp, #0
+ ldr r4, _021D7A08 ; =0x021D8114
+ str r0, [r6, #0x14]
+ 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_02016BBC
+ ldr r4, _021D7A0C ; =0x021D8168
+ add r3, sp, #0x10
+ mov r2, #0xe
+_021D79B8:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D79B8
+ ldr r5, _021D7A10 ; =0x021D8104
+ mov r7, #0
+ add r4, sp, #0x10
+_021D79C6:
+ ldr r1, [r5]
+ ldr r0, [r6, #0x14]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r1, [r5]
+ ldr r0, [r6, #0x14]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r7, r7, #1
+ add r4, #0x1c
+ add r5, r5, #4
+ cmp r7, #4
+ blt _021D79C6
+ mov r0, #0
+ ldr r3, [r6]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldr r3, [r6]
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ add sp, #0x80
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7A08: .word 0x021D8114
+_021D7A0C: .word 0x021D8168
+_021D7A10: .word 0x021D8104
+ thumb_func_end MOD60_021D7990
+
+ thumb_func_start MOD60_021D7A14
+MOD60_021D7A14: ; 0x021D7A14
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD60_021D7A14
+
+ thumb_func_start MOD60_021D7A40
+MOD60_021D7A40: ; 0x021D7A40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x49
+ bl FUN_02006670
+ add r4, r0, #0
+ mov r0, #0x49
+ mov r1, #1
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020169D8
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_02006774
+ add r0, r6, #0
+ add r1, sp, #0x20
+ bl FUN_020B0088
+ ldr r3, [sp, #0x20]
+ mov r1, #0
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r3, #0x10]
+ bl FUN_02017E14
+ ldr r3, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r3, #0x10]
+ mov r1, #4
+ bl FUN_02017E14
+ add r0, r6, #0
+ bl FUN_02016A18
+ mov r0, #0x49
+ mov r1, #0
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020169D8
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_02006774
+ add r0, r6, #0
+ add r1, sp, #0x1c
+ bl FUN_020B0138
+ ldr r1, [sp, #0x1c]
+ mov r0, #0
+ ldr r1, [r1, #0xc]
+ mov r2, #0x20
+ add r3, r0, #0
+ bl FUN_02017FB4
+ ldr r1, [sp, #0x1c]
+ mov r0, #4
+ ldr r1, [r1, #0xc]
+ mov r2, #0x20
+ mov r3, #0
+ bl FUN_02017FB4
+ add r0, r6, #0
+ bl FUN_02016A18
+ mov r0, #0x49
+ mov r1, #2
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_02016998
+ str r0, [r5, #0x24]
+ ldr r2, [r5, #0x24]
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02006774
+ add r1, r5, #0
+ ldr r0, [r5, #0x24]
+ add r1, #0x28
+ bl FUN_020B0180
+ add r0, r4, #0
+ bl FUN_020066F4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ mov r2, #1
+ bl FUN_02018540
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ mov r1, #4
+ mov r2, #1
+ bl FUN_02018540
+ ldr r0, [r5, #0x28]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldrh r2, [r0]
+ add r3, r1, #0
+ lsl r2, r2, #0x15
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ add r2, r1, #0
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x14]
+ bl FUN_020181EC
+ mov r2, #3
+ add r3, r2, #0
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ sub r3, #0x1b
+ bl FUN_020179E0
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x14]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD60_021D7A40
+
+ thumb_func_start MOD60_021D7B98
+MOD60_021D7B98: ; 0x021D7B98
+ ldr r3, _021D7BA0 ; =0x02016A19
+ ldr r0, [r0, #0x24]
+ bx r3
+ nop
+_021D7BA0: .word 0x02016A19
+ thumb_func_end MOD60_021D7B98
+
+ thumb_func_start MOD60_021D7BA4
+MOD60_021D7BA4: ; 0x021D7BA4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ mov r2, #1
+ ldr r0, [r4, #0x14]
+ add r1, #0x2c
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x22
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ mov r2, #1
+ ldr r0, [r4, #0x14]
+ add r1, #0x3c
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021D7CC8 ; =0x000001C6
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x14]
+ add r1, #0x4c
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r2, _021D7CCC ; =0x00000232
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldrh r0, [r4, #0x18]
+ ldr r2, _021D7CD0 ; =0x0000023B
+ mov r1, #1
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r3, #0xf
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200CD68
+ mov r1, #0x1a
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ mov r1, #0x1a
+ ldr r2, [r4]
+ mov r0, #4
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ mov r1, #6
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #6
+ bl FUN_02002EEC
+ mov r1, #6
+ ldr r2, [r4]
+ mov r0, #4
+ lsl r1, r1, #6
+ bl FUN_02002EEC
+ add r0, r4, #0
+ add r0, #0x2c
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x3c
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x4c
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x4c
+ bl FUN_020192B8
+ add r0, r4, #0
+ add r0, #0x3c
+ bl FUN_020192B8
+ add r0, r4, #0
+ add r0, #0x2c
+ bl FUN_020192B8
+ add r0, r4, #0
+ ldr r2, _021D7CCC ; =0x00000232
+ add r0, #0x3c
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ add r4, #0x4c
+ ldr r2, _021D7CD0 ; =0x0000023B
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xf
+ bl FUN_0200D0BC
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_021D7CC8: .word 0x000001C6
+_021D7CCC: .word 0x00000232
+_021D7CD0: .word 0x0000023B
+ thumb_func_end MOD60_021D7BA4
+
+ thumb_func_start MOD60_021D7CD4
+MOD60_021D7CD4: ; 0x021D7CD4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, #0x3c
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r0, r5, #0
+ add r0, #0x4c
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r6, #0
+ add r5, #0x2c
+ add r7, r6, #0
+_021D7CF0:
+ lsl r4, r6, #4
+ add r0, r5, r4
+ bl FUN_02019570
+ add r0, r5, r4
+ add r1, r7, #0
+ bl FUN_02019620
+ add r0, r5, r4
+ bl FUN_020192B8
+ add r0, r5, r4
+ bl FUN_02019178
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #3
+ blo _021D7CF0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD60_021D7CD4
+
+ thumb_func_start MOD60_021D7D18
+MOD60_021D7D18: ; 0x021D7D18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r1, [r6]
+ mov r0, #0x28
+ bl FUN_020219F4
+ add r5, r0, #0
+ ldr r0, [r6, #0x20]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0
+ ldr r0, _021D7DEC ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x2c
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A4C
+ ldr r1, _021D7DF0 ; =0x020ECAC0
+ ldr r0, [r6, #0x20]
+ ldrb r1, [r1]
+ add r2, r5, #0
+ sub r1, #9
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D7DF4 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r1, [sp, #0xc]
+ add r0, #0x4c
+ mov r1, #1
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ add r7, r6, #0
+ mov r4, #0
+ add r7, #0x3c
+_021D7D7E:
+ add r0, r5, #0
+ bl FUN_02021A4C
+ ldr r0, [r6, #0x20]
+ add r1, r4, #3
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ lsl r0, r4, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7DF4 ; =0x0001020F
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #7
+ blo _021D7D7E
+ mov r4, #0
+_021D7DB6:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD60_021D7EA4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #7
+ blo _021D7DB6
+ add r0, r6, #0
+ add r0, #0x2c
+ bl FUN_020191D0
+ add r0, r6, #0
+ add r0, #0x3c
+ bl FUN_020191D0
+ add r6, #0x4c
+ add r0, r6, #0
+ bl FUN_020191D0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7DEC: .word 0x00010200
+_021D7DF0: .word 0x020ECAC0
+_021D7DF4: .word 0x0001020F
+ thumb_func_end MOD60_021D7D18
+
+ thumb_func_start MOD60_021D7DF8
+MOD60_021D7DF8: ; 0x021D7DF8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r5, #0
+ add r6, r0, #0
+ str r5, [sp, #4]
+_021D7E02:
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #4]
+ lsl r7, r0, #2
+ ldr r0, _021D7E9C ; =0x021D8124
+ mov r1, #0x54
+ mul r1, r2
+ add r1, r6, r1
+ str r1, [sp]
+ ldr r0, [r0, r7]
+ add r1, #0x5c
+ mov r4, #0
+ strh r0, [r1]
+ cmp r0, #0
+ ble _021D7E44
+_021D7E1E:
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ add r1, r5, #0
+ lsr r5, r0, #0x10
+ ldr r0, [r6, #0x20]
+ add r1, #0xa
+ bl FUN_0200A914
+ ldr r1, [sp]
+ lsl r2, r4, #2
+ add r1, r1, r2
+ str r0, [r1, #0x60]
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _021D7E9C ; =0x021D8124
+ ldr r0, [r0, r7]
+ cmp r4, r0
+ blt _021D7E1E
+_021D7E44:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ cmp r0, #7
+ blo _021D7E02
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, r6, #0
+ add r0, #0x5e
+ strh r1, [r0]
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1f
+ add r0, r6, #0
+ add r0, #0xb2
+ strh r1, [r0]
+ ldrh r0, [r6, #0x18]
+ ldr r1, _021D7EA0 ; =0x00000106
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ strh r0, [r6, r1]
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x1a
+ lsr r2, r0, #0x1e
+ add r0, r1, #0
+ add r0, #0x54
+ strh r2, [r6, r0]
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x16
+ lsr r2, r0, #0x1e
+ add r0, r1, #0
+ add r0, #0xa8
+ strh r2, [r6, r0]
+ ldrh r0, [r6, #0x18]
+ add r1, #0xfc
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ strh r0, [r6, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7E9C: .word 0x021D8124
+_021D7EA0: .word 0x00000106
+ thumb_func_end MOD60_021D7DF8
+
+ thumb_func_start MOD60_021D7EA4
+MOD60_021D7EA4: ; 0x021D7EA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ lsl r0, r1, #4
+ str r0, [sp, #0x18]
+ mov r0, #6
+ str r1, [sp, #0x14]
+ lsl r0, r0, #6
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r3, _021D8010 ; =0x021D80FC
+ ldr r2, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ ldrsb r2, [r3, r2]
+ ldr r3, [sp, #0x18]
+ add r0, #0x3c
+ add r2, #0x64
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ ldr r0, [sp, #0x14]
+ cmp r0, #5
+ bne _021D7F26
+ add r2, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0x54
+ str r0, [sp]
+ mov r0, #0xff
+ mul r2, r1
+ ldr r3, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r0, _021D8014 ; =0x0003040F
+ add r3, r3, r2
+ str r0, [sp, #8]
+ mov r1, #0
+ add r2, r3, #0
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0xc]
+ add r2, #0x5e
+ ldrh r2, [r2]
+ add r0, #0x3c
+ lsl r2, r2, #2
+ add r2, r3, r2
+ ldr r2, [r2, #0x60]
+ mov r3, #0x94
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ add r0, #0x3c
+ bl FUN_020191D0
+ ldr r0, [sp, #0x10]
+ ldr r1, [r0, #0x10]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ orr r1, r0
+ ldr r0, [sp, #0x10]
+ add sp, #0x24
+ str r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_021D7F26:
+ cmp r0, #3
+ bne _021D7F3C
+ mov r1, #0x54
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1
+ add r0, #0x5e
+ ldrh r0, [r0]
+ bl FUN_02004D60
+ b _021D7F54
+_021D7F3C:
+ cmp r0, #4
+ bne _021D7F54
+ ldr r1, [sp, #0x14]
+ mov r2, #0x54
+ mul r2, r1
+ ldr r1, [sp, #0x10]
+ mov r0, #0
+ add r1, r1, r2
+ add r1, #0x5e
+ ldrh r1, [r1]
+ bl FUN_02024F9C
+_021D7F54:
+ ldr r0, [sp, #0x14]
+ mov r1, #0x54
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ mov r7, #0
+ add r5, r0, r1
+ add r0, r5, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ add r4, r7, #0
+ cmp r0, #0
+ bls _021D8002
+ bls _021D8002
+ ldr r1, _021D8010 ; =0x021D80FC
+ ldr r0, [sp, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x20]
+ add r0, #0x3c
+ str r0, [sp, #0x20]
+_021D7F7E:
+ add r0, r5, #0
+ add r0, #0x5e
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _021D7F8C
+ ldr r0, _021D8014 ; =0x0003040F
+ b _021D7F8E
+_021D7F8C:
+ ldr r0, _021D8018 ; =0x0001020F
+_021D7F8E:
+ ldr r1, [sp, #0x14]
+ cmp r1, #4
+ bne _021D7FC8
+ lsl r1, r4, #2
+ add r6, r5, r1
+ ldr r1, [sp, #0x18]
+ add r3, r7, #0
+ str r1, [sp]
+ mov r1, #0xff
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x20]
+ ldr r2, [r6, #0x60]
+ mov r1, #0
+ add r3, #0x64
+ bl FUN_0201BDE0
+ mov r0, #0
+ ldr r1, [r6, #0x60]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r0, #0xc
+ add r0, r7, r0
+ lsl r0, r0, #0x18
+ asr r7, r0, #0x18
+ b _021D7FF2
+_021D7FC8:
+ ldr r1, [sp, #0x18]
+ lsl r2, r4, #2
+ str r1, [sp]
+ mov r1, #0xff
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0
+ str r0, [sp, #0xc]
+ add r2, r5, r2
+ ldr r6, [sp, #0x1c]
+ add r3, r1, #0
+ ldrsb r6, [r6, r3]
+ mov r3, #0x30
+ mul r3, r4
+ add r3, #0x64
+ ldr r0, [sp, #0x20]
+ ldr r2, [r2, #0x60]
+ add r3, r6, r3
+ bl FUN_0201BDE0
+_021D7FF2:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ cmp r4, r0
+ blo _021D7F7E
+_021D8002:
+ ldr r0, [sp, #0x10]
+ add r0, #0x3c
+ str r0, [sp, #0x10]
+ bl FUN_020191D0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8010: .word 0x021D80FC
+_021D8014: .word 0x0003040F
+_021D8018: .word 0x0001020F
+ thumb_func_end MOD60_021D7EA4
+
+ thumb_func_start MOD60_021D801C
+MOD60_021D801C: ; 0x021D801C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ add r1, r5, #0
+ lsl r0, r0, #0x1b
+ lsr r2, r0, #0x1d
+ mov r0, #0x54
+ add r1, #0x5c
+ mul r0, r2
+ add r4, r1, r0
+ cmp r2, #6
+ beq _021D8080
+ ldr r0, _021D80F8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x10
+ tst r0, r1
+ beq _021D805C
+ ldrh r0, [r4, #2]
+ ldrh r1, [r4]
+ add r0, r0, #1
+ bl _s32_div_f
+ strh r1, [r4, #2]
+ ldr r1, [r5, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD60_021D7EA4
+ b _021D8080
+_021D805C:
+ mov r0, #0x20
+ tst r0, r1
+ beq _021D8080
+ ldrh r1, [r4]
+ ldrh r0, [r4, #2]
+ add r0, r0, r1
+ sub r0, r0, #1
+ bl _s32_div_f
+ strh r1, [r4, #2]
+ ldr r1, [r5, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD60_021D7EA4
+_021D8080:
+ ldr r0, _021D80F8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x40
+ tst r0, r1
+ beq _021D80BE
+ ldr r0, [r5, #0x10]
+ mov r1, #7
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1d
+ add r0, r0, #6
+ bl _u32_div_f
+ ldr r2, [r5, #0x10]
+ mov r0, #0x1c
+ bic r2, r0
+ lsl r0, r1, #0x1d
+ add r3, r2, #0
+ lsr r0, r0, #0x1b
+ orr r3, r0
+ str r3, [r5, #0x10]
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1d
+ lsl r3, r3, #4
+ add r3, #0x18
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ mov r2, #3
+ neg r3, r3
+ bl FUN_0201AEE4
+ pop {r3, r4, r5, pc}
+_021D80BE:
+ mov r0, #0x80
+ tst r0, r1
+ beq _021D80F6
+ ldr r0, [r5, #0x10]
+ mov r1, #7
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1d
+ add r0, r0, #1
+ bl _u32_div_f
+ ldr r2, [r5, #0x10]
+ mov r0, #0x1c
+ bic r2, r0
+ lsl r0, r1, #0x1d
+ add r3, r2, #0
+ lsr r0, r0, #0x1b
+ orr r3, r0
+ str r3, [r5, #0x10]
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1d
+ lsl r3, r3, #4
+ add r3, #0x18
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ mov r2, #3
+ neg r3, r3
+ bl FUN_0201AEE4
+_021D80F6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D80F8: .word 0x021C48B8
+ thumb_func_end MOD60_021D801C
+
+ .section .rodata
+ ; 0x021D80FC
+ .incbin "baserom.nds", 0x2AD81C, 0xDC