summaryrefslogtreecommitdiff
path: root/arm9/modules/68/asm/module_68.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/68/asm/module_68.s')
-rw-r--r--arm9/modules/68/asm/module_68.s2461
1 files changed, 2461 insertions, 0 deletions
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
new file mode 100644
index 00000000..1c34783c
--- /dev/null
+++ b/arm9/modules/68/asm/module_68.s
@@ -0,0 +1,2461 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD68_021D74E0
+MOD68_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ 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, _021D75CC ; =0xFFFFE0FF
+ ldr r3, _021D75D0 ; =0x04001000
+ and r1, r0
+ str r1, [r2]
+ ldr r1, [r3]
+ and r0, r1
+ str r0, [r3]
+ add r0, r2, #0
+ mov r1, #0
+ add r0, #0x50
+ strh r1, [r0]
+ add r3, #0x50
+ strh r1, [r3]
+ mov r0, #3
+ mov r1, #0x24
+ lsr r2, r2, #9
+ bl FUN_0201681C
+ mov r1, #0x81
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x24
+ bl FUN_02006268
+ mov r2, #0x81
+ mov r1, #0
+ lsl r2, r2, #2
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ bl FUN_0200628C
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x24
+ bl FUN_02016B94
+ str r0, [r5]
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_02085274
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ mov r1, #0x24
+ bl FUN_02079A70
+ bl MOD_021D76A0
+ ldr r0, [r5]
+ bl MOD_021D76C0
+ add r0, r5, #0
+ bl MOD_021D77A4
+ bl MOD_021D7858
+ add r0, r5, #0
+ bl MOD_021D7870
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ add r0, r5, #0
+ bl MOD_021D7EEC
+ add r0, r5, #0
+ bl MOD_021D78C8
+ add r0, r5, #0
+ bl MOD_021D7D5C
+ add r0, r5, #0
+ bl MOD_021D80B4
+ add r0, r5, #0
+ bl MOD_021D8294
+ ldr r0, _021D75D4 ; =MOD_021D7680
+ add r1, r5, #0
+ bl FUN_02015F10
+ bl FUN_02033F20
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D75CC: .word 0xFFFFE0FF
+_021D75D0: .word 0x04001000
+_021D75D4: .word MOD_021D7680
+ thumb_func_end MOD68_021D74E0
+
+ thumb_func_start MOD_021D75D8
+MOD_021D75D8: ; 0x021D75D8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhi _021D7620
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D75F4: ; jump table
+ .short _021D75FC - _021D75F4 - 2 ; case 0
+ .short _021D7604 - _021D75F4 - 2 ; case 1
+ .short _021D760C - _021D75F4 - 2 ; case 2
+ .short _021D7614 - _021D75F4 - 2 ; case 3
+_021D75FC:
+ bl MOD_021D7D74
+ str r0, [r4]
+ b _021D7620
+_021D7604:
+ bl MOD_021D7D9C
+ str r0, [r4]
+ b _021D7620
+_021D760C:
+ bl MOD_021D7E84
+ str r0, [r4]
+ b _021D7620
+_021D7614:
+ bl MOD_021D7E78
+ cmp r0, #1
+ bne _021D7620
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7620:
+ add r0, r5, #0
+ bl MOD_021D806C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D75D8
+
+ thumb_func_start MOD_021D762C
+MOD_021D762C: ; 0x021D762C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r4, #4
+ bl MOD_021D78EC
+ ldr r0, [r4]
+ bl MOD_021D7774
+ bl FUN_0201CD04
+ add r0, r4, #0
+ bl MOD_021D78A8
+ add r0, r4, #0
+ bl MOD_021D80A8
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x24
+ bl FUN_020168D0
+ ldr r0, _021D767C ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D767C: .word 0x04000050
+ thumb_func_end MOD_021D762C
+
+ thumb_func_start MOD_021D7680
+MOD_021D7680: ; 0x021D7680
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ ldr r3, _021D7698 ; =0x027E0000
+ ldr r1, _021D769C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7698: .word 0x027E0000
+_021D769C: .word 0x00003FF8
+ thumb_func_end MOD_021D7680
+
+ thumb_func_start MOD_021D76A0
+MOD_021D76A0: ; 0x021D76A0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D76BC ; =0x021D892C
+ add r3, sp, #0
+ mov r2, #5
+_021D76AA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D76AA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D76BC: .word 0x021D892C
+ thumb_func_end MOD_021D76A0
+
+ thumb_func_start MOD_021D76C0
+MOD_021D76C0: ; 0x021D76C0
+ push {r4, r5, lr}
+ sub sp, #0x64
+ ldr r5, _021D7764 ; =0x021D88C8
+ add r3, sp, #0x54
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ bl MOD_021D7FD8
+ ldr r5, _021D7768 ; =0x021D8910
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D776C ; =0x021D88D8
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ mov r3, #8
+ bl FUN_0201AEE4
+ ldr r5, _021D7770 ; =0x021D88F4
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x24
+ bl FUN_02017F18
+ add sp, #0x64
+ pop {r4, r5, pc}
+ nop
+_021D7764: .word 0x021D88C8
+_021D7768: .word 0x021D8910
+_021D776C: .word 0x021D88D8
+_021D7770: .word 0x021D88F4
+ thumb_func_end MOD_021D76C0
+
+ thumb_func_start MOD_021D7774
+MOD_021D7774: ; 0x021D7774
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xf
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ mov r0, #0x24
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7774
+
+ thumb_func_start MOD_021D77A4
+MOD_021D77A4: ; 0x021D77A4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ mov r1, #2
+ ldr r2, [r5]
+ mov r0, #0x35
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #0x35
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #0x35
+ mov r1, #1
+ mov r3, #3
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x24
+ str r0, [sp, #4]
+ mov r0, #0x35
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0x24
+ mov r1, #0x80
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r0, _021D7854 ; =0x00003001
+ mov r2, #0
+ add r3, r4, #0
+_021D7812:
+ add r1, r2, r0
+ strh r1, [r3]
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #0x40
+ blo _021D7812
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #1
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_02018148
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x24
+ bl FUN_02002ED0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7854: .word 0x00003001
+ thumb_func_end MOD_021D77A4
+
+ thumb_func_start MOD_021D7858
+MOD_021D7858: ; 0x021D7858
+ push {r3, lr}
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _021D786C ; =0x04000050
+ mov r1, #1
+ mov r2, #0xe
+ mov r3, #0x17
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ .align 2, 0
+_021D786C: .word 0x04000050
+ thumb_func_end MOD_021D7858
+
+ thumb_func_start MOD_021D7870
+MOD_021D7870: ; 0x021D7870
+ push {r4, lr}
+ ldr r2, _021D78A4 ; =0x0000015F
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x24
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ mov r0, #0xf
+ mov r1, #2
+ mov r2, #0
+ mov r3, #0x24
+ bl FUN_0200B870
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ mov r0, #0x24
+ bl FUN_0200AA80
+ add r4, #0xc8
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+_021D78A4: .word 0x0000015F
+ thumb_func_end MOD_021D7870
+
+ thumb_func_start MOD_021D78A8
+MOD_021D78A8: ; 0x021D78A8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0200B990
+ add r4, #0xc8
+ ldr r0, [r4]
+ bl FUN_0200AB18
+ pop {r4, pc}
+ thumb_func_end MOD_021D78A8
+
+ thumb_func_start MOD_021D78C8
+MOD_021D78C8: ; 0x021D78C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r4, _021D78E8 ; =0x021D8954
+ mov r6, #0
+ add r5, r7, #4
+_021D78D2:
+ ldr r0, [r7]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #0xc
+ blo _021D78D2
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D78E8: .word 0x021D8954
+ thumb_func_end MOD_021D78C8
+
+ thumb_func_start MOD_021D78EC
+MOD_021D78EC: ; 0x021D78EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D78F2:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xc
+ blo _021D78F2
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D78EC
+
+ thumb_func_start MOD_021D7904
+MOD_021D7904: ; 0x021D7904
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #4
+ add r0, #0xc4
+ lsl r4, r1, #4
+ ldr r0, [r0]
+ add r1, r2, #0
+ add r6, r3, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ mov r0, #0
+ ldr r1, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ add r0, r5, r4
+ bl FUN_0201AB0C
+ add r3, r0, #0
+ mov r1, #0
+ lsl r3, r3, #3
+ sub r3, r3, r7
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldr r2, [sp, #0x10]
+ add r0, r5, r4
+ lsr r3, r3, #1
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD_021D7904
+
+ thumb_func_start MOD_021D7958
+MOD_021D7958: ; 0x021D7958
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r4, #4
+ mov r1, #4
+ bl FUN_02019620
+ mov r1, #0
+ ldr r3, _021D7974 ; =0x00010204
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D7974: .word 0x00010204
+ thumb_func_end MOD_021D7958
+
+ thumb_func_start MOD_021D7978
+MOD_021D7978: ; 0x021D7978
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D7994 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #1
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D7994: .word 0x000F0200
+ thumb_func_end MOD_021D7978
+
+ thumb_func_start MOD_021D7998
+MOD_021D7998: ; 0x021D7998
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x34
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D79B4 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #2
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D79B4: .word 0x000F0200
+ thumb_func_end MOD_021D7998
+
+ thumb_func_start MOD_021D79B8
+MOD_021D79B8: ; 0x021D79B8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x44
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D79D4 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #3
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D79D4: .word 0x000F0200
+ thumb_func_end MOD_021D79B8
+
+ thumb_func_start MOD_021D79D8
+MOD_021D79D8: ; 0x021D79D8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x54
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D79F4 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #4
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D79F4: .word 0x000F0200
+ thumb_func_end MOD_021D79D8
+
+ thumb_func_start MOD_021D79F8
+MOD_021D79F8: ; 0x021D79F8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D7A14 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #5
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D7A14: .word 0x000F0200
+ thumb_func_end MOD_021D79F8
+
+ thumb_func_start MOD_021D7A18
+MOD_021D7A18: ; 0x021D7A18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x14
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #5
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #0
+ bl FUN_0200B9A8
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #6
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #6
+ mov r1, #0x24
+ bl FUN_020219F4
+ mov r3, #2
+ add r6, r0, #0
+ mov r2, #0x7e
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, #0
+ ldrb r2, [r2, #8]
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r2, #1
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7AE0 ; =0x000F0200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r3, #0x10
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_020852E8
+ add r5, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7AE0 ; =0x000F0200
+ add r2, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r3, #0x28
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7AE0: .word 0x000F0200
+ thumb_func_end MOD_021D7A18
+
+ thumb_func_start MOD_021D7AE4
+MOD_021D7AE4: ; 0x021D7AE4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0xb4
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_02085310
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7B30 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7B30: .word 0x00010200
+ thumb_func_end MOD_021D7AE4
+
+ thumb_func_start MOD_021D7B34
+MOD_021D7B34: ; 0x021D7B34
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0x94
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0xa
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7B7C ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7B7C: .word 0x000F0200
+ thumb_func_end MOD_021D7B34
+
+ thumb_func_start MOD_021D7B80
+MOD_021D7B80: ; 0x021D7B80
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0xa4
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_02085290
+ add r1, r0, #0
+ beq _021D7BA4
+ sub r1, r1, #1
+_021D7BA4:
+ add r4, #0xc4
+ ldr r0, [r4]
+ add r1, #0xb
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7BD8 ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7BD8: .word 0x000F0200
+ thumb_func_end MOD_021D7B80
+
+ thumb_func_start MOD_021D7BDC
+MOD_021D7BDC: ; 0x021D7BDC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0x74
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #8
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7C24 ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7C24: .word 0x000F0200
+ thumb_func_end MOD_021D7BDC
+
+ thumb_func_start MOD_021D7C28
+MOD_021D7C28: ; 0x021D7C28
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r6, r5, #0
+ add r6, #0x84
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02085290
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0xfe
+ bl _u32_div_f
+ add r0, r0, #5
+ mov r1, #0xa
+ bl _u32_div_f
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #9
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ mov r0, #0x20
+ mov r1, #0x24
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r7, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ mov r1, #0
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r3, #2
+ bl FUN_0200AD38
+ add r0, r7, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ mov r0, #0
+ add r2, r1, #0
+ str r0, [sp]
+ mov r1, #1
+ add r0, r5, #0
+ str r1, [sp, #4]
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r5, #0xc8
+ ldr r0, [r5]
+ ldr r2, [sp, #0x10]
+ add r1, r4, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7CEC ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7CEC: .word 0x000F0200
+ thumb_func_end MOD_021D7C28
+
+ thumb_func_start MOD_021D7CF0
+MOD_021D7CF0: ; 0x021D7CF0
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #7
+ bhi _021D7D5A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7D04: ; jump table
+ .short _021D7D14 - _021D7D04 - 2 ; case 0
+ .short _021D7D1A - _021D7D04 - 2 ; case 1
+ .short _021D7D20 - _021D7D04 - 2 ; case 2
+ .short _021D7D26 - _021D7D04 - 2 ; case 3
+ .short _021D7D32 - _021D7D04 - 2 ; case 4
+ .short _021D7D3E - _021D7D04 - 2 ; case 5
+ .short _021D7D4A - _021D7D04 - 2 ; case 6
+ .short _021D7D56 - _021D7D04 - 2 ; case 7
+_021D7D14:
+ bl MOD_021D7958
+ pop {r4, pc}
+_021D7D1A:
+ bl MOD_021D7978
+ pop {r4, pc}
+_021D7D20:
+ bl MOD_021D7A18
+ pop {r4, pc}
+_021D7D26:
+ bl MOD_021D79F8
+ add r0, r4, #0
+ bl MOD_021D7998
+ pop {r4, pc}
+_021D7D32:
+ bl MOD_021D79B8
+ add r0, r4, #0
+ bl MOD_021D79D8
+ pop {r4, pc}
+_021D7D3E:
+ bl MOD_021D7BDC
+ add r0, r4, #0
+ bl MOD_021D7C28
+ pop {r4, pc}
+_021D7D4A:
+ bl MOD_021D7B34
+ add r0, r4, #0
+ bl MOD_021D7B80
+ pop {r4, pc}
+_021D7D56:
+ bl MOD_021D7AE4
+_021D7D5A:
+ pop {r4, pc}
+ thumb_func_end MOD_021D7CF0
+
+ thumb_func_start MOD_021D7D5C
+MOD_021D7D5C: ; 0x021D7D5C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7D62:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD_021D7CF0
+ add r4, r4, #1
+ cmp r4, #8
+ blo _021D7D62
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD_021D7D5C
+
+ thumb_func_start MOD_021D7D74
+MOD_021D7D74: ; 0x021D7D74
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7D92
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D7D98 ; =0x04000050
+ mov r1, #2
+ mov r2, #4
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ mov r0, #1
+ pop {r3, pc}
+_021D7D92:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D7D98: .word 0x04000050
+ thumb_func_end MOD_021D7D74
+
+ thumb_func_start MOD_021D7D9C
+MOD_021D7D9C: ; 0x021D7D9C
+ push {r4, lr}
+ ldr r1, _021D7E70 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r3, [r1, #0x44]
+ mov r2, #0x40
+ add r0, r3, #0
+ tst r0, r2
+ beq _021D7DF8
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r2, #0x41
+ ldrb r1, [r0, #8]
+ bl MOD_021D7F44
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r3, [r4, r1]
+ ldrb r2, [r3, #8]
+ cmp r2, r0
+ beq _021D7DF4
+ strb r0, [r3, #8]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #9
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ strb r2, [r4, r0]
+ ldr r1, [r4, r1]
+ ldrb r0, [r1, #0xa]
+ cmp r0, #3
+ bne _021D7DEA
+ ldrb r0, [r1, #9]
+ cmp r0, #0
+ beq _021D7DEA
+ sub r0, r0, #1
+ strb r0, [r1, #9]
+ b _021D7DF0
+_021D7DEA:
+ ldrb r0, [r1, #0xa]
+ sub r0, r0, #1
+ strb r0, [r1, #0xa]
+_021D7DF0:
+ mov r0, #2
+ pop {r4, pc}
+_021D7DF4:
+ mov r0, #1
+ pop {r4, pc}
+_021D7DF8:
+ mov r0, #0x80
+ tst r0, r3
+ beq _021D7E50
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r2, #1
+ ldrb r1, [r0, #8]
+ bl MOD_021D7F44
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r3, [r4, r1]
+ ldrb r2, [r3, #8]
+ cmp r2, r0
+ beq _021D7E4C
+ strb r0, [r3, #8]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #9
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ strb r2, [r4, r0]
+ ldr r3, [r4, r1]
+ ldrb r0, [r3, #0xa]
+ cmp r0, #5
+ bne _021D7E42
+ ldrb r1, [r3, #9]
+ ldrb r0, [r3, #0xb]
+ add r2, r1, #0
+ add r2, #9
+ cmp r2, r0
+ bge _021D7E42
+ add r0, r1, #1
+ strb r0, [r3, #9]
+ b _021D7E48
+_021D7E42:
+ ldrb r0, [r3, #0xa]
+ add r0, r0, #1
+ strb r0, [r3, #0xa]
+_021D7E48:
+ mov r0, #2
+ pop {r4, pc}
+_021D7E4C:
+ mov r0, #1
+ pop {r4, pc}
+_021D7E50:
+ ldr r1, [r1, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _021D7E60
+ ldr r0, _021D7E74 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021D7E6C
+_021D7E60:
+ mov r0, #1
+ mov r1, #0x24
+ bl FUN_02079A70
+ mov r0, #3
+ pop {r4, pc}
+_021D7E6C:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7E70: .word 0x021C48B8
+_021D7E74: .word 0x021C48F8
+ thumb_func_end MOD_021D7D9C
+
+ thumb_func_start MOD_021D7E78
+MOD_021D7E78: ; 0x021D7E78
+ push {r3, lr}
+ bl FUN_0200E308
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ thumb_func_end MOD_021D7E78
+
+ thumb_func_start MOD_021D7E84
+MOD_021D7E84: ; 0x021D7E84
+ push {r3, r4, r5, lr}
+ mov r4, #2
+ add r5, r0, #0
+ lsl r1, r4, #8
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ bne _021D7EA8
+ ldr r0, _021D7EE4 ; =0x00000201
+ ldrb r1, [r5, r0]
+ add r1, r1, #4
+ strb r1, [r5, r0]
+ ldrb r0, [r5, r0]
+ cmp r0, #0x10
+ bne _021D7ECE
+ mov r1, #1
+ lsl r0, r1, #9
+ strb r1, [r5, r0]
+ b _021D7ECE
+_021D7EA8:
+ cmp r1, #1
+ bne _021D7EB8
+ bl MOD_021D7F98
+ add r1, r4, #0
+ lsl r0, r1, #8
+ strb r1, [r5, r0]
+ b _021D7ECE
+_021D7EB8:
+ ldr r0, _021D7EE4 ; =0x00000201
+ ldrb r1, [r5, r0]
+ sub r1, r1, #4
+ strb r1, [r5, r0]
+ ldrb r1, [r5, r0]
+ cmp r1, #0
+ bne _021D7ECE
+ mov r1, #0
+ sub r0, r0, #1
+ strb r1, [r5, r0]
+ mov r4, #1
+_021D7ECE:
+ ldr r0, _021D7EE4 ; =0x00000201
+ ldrb r2, [r5, r0]
+ mov r0, #0x10
+ sub r1, r0, r2
+ lsl r0, r2, #8
+ orr r1, r0
+ ldr r0, _021D7EE8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7EE4: .word 0x00000201
+_021D7EE8: .word 0x04000052
+ thumb_func_end MOD_021D7E84
+
+ thumb_func_start MOD_021D7EEC
+MOD_021D7EEC: ; 0x021D7EEC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #8]
+ bl MOD_021D7F3C
+ mov r3, #1
+ add r1, r0, #0
+ str r3, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x35
+ bl FUN_0200687C
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #8]
+ bl MOD_021D7F40
+ add r1, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x24
+ str r0, [sp, #4]
+ mov r0, #0x35
+ mov r2, #0
+ mov r3, #0x60
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7EEC
+
+ thumb_func_start MOD_021D7F3C
+MOD_021D7F3C: ; 0x021D7F3C
+ add r0, r0, #6
+ bx lr
+ thumb_func_end MOD_021D7F3C
+
+ thumb_func_start MOD_021D7F40
+MOD_021D7F40: ; 0x021D7F40
+ add r0, #0x46
+ bx lr
+ thumb_func_end MOD_021D7F40
+
+ thumb_func_start MOD_021D7F44
+MOD_021D7F44: ; 0x021D7F44
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r2, #0
+ add r6, r0, #0
+ add r4, r7, #0
+ cmp r5, #0
+ bge _021D7F72
+ cmp r7, #0
+ beq _021D7F92
+_021D7F56:
+ sub r4, r4, #1
+ lsl r1, r4, #0x10
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ bl FUN_02085224
+ cmp r0, #1
+ bne _021D7F6C
+ add r7, r4, #0
+ add r5, r5, #1
+ beq _021D7F92
+_021D7F6C:
+ cmp r4, #0
+ beq _021D7F92
+ b _021D7F56
+_021D7F72:
+ cmp r7, #0x3f
+ beq _021D7F92
+_021D7F76:
+ add r4, r4, #1
+ lsl r1, r4, #0x10
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ bl FUN_02085224
+ cmp r0, #1
+ bne _021D7F8E
+ lsl r0, r4, #0x10
+ lsr r7, r0, #0x10
+ sub r5, r5, #1
+ beq _021D7F92
+_021D7F8E:
+ cmp r4, #0x3f
+ bne _021D7F76
+_021D7F92:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7F44
+
+ thumb_func_start MOD_021D7F98
+MOD_021D7F98: ; 0x021D7F98
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_02085274
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD_021D7D5C
+ add r0, r4, #0
+ bl MOD_021D7EEC
+ add r0, r4, #0
+ bl MOD_021D85F4
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02017CD0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7F98
+
+ thumb_func_start MOD_021D7FD8
+MOD_021D7FD8: ; 0x021D7FD8
+ push {r3, r4, lr}
+ sub sp, #4
+ bl G3X_Init
+ bl G3X_InitMtxStack
+ ldr r0, _021D8050 ; =0x04000060
+ ldr r1, _021D8054 ; =0xFFFFCFFD
+ ldrh r2, [r0]
+ ldr r3, _021D8058 ; =0x0000CFFB
+ and r2, r1
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r4, [r0]
+ add r1, r1, #2
+ sub r3, #0x1c
+ and r4, r2
+ mov r2, #8
+ orr r2, r4
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _021D805C ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D8060 ; =0x04000540
+ mov r0, #0
+ str r0, [r1]
+ ldr r0, _021D8064 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _021D8068 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ strh r2, [r1]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D8050: .word 0x04000060
+_021D8054: .word 0xFFFFCFFD
+_021D8058: .word 0x0000CFFB
+_021D805C: .word 0x00007FFF
+_021D8060: .word 0x04000540
+_021D8064: .word 0xBFFF0000
+_021D8068: .word 0x04000008
+ thumb_func_end MOD_021D7FD8
+
+ thumb_func_start MOD_021D806C
+MOD_021D806C: ; 0x021D806C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ ldr r2, _021D80A0 ; =0x04000440
+ mov r3, #0
+ add r1, r2, #0
+ str r3, [r2]
+ add r1, #0x14
+ str r3, [r1]
+ mov r0, #2
+ str r0, [r2]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r3, [r1]
+ bl MOD_021D8124
+ add r0, r4, #0
+ bl MOD_021D81C0
+ ldr r0, _021D80A4 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+ pop {r4, pc}
+ .align 2, 0
+_021D80A0: .word 0x04000440
+_021D80A4: .word 0x04000540
+ thumb_func_end MOD_021D806C
+
+ thumb_func_start MOD_021D80A8
+MOD_021D80A8: ; 0x021D80A8
+ ldr r3, _021D80B0 ; =0x0201EB71
+ add r0, #0xd0
+ ldr r0, [r0]
+ bx r3
+ .align 2, 0
+_021D80B0: .word 0x0201EB71
+ thumb_func_end MOD_021D80A8
+
+ thumb_func_start MOD_021D80B4
+MOD_021D80B4: ; 0x021D80B4
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ ldr r3, _021D811C ; =0x021D88BC
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #8
+ str r0, [r2]
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ mov r0, #0x24
+ bl FUN_0201EB64
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0xd0
+ ldr r0, [r0]
+ ldr r3, _021D8120 ; =0x000005C1
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ lsl r1, r1, #0x10
+ add r2, sp, #8
+ bl FUN_0201ED10
+ add r2, r4, #0
+ add r2, #0xd0
+ mov r1, #0x19
+ ldr r2, [r2]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_0201EC88
+ add r4, #0xd0
+ ldr r0, [r4]
+ bl FUN_0201EB8C
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D811C: .word 0x021D88BC
+_021D8120: .word 0x000005C1
+ thumb_func_end MOD_021D80B4
+
+ thumb_func_start MOD_021D8124
+MOD_021D8124: ; 0x021D8124
+ push {r4, r5, r6, r7}
+ add r4, r0, #0
+ ldr r0, _021D818C ; =0x121800C0
+ ldr r1, _021D8190 ; =0x040004A4
+ ldr r2, _021D8194 ; =0x00003FE8
+ str r0, [r1]
+ mov r0, #1
+ str r0, [r1, #0x5c]
+ ldr r0, _021D8198 ; =0x0400048C
+ mov r3, #0
+ sub r1, #0x24
+_021D813A:
+ str r2, [r1]
+ ldrh r7, [r4, #2]
+ ldrh r5, [r4]
+ ldrh r6, [r4, #4]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ str r6, [r0]
+ str r2, [r1]
+ ldrh r7, [r4, #8]
+ ldrh r5, [r4, #6]
+ ldrh r6, [r4, #0xa]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ str r6, [r0]
+ str r2, [r1]
+ ldrh r7, [r4, #0x14]
+ ldrh r5, [r4, #0x12]
+ ldrh r6, [r4, #0x16]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ str r6, [r0]
+ str r2, [r1]
+ ldrh r7, [r4, #0xe]
+ ldrh r5, [r4, #0xc]
+ ldrh r6, [r4, #0x10]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ add r3, r3, #1
+ add r4, #0x18
+ str r6, [r0]
+ cmp r3, #4
+ blo _021D813A
+ ldr r0, _021D819C ; =0x04000504
+ mov r1, #0
+ str r1, [r0]
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_021D818C: .word 0x121800C0
+_021D8190: .word 0x040004A4
+_021D8194: .word 0x00003FE8
+_021D8198: .word 0x0400048C
+_021D819C: .word 0x04000504
+ thumb_func_end MOD_021D8124
+
+ thumb_func_start MOD_021D81A0
+MOD_021D81A0: ; 0x021D81A0
+ mov r2, #0
+ ldrsh r3, [r0, r2]
+ ldrsh r2, [r1, r2]
+ add r2, r3, r2
+ strh r2, [r0]
+ mov r2, #2
+ ldrsh r3, [r0, r2]
+ ldrsh r2, [r1, r2]
+ add r2, r3, r2
+ strh r2, [r0, #2]
+ mov r2, #4
+ ldrsh r3, [r0, r2]
+ ldrsh r1, [r1, r2]
+ add r1, r3, r1
+ strh r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD_021D81A0
+
+ thumb_func_start MOD_021D81C0
+MOD_021D81C0: ; 0x021D81C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0x7d
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ cmp r1, #4
+ beq _021D828E
+ cmp r1, #3
+ bne _021D81FA
+ ldr r6, [sp]
+ mov r5, #0
+ sub r0, #0x60
+_021D81DC:
+ add r3, r6, #0
+ add r4, r6, r0
+ add r3, #0xd4
+ mov r2, #0xc
+_021D81E4:
+ ldrh r1, [r4]
+ add r4, r4, #2
+ strh r1, [r3]
+ add r3, r3, #2
+ sub r2, r2, #1
+ bne _021D81E4
+ add r5, r5, #1
+ add r6, #0x18
+ cmp r5, #4
+ blo _021D81DC
+ b _021D8280
+_021D81FA:
+ mov r1, #0
+ str r1, [sp, #4]
+ add r2, r0, #0
+ ldr r1, [sp]
+ sub r2, #0xc0
+ add r1, r1, r2
+ str r1, [sp, #0x14]
+ ldr r1, [sp]
+ add r2, r0, #0
+ str r1, [sp, #0x10]
+ add r1, #0xd4
+ str r1, [sp, #0x10]
+ ldr r1, [sp]
+ sub r2, #0xba
+ add r1, r1, r2
+ add r2, r0, #0
+ str r1, [sp, #0xc]
+ ldr r1, [sp]
+ sub r2, #0xb4
+ str r1, [sp, #8]
+ add r1, #0xda
+ str r1, [sp, #8]
+ ldr r1, [sp]
+ sub r0, #0xae
+ add r4, r1, #0
+ add r5, r1, #0
+ add r7, r1, r2
+ add r4, #0xe0
+ add r6, r1, r0
+ add r5, #0xe6
+_021D8236:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ bl MOD_021D81A0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl MOD_021D81A0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD_021D81A0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD_021D81A0
+ ldr r0, [sp, #0x14]
+ add r7, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r4, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r6, #0x18
+ add r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r5, #0x18
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #4
+ blo _021D8236
+_021D8280:
+ mov r1, #0x7d
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp]
+ str r2, [r0, r1]
+_021D828E:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D81C0
+
+ thumb_func_start MOD_021D8294
+MOD_021D8294: ; 0x021D8294
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ ldr r1, _021D840C ; =0x021D89BC
+ add r5, r0, #0
+ ldrh r2, [r1, #0x34]
+ add r3, sp, #0
+ add r5, #0xd8
+ strh r2, [r3, #0x12]
+ ldrh r2, [r1, #0x36]
+ strh r2, [r3, #0x14]
+ ldrh r1, [r1, #0x38]
+ strh r1, [r3, #0x16]
+ add r1, r0, #0
+ ldrh r4, [r3, #0x12]
+ add r1, #0xd4
+ strh r4, [r1]
+ add r1, r0, #0
+ ldrh r2, [r3, #0x14]
+ add r1, #0xd6
+ strh r2, [r1]
+ ldrh r1, [r3, #0x16]
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xda
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xdc
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xde
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xe0
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xe2
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xe4
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xe6
+ strh r4, [r5]
+ add r4, r0, #0
+ add r4, #0xe8
+ strh r2, [r4]
+ add r2, r0, #0
+ add r2, #0xea
+ strh r1, [r2]
+ ldr r1, _021D8410 ; =0x021D89FC
+ add r5, r0, #0
+ ldrh r2, [r1, #0x2a]
+ add r5, #0xf0
+ strh r2, [r3, #0xc]
+ ldrh r2, [r1, #0x2c]
+ strh r2, [r3, #0xe]
+ ldrh r1, [r1, #0x2e]
+ add r2, r0, #0
+ add r2, #0xec
+ strh r1, [r3, #0x10]
+ ldrh r1, [r3, #0xc]
+ strh r1, [r2]
+ add r2, r0, #0
+ ldrh r4, [r3, #0xe]
+ add r2, #0xee
+ strh r4, [r2]
+ ldrh r2, [r3, #0x10]
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xf2
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xf4
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xf6
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xf8
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xfa
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xfc
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xfe
+ strh r1, [r5]
+ mov r1, #1
+ lsl r1, r1, #8
+ strh r4, [r0, r1]
+ add r4, r1, #2
+ strh r2, [r0, r4]
+ ldr r2, _021D8414 ; =0x021D8A3C
+ ldrh r4, [r2, #0x20]
+ strh r4, [r3, #6]
+ ldrh r4, [r2, #0x22]
+ strh r4, [r3, #8]
+ ldrh r2, [r2, #0x24]
+ strh r2, [r3, #0xa]
+ ldrh r6, [r3, #6]
+ add r2, r1, #4
+ strh r6, [r0, r2]
+ ldrh r5, [r3, #8]
+ add r2, r1, #6
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ ldrh r4, [r3, #0xa]
+ add r2, #8
+ strh r4, [r0, r2]
+ add r2, r1, #0
+ add r2, #0xa
+ strh r6, [r0, r2]
+ add r2, r1, #0
+ add r2, #0xc
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0xe
+ strh r4, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x10
+ strh r6, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x12
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x14
+ strh r4, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x16
+ strh r6, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x18
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x1a
+ strh r4, [r0, r2]
+ ldr r2, _021D8418 ; =0x021D8A7C
+ ldrh r4, [r2, #0x16]
+ strh r4, [r3]
+ ldrh r4, [r2, #0x18]
+ strh r4, [r3, #2]
+ ldrh r2, [r2, #0x1a]
+ strh r2, [r3, #4]
+ add r2, r1, #0
+ ldrh r5, [r3]
+ add r2, #0x1c
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ ldrh r4, [r3, #2]
+ add r2, #0x1e
+ strh r4, [r0, r2]
+ ldrh r2, [r3, #4]
+ add r3, r1, #0
+ add r3, #0x20
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x22
+ strh r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x24
+ strh r4, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x26
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x28
+ strh r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x2a
+ strh r4, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x2c
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x2e
+ strh r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x30
+ strh r4, [r0, r3]
+ add r1, #0x32
+ strh r2, [r0, r1]
+ bl MOD_021D85F4
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ nop
+_021D840C: .word 0x021D89BC
+_021D8410: .word 0x021D89FC
+_021D8414: .word 0x021D8A3C
+_021D8418: .word 0x021D8A7C
+ thumb_func_end MOD_021D8294
+
+ thumb_func_start MOD_021D841C
+MOD_021D841C: ; 0x021D841C
+ push {r4, r5}
+ cmp r2, #0xff
+ bne _021D8432
+ ldrh r2, [r0]
+ strh r2, [r1]
+ ldrh r2, [r0, #2]
+ strh r2, [r1, #2]
+ ldrh r0, [r0, #4]
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+_021D8432:
+ cmp r2, #0
+ bne _021D8446
+ ldrh r2, [r0, #6]
+ strh r2, [r1]
+ ldrh r2, [r0, #8]
+ strh r2, [r1, #2]
+ ldrh r0, [r0, #0xa]
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+_021D8446:
+ mov r3, #6
+ ldrsh r5, [r0, r3]
+ mov r3, #0xc
+ ldrsh r3, [r0, r3]
+ add r4, r3, #0
+ mul r4, r2
+ add r3, r5, r4
+ strh r3, [r1]
+ mov r3, #8
+ ldrsh r5, [r0, r3]
+ mov r3, #0xe
+ ldrsh r3, [r0, r3]
+ add r4, r3, #0
+ mul r4, r2
+ add r3, r5, r4
+ strh r3, [r1, #2]
+ mov r3, #0xa
+ ldrsh r4, [r0, r3]
+ mov r3, #0x10
+ ldrsh r0, [r0, r3]
+ mul r2, r0
+ add r0, r4, r2
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD_021D841C
+
+ thumb_func_start MOD_021D8478
+MOD_021D8478: ; 0x021D8478
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ add r6, r2, #0
+ sub r7, r1, r0
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ mov r1, #0
+ bl _fgr
+ bls _021D84CC
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ bl _ffix
+ b _021D84F2
+_021D84CC:
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+ bl _ffix
+_021D84F2:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6]
+ mov r0, #2
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ sub r7, r1, r0
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ mov r1, #0
+ bl _fgr
+ bls _021D8544
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ bl _ffix
+ b _021D856A
+_021D8544:
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+ bl _ffix
+_021D856A:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6, #2]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ sub r4, r1, r0
+ add r0, r4, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ mov r1, #0
+ bl _fgr
+ bls _021D85BC
+ add r0, r4, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ bl _ffix
+ b _021D85E2
+_021D85BC:
+ add r0, r4, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+ bl _ffix
+_021D85E2:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D85EC: .word 0x45800000
+_021D85F0: .word 0x40800000
+ thumb_func_end MOD_021D8478
+
+ thumb_func_start MOD_021D85F4
+MOD_021D85F4: ; 0x021D85F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D885C ; =0x021D89B4
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8860 ; =0x0000019A
+ lsl r2, r2, #0x18
+ ldr r0, _021D8864 ; =0x021D89C6
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8868 ; =0x000001A6
+ lsl r2, r2, #0x18
+ ldr r0, _021D886C ; =0x021D89D8
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r0, _021D8870 ; =0x021D89EA
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #9
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D8874 ; =0x021D89FC
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8878 ; =0x000001B2
+ lsl r2, r2, #0x18
+ ldr r0, _021D887C ; =0x021D8A0E
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ ldr r1, _021D8880 ; =0x000001BE
+ ldr r0, _021D8884 ; =0x021D8A20
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D8888 ; =0x021D8A32
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #9
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x71
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D888C ; =0x021D8A44
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ ldr r1, _021D8890 ; =0x000001CA
+ ldr r0, _021D8894 ; =0x021D8A56
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8898 ; =0x000001D6
+ lsl r2, r2, #0x18
+ ldr r0, _021D889C ; =0x021D8A68
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x1d
+ lsl r1, r1, #4
+ lsl r2, r2, #0x18
+ ldr r0, _021D88A0 ; =0x021D8A7A
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r1, #0x77
+ lsl r1, r1, #2
+ ldr r0, _021D88A4 ; =0x021D8A8C
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D88A8 ; =0x000001E2
+ lsl r2, r2, #0x18
+ ldr r0, _021D88AC ; =0x021D8A9E
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D88B0 ; =0x000001EE
+ lsl r2, r2, #0x18
+ ldr r0, _021D88B4 ; =0x021D8AB0
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x7a
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D88B8 ; =0x021D8AC2
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0
+ str r0, [sp, #0x24]
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ add r1, r5, r0
+ str r1, [sp, #0x20]
+ add r1, r0, #0
+ add r1, #0x60
+ add r1, r5, r1
+ str r1, [sp, #0x1c]
+ add r1, r5, #0
+ str r1, [sp, #0x18]
+ add r1, #0xd4
+ str r1, [sp, #0x18]
+ add r1, r0, #6
+ add r1, r5, r1
+ str r1, [sp, #0x14]
+ add r1, r0, #0
+ add r1, #0x66
+ add r1, r5, r1
+ str r1, [sp, #0x10]
+ add r1, r5, #0
+ str r1, [sp, #0xc]
+ add r1, #0xda
+ str r1, [sp, #0xc]
+ add r1, r0, #0
+ add r1, #0xc
+ add r1, r5, r1
+ str r1, [sp, #8]
+ add r1, r0, #0
+ add r1, #0x6c
+ add r1, r5, r1
+ str r1, [sp, #4]
+ add r1, r5, #0
+ str r1, [sp]
+ add r1, #0xe0
+ str r1, [sp]
+ add r1, r0, #0
+ add r1, #0x12
+ add r0, #0x72
+ add r4, r5, #0
+ add r7, r5, r1
+ add r6, r5, r0
+ add r4, #0xe6
+_021D87E2:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ bl MOD_021D8478
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl MOD_021D8478
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #8]
+ bl MOD_021D8478
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD_021D8478
+ ldr r0, [sp, #0x20]
+ add r7, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r6, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r4, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ blo _021D87E2
+ mov r0, #0x7d
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D885C: .word 0x021D89B4
+_021D8860: .word 0x0000019A
+_021D8864: .word 0x021D89C6
+_021D8868: .word 0x000001A6
+_021D886C: .word 0x021D89D8
+_021D8870: .word 0x021D89EA
+_021D8874: .word 0x021D89FC
+_021D8878: .word 0x000001B2
+_021D887C: .word 0x021D8A0E
+_021D8880: .word 0x000001BE
+_021D8884: .word 0x021D8A20
+_021D8888: .word 0x021D8A32
+_021D888C: .word 0x021D8A44
+_021D8890: .word 0x000001CA
+_021D8894: .word 0x021D8A56
+_021D8898: .word 0x000001D6
+_021D889C: .word 0x021D8A68
+_021D88A0: .word 0x021D8A7A
+_021D88A4: .word 0x021D8A8C
+_021D88A8: .word 0x000001E2
+_021D88AC: .word 0x021D8A9E
+_021D88B0: .word 0x000001EE
+_021D88B4: .word 0x021D8AB0
+_021D88B8: .word 0x021D8AC2
+ thumb_func_end MOD_021D85F4
+
+ .section .rodata
+ ; 0x021D88BC
+ .incbin "baserom.nds", 0x2C25DC, 0x218