summaryrefslogtreecommitdiff
path: root/arm9/modules/76
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/76')
-rw-r--r--arm9/modules/76/asm/module_76.s3226
1 files changed, 3226 insertions, 0 deletions
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
new file mode 100644
index 00000000..45257701
--- /dev/null
+++ b/arm9/modules/76/asm/module_76.s
@@ -0,0 +1,3226 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD76_021D74E0
+MOD76_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #2
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x43
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0x62
+ add r0, r5, #0
+ lsl r1, r1, #2
+ mov r2, #0x43
+ bl FUN_02006268
+ mov r2, #0x62
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_0200628C
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD76_021D7638
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8354
+ mov r0, #0
+ str r0, [sp]
+ ldr r3, _021D7560 ; =0x0001020F
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #1
+ bl MOD76_021D7CC8
+ mov r0, #6
+ mov r1, #1
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xc8
+ bl FUN_02019220
+ add r0, r4, #0
+ bl MOD76_021D8CD4
+ ldr r0, _021D7564 ; =MOD76_021D76E8
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7560: .word 0x0001020F
+_021D7564: .word MOD76_021D76E8
+ thumb_func_end MOD76_021D74E0
+
+ thumb_func_start MOD76_021D7568
+MOD76_021D7568: ; 0x021D7568
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0xc
+ bhi _021D7606
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7584: ; jump table
+ .short _021D759E - _021D7584 - 2 ; case 0
+ .short _021D75A6 - _021D7584 - 2 ; case 1
+ .short _021D75AE - _021D7584 - 2 ; case 2
+ .short _021D75B6 - _021D7584 - 2 ; case 3
+ .short _021D75BE - _021D7584 - 2 ; case 4
+ .short _021D75C6 - _021D7584 - 2 ; case 5
+ .short _021D75CE - _021D7584 - 2 ; case 6
+ .short _021D75D6 - _021D7584 - 2 ; case 7
+ .short _021D75DE - _021D7584 - 2 ; case 8
+ .short _021D75E6 - _021D7584 - 2 ; case 9
+ .short _021D75EA - _021D7584 - 2 ; case 10
+ .short _021D75F2 - _021D7584 - 2 ; case 11
+ .short _021D75FC - _021D7584 - 2 ; case 12
+_021D759E:
+ bl MOD76_021D795C
+ str r0, [r4]
+ b _021D7606
+_021D75A6:
+ bl MOD76_021D7974
+ str r0, [r4]
+ b _021D7606
+_021D75AE:
+ bl MOD76_021D7A94
+ str r0, [r4]
+ b _021D7606
+_021D75B6:
+ bl MOD76_021D7AB4
+ str r0, [r4]
+ b _021D7606
+_021D75BE:
+ bl MOD76_021D7ADC
+ str r0, [r4]
+ b _021D7606
+_021D75C6:
+ bl MOD76_021D7B2C
+ str r0, [r4]
+ b _021D7606
+_021D75CE:
+ bl MOD76_021D7B80
+ str r0, [r4]
+ b _021D7606
+_021D75D6:
+ bl MOD76_021D7B98
+ str r0, [r4]
+ b _021D7606
+_021D75DE:
+ bl MOD76_021D7BC8
+ str r0, [r4]
+ b _021D7606
+_021D75E6:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D75EA:
+ bl MOD76_021D8D44
+ str r0, [r4]
+ b _021D7606
+_021D75F2:
+ bl MOD76_021D8D5C
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D75FC:
+ bl MOD76_021D8DEC
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7606:
+ add r0, r5, #0
+ bl MOD76_021D882C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200BC1C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7568
+
+ thumb_func_start MOD76_021D761C
+MOD76_021D761C: ; 0x021D761C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ bl MOD76_021D76B8
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x43
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD76_021D761C
+
+ thumb_func_start MOD76_021D7638
+MOD76_021D7638: ; 0x021D7638
+ push {r4, 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, _021D76AC ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76B0 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0x43
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ mov r0, #0
+ mov r1, #0x43
+ bl FUN_02079A70
+ bl MOD76_021D7710
+ ldr r0, [r4, #4]
+ bl MOD76_021D7730
+ add r0, r4, #0
+ bl MOD76_021D7814
+ add r0, r4, #0
+ bl MOD76_021D8C4C
+ add r0, r4, #0
+ bl MOD76_021D7900
+ add r0, r4, #0
+ bl MOD76_021D789C
+ add r0, r4, #0
+ bl MOD76_021D7ECC
+ add r0, r4, #0
+ bl MOD76_021D7BE0
+ ldr r0, _021D76B4 ; =MOD76_021D76E8
+ add r1, r4, #0
+ bl FUN_02015F10
+ pop {r4, pc}
+ .align 2, 0
+_021D76AC: .word 0xFFFFE0FF
+_021D76B0: .word 0x04001000
+_021D76B4: .word MOD76_021D76E8
+ thumb_func_end MOD76_021D7638
+
+ thumb_func_start MOD76_021D76B8
+MOD76_021D76B8: ; 0x021D76B8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD76_021D7FAC
+ add r0, r4, #0
+ bl MOD76_021D78E8
+ ldr r0, [r4, #4]
+ bl MOD76_021D77E4
+ add r0, r4, #0
+ bl MOD76_021D7938
+ add r0, r4, #0
+ bl MOD76_021D87F8
+ bl FUN_0201C29C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D76B8
+
+ thumb_func_start MOD76_021D76E8
+MOD76_021D76E8: ; 0x021D76E8
+ push {r3, lr}
+ ldr r0, [r0, #4]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r3, _021D7708 ; =0x027E0000
+ ldr r1, _021D770C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7708: .word 0x027E0000
+_021D770C: .word 0x00003FF8
+ thumb_func_end MOD76_021D76E8
+
+ thumb_func_start MOD76_021D7710
+MOD76_021D7710: ; 0x021D7710
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D772C ; =0x021D8F44
+ add r3, sp, #0
+ mov r2, #5
+_021D771A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D771A
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D772C: .word 0x021D8F44
+ thumb_func_end MOD76_021D7710
+
+ thumb_func_start MOD76_021D7730
+MOD76_021D7730: ; 0x021D7730
+ push {r4, r5, lr}
+ sub sp, #0x64
+ ldr r5, _021D77D4 ; =0x021D8E4C
+ 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
+ ldr r5, _021D77D8 ; =0x021D8E88
+ 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, #0
+ str r0, [r3]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _021D77DC ; =0x021D8EC0
+ 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, #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, _021D77E0 ; =0x021D8EA4
+ 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, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x43
+ bl FUN_02017F18
+ add sp, #0x64
+ pop {r4, r5, pc}
+ nop
+_021D77D4: .word 0x021D8E4C
+_021D77D8: .word 0x021D8E88
+_021D77DC: .word 0x021D8EC0
+_021D77E0: .word 0x021D8EA4
+ thumb_func_end MOD76_021D7730
+
+ thumb_func_start MOD76_021D77E4
+MOD76_021D77E4: ; 0x021D77E4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x17
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ mov r0, #0x43
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D77E4
+
+ thumb_func_start MOD76_021D7814
+MOD76_021D7814: ; 0x021D7814
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x43
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x71
+ mov r1, #0xa
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x43
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x71
+ mov r1, #0xb
+ mov r3, #2
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x43
+ str r0, [sp, #4]
+ mov r0, #0x71
+ mov r1, #0xc
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r1, #7
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x43
+ bl FUN_02002EEC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x43
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ mov r2, #1
+ mov r3, #0xc
+ bl FUN_0200CB00
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x43
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xd
+ bl FUN_0200CD68
+ add sp, #0x10
+ pop {r4, pc}
+ thumb_func_end MOD76_021D7814
+
+ thumb_func_start MOD76_021D789C
+MOD76_021D789C: ; 0x021D789C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ ldr r4, _021D78E4 ; =0x021D8FC4
+ mov r6, #0
+ add r5, #8
+_021D78A8:
+ ldr r0, [r7, #4]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #0xf
+ blo _021D78A8
+ add r0, r7, #0
+ bl MOD76_021D7DAC
+ add r0, r7, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r7, #0xc8
+ add r0, r7, #0
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xd
+ bl FUN_0200D0BC
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D78E4: .word 0x021D8FC4
+ thumb_func_end MOD76_021D789C
+
+ thumb_func_start MOD76_021D78E8
+MOD76_021D78E8: ; 0x021D78E8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #8
+_021D78F0:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xf
+ blo _021D78F0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD76_021D78E8
+
+ thumb_func_start MOD76_021D7900
+MOD76_021D7900: ; 0x021D7900
+ push {r4, lr}
+ ldr r2, _021D7934 ; =0x0000024A
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x43
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #0x43
+ bl FUN_0200AA80
+ add r1, r4, #0
+ add r1, #0xfc
+ str r0, [r1]
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #0x43
+ bl FUN_020219F4
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D7934: .word 0x0000024A
+ thumb_func_end MOD76_021D7900
+
+ thumb_func_start MOD76_021D7938
+MOD76_021D7938: ; 0x021D7938
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ bl FUN_0200AB18
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7938
+
+ thumb_func_start MOD76_021D795C
+MOD76_021D795C: ; 0x021D795C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7970
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+_021D7970:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD76_021D795C
+
+ thumb_func_start MOD76_021D7974
+MOD76_021D7974: ; 0x021D7974
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D7A88 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x30
+ tst r1, r0
+ beq _021D799C
+ ldr r0, _021D7A8C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r2, [r5]
+ mov r0, #1
+ ldrb r1, [r2, #0x14]
+ eor r0, r1
+ strb r0, [r2, #0x14]
+ add r0, r5, #0
+ bl MOD76_021D7BE0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D799C:
+ add r0, #0xd4
+ add r1, sp, #0
+ ldr r0, [r5, r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_02001448
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ ldr r2, [r5]
+ mov r0, #0x41
+ add r1, r2, #0
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, #0x12
+ add r2, #0x10
+ bl FUN_02001448
+ ldr r2, [r5]
+ add r1, sp, #0
+ ldrh r1, [r1, #2]
+ ldrh r2, [r2, #0x12]
+ add r0, r5, #0
+ bl MOD76_021D8AC0
+ ldr r0, [r5]
+ ldrh r1, [r0, #0x10]
+ add r0, sp, #0
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _021D79EE
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl MOD76_021D8C88
+_021D79EE:
+ add r0, r5, #0
+ bl MOD76_021D8CD4
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D7A04
+ add r0, r0, #1
+ cmp r4, r0
+ beq _021D7A82
+ b _021D7A38
+_021D7A04:
+ ldr r0, _021D7A8C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r5, #0
+ bl MOD76_021D8D24
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD76_021D853C
+ ldr r0, _021D7A90 ; =0x00000186
+ mov r1, #1
+ strb r1, [r5, r0]
+ mov r1, #3
+ lsl r0, r1, #7
+ str r1, [r5, r0]
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021D7A38:
+ ldr r0, _021D7A8C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r5, #0
+ bl MOD76_021D8D24
+ add r0, r5, #0
+ bl MOD76_021D85E4
+ cmp r0, #4
+ bhs _021D7A6A
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD76_021D853C
+ mov r1, #0
+ b _021D7A74
+_021D7A6A:
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD76_021D853C
+ mov r1, #2
+_021D7A74:
+ ldr r0, _021D7A90 ; =0x00000186
+ strb r1, [r5, r0]
+ mov r1, #3
+ lsl r0, r1, #7
+ str r1, [r5, r0]
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021D7A82:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D7A88: .word 0x021C48B8
+_021D7A8C: .word 0x000005DD
+_021D7A90: .word 0x00000186
+ thumb_func_end MOD76_021D7974
+
+ thumb_func_start MOD76_021D7A94
+MOD76_021D7A94: ; 0x021D7A94
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D7AB0 ; =0x00000185
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D7AAC
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+_021D7AAC:
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+_021D7AB0: .word 0x00000185
+ thumb_func_end MOD76_021D7A94
+
+ thumb_func_start MOD76_021D7AB4
+MOD76_021D7AB4: ; 0x021D7AB4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x43
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r1, _021D7AD8 ; =0x021D9034
+ mov r2, #1
+ mov r3, #0xc
+ bl FUN_02002198
+ mov r1, #0x43
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #4
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D7AD8: .word 0x021D9034
+ thumb_func_end MOD76_021D7AB4
+
+ thumb_func_start MOD76_021D7ADC
+MOD76_021D7ADC: ; 0x021D7ADC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x43
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _021D7AFA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D7B0A
+ b _021D7B1A
+_021D7AFA:
+ ldr r1, _021D7B20 ; =0x00000186
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ lsl r2, r1, #3
+ ldr r1, _021D7B24 ; =0x021D8F1C
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+_021D7B0A:
+ ldr r1, _021D7B20 ; =0x00000186
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ lsl r2, r1, #3
+ ldr r1, _021D7B28 ; =0x021D8F20
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+_021D7B1A:
+ mov r0, #4
+ pop {r4, pc}
+ nop
+_021D7B20: .word 0x00000186
+_021D7B24: .word 0x021D8F1C
+_021D7B28: .word 0x021D8F20
+ thumb_func_end MOD76_021D7ADC
+
+ thumb_func_start MOD76_021D7B2C
+MOD76_021D7B2C: ; 0x021D7B2C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD76_021D8514
+ str r0, [sp]
+ ldr r1, [r4]
+ add r2, sp, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x36
+ bl FUN_02067830
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r4]
+ add r2, sp, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x3e
+ bl FUN_02067830
+ add r0, r4, #0
+ bl MOD76_021D8514
+ mov r1, #0
+ bl FUN_0206AB30
+ str r0, [sp]
+ ldr r1, [r4]
+ add r2, sp, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x3a
+ bl FUN_02067830
+ ldr r0, [r4]
+ mov r1, #0
+ strb r1, [r0, #0x16]
+ mov r0, #8
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD76_021D7B2C
+
+ thumb_func_start MOD76_021D7B80
+MOD76_021D7B80: ; 0x021D7B80
+ push {r4, lr}
+ mov r1, #6
+ add r4, r0, #0
+ bl MOD76_021D853C
+ mov r0, #6
+ mov r1, #5
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7B80
+
+ thumb_func_start MOD76_021D7B98
+MOD76_021D7B98: ; 0x021D7B98
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ ldrb r1, [r1, #0x17]
+ cmp r1, #4
+ bhs _021D7BAE
+ mov r1, #0xa
+ bl MOD76_021D853C
+ mov r1, #4
+ b _021D7BB6
+_021D7BAE:
+ mov r1, #7
+ bl MOD76_021D853C
+ mov r1, #3
+_021D7BB6:
+ ldr r0, _021D7BC4 ; =0x00000186
+ strb r1, [r4, r0]
+ mov r1, #3
+ lsl r0, r1, #7
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+_021D7BC4: .word 0x00000186
+ thumb_func_end MOD76_021D7B98
+
+ thumb_func_start MOD76_021D7BC8
+MOD76_021D7BC8: ; 0x021D7BC8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0x43
+ bl FUN_02079A70
+ mov r0, #6
+ mov r1, #9
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD76_021D7BC8
+
+ thumb_func_start MOD76_021D7BE0
+MOD76_021D7BE0: ; 0x021D7BE0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD76_021D8514
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ ldr r0, [r5, #4]
+ bne _021D7C3A
+ mov r2, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_0201AEE4
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x68
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0xb8
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #8
+ bl FUN_02019220
+ ldr r0, _021D7CC4 ; =0x0000FFFF
+ cmp r4, r0
+ beq _021D7C2E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD76_021D800C
+ b _021D7CBC
+_021D7C2E:
+ mov r1, #1
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD76_021D800C
+ b _021D7CBC
+_021D7C3A:
+ mov r1, #2
+ add r3, r1, #0
+ mov r2, #0
+ add r3, #0xfe
+ bl FUN_0201AEE4
+ add r0, r5, #0
+ add r0, #8
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x38
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x58
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0xa8
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x78
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x88
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x98
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_02019220
+ ldr r0, _021D7CC4 ; =0x0000FFFF
+ cmp r4, r0
+ beq _021D7CA6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD76_021D81AC
+ b _021D7CB0
+_021D7CA6:
+ mov r1, #1
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD76_021D81AC
+_021D7CB0:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021D7CBC:
+ add r0, r5, #0
+ bl MOD76_021D8A58
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7CC4: .word 0x0000FFFF
+ thumb_func_end MOD76_021D7BE0
+
+ thumb_func_start MOD76_021D7CC8
+MOD76_021D7CC8: ; 0x021D7CC8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0
+ add r7, r3, #0
+ str r2, [sp, #0x10]
+ cmp r0, #0
+ beq _021D7CE4
+ cmp r0, #1
+ beq _021D7CE8
+ cmp r0, #2
+ beq _021D7D12
+ b _021D7D3E
+_021D7CE4:
+ mov r3, #0
+ b _021D7D3E
+_021D7CE8:
+ mov r1, #1
+ lsl r1, r1, #8
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ add r1, r5, #0
+ lsr r6, r0, #0x18
+ add r1, #8
+ lsl r0, r4, #4
+ add r0, r1, r0
+ bl FUN_0201AB0C
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x18
+ sub r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ b _021D7D3E
+_021D7D12:
+ mov r1, #1
+ lsl r1, r1, #8
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ add r1, r5, #0
+ lsr r6, r0, #0x18
+ add r1, #8
+ lsl r0, r4, #4
+ add r0, r1, r0
+ bl FUN_0201AB0C
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x18
+ sub r1, r0, r6
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0x17
+ lsr r3, r0, #0x18
+_021D7D3E:
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r7, [sp, #8]
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r2, r2, #1
+ add r1, #8
+ lsl r0, r4, #4
+ add r0, r1, r0
+ ldr r1, [sp, #0x10]
+ ldr r2, [r5, r2]
+ bl FUN_0201BDE0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D7CC8
+
+ thumb_func_start MOD76_021D7D60
+MOD76_021D7D60: ; 0x021D7D60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ mov r1, #0
+ add r2, r6, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ add r3, r7, #0
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0xfc
+ lsl r1, r1, #8
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7D60
+
+ thumb_func_start MOD76_021D7DAC
+MOD76_021D7DAC: ; 0x021D7DAC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #0x1a
+ add r2, r1, #0
+ add r4, r0, #0
+ add r0, #0xf8
+ add r2, #0xe6
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r0, #2
+ mov r1, #0
+ str r0, [sp]
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD76_021D7CC8
+ mov r1, #0x1c
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe4
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD76_021D7CC8
+ mov r1, #0x16
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xea
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #2
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x17
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe9
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #3
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x18
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe8
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #4
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x19
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe7
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7EA0 ; =0x00010200
+ add r0, r4, #0
+ mov r1, #5
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x1b
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe5
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl MOD76_021D7CC8
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D7E9C: .word 0x000F0E00
+_021D7EA0: .word 0x00010200
+ thumb_func_end MOD76_021D7DAC
+
+ thumb_func_start MOD76_021D7EA4
+MOD76_021D7EA4: ; 0x021D7EA4
+ push {r3, r4}
+ ldr r0, [r0]
+ ldr r1, _021D7EC8 ; =0x0000FFFF
+ ldr r4, [r0, #0xc]
+ mov r0, #1
+ mov r3, #0
+ lsl r0, r0, #8
+_021D7EB2:
+ ldrh r2, [r4]
+ cmp r2, r1
+ beq _021D7EC0
+ add r3, r3, #1
+ add r4, r4, #2
+ cmp r3, r0
+ blo _021D7EB2
+_021D7EC0:
+ add r0, r3, #0
+ pop {r3, r4}
+ bx lr
+ nop
+_021D7EC8: .word 0x0000FFFF
+ thumb_func_end MOD76_021D7EA4
+
+ thumb_func_start MOD76_021D7ECC
+MOD76_021D7ECC: ; 0x021D7ECC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl MOD76_021D7EA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r0, #1
+ mov r0, #0x61
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ ldrb r0, [r5, r0]
+ mov r1, #0x43
+ bl FUN_02012838
+ mov r1, #0x42
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r2, #0x93
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #0x43
+ bl FUN_0200A86C
+ add r7, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _021D7F50
+ add r6, r4, #0
+_021D7F0E:
+ ldr r0, [r5]
+ ldr r0, [r0, #0xc]
+ ldrh r2, [r0, r6]
+ ldr r0, _021D7FA4 ; =0x0000FFFF
+ cmp r2, r0
+ beq _021D7F2A
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ add r3, r2, #0
+ bl FUN_02012880
+ b _021D7F42
+_021D7F2A:
+ mov r0, #0x42
+ add r1, r5, #0
+ lsl r0, r0, #2
+ add r1, #0xf8
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r0, [r5, r0]
+ ldr r1, [r1]
+ sub r3, #0x22
+ bl FUN_02012880
+ b _021D7F50
+_021D7F42:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r4, r4, #1
+ add r6, r6, #2
+ cmp r4, r0
+ blo _021D7F0E
+_021D7F50:
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ ldr r4, _021D7FA8 ; =0x021D8EFC
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ add r0, #0x7c
+ str r1, [sp]
+ add r1, r5, #0
+ add r1, #0xd8
+ str r1, [sp, #0xc]
+ ldrb r1, [r5, r0]
+ add r0, sp, #0
+ strh r1, [r0, #0x10]
+ str r5, [sp, #0x1c]
+ ldr r3, [r5]
+ add r0, r2, #0
+ ldrh r1, [r3, #0x12]
+ ldrh r2, [r3, #0x10]
+ mov r3, #0x43
+ bl FUN_020010A8
+ mov r1, #0x41
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r5, #0xd8
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7FA4: .word 0x0000FFFF
+_021D7FA8: .word 0x021D8EFC
+ thumb_func_end MOD76_021D7ECC
+
+ thumb_func_start MOD76_021D7FAC
+MOD76_021D7FAC: ; 0x021D7FAC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4]
+ mov r0, #0x41
+ add r1, r2, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, #0x12
+ add r2, #0x10
+ bl FUN_02001300
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7FAC
+
+ thumb_func_start MOD76_021D7FD0
+MOD76_021D7FD0: ; 0x021D7FD0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x13
+ add r6, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ cmp r6, #1
+ beq _021D7FE8
+ ldr r0, _021D8004 ; =0x000005DD
+ bl FUN_020054C8
+_021D7FE8:
+ ldr r0, [r4]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D7FFA
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD76_021D800C
+ pop {r4, r5, r6, pc}
+_021D7FFA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD76_021D81AC
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8004: .word 0x000005DD
+ thumb_func_end MOD76_021D7FD0
+
+ thumb_func_start MOD76_021D8008
+MOD76_021D8008: ; 0x021D8008
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD76_021D8008
+
+ thumb_func_start MOD76_021D800C
+MOD76_021D800C: ; 0x021D800C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0xa8
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x78
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x88
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x98
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _021D8050
+ b _021D815E
+_021D8050:
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_0206AB18
+ add r2, r0, #0
+ cmp r2, #1
+ bhi _021D8072
+ mov r1, #0x21
+ add r0, r5, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xdf
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _021D8080
+_021D8072:
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1d
+ mov r3, #3
+ bl MOD76_021D7D60
+_021D8080:
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD76_021D7CC8
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_0206AB18
+ add r2, r0, #0
+ bne _021D80B0
+ mov r1, #0x21
+ add r0, r5, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xdf
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _021D80BE
+_021D80B0:
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1e
+ mov r3, #3
+ bl MOD76_021D7D60
+_021D80BE:
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD76_021D7CC8
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0
+ bl FUN_0206AB30
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1f
+ mov r3, #2
+ bl MOD76_021D7D60
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #9
+ mov r2, #0
+ bl MOD76_021D7CC8
+ ldr r2, _021D81A8 ; =0x0000024B
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x43
+ bl FUN_0200A86C
+ mov r2, #1
+ lsl r2, r2, #8
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ add r6, r0, #0
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #0xa
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD76_021D8BF8
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x38
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x58
+ bl FUN_02019220
+ b _021D817E
+_021D815E:
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x38
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x58
+ bl FUN_0201958C
+_021D817E:
+ add r0, r5, #0
+ add r0, #0xa8
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x78
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x88
+ bl FUN_02019220
+ add r5, #0x98
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D81A4: .word 0x00010200
+_021D81A8: .word 0x0000024B
+ thumb_func_end MOD76_021D800C
+
+ thumb_func_start MOD76_021D81AC
+MOD76_021D81AC: ; 0x021D81AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0xb8
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #1
+ mvn r1, r1
+ cmp r4, r1
+ beq _021D8222
+ add r0, r4, #0
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_0208315C
+ add r6, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc5
+ mov r3, #0x43
+ bl FUN_0200A86C
+ mov r2, #1
+ lsl r2, r2, #8
+ ldr r2, [r5, r2]
+ add r1, r6, #0
+ add r7, r0, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _021D8240 ; =0x00010200
+ add r2, r2, #1
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0xb8
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD76_021D8300
+ add r0, r5, #0
+ add r0, #0x68
+ bl FUN_02019220
+ b _021D8232
+_021D8222:
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD76_021D8300
+ add r0, r5, #0
+ add r0, #0x68
+ bl FUN_0201958C
+_021D8232:
+ add r5, #0xb8
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8240: .word 0x00010200
+ thumb_func_end MOD76_021D81AC
+
+ thumb_func_start MOD76_021D8244
+MOD76_021D8244: ; 0x021D8244
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #5
+ lsl r6, r2, #1
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #1
+ add r7, r6, #0
+ str r0, [sp, #4]
+ add r7, #0x22
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ lsl r3, r7, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r6, #0x23
+ str r0, [sp, #8]
+ mov r0, #0x10
+ add r2, r4, #1
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r0, #0x10
+ add r2, #0x20
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r7, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x10
+ add r4, #0x21
+ str r0, [sp, #0xc]
+ lsl r2, r4, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8244
+
+ thumb_func_start MOD76_021D82D8
+MOD76_021D82D8: ; 0x021D82D8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r4, #0
+ mov r6, #0x12
+_021D82E0:
+ lsl r2, r4, #0x18
+ add r0, r5, #0
+ add r1, r6, #0
+ lsr r2, r2, #0x18
+ bl MOD76_021D8244
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #6
+ blo _021D82E0
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_0201AC68
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD76_021D82D8
+
+ thumb_func_start MOD76_021D8300
+MOD76_021D8300: ; 0x021D8300
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD76_021D82D8
+ ldr r0, _021D8350 ; =0x0000FFFF
+ cmp r4, r0
+ beq _021D8344
+ add r0, r4, #0
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_02083114
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ asr r6, r0, #0x18
+ mov r4, #0
+ cmp r6, #0
+ ble _021D8344
+ mov r7, #0xe
+_021D832E:
+ lsl r2, r4, #0x18
+ add r0, r5, #0
+ add r1, r7, #0
+ lsr r2, r2, #0x18
+ bl MOD76_021D8244
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r6
+ blt _021D832E
+_021D8344:
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_0201AC68
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8350: .word 0x0000FFFF
+ thumb_func_end MOD76_021D8300
+
+ thumb_func_start MOD76_021D8354
+MOD76_021D8354: ; 0x021D8354
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #0xa
+ bls _021D8360
+ b _021D84D8
+_021D8360:
+ add r1, r5, r5
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D836C: ; jump table
+ .short _021D8382 - _021D836C - 2 ; case 0
+ .short _021D839A - _021D836C - 2 ; case 1
+ .short _021D83AE - _021D836C - 2 ; case 2
+ .short _021D83C6 - _021D836C - 2 ; case 3
+ .short _021D83F2 - _021D836C - 2 ; case 4
+ .short _021D841E - _021D836C - 2 ; case 5
+ .short _021D844A - _021D836C - 2 ; case 6
+ .short _021D8476 - _021D836C - 2 ; case 7
+ .short _021D848A - _021D836C - 2 ; case 8
+ .short _021D84B6 - _021D836C - 2 ; case 9
+ .short _021D84C6 - _021D836C - 2 ; case 10
+_021D8382:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ b _021D84D8
+_021D839A:
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D83AE:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ b _021D84D8
+_021D83C6:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D83F2:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D841E:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8524
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D844A:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D8476:
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D848A:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D84B6:
+ ldr r2, [r4]
+ add r0, #0xfc
+ ldr r0, [r0]
+ ldr r2, [r2, #4]
+ mov r1, #2
+ bl FUN_0200ABC0
+ b _021D84D8
+_021D84C6:
+ bl MOD76_021D8524
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200AD5C
+_021D84D8:
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrb r2, [r1, #0x15]
+ add r0, #0xf8
+ mov r1, #0x2c
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D8510 ; =0x021D8F6C
+ lsl r2, r5, #2
+ add r1, r1, r3
+ ldr r0, [r0]
+ ldr r1, [r2, r1]
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xfc
+ lsl r1, r1, #8
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8510: .word 0x021D8F6C
+ thumb_func_end MOD76_021D8354
+
+ thumb_func_start MOD76_021D8514
+MOD76_021D8514: ; 0x021D8514
+ ldr r0, [r0]
+ ldr r2, [r0, #0xc]
+ ldrh r1, [r0, #0x12]
+ ldrh r0, [r0, #0x10]
+ add r0, r1, r0
+ lsl r0, r0, #1
+ ldrh r0, [r2, r0]
+ bx lr
+ thumb_func_end MOD76_021D8514
+
+ thumb_func_start MOD76_021D8524
+MOD76_021D8524: ; 0x021D8524
+ push {r3, lr}
+ ldr r1, [r0]
+ mov r2, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x36
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8524
+
+ thumb_func_start MOD76_021D853C
+MOD76_021D853C: ; 0x021D853C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r1, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD76_021D8354
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02024FF4
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D858C ; =MOD76_021D8594
+ mov r1, #1
+ add r2, r1, #0
+ str r0, [sp, #8]
+ add r2, #0xff
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0xc8
+ bl FUN_0201BD84
+ ldr r1, _021D8590 ; =0x00000185
+ strb r0, [r4, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D858C: .word MOD76_021D8594
+_021D8590: .word 0x00000185
+ thumb_func_end MOD76_021D853C
+
+ thumb_func_start MOD76_021D8594
+MOD76_021D8594: ; 0x021D8594
+ push {r3, lr}
+ cmp r1, #5
+ bhi _021D85D6
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D85A6: ; jump table
+ .short _021D85D6 - _021D85A6 - 2 ; case 0
+ .short _021D85B2 - _021D85A6 - 2 ; case 1
+ .short _021D85B8 - _021D85A6 - 2 ; case 2
+ .short _021D85BE - _021D85A6 - 2 ; case 3
+ .short _021D85C6 - _021D85A6 - 2 ; case 4
+ .short _021D85CE - _021D85A6 - 2 ; case 5
+_021D85B2:
+ bl FUN_02005514
+ pop {r3, pc}
+_021D85B8:
+ bl FUN_02005CBC
+ pop {r3, pc}
+_021D85BE:
+ ldr r0, _021D85DC ; =0x000005E6
+ bl FUN_020054C8
+ b _021D85D6
+_021D85C6:
+ ldr r0, _021D85E0 ; =0x00000483
+ bl FUN_02005C28
+ b _021D85D6
+_021D85CE:
+ ldr r0, _021D85DC ; =0x000005E6
+ bl FUN_02005508
+ pop {r3, pc}
+_021D85D6:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D85DC: .word 0x000005E6
+_021D85E0: .word 0x00000483
+ thumb_func_end MOD76_021D8594
+
+ thumb_func_start MOD76_021D85E4
+MOD76_021D85E4: ; 0x021D85E4
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021D85EC:
+ ldr r0, [r5]
+ add r1, r4, #0
+ ldr r0, [r0]
+ add r1, #0x36
+ add r2, r6, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _021D8608
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D85EC
+_021D8608:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD76_021D85E4
+
+ thumb_func_start MOD76_021D860C
+MOD76_021D860C: ; 0x021D860C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #3
+ bl MOD76_021D853C
+ add r0, r4, #0
+ bl MOD76_021D85E4
+ ldr r1, [r4]
+ strb r0, [r1, #0x17]
+ mov r0, #6
+ mov r1, #5
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ thumb_func_end MOD76_021D860C
+
+ thumb_func_start MOD76_021D862C
+MOD76_021D862C: ; 0x021D862C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8354
+ mov r0, #0
+ str r0, [sp]
+ ldr r3, _021D8678 ; =0x0001020F
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #1
+ bl MOD76_021D7CC8
+ add r0, r4, #0
+ add r0, #0xc8
+ bl FUN_02019220
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD76_021D8CB4
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D8678: .word 0x0001020F
+ thumb_func_end MOD76_021D862C
+
+ thumb_func_start MOD76_021D867C
+MOD76_021D867C: ; 0x021D867C
+ ldr r0, [r0]
+ mov r1, #1
+ strb r1, [r0, #0x16]
+ mov r0, #8
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD76_021D867C
+
+ thumb_func_start MOD76_021D8688
+MOD76_021D8688: ; 0x021D8688
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8354
+ mov r0, #0
+ str r0, [sp]
+ ldr r3, _021D86D4 ; =0x0001020F
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #1
+ bl MOD76_021D7CC8
+ add r0, r4, #0
+ add r0, #0xc8
+ bl FUN_02019220
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD76_021D8CB4
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D86D4: .word 0x0001020F
+ thumb_func_end MOD76_021D8688
+
+ thumb_func_start MOD76_021D86D8
+MOD76_021D86D8: ; 0x021D86D8
+ mov r1, #6
+ mov r2, #0xa
+ lsl r1, r1, #6
+ str r2, [r0, r1]
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD76_021D86D8
+
+ thumb_func_start MOD76_021D86E4
+MOD76_021D86E4: ; 0x021D86E4
+ push {r4, lr}
+ mov r1, #7
+ add r4, r0, #0
+ bl MOD76_021D853C
+ ldr r0, _021D86FC ; =0x00000186
+ mov r1, #3
+ strb r1, [r4, r0]
+ sub r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+_021D86FC: .word 0x00000186
+ thumb_func_end MOD76_021D86E4
+
+ thumb_func_start MOD76_021D8700
+MOD76_021D8700: ; 0x021D8700
+ push {r4, lr}
+ mov r1, #8
+ add r4, r0, #0
+ bl MOD76_021D853C
+ mov r0, #6
+ mov r1, #8
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ ldr r0, [r4]
+ mov r1, #1
+ strb r1, [r0, #0x16]
+ mov r0, #2
+ pop {r4, pc}
+ thumb_func_end MOD76_021D8700
+
+ thumb_func_start MOD76_021D871C
+MOD76_021D871C: ; 0x021D871C
+ push {r4, lr}
+ mov r1, #4
+ add r4, r0, #0
+ bl MOD76_021D853C
+ ldr r1, _021D8734 ; =0x00000186
+ mov r0, #2
+ mov r2, #3
+ strb r0, [r4, r1]
+ lsl r1, r2, #7
+ str r2, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D8734: .word 0x00000186
+ thumb_func_end MOD76_021D871C
+
+ thumb_func_start MOD76_021D8738
+MOD76_021D8738: ; 0x021D8738
+ push {r4, lr}
+ mov r1, #5
+ add r4, r0, #0
+ bl MOD76_021D853C
+ mov r1, #6
+ lsl r0, r1, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ thumb_func_end MOD76_021D8738
+
+ thumb_func_start MOD76_021D874C
+MOD76_021D874C: ; 0x021D874C
+ mov r1, #6
+ mov r2, #0xa
+ lsl r1, r1, #6
+ str r2, [r0, r1]
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD76_021D874C
+
+ thumb_func_start MOD76_021D8758
+MOD76_021D8758: ; 0x021D8758
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ ldr r3, _021D87EC ; =0x021D8E70
+ add r2, sp, #0x34
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #0x40
+ mov r1, #0x43
+ bl FUN_0201C24C
+ mov r0, #0x43
+ bl FUN_0200BB14
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0200BB34
+ mov r7, #0x45
+ lsl r7, r7, #2
+ add r2, sp, #0x14
+ ldr r3, _021D87F0 ; =0x021D8EDC
+ str r0, [r4, r7]
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ ldr r5, _021D87F4 ; =0x021D8E5C
+ stmia r2!, {r0, r1}
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [r3]
+ sub r0, r7, #4
+ ldr r0, [r4, r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ sub r1, r7, #4
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0xd
+ bl FUN_0200BBF0
+ sub r1, r7, #4
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ add r2, sp, #0x34
+ bl FUN_0200BF60
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D87EC: .word 0x021D8E70
+_021D87F0: .word 0x021D8EDC
+_021D87F4: .word 0x021D8E5C
+ thumb_func_end MOD76_021D8758
+
+ thumb_func_start MOD76_021D87F8
+MOD76_021D87F8: ; 0x021D87F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x46
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_021D8804:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blo _021D8804
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r7, r1]
+ add r1, r1, #4
+ ldr r1, [r7, r1]
+ bl FUN_0200C398
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r0, [r7, r0]
+ bl FUN_0200BD04
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D87F8
+
+ thumb_func_start MOD76_021D882C
+MOD76_021D882C: ; 0x021D882C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #1
+ mov r6, #0x46
+ add r5, r0, #0
+ mov r4, #0
+ lsl r7, r7, #0xc
+ lsl r6, r6, #2
+_021D883A:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ add r1, r7, #0
+ ldr r0, [r0]
+ bl FUN_020201E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xd
+ blo _021D883A
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D882C
+
+ thumb_func_start MOD76_021D8854
+MOD76_021D8854: ; 0x021D8854
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #5
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D89D4 ; =0x0000B8A9
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #8
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D89D8 ; =0x0000B8AA
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #2
+ bl FUN_0200C00C
+ ldr r4, _021D89DC ; =0x0000B8AC
+ mov r7, #0x45
+ lsl r7, r7, #2
+ add r6, r4, #6
+_021D88BC:
+ mov r0, #0x11
+ str r4, [sp]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r7]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E130
+ add r4, r4, #1
+ cmp r4, r6
+ bls _021D88BC
+ ldr r0, _021D89E0 ; =0x0000B8AB
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E2AC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #9
+ bl FUN_0200C06C
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ ldr r3, _021D89D4 ; =0x0000B8A9
+ mov r2, #1
+ bl FUN_0206E164
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #4
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D4 ; =0x0000B8A9
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #7
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D8 ; =0x0000B8AA
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #1
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #3
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D4 ; =0x0000B8A9
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #6
+ bl FUN_0200C13C
+ mov r3, #0
+ mov r1, #0x11
+ ldr r0, _021D89D8 ; =0x0000B8AA
+ str r3, [sp]
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ bl FUN_0200C13C
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r2, _021D89E0 ; =0x0000B8AB
+ ldr r1, [r5, r1]
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D89D0: .word 0x0000B8A8
+_021D89D4: .word 0x0000B8A9
+_021D89D8: .word 0x0000B8AA
+_021D89DC: .word 0x0000B8AC
+_021D89E0: .word 0x0000B8AB
+ thumb_func_end MOD76_021D8854
+
+ thumb_func_start MOD76_021D89E4
+MOD76_021D89E4: ; 0x021D89E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r2, #0
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D8A00
+ add r0, r1, #0
+ mov r1, #3
+ bl FUN_0206AB18
+ add r6, r0, #0
+ b _021D8A0C
+_021D8A00:
+ add r0, r1, #0
+ mov r1, #0xb
+ bl FUN_0206AB18
+ add r6, r0, #0
+ add r6, #0x12
+_021D8A0C:
+ bl FUN_0206E12C
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_0206E0F0
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _021D8A54 ; =0x0000B8AC
+ mov r1, #0x11
+ add r0, r4, r0
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ add r2, r7, #0
+ bl FUN_0200C9D8
+ add r0, r6, #0
+ bl FUN_0206E114
+ add r1, r0, #0
+ add r0, r4, #6
+ lsl r0, r0, #2
+ add r2, r5, r0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ add r1, r1, #2
+ bl FUN_0200C66C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8A54: .word 0x0000B8AC
+ thumb_func_end MOD76_021D89E4
+
+ thumb_func_start MOD76_021D8A58
+MOD76_021D8A58: ; 0x021D8A58
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ mov r7, #0x20
+ add r5, r6, #0
+_021D8A62:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ lsl r2, r7, #0x10
+ ldr r0, [r5, r0]
+ mov r1, #0x98
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r6]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldrh r0, [r0, #0x12]
+ ldrb r1, [r6, r1]
+ add r0, r0, r4
+ sub r1, r1, #1
+ cmp r0, r1
+ blo _021D8A92
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ b _021D8AB4
+_021D8A92:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r2, [r6]
+ add r0, r6, #0
+ ldr r1, [r2, #0xc]
+ ldrh r2, [r2, #0x12]
+ add r2, r2, r4
+ lsl r2, r2, #1
+ ldrh r1, [r1, r2]
+ lsl r2, r4, #0x10
+ lsr r2, r2, #0x10
+ bl MOD76_021D89E4
+_021D8AB4:
+ add r4, r4, #1
+ add r7, #0x10
+ add r5, r5, #4
+ cmp r4, #7
+ blo _021D8A62
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D8A58
+
+ thumb_func_start MOD76_021D8AC0
+MOD76_021D8AC0: ; 0x021D8AC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ str r2, [sp]
+ cmp r1, r2
+ bhs _021D8B30
+ ldr r0, [sp]
+ mov r6, #0
+ add r0, r0, #6
+ lsl r0, r0, #1
+ add r4, r5, #0
+ str r0, [sp, #4]
+ add r7, sp, #0xc
+_021D8ADA:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r1, sp, #0xc
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x20
+ bne _021D8B10
+ mov r0, #0x80
+ strh r0, [r7]
+ ldr r0, [r5]
+ ldr r1, [r0, #0xc]
+ ldr r0, [sp, #4]
+ ldrh r1, [r0, r1]
+ ldr r0, _021D8BF4 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D8B14
+ lsl r2, r6, #0x10
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD76_021D89E4
+ b _021D8B14
+_021D8B10:
+ sub r0, #0x10
+ strh r0, [r7]
+_021D8B14:
+ mov r0, #0x13
+ mov r1, #2
+ mov r2, #0
+ lsl r0, r0, #4
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #7
+ blo _021D8ADA
+ b _021D8B94
+_021D8B30:
+ ldr r0, [sp]
+ cmp r1, r0
+ bls _021D8BF0
+ lsl r0, r0, #1
+ mov r6, #0
+ add r4, r5, #0
+ str r0, [sp, #8]
+ add r7, sp, #0xc
+_021D8B40:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r1, sp, #0xc
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x80
+ bne _021D8B76
+ mov r0, #0x20
+ strh r0, [r7]
+ ldr r0, [r5]
+ ldr r1, [r0, #0xc]
+ ldr r0, [sp, #8]
+ ldrh r1, [r0, r1]
+ ldr r0, _021D8BF4 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D8B7A
+ lsl r2, r6, #0x10
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD76_021D89E4
+ b _021D8B7A
+_021D8B76:
+ add r0, #0x10
+ strh r0, [r7]
+_021D8B7A:
+ mov r0, #0x13
+ mov r1, #2
+ mov r2, #0
+ lsl r0, r0, #4
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #7
+ blo _021D8B40
+_021D8B94:
+ mov r6, #0
+ add r4, r5, #0
+ add r7, sp, #0xc
+_021D8B9A:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r1, sp, #0xc
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r1, [r7, r0]
+ sub r1, #0x20
+ asr r0, r1, #3
+ lsr r0, r0, #0x1c
+ add r0, r1, r0
+ asr r0, r0, #4
+ strh r0, [r7]
+ mov r0, #0
+ ldrsh r1, [r7, r0]
+ ldr r0, [sp]
+ add r0, r0, r1
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ sub r1, r1, #1
+ cmp r0, r1
+ blt _021D8BDC
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ b _021D8BE8
+_021D8BDC:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+_021D8BE8:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #7
+ blo _021D8B9A
+_021D8BF0:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8BF4: .word 0x0000FFFF
+ thumb_func_end MOD76_021D8AC0
+
+ thumb_func_start MOD76_021D8BF8
+MOD76_021D8BF8: ; 0x021D8BF8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl FUN_0206AB18
+ add r4, r0, #0
+ bl FUN_0206E2A8
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0206E278
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _021D8C48 ; =0x0000B8AB
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200C9D8
+ add r0, r4, #0
+ bl FUN_0206E290
+ add r1, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #2
+ bl FUN_0200C66C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D8C48: .word 0x0000B8AB
+ thumb_func_end MOD76_021D8BF8
+
+ thumb_func_start MOD76_021D8C4C
+MOD76_021D8C4C: ; 0x021D8C4C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl MOD76_021D8758
+ add r0, r6, #0
+ bl MOD76_021D8854
+ ldr r4, _021D8C84 ; =0x021D903C
+ mov r7, #0
+ add r5, r6, #0
+_021D8C60:
+ mov r0, #0x11
+ mov r1, #0x45
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r6, r0]
+ ldr r1, [r6, r1]
+ add r2, r4, #0
+ bl FUN_0200C154
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r7, r7, #1
+ add r4, #0x34
+ add r5, r5, #4
+ cmp r7, #0xd
+ blo _021D8C60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8C84: .word 0x021D903C
+ thumb_func_end MOD76_021D8C4C
+
+ thumb_func_start MOD76_021D8C88
+MOD76_021D8C88: ; 0x021D8C88
+ push {r3, r4, r5, lr}
+ add r3, r1, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r0, #0x4a
+ lsl r2, r3, #4
+ lsl r0, r0, #2
+ add r2, #0x20
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ mov r1, #0xc4
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C66C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8C88
+
+ thumb_func_start MOD76_021D8CB4
+MOD76_021D8CB4: ; 0x021D8CB4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_0200C644
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C644
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8CB4
+
+ thumb_func_start MOD76_021D8CD4
+MOD76_021D8CD4: ; 0x021D8CD4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldrh r0, [r0, #0x12]
+ cmp r0, #0
+ beq _021D8CEE
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ b _021D8CFA
+_021D8CEE:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021D8CFA:
+ ldr r0, [r4]
+ ldrh r0, [r0, #0x12]
+ add r2, r0, #7
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r2, r1
+ bge _021D8D16
+ sub r0, #0x60
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r4, pc}
+_021D8D16:
+ sub r0, #0x60
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8CD4
+
+ thumb_func_start MOD76_021D8D24
+MOD76_021D8D24: ; 0x021D8D24
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8D24
+
+ thumb_func_start MOD76_021D8D44
+MOD76_021D8D44: ; 0x021D8D44
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0x43
+ bl FUN_02079A70
+ mov r0, #6
+ mov r1, #0xb
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD76_021D8D44
+
+ thumb_func_start MOD76_021D8D5C
+MOD76_021D8D5C: ; 0x021D8D5C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r2, _021D8DE4 ; =0x021D8E48
+ add r1, sp, #0
+ ldrb r3, [r2]
+ add r4, r0, #0
+ strb r3, [r1]
+ ldrb r3, [r2, #1]
+ ldrb r2, [r2, #2]
+ strb r3, [r1, #1]
+ strb r2, [r1, #2]
+ bl MOD76_021D76B8
+ ldr r0, [r4]
+ mov r1, #0x53
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4]
+ ldr r2, [r0, #8]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x11
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x14
+ strb r2, [r4, r0]
+ mov r0, #1
+ add r1, #0x13
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD76_021D8514
+ mov r1, #0x59
+ lsl r1, r1, #2
+ strh r0, [r4, r1]
+ mov r2, #2
+ sub r0, r1, #6
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #1
+ add r0, #0x14
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x10
+ sub r1, #0x18
+ str r2, [r4, r0]
+ add r0, r4, r1
+ add r1, sp, #0
+ bl FUN_0207B000
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldr r0, _021D8DE8 ; =0x020FA6E8
+ add r1, r4, r1
+ mov r2, #0x43
+ bl FUN_02006234
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D8DE4: .word 0x021D8E48
+_021D8DE8: .word 0x020FA6E8
+ thumb_func_end MOD76_021D8D5C
+
+ thumb_func_start MOD76_021D8DEC
+MOD76_021D8DEC: ; 0x021D8DEC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D8E3E
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02006260
+ add r0, r4, #0
+ bl MOD76_021D7638
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8CB4
+ add r0, r4, #0
+ bl MOD76_021D8D24
+ ldr r0, _021D8E44 ; =0x00000162
+ ldr r1, [r4]
+ ldrb r2, [r4, r0]
+ add r0, #0x1e
+ strb r2, [r1, #0x17]
+ mov r1, #7
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+_021D8E3E:
+ mov r0, #0xc
+ pop {r4, pc}
+ nop
+_021D8E44: .word 0x00000162
+ thumb_func_end MOD76_021D8DEC
+
+ .section .rodata
+ ; 0x021D8E48
+ .incbin "baserom.nds", 0x2D7568, 0x498