summaryrefslogtreecommitdiff
path: root/asm/pokedex.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokedex.s')
-rwxr-xr-xasm/pokedex.s9472
1 files changed, 9472 insertions, 0 deletions
diff --git a/asm/pokedex.s b/asm/pokedex.s
new file mode 100755
index 0000000..c207762
--- /dev/null
+++ b/asm/pokedex.s
@@ -0,0 +1,9472 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start PokedexMain
+PokedexMain: @ 0x08003DAC
+ push {lr}
+ ldr r1, _08003DC4 @ =0x0805C880
+ ldr r0, _08003DC8 @ =0x0200B0C0
+ ldrb r0, [r0, #3]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003DC4: .4byte 0x0805C880
+_08003DC8: .4byte 0x0200B0C0
+
+ thumb_func_start sub_3DCC
+sub_3DCC: @ 0x08003DCC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ bl sub_438
+ movs r2, #0x80
+ lsls r2, r2, #0x13
+ movs r1, #0x86
+ lsls r1, r1, #5
+ adds r0, r1, #0
+ strh r0, [r2]
+ ldr r1, _08003F30 @ =0x0400000A
+ movs r0, #5
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #2
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08003F34 @ =0x0400000C
+ subs r3, #0xf2
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #3
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08003F38 @ =0x0400000E
+ ldr r3, _08003F3C @ =0x0000020F
+ adds r0, r3, #0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ movs r3, #0x80
+ lsls r3, r3, #4
+ adds r1, r3, #0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r7, _08003F40 @ =0x0200B0C0
+ ldrh r0, [r2]
+ strh r0, [r7, #0x16]
+ ldr r4, _08003F44 @ =0x040000D4
+ ldr r0, _08003F48 @ =0x08082720
+ str r0, [r4]
+ ldr r0, _08003F4C @ =0x06004000
+ str r0, [r4, #4]
+ ldr r0, _08003F50 @ =0x80002200
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F54 @ =0x08087B40
+ str r0, [r4]
+ ldr r0, _08003F58 @ =0x0600C000
+ str r0, [r4, #4]
+ ldr r0, _08003F5C @ =0x80000A00
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F60 @ =0x08089760
+ str r0, [r4]
+ movs r0, #0xa0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ ldr r1, _08003F64 @ =0x80000100
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F68 @ =0x08081F20
+ str r0, [r4]
+ ldr r0, _08003F6C @ =0x03005C00
+ mov sl, r0
+ str r0, [r4, #4]
+ ldr r2, _08003F70 @ =0x80000400
+ mov r8, r2
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F74 @ =0x08087340
+ str r0, [r4]
+ ldr r3, _08003F78 @ =0x02019C40
+ mov sb, r3
+ str r3, [r4, #4]
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F7C @ =0x08088F60
+ str r0, [r4]
+ ldr r0, _08003F80 @ =0x06001000
+ str r0, [r4, #4]
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F84 @ =0x08089960
+ str r0, [r4]
+ ldr r0, _08003F88 @ =0x05000200
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ ldr r0, [r4, #8]
+ ldr r0, _08003F8C @ =0x08089B60
+ str r0, [r4]
+ ldr r0, _08003F90 @ =0x06010000
+ str r0, [r4, #4]
+ ldr r0, _08003F94 @ =0x80003610
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_3FAC
+ ldr r0, _08003F98 @ =0x0202BEB8
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ ldr r1, _08003F9C @ =0x0201A514
+ movs r2, #0
+ ldrsh r1, [r1, r2]
+ bl sub_6BEC
+ ldr r6, _08003FA0 @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ bl sub_681C
+ ldr r5, _08003FA4 @ =0x0202C5B0
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ bl sub_6CA0
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ bl sub_6F30
+ movs r3, #0
+ ldrsh r0, [r6, r3]
+ bl sub_6F78
+ movs r1, #0
+ ldrsh r0, [r6, r1]
+ bl sub_8974
+ movs r2, #0
+ ldrsh r0, [r6, r2]
+ bl sub_8A78
+ movs r1, #0x9a
+ lsls r1, r1, #2
+ add r1, sb
+ movs r0, #0x59
+ strh r0, [r1]
+ mov r3, sl
+ str r3, [r4]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r4, #4]
+ mov r0, r8
+ str r0, [r4, #8]
+ ldr r0, [r4, #8]
+ mov r1, sb
+ str r1, [r4]
+ ldr r0, _08003FA8 @ =0x06000800
+ str r0, [r4, #4]
+ mov r2, r8
+ str r2, [r4, #8]
+ ldr r0, [r4, #8]
+ bl sub_51FC
+ bl sub_CBC
+ bl sub_24C
+ movs r0, #1
+ strb r0, [r7, #3]
+ movs r0, #0x2e
+ bl m4aSongNumStart
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003F30: .4byte 0x0400000A
+_08003F34: .4byte 0x0400000C
+_08003F38: .4byte 0x0400000E
+_08003F3C: .4byte 0x0000020F
+_08003F40: .4byte 0x0200B0C0
+_08003F44: .4byte 0x040000D4
+_08003F48: .4byte 0x08082720
+_08003F4C: .4byte 0x06004000
+_08003F50: .4byte 0x80002200
+_08003F54: .4byte 0x08087B40
+_08003F58: .4byte 0x0600C000
+_08003F5C: .4byte 0x80000A00
+_08003F60: .4byte 0x08089760
+_08003F64: .4byte 0x80000100
+_08003F68: .4byte 0x08081F20
+_08003F6C: .4byte 0x03005C00
+_08003F70: .4byte 0x80000400
+_08003F74: .4byte 0x08087340
+_08003F78: .4byte 0x02019C40
+_08003F7C: .4byte 0x08088F60
+_08003F80: .4byte 0x06001000
+_08003F84: .4byte 0x08089960
+_08003F88: .4byte 0x05000200
+_08003F8C: .4byte 0x08089B60
+_08003F90: .4byte 0x06010000
+_08003F94: .4byte 0x80003610
+_08003F98: .4byte 0x0202BEB8
+_08003F9C: .4byte 0x0201A514
+_08003FA0: .4byte 0x0202ADE0
+_08003FA4: .4byte 0x0202C5B0
+_08003FA8: .4byte 0x06000800
+
+ thumb_func_start sub_3FAC
+sub_3FAC: @ 0x08003FAC
+ push {r4, r5, lr}
+ ldr r0, _0800401C @ =0x0202ADE0
+ movs r4, #0
+ strh r4, [r0]
+ ldr r0, _08004020 @ =0x0202C5B0
+ strh r4, [r0]
+ ldr r0, _08004024 @ =0x0201A448
+ strh r4, [r0]
+ ldr r0, _08004028 @ =0x0202BF00
+ strh r4, [r0]
+ ldr r0, _0800402C @ =0x0202A57C
+ strh r4, [r0]
+ ldr r0, _08004030 @ =0x0201A4F0
+ strh r4, [r0]
+ ldr r0, _08004034 @ =0x0202BE20
+ strh r4, [r0]
+ ldr r0, _08004038 @ =0x0202C58C
+ strh r4, [r0]
+ ldr r0, _0800403C @ =0x02019C24
+ strb r4, [r0]
+ ldr r0, _08004040 @ =0x0202BF0C
+ strh r4, [r0]
+ ldr r0, _08004044 @ =0x0201A440
+ strh r4, [r0]
+ ldr r0, _08004048 @ =0x0202C5E8
+ strh r4, [r0]
+ ldr r0, _0800404C @ =0x0202BEF4
+ strh r4, [r0]
+ ldr r0, _08004050 @ =0x0202A588
+ movs r5, #1
+ strh r5, [r0]
+ ldr r0, _08004054 @ =0x0202A55C
+ strh r5, [r0]
+ ldr r0, _08004058 @ =0x0202A568
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ ldr r0, _0800405C @ =0x0202BF14
+ strh r1, [r0]
+ ldr r0, _08004060 @ =0x0202A558
+ strh r1, [r0]
+ ldr r0, _08004064 @ =0x0202BEE0
+ strb r4, [r0]
+ ldr r0, _08004068 @ =0x0202BF04
+ strb r5, [r0]
+ bl sub_88E4
+ bl sub_FD20
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #1
+ bne _08004070
+ ldr r0, _0800406C @ =0x0202C590
+ strb r5, [r0]
+ b _08004074
+ .align 2, 0
+_0800401C: .4byte 0x0202ADE0
+_08004020: .4byte 0x0202C5B0
+_08004024: .4byte 0x0201A448
+_08004028: .4byte 0x0202BF00
+_0800402C: .4byte 0x0202A57C
+_08004030: .4byte 0x0201A4F0
+_08004034: .4byte 0x0202BE20
+_08004038: .4byte 0x0202C58C
+_0800403C: .4byte 0x02019C24
+_08004040: .4byte 0x0202BF0C
+_08004044: .4byte 0x0201A440
+_08004048: .4byte 0x0202C5E8
+_0800404C: .4byte 0x0202BEF4
+_08004050: .4byte 0x0202A588
+_08004054: .4byte 0x0202A55C
+_08004058: .4byte 0x0202A568
+_0800405C: .4byte 0x0202BF14
+_08004060: .4byte 0x0202A558
+_08004064: .4byte 0x0202BEE0
+_08004068: .4byte 0x0202BF04
+_0800406C: .4byte 0x0202C590
+_08004070:
+ ldr r0, _080040C8 @ =0x0202C590
+ strb r4, [r0]
+_08004074:
+ ldr r0, _080040CC @ =0x0202BEC4
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _080040D0 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r0, _080040D4 @ =0x0201B120
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080040D8 @ =0x02002830
+ strb r1, [r0]
+ ldr r0, _080040DC @ =0x02002831
+ strb r1, [r0]
+ ldr r0, _080040E0 @ =0x0202C794
+ strb r1, [r0]
+ ldr r0, _080040E4 @ =0x0201C1B4
+ strb r1, [r0]
+ ldr r0, _080040E8 @ =0x0202C5AC
+ strb r1, [r0]
+ ldr r0, _080040EC @ =0x02019C28
+ strb r1, [r0]
+ ldr r5, _080040F0 @ =0x0202A1C0
+ ldr r4, _080040F4 @ =0x0202A574
+ adds r3, r5, #0
+ ldr r2, _080040F8 @ =0x0202A390
+ movs r1, #0xe0
+_080040A6:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, #2
+ adds r2, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _080040A6
+ adds r1, r5, #0
+ movs r2, #0xcc
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ beq _080040FC
+ movs r0, #0xcd
+ b _08004146
+ .align 2, 0
+_080040C8: .4byte 0x0202C590
+_080040CC: .4byte 0x0202BEC4
+_080040D0: .4byte 0x0202BEFC
+_080040D4: .4byte 0x0201B120
+_080040D8: .4byte 0x02002830
+_080040DC: .4byte 0x02002831
+_080040E0: .4byte 0x0202C794
+_080040E4: .4byte 0x0201C1B4
+_080040E8: .4byte 0x0202C5AC
+_080040EC: .4byte 0x02019C28
+_080040F0: .4byte 0x0202A1C0
+_080040F4: .4byte 0x0202A574
+_080040F8: .4byte 0x0202A390
+_080040FC:
+ movs r2, #0xcb
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ beq _0800410E
+ movs r0, #0xcc
+ b _08004146
+_0800410E:
+ movs r2, #0xca
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #0
+ beq _08004120
+ movs r0, #0xcb
+ b _08004146
+_08004120:
+ movs r2, #0xc9
+ lsls r2, r2, #1
+ adds r0, r1, r2
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ beq _08004132
+ movs r0, #0xca
+ b _08004146
+_08004132:
+ movs r2, #0xc8
+ lsls r2, r2, #1
+ adds r0, r5, r2
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ beq _08004144
+ movs r0, #0xc9
+ b _08004146
+_08004144:
+ movs r0, #0xc8
+_08004146:
+ strh r0, [r4]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_4150
+sub_4150: @ 0x08004150
+ push {r4, r5, r6, r7, lr}
+ ldr r4, _08004174 @ =0x0200B0C0
+ ldrh r2, [r4, #0x1c]
+ movs r0, #4
+ ands r0, r2
+ cmp r0, #0
+ beq _08004230
+ ldr r1, _08004178 @ =0x0202BF04
+ movs r0, #0
+ strb r0, [r1]
+ movs r0, #0x40
+ ands r0, r2
+ cmp r0, #0
+ beq _0800417C
+ bl sub_4D74
+ b _080041A8
+ .align 2, 0
+_08004174: .4byte 0x0200B0C0
+_08004178: .4byte 0x0202BF04
+_0800417C:
+ movs r0, #0x80
+ ands r0, r2
+ cmp r0, #0
+ beq _0800418A
+ bl sub_4E34
+ b _080041A8
+_0800418A:
+ movs r0, #0x20
+ ands r0, r2
+ cmp r0, #0
+ beq _08004198
+ bl sub_4EF0
+ b _080041A8
+_08004198:
+ movs r0, #0x10
+ ands r0, r2
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, #0
+ beq _080041B6
+ bl sub_4F50
+_080041A8:
+ bl sub_5064
+ bl sub_51CC
+ movs r0, #2
+ strb r0, [r4, #3]
+ b _080041BE
+_080041B6:
+ ldr r0, _08004200 @ =0x02019C24
+ strb r1, [r0]
+ bl sub_5064
+_080041BE:
+ ldr r3, _08004204 @ =0x0200B0C0
+ ldrh r1, [r3, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _080041CC
+ b _08004388
+_080041CC:
+ ldr r0, _08004208 @ =0x0202C5E8
+ movs r2, #0
+ strh r2, [r0]
+ ldr r1, _0800420C @ =0x0202A1C0
+ ldr r0, _08004210 @ =0x0202ADE0
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #1
+ ble _08004228
+ ldr r0, _08004214 @ =0x0202BF04
+ strb r2, [r0]
+ ldr r1, _08004218 @ =0x040000D4
+ ldr r0, _0800421C @ =0x06000280
+ str r0, [r1]
+ ldr r0, _08004220 @ =0x0202A590
+ str r0, [r1, #4]
+ ldr r0, _08004224 @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r0, #3
+ strb r0, [r3, #3]
+ b _08004388
+ .align 2, 0
+_08004200: .4byte 0x02019C24
+_08004204: .4byte 0x0200B0C0
+_08004208: .4byte 0x0202C5E8
+_0800420C: .4byte 0x0202A1C0
+_08004210: .4byte 0x0202ADE0
+_08004214: .4byte 0x0202BF04
+_08004218: .4byte 0x040000D4
+_0800421C: .4byte 0x06000280
+_08004220: .4byte 0x0202A590
+_08004224: .4byte 0x80000100
+_08004228:
+ movs r0, #0x8a
+ bl m4aSongNumStart
+ b _08004388
+_08004230:
+ ldr r1, _08004248 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #0x40
+ ands r0, r2
+ cmp r0, #0
+ beq _0800424C
+ bl sub_4D74
+ bl sub_5174
+ b _0800428A
+ .align 2, 0
+_08004248: .4byte 0x0202BF04
+_0800424C:
+ movs r0, #0x80
+ ands r0, r2
+ cmp r0, #0
+ beq _0800425E
+ bl sub_4E34
+ bl sub_5174
+ b _0800428A
+_0800425E:
+ movs r0, #0x20
+ ands r0, r2
+ cmp r0, #0
+ beq _08004270
+ bl sub_4EF0
+ bl sub_5174
+ b _0800428A
+_08004270:
+ movs r0, #0x10
+ ands r0, r2
+ lsls r0, r0, #0x10
+ lsrs r1, r0, #0x10
+ cmp r1, #0
+ beq _08004286
+ bl sub_4F50
+ bl sub_5174
+ b _0800428A
+_08004286:
+ ldr r0, _080042A4 @ =0x02019C24
+ strb r1, [r0]
+_0800428A:
+ ldr r0, _080042A8 @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ bl sub_8A78
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ cmp r1, #1
+ bne _080042B0
+ ldr r0, _080042AC @ =0x0202A588
+ strh r1, [r0]
+ b _080042B6
+ .align 2, 0
+_080042A4: .4byte 0x02019C24
+_080042A8: .4byte 0x0202ADE0
+_080042AC: .4byte 0x0202A588
+_080042B0:
+ ldr r1, _0800430C @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+_080042B6:
+ ldr r0, _08004310 @ =0x0202A55C
+ movs r7, #1
+ strh r7, [r0]
+ ldr r0, _08004314 @ =0x0202A568
+ movs r6, #0
+ movs r2, #0
+ strh r2, [r0]
+ strh r2, [r0, #2]
+ ldr r0, _08004318 @ =0x0201A440
+ strh r2, [r0]
+ ldr r0, _0800431C @ =0x0202BF0C
+ strh r2, [r0]
+ ldr r5, _08004320 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800434C
+ ldr r0, _08004324 @ =0x0202C5E8
+ strh r2, [r0]
+ ldr r1, _08004328 @ =0x0202A1C0
+ ldr r0, _0800432C @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ cmp r0, #1
+ ble _08004344
+ ldr r0, _08004330 @ =0x0202BF04
+ strb r6, [r0]
+ ldr r1, _08004334 @ =0x040000D4
+ ldr r0, _08004338 @ =0x06000280
+ str r0, [r1]
+ ldr r0, _0800433C @ =0x0202A590
+ str r0, [r1, #4]
+ ldr r0, _08004340 @ =0x80000100
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r0, #3
+ b _08004382
+ .align 2, 0
+_0800430C: .4byte 0x0202A588
+_08004310: .4byte 0x0202A55C
+_08004314: .4byte 0x0202A568
+_08004318: .4byte 0x0201A440
+_0800431C: .4byte 0x0202BF0C
+_08004320: .4byte 0x0200B0C0
+_08004324: .4byte 0x0202C5E8
+_08004328: .4byte 0x0202A1C0
+_0800432C: .4byte 0x0202ADE0
+_08004330: .4byte 0x0202BF04
+_08004334: .4byte 0x040000D4
+_08004338: .4byte 0x06000280
+_0800433C: .4byte 0x0202A590
+_08004340: .4byte 0x80000100
+_08004344:
+ movs r0, #0x8a
+ bl m4aSongNumStart
+ b _08004384
+_0800434C:
+ movs r0, #2
+ ands r0, r1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ cmp r4, #0
+ beq _08004362
+ movs r0, #0x66
+ bl m4aSongNumStart
+ movs r0, #0xc
+ b _08004382
+_08004362:
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08004384
+ movs r0, #0x68
+ bl m4aSongNumStart
+ ldr r0, _080043B4 @ =0x0202BEC4
+ strb r7, [r0]
+ ldr r0, _080043B8 @ =0x0202BEFC
+ strb r6, [r0]
+ ldr r0, _080043BC @ =0x0202BF04
+ strb r6, [r0]
+ ldr r0, _080043C0 @ =0x0202A588
+ strh r4, [r0]
+ movs r0, #6
+_08004382:
+ strb r0, [r5, #3]
+_08004384:
+ bl sub_4FC8
+_08004388:
+ ldr r1, _080043C4 @ =0x0202C58C
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _08004398
+ subs r0, r2, #1
+ strh r0, [r1]
+_08004398:
+ bl sub_51FC
+ ldr r1, _080043C8 @ =0x040000D4
+ ldr r0, _080043CC @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _080043D0 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080043B4: .4byte 0x0202BEC4
+_080043B8: .4byte 0x0202BEFC
+_080043BC: .4byte 0x0202BF04
+_080043C0: .4byte 0x0202A588
+_080043C4: .4byte 0x0202C58C
+_080043C8: .4byte 0x040000D4
+_080043CC: .4byte 0x03005C00
+_080043D0: .4byte 0x80000400
+
+ thumb_func_start sub_43D4
+sub_43D4: @ 0x080043D4
+ push {lr}
+ bl sub_5174
+ ldr r0, _08004410 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r1, _08004414 @ =0x0202C58C
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _080043F0
+ subs r0, r2, #1
+ strh r0, [r1]
+_080043F0:
+ bl sub_51FC
+ ldr r1, _08004418 @ =0x040000D4
+ ldr r0, _0800441C @ =0x03005C00
+ str r0, [r1]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r1, #4]
+ ldr r0, _08004420 @ =0x80000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ ldr r1, _08004424 @ =0x0200B0C0
+ movs r0, #1
+ strb r0, [r1, #3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004410: .4byte 0x0202A588
+_08004414: .4byte 0x0202C58C
+_08004418: .4byte 0x040000D4
+_0800441C: .4byte 0x03005C00
+_08004420: .4byte 0x80000400
+_08004424: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4428
+sub_4428: @ 0x08004428
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ movs r3, #0
+ ldr r7, _08004548 @ =0x0202A558
+ ldr r0, _0800454C @ =0x02019C40
+ mov ip, r0
+ ldr r1, _08004550 @ =0x0805C780
+ mov sl, r1
+ ldr r6, _08004554 @ =0x0805C7C0
+ mov sb, r6
+ ldr r0, _08004558 @ =0x03005C00
+ mov r8, r0
+ adds r5, r7, #0
+ ldr r4, _0800455C @ =0x0805C840
+_0800444A:
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ adds r0, #0xa
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ add r0, r8
+ lsls r2, r3, #1
+ ldrh r1, [r4]
+ strh r1, [r0]
+ movs r6, #0
+ ldrsh r0, [r5, r6]
+ adds r0, #9
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ ldr r1, _0800454C @ =0x02019C40
+ adds r0, r0, r1
+ mov r6, sl
+ adds r1, r2, r6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ adds r0, #0xa
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ ldr r6, _0800454C @ =0x02019C40
+ adds r0, r0, r6
+ add r2, sb
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1f
+ ble _0800444A
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ movs r1, #0x9a
+ lsls r1, r1, #2
+ add r1, ip
+ movs r4, #0
+ movs r3, #0
+ movs r0, #0x59
+ strh r0, [r1]
+ ldr r2, _08004560 @ =0x040000D4
+ ldr r0, _08004558 @ =0x03005C00
+ str r0, [r2]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r2, #4]
+ ldr r1, _08004564 @ =0x80000400
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r6, ip
+ str r6, [r2]
+ ldr r0, _08004568 @ =0x06000800
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldrsh r0, [r7, r1]
+ cmp r0, #7
+ ble _08004538
+ strh r3, [r7]
+ ldr r0, _0800456C @ =0x0202C5E8
+ strh r3, [r0]
+ ldr r0, _08004570 @ =0x0202BEF4
+ strh r3, [r0]
+ ldr r0, _08004574 @ =0x02019C28
+ strb r4, [r0]
+ ldr r0, _08004578 @ =0x0202C5AC
+ strb r4, [r0]
+ ldr r4, _0800457C @ =0x0202ADE0
+ movs r6, #0
+ ldrsh r0, [r4, r6]
+ cmp r0, #0xc8
+ bgt _080044F0
+ ldr r1, _08004580 @ =0x0201C1B4
+ movs r0, #1
+ strb r0, [r1]
+_080044F0:
+ ldr r0, _08004584 @ =0x08086B40
+ str r0, [r2]
+ ldr r0, _08004588 @ =0x06000280
+ str r0, [r2, #4]
+ ldr r0, _0800458C @ =0x800000E0
+ str r0, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ ldr r1, _08004590 @ =0x0202C794
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ bl sub_70E0
+ ldr r0, _08004594 @ =0x02032EE0
+ ldr r1, _08004598 @ =0x0000FFFF
+ movs r2, #0x40
+ bl m4aMPlayVolumeControl
+ ldr r2, _0800459C @ =0x086A3700
+ movs r6, #0
+ ldrsh r1, [r4, r6]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #3
+ adds r0, r0, r2
+ ldrh r0, [r0]
+ movs r1, #0
+ movs r2, #0x7f
+ movs r3, #0xa
+ bl sub_5291C
+ ldr r1, _080045A0 @ =0x0200B0C0
+ movs r0, #5
+ strb r0, [r1, #3]
+_08004538:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004548: .4byte 0x0202A558
+_0800454C: .4byte 0x02019C40
+_08004550: .4byte 0x0805C780
+_08004554: .4byte 0x0805C7C0
+_08004558: .4byte 0x03005C00
+_0800455C: .4byte 0x0805C840
+_08004560: .4byte 0x040000D4
+_08004564: .4byte 0x80000400
+_08004568: .4byte 0x06000800
+_0800456C: .4byte 0x0202C5E8
+_08004570: .4byte 0x0202BEF4
+_08004574: .4byte 0x02019C28
+_08004578: .4byte 0x0202C5AC
+_0800457C: .4byte 0x0202ADE0
+_08004580: .4byte 0x0201C1B4
+_08004584: .4byte 0x08086B40
+_08004588: .4byte 0x06000280
+_0800458C: .4byte 0x800000E0
+_08004590: .4byte 0x0202C794
+_08004594: .4byte 0x02032EE0
+_08004598: .4byte 0x0000FFFF
+_0800459C: .4byte 0x086A3700
+_080045A0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_45A4
+sub_45A4: @ 0x080045A4
+ push {r4, r5, r6, lr}
+ ldr r1, _08004620 @ =0x0202C5E8
+ ldrh r2, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0x50
+ bgt _080045CA
+ adds r0, r2, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x50
+ bne _080045CA
+ ldr r0, _08004624 @ =0x02032EE0
+ ldr r1, _08004628 @ =0x0000FFFF
+ movs r2, #0x80
+ lsls r2, r2, #1
+ bl m4aMPlayVolumeControl
+_080045CA:
+ ldr r1, _0800462C @ =0x0202BEF4
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x1e
+ ble _080045E8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r2, _08004630 @ =0x0202C5AC
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_080045E8:
+ ldr r0, _08004634 @ =0x0202BE20
+ movs r6, #0
+ strh r6, [r0]
+ ldr r0, _08004638 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #0x40
+ ands r0, r1
+ cmp r0, #0
+ beq _08004644
+ ldr r5, _0800463C @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ cmp r0, #0xc8
+ bgt _0800467A
+ ldr r4, _08004640 @ =0x0202C794
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #1
+ bne _0800467A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ strb r6, [r4]
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ movs r1, #0
+ b _08004670
+ .align 2, 0
+_08004620: .4byte 0x0202C5E8
+_08004624: .4byte 0x02032EE0
+_08004628: .4byte 0x0000FFFF
+_0800462C: .4byte 0x0202BEF4
+_08004630: .4byte 0x0202C5AC
+_08004634: .4byte 0x0202BE20
+_08004638: .4byte 0x0200B0C0
+_0800463C: .4byte 0x0202ADE0
+_08004640: .4byte 0x0202C794
+_08004644:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0800467A
+ ldr r5, _080046BC @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ cmp r0, #0xc8
+ bgt _0800467A
+ ldr r4, _080046C0 @ =0x0202C794
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _0800467A
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ movs r0, #1
+ strb r0, [r4]
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ movs r1, #1
+_08004670:
+ bl sub_70E0
+ ldr r1, _080046C4 @ =0x02019C28
+ ldrb r0, [r4]
+ strb r0, [r1]
+_0800467A:
+ ldr r6, _080046C8 @ =0x0200B0C0
+ ldrh r1, [r6, #0x18]
+ movs r4, #1
+ ands r4, r1
+ cmp r4, #0
+ beq _08004700
+ ldr r5, _080046BC @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ cmp r0, #0xc8
+ bgt _08004730
+ ldr r4, _080046C0 @ =0x0202C794
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _080046CC
+ movs r0, #0x6d
+ bl m4aSongNumStart
+ ldrb r1, [r4]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r4]
+ movs r3, #0
+ ldrsh r0, [r5, r3]
+ movs r1, #0
+ ldrsb r1, [r4, r1]
+ bl sub_70E0
+ ldr r1, _080046C4 @ =0x02019C28
+ ldrb r0, [r4]
+ strb r0, [r1]
+ b _08004730
+ .align 2, 0
+_080046BC: .4byte 0x0202ADE0
+_080046C0: .4byte 0x0202C794
+_080046C4: .4byte 0x02019C28
+_080046C8: .4byte 0x0200B0C0
+_080046CC:
+ movs r0, #0x69
+ bl m4aSongNumStart
+ ldr r0, _080046F0 @ =0x02032EE0
+ ldr r1, _080046F4 @ =0x0000FFFF
+ movs r2, #0x80
+ lsls r2, r2, #1
+ bl m4aMPlayVolumeControl
+ movs r0, #0
+ strb r0, [r4]
+ ldr r0, _080046F8 @ =0x0202C5E8
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080046FC @ =0x0202BEF4
+ strh r1, [r0]
+ b _08004728
+ .align 2, 0
+_080046F0: .4byte 0x02032EE0
+_080046F4: .4byte 0x0000FFFF
+_080046F8: .4byte 0x0202C5E8
+_080046FC: .4byte 0x0202BEF4
+_08004700:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08004730
+ movs r0, #0x69
+ bl m4aSongNumStart
+ ldr r0, _0800476C @ =0x02032EE0
+ ldr r1, _08004770 @ =0x0000FFFF
+ movs r2, #0x80
+ lsls r2, r2, #1
+ bl m4aMPlayVolumeControl
+ ldr r0, _08004774 @ =0x0202C794
+ strb r4, [r0]
+ ldr r0, _08004778 @ =0x0202C5E8
+ movs r1, #0
+ strh r4, [r0]
+ ldr r0, _0800477C @ =0x0202BEF4
+ strh r4, [r0]
+_08004728:
+ ldr r0, _08004780 @ =0x0201C1B4
+ strb r1, [r0]
+ movs r0, #4
+ strb r0, [r6, #3]
+_08004730:
+ ldr r0, _08004784 @ =0x0200B0C0
+ ldrh r1, [r0, #0x1c]
+ movs r0, #4
+ ands r0, r1
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ cmp r4, #0
+ beq _08004808
+ ldr r1, _08004788 @ =0x0202A1C0
+ ldr r0, _0800478C @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r2, r0, #1
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _080047E4
+ ldr r0, _08004790 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _08004798
+ ldr r1, _08004794 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ b _0800482C
+ .align 2, 0
+_0800476C: .4byte 0x02032EE0
+_08004770: .4byte 0x0000FFFF
+_08004774: .4byte 0x0202C794
+_08004778: .4byte 0x0202C5E8
+_0800477C: .4byte 0x0202BEF4
+_08004780: .4byte 0x0201C1B4
+_08004784: .4byte 0x0200B0C0
+_08004788: .4byte 0x0202A1C0
+_0800478C: .4byte 0x0202ADE0
+_08004790: .4byte 0x086A61BC
+_08004794: .4byte 0x0202A588
+_08004798:
+ cmp r1, #0x63
+ bgt _080047C0
+ ldr r0, _080047B4 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080047B8 @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _080047BC @ =0x0202A568
+ movs r2, #0
+ movs r0, #1
+ strh r0, [r1]
+ strh r2, [r1, #2]
+ b _08004842
+ .align 2, 0
+_080047B4: .4byte 0x0202A588
+_080047B8: .4byte 0x0202A55C
+_080047BC: .4byte 0x0202A568
+_080047C0:
+ ldr r0, _080047D8 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080047DC @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _080047E0 @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #1
+ strh r0, [r1, #2]
+ b _08004842
+ .align 2, 0
+_080047D8: .4byte 0x0202A588
+_080047DC: .4byte 0x0202A55C
+_080047E0: .4byte 0x0202A568
+_080047E4:
+ ldr r1, _080047FC @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08004800 @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _08004804 @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ b _08004842
+ .align 2, 0
+_080047FC: .4byte 0x0202A588
+_08004800: .4byte 0x0202A55C
+_08004804: .4byte 0x0202A568
+_08004808:
+ ldr r0, _08004820 @ =0x0202ADE0
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ bl sub_8A78
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ cmp r1, #1
+ bne _08004828
+ ldr r0, _08004824 @ =0x0202A588
+ strh r1, [r0]
+ b _0800482C
+ .align 2, 0
+_08004820: .4byte 0x0202ADE0
+_08004824: .4byte 0x0202A588
+_08004828:
+ ldr r0, _0800484C @ =0x0202A588
+ strh r4, [r0]
+_0800482C:
+ ldr r1, _08004850 @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r0, _08004854 @ =0x0202A568
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ ldr r0, _08004858 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _0800485C @ =0x0202BF0C
+ strh r1, [r0]
+_08004842:
+ bl sub_51FC
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800484C: .4byte 0x0202A588
+_08004850: .4byte 0x0202A55C
+_08004854: .4byte 0x0202A568
+_08004858: .4byte 0x0201A440
+_0800485C: .4byte 0x0202BF0C
+
+ thumb_func_start sub_4860
+sub_4860: @ 0x08004860
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #4
+ movs r3, #0
+ ldr r0, _0800496C @ =0x02019C40
+ mov r8, r0
+ ldr r7, _08004970 @ =0x0202A558
+ ldr r1, _08004974 @ =0x0805C800
+ mov sb, r1
+ ldr r0, _08004978 @ =0x03005C00
+ mov sl, r0
+ mov r6, r8
+ adds r5, r7, #0
+ ldr r4, _0800497C @ =0x0805C7C0
+ movs r1, #0x11
+ mov ip, r1
+_08004886:
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ mov r1, ip
+ subs r0, r1, r0
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ lsls r2, r3, #1
+ ldrh r1, [r4]
+ strh r1, [r0]
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ movs r0, #0x12
+ subs r0, r0, r1
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r6
+ add r2, sb
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1f
+ ble _08004886
+ movs r1, #0
+ ldrsh r0, [r7, r1]
+ cmp r0, #7
+ bgt _080048F2
+ movs r3, #0
+ ldr r0, _08004978 @ =0x03005C00
+ mov ip, r0
+ adds r6, r7, #0
+ ldr r5, _08004980 @ =0x0202A590
+ movs r4, #0x11
+ movs r2, #7
+_080048D0:
+ movs r1, #0
+ ldrsh r0, [r6, r1]
+ subs r1, r4, r0
+ lsls r1, r1, #5
+ adds r1, r1, r3
+ lsls r1, r1, #1
+ add r1, ip
+ subs r0, r2, r0
+ lsls r0, r0, #5
+ adds r0, r0, r3
+ lsls r0, r0, #1
+ adds r0, r0, r5
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r3, #1
+ cmp r3, #0x1f
+ ble _080048D0
+_080048F2:
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ movs r1, #0x9a
+ lsls r1, r1, #2
+ add r1, r8
+ movs r3, #0
+ movs r0, #0x59
+ strh r0, [r1]
+ ldr r2, _08004984 @ =0x040000D4
+ mov r0, r8
+ str r0, [r2]
+ ldr r0, _08004988 @ =0x06000800
+ str r0, [r2, #4]
+ ldr r1, _0800498C @ =0x80000400
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r0, sl
+ str r0, [r2]
+ movs r0, #0xc0
+ lsls r0, r0, #0x13
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ movs r1, #0
+ ldrsh r0, [r7, r1]
+ cmp r0, #8
+ ble _0800495A
+ strh r3, [r7]
+ ldr r0, _08004990 @ =0x0202A588
+ strh r3, [r0]
+ ldr r1, _08004994 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ mov r0, sp
+ strh r3, [r0]
+ str r0, [r2]
+ ldr r0, _08004998 @ =0x03000000
+ str r0, [r2, #4]
+ ldr r1, _0800499C @ =0x81000C00
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ mov r0, sp
+ strh r3, [r0]
+ str r0, [r2]
+ ldr r0, _080049A0 @ =0x06005C00
+ str r0, [r2, #4]
+ str r1, [r2, #8]
+ ldr r0, [r2, #8]
+ ldr r1, _080049A4 @ =0x0200B0C0
+ movs r0, #1
+ strb r0, [r1, #3]
+_0800495A:
+ add sp, #4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800496C: .4byte 0x02019C40
+_08004970: .4byte 0x0202A558
+_08004974: .4byte 0x0805C800
+_08004978: .4byte 0x03005C00
+_0800497C: .4byte 0x0805C7C0
+_08004980: .4byte 0x0202A590
+_08004984: .4byte 0x040000D4
+_08004988: .4byte 0x06000800
+_0800498C: .4byte 0x80000400
+_08004990: .4byte 0x0202A588
+_08004994: .4byte 0x0202BF04
+_08004998: .4byte 0x03000000
+_0800499C: .4byte 0x81000C00
+_080049A0: .4byte 0x06005C00
+_080049A4: .4byte 0x0200B0C0
+
+ thumb_func_start sub_49A8
+sub_49A8: @ 0x080049A8
+ push {lr}
+ bl sub_19B4
+ bl sub_5E60
+ ldr r1, _080049C8 @ =0x0201B124
+ movs r0, #0
+ strb r0, [r1]
+ bl sub_599C
+ ldr r1, _080049CC @ =0x0200B0C0
+ movs r0, #7
+ strb r0, [r1, #3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080049C8: .4byte 0x0201B124
+_080049CC: .4byte 0x0200B0C0
+
+ thumb_func_start sub_49D0
+sub_49D0: @ 0x080049D0
+ push {r4, r5, lr}
+ bl sub_599C
+ ldr r5, _08004A08 @ =0x0200B0C0
+ ldrh r1, [r5, #0x18]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08004A1C
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _08004A0C @ =0x0202BEC4
+ movs r1, #0
+ strb r1, [r0]
+ ldr r0, _08004A10 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r1, _08004A14 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ ldr r0, _08004A18 @ =0x0202A588
+ movs r4, #1
+ strh r4, [r0]
+ bl sub_2568
+ strb r4, [r5, #3]
+ b _08004AF2
+ .align 2, 0
+_08004A08: .4byte 0x0200B0C0
+_08004A0C: .4byte 0x0202BEC4
+_08004A10: .4byte 0x0202BEFC
+_08004A14: .4byte 0x0202BF04
+_08004A18: .4byte 0x0202A588
+_08004A1C:
+ ldr r4, _08004A7C @ =0x0202ADD0
+ ldr r0, _08004A80 @ =0x0202BEC8
+ ldr r1, _08004A84 @ =0x0202C5F0
+ ldr r2, _08004A88 @ =0x0201A4D0
+ bl sub_1B04
+ str r0, [r4]
+ ldr r1, _08004A8C @ =0x0202BDF0
+ movs r3, #3
+ ands r3, r0
+ str r3, [r1]
+ ldr r2, _08004A90 @ =0x0201C1AC
+ movs r1, #0x1c
+ ands r1, r0
+ lsrs r1, r1, #2
+ strb r1, [r2]
+ ldr r2, _08004A94 @ =0x0202ADDC
+ movs r1, #0xe0
+ lsls r1, r1, #4
+ ands r1, r0
+ lsrs r1, r1, #9
+ strb r1, [r2]
+ movs r1, #0x40
+ ands r1, r0
+ cmp r1, #0
+ beq _08004AF2
+ cmp r3, #1
+ bhi _08004AF2
+ bl sub_5EC8
+ ldr r0, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _08004AAC
+ bl sub_5EA4
+ lsls r0, r0, #0x10
+ asrs r1, r0, #0x10
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _08004A98
+ movs r0, #9
+ strb r0, [r5, #3]
+ b _08004AAC
+ .align 2, 0
+_08004A7C: .4byte 0x0202ADD0
+_08004A80: .4byte 0x0202BEC8
+_08004A84: .4byte 0x0202C5F0
+_08004A88: .4byte 0x0201A4D0
+_08004A8C: .4byte 0x0202BDF0
+_08004A90: .4byte 0x0201C1AC
+_08004A94: .4byte 0x0202ADDC
+_08004A98:
+ cmp r1, #1
+ bne _08004AAC
+ ldr r0, _08004AF8 @ =0x0202BEFC
+ movs r1, #2
+ strb r1, [r0]
+ movs r0, #8
+ strb r0, [r5, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_08004AAC:
+ ldr r1, _08004AFC @ =0x0201A510
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ ldr r0, _08004B00 @ =0x0202ADD0
+ ldr r0, [r0]
+ movs r1, #0xfe
+ lsls r1, r1, #0xf
+ ands r0, r1
+ cmp r0, #0
+ beq _08004AF2
+ ldr r0, _08004B04 @ =0x0201B128
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _08004AF2
+ ldr r1, _08004B08 @ =0x0201A444
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb4
+ ble _08004AF2
+ ldr r1, _08004AF8 @ =0x0202BEFC
+ movs r0, #2
+ strb r0, [r1]
+ ldr r1, _08004B0C @ =0x0200B0C0
+ movs r0, #8
+ strb r0, [r1, #3]
+ movs r0, #0x8a
+ bl m4aSongNumStart
+_08004AF2:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004AF8: .4byte 0x0202BEFC
+_08004AFC: .4byte 0x0201A510
+_08004B00: .4byte 0x0202ADD0
+_08004B04: .4byte 0x0201B128
+_08004B08: .4byte 0x0201A444
+_08004B0C: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4B10
+sub_4B10: @ 0x08004B10
+ ldr r1, _08004B2C @ =0x0201A444
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #2
+ ble _08004B2A
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08004B30 @ =0x0200B0C0
+ movs r0, #6
+ strb r0, [r1, #3]
+_08004B2A:
+ bx lr
+ .align 2, 0
+_08004B2C: .4byte 0x0201A444
+_08004B30: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4B34
+sub_4B34: @ 0x08004B34
+ push {lr}
+ bl sub_599C
+ ldr r2, _08004B94 @ =0x0201B120
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0x5a
+ ble _08004B90
+ movs r1, #0
+ strh r1, [r2]
+ ldr r0, _08004B98 @ =0x0202BEC4
+ strb r1, [r0]
+ ldr r0, _08004B9C @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r1, _08004BA0 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _08004BA4 @ =0x0202A588
+ movs r0, #1
+ strh r0, [r1]
+ bl sub_2568
+ bl sub_1AA4
+ ldr r3, _08004BA8 @ =0x0202A1C0
+ ldr r2, _08004BAC @ =0x0202A390
+ movs r1, #0xe0
+_08004B70:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, #2
+ adds r2, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _08004B70
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004BB0 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #3]
+_08004B90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004B94: .4byte 0x0201B120
+_08004B98: .4byte 0x0202BEC4
+_08004B9C: .4byte 0x0202BEFC
+_08004BA0: .4byte 0x0202BF04
+_08004BA4: .4byte 0x0202A588
+_08004BA8: .4byte 0x0202A1C0
+_08004BAC: .4byte 0x0202A390
+_08004BB0: .4byte 0x0200B0C0
+
+ thumb_func_start sub_4BB4
+sub_4BB4: @ 0x08004BB4
+ push {r4, lr}
+ bl sub_599C
+ ldr r2, _08004BD0 @ =0x0201B120
+ movs r1, #0
+ ldrsh r0, [r2, r1]
+ cmp r0, #0x82
+ beq _08004BE4
+ cmp r0, #0x82
+ bgt _08004BD4
+ cmp r0, #4
+ beq _08004BDA
+ b _08004C4E
+ .align 2, 0
+_08004BD0: .4byte 0x0201B120
+_08004BD4:
+ cmp r0, #0xfa
+ beq _08004BF8
+ b _08004C4E
+_08004BDA:
+ bl sub_2568
+ bl sub_1AA4
+ b _08004C4E
+_08004BE4:
+ ldr r1, _08004BF4 @ =0x0202BEFC
+ movs r0, #3
+ strb r0, [r1]
+ movs r0, #0x65
+ bl m4aSongNumStart
+ b _08004C4E
+ .align 2, 0
+_08004BF4: .4byte 0x0202BEFC
+_08004BF8:
+ movs r1, #0
+ strh r1, [r2]
+ ldr r0, _08004C5C @ =0x0202BEC4
+ strb r1, [r0]
+ ldr r0, _08004C60 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r1, _08004C64 @ =0x0202BF04
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _08004C68 @ =0x0202A588
+ movs r0, #1
+ strh r0, [r1]
+ ldr r3, _08004C6C @ =0x0202A390
+ ldr r1, _08004C70 @ =0x0202A1C0
+ movs r2, #0xe0
+_08004C16:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r3, #2
+ adds r1, #2
+ subs r2, #1
+ cmp r2, #0
+ bge _08004C16
+ movs r2, #0
+ ldr r4, _08004C74 @ =0x0200B134
+ ldr r3, _08004C70 @ =0x0202A1C0
+_08004C2A:
+ adds r1, r2, r4
+ ldrh r0, [r3]
+ strb r0, [r1]
+ adds r3, #2
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _08004C2A
+ bl sub_52B30
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004C78 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #3]
+_08004C4E:
+ ldr r1, _08004C7C @ =0x0201B120
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004C5C: .4byte 0x0202BEC4
+_08004C60: .4byte 0x0202BEFC
+_08004C64: .4byte 0x0202BF04
+_08004C68: .4byte 0x0202A588
+_08004C6C: .4byte 0x0202A390
+_08004C70: .4byte 0x0202A1C0
+_08004C74: .4byte 0x0200B134
+_08004C78: .4byte 0x0200B0C0
+_08004C7C: .4byte 0x0201B120
+
+ thumb_func_start sub_4C80
+sub_4C80: @ 0x08004C80
+ push {r4, r5, r6, r7, lr}
+ bl sub_51FC
+ ldr r7, _08004CF8 @ =0x0200B0C0
+ ldrh r1, [r7, #0x18]
+ movs r6, #1
+ movs r5, #1
+ adds r4, r5, #0
+ ands r4, r1
+ cmp r4, #0
+ beq _08004D18
+ movs r0, #0x65
+ bl m4aSongNumStart
+ movs r3, #0
+ ldr r1, _08004CFC @ =0x0202A1C0
+ ldr r0, _08004D00 @ =0x0202A390
+ movs r2, #0xe0
+_08004CA4:
+ strh r3, [r0]
+ strh r3, [r1]
+ adds r1, #2
+ adds r0, #2
+ subs r2, #1
+ cmp r2, #0
+ bge _08004CA4
+ movs r2, #0
+ ldr r5, _08004D04 @ =0x0202BEC4
+ ldr r6, _08004D08 @ =0x0202BEFC
+ ldr r7, _08004D0C @ =0x0202BF04
+ ldr r0, _08004D10 @ =0x0202A588
+ mov ip, r0
+ ldr r4, _08004D14 @ =0x0200B134
+ ldr r3, _08004CFC @ =0x0202A1C0
+_08004CC2:
+ adds r1, r2, r4
+ ldrh r0, [r3]
+ strb r0, [r1]
+ adds r3, #2
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _08004CC2
+ movs r0, #0
+ strb r0, [r5]
+ strb r0, [r6]
+ movs r0, #1
+ strb r0, [r7]
+ movs r0, #1
+ mov r1, ip
+ strh r0, [r1]
+ bl sub_52B30
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004CF8 @ =0x0200B0C0
+ movs r0, #0
+ strb r0, [r1, #3]
+ b _08004D38
+ .align 2, 0
+_08004CF8: .4byte 0x0200B0C0
+_08004CFC: .4byte 0x0202A1C0
+_08004D00: .4byte 0x0202A390
+_08004D04: .4byte 0x0202BEC4
+_08004D08: .4byte 0x0202BEFC
+_08004D0C: .4byte 0x0202BF04
+_08004D10: .4byte 0x0202A588
+_08004D14: .4byte 0x0200B134
+_08004D18:
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _08004D38
+ movs r0, #0x66
+ bl m4aSongNumStart
+ ldr r0, _08004D40 @ =0x0202BEC4
+ strb r4, [r0]
+ ldr r0, _08004D44 @ =0x0202BEFC
+ strb r4, [r0]
+ ldr r0, _08004D48 @ =0x0202BF04
+ strb r6, [r0]
+ ldr r0, _08004D4C @ =0x0202A588
+ strh r5, [r0]
+ strb r6, [r7, #3]
+_08004D38:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004D40: .4byte 0x0202BEC4
+_08004D44: .4byte 0x0202BEFC
+_08004D48: .4byte 0x0202BF04
+_08004D4C: .4byte 0x0202A588
+
+ thumb_func_start sub_4D50
+sub_4D50: @ 0x08004D50
+ push {lr}
+ bl sub_2B4
+ bl m4aMPlayAllStop
+ bl sub_D10
+ ldr r1, _08004D70 @ =0x0201A4B4
+ movs r0, #1
+ strb r0, [r1]
+ movs r0, #1
+ bl sub_23C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004D70: .4byte 0x0201A4B4
+
+ thumb_func_start sub_4D74
+sub_4D74: @ 0x08004D74
+ push {r4, r5, lr}
+ ldr r5, _08004DC4 @ =0x0202C58C
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ bne _08004E26
+ ldr r0, _08004DC8 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _08004DCC @ =0x0202BF0C
+ strh r1, [r0]
+ ldr r4, _08004DD0 @ =0x0202A57C
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _08004E08
+ ldr r2, _08004DD4 @ =0x0202C5B0
+ ldrh r1, [r2]
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ cmp r0, #0
+ bne _08004DE4
+ ldr r0, _08004DD8 @ =0x02019C24
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08004DF6
+ ldr r0, _08004DDC @ =0x0202A574
+ ldrh r0, [r0]
+ subs r1, r0, #5
+ strh r1, [r2]
+ ldr r1, _08004DE0 @ =0x0202ADE0
+ subs r0, #1
+ strh r0, [r1]
+ movs r0, #4
+ strh r0, [r4]
+ movs r0, #0x67
+ bl m4aSongNumStart
+ b _08004DF6
+ .align 2, 0
+_08004DC4: .4byte 0x0202C58C
+_08004DC8: .4byte 0x0201A440
+_08004DCC: .4byte 0x0202BF0C
+_08004DD0: .4byte 0x0202A57C
+_08004DD4: .4byte 0x0202C5B0
+_08004DD8: .4byte 0x02019C24
+_08004DDC: .4byte 0x0202A574
+_08004DE0: .4byte 0x0202ADE0
+_08004DE4:
+ subs r0, r1, #1
+ strh r0, [r2]
+ ldr r1, _08004E00 @ =0x0202ADE0
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ movs r0, #0x67
+ bl m4aSongNumStart
+_08004DF6:
+ ldr r1, _08004E04 @ =0x0202C58C
+ movs r0, #9
+ strh r0, [r1]
+ b _08004E20
+ .align 2, 0
+_08004E00: .4byte 0x0202ADE0
+_08004E04: .4byte 0x0202C58C
+_08004E08:
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4]
+ subs r0, #1
+ strh r0, [r4]
+ ldr r1, _08004E2C @ =0x0202ADE0
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r5]
+_08004E20:
+ ldr r1, _08004E30 @ =0x02019C24
+ movs r0, #1
+ strb r0, [r1]
+_08004E26:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004E2C: .4byte 0x0202ADE0
+_08004E30: .4byte 0x02019C24
+
+ thumb_func_start sub_4E34
+sub_4E34: @ 0x08004E34
+ push {r4, r5, lr}
+ ldr r5, _08004E80 @ =0x0202C58C
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ bne _08004EE2
+ ldr r0, _08004E84 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _08004E88 @ =0x0202BF0C
+ strh r1, [r0]
+ ldr r4, _08004E8C @ =0x0202A57C
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ cmp r0, #4
+ bne _08004EC4
+ ldr r2, _08004E90 @ =0x0202C5B0
+ movs r3, #0
+ ldrsh r1, [r2, r3]
+ ldr r0, _08004E94 @ =0x0202A574
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ subs r0, #5
+ cmp r1, r0
+ bne _08004EA0
+ ldr r0, _08004E98 @ =0x02019C24
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bne _08004EB4
+ strh r1, [r2]
+ ldr r0, _08004E9C @ =0x0202ADE0
+ strh r1, [r0]
+ strh r1, [r4]
+ movs r0, #0x67
+ bl m4aSongNumStart
+ b _08004EB4
+ .align 2, 0
+_08004E80: .4byte 0x0202C58C
+_08004E84: .4byte 0x0201A440
+_08004E88: .4byte 0x0202BF0C
+_08004E8C: .4byte 0x0202A57C
+_08004E90: .4byte 0x0202C5B0
+_08004E94: .4byte 0x0202A574
+_08004E98: .4byte 0x02019C24
+_08004E9C: .4byte 0x0202ADE0
+_08004EA0:
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ ldr r1, _08004EBC @ =0x0202ADE0
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ movs r0, #0x67
+ bl m4aSongNumStart
+_08004EB4:
+ ldr r1, _08004EC0 @ =0x0202C58C
+ movs r0, #9
+ strh r0, [r1]
+ b _08004EDC
+ .align 2, 0
+_08004EBC: .4byte 0x0202ADE0
+_08004EC0: .4byte 0x0202C58C
+_08004EC4:
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ ldr r1, _08004EE8 @ =0x0202ADE0
+ ldrh r0, [r1]
+ adds r0, #1
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r5]
+_08004EDC:
+ ldr r1, _08004EEC @ =0x02019C24
+ movs r0, #1
+ strb r0, [r1]
+_08004EE2:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004EE8: .4byte 0x0202ADE0
+_08004EEC: .4byte 0x02019C24
+
+ thumb_func_start sub_4EF0
+sub_4EF0: @ 0x08004EF0
+ push {r4, r5, r6, lr}
+ ldr r6, _08004F38 @ =0x0202C58C
+ movs r0, #0
+ ldrsh r4, [r6, r0]
+ cmp r4, #0
+ bne _08004F32
+ ldr r0, _08004F3C @ =0x0201A440
+ strh r4, [r0]
+ ldr r0, _08004F40 @ =0x0202BF0C
+ strh r4, [r0]
+ ldr r5, _08004F44 @ =0x0202C5B0
+ movs r1, #0
+ ldrsh r0, [r5, r1]
+ cmp r0, #0
+ beq _08004F32
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r5]
+ subs r0, #5
+ strh r0, [r5]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bge _08004F22
+ strh r4, [r5]
+_08004F22:
+ ldr r1, _08004F48 @ =0x0202ADE0
+ ldr r0, _08004F4C @ =0x0202A57C
+ ldrh r0, [r0]
+ ldrh r5, [r5]
+ adds r0, r0, r5
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r6]
+_08004F32:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004F38: .4byte 0x0202C58C
+_08004F3C: .4byte 0x0201A440
+_08004F40: .4byte 0x0202BF0C
+_08004F44: .4byte 0x0202C5B0
+_08004F48: .4byte 0x0202ADE0
+_08004F4C: .4byte 0x0202A57C
+
+ thumb_func_start sub_4F50
+sub_4F50: @ 0x08004F50
+ push {r4, r5, r6, lr}
+ ldr r6, _08004FAC @ =0x0202C58C
+ movs r0, #0
+ ldrsh r1, [r6, r0]
+ cmp r1, #0
+ bne _08004FA6
+ ldr r0, _08004FB0 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _08004FB4 @ =0x0202BF0C
+ strh r1, [r0]
+ ldr r4, _08004FB8 @ =0x0202C5B0
+ movs r2, #0
+ ldrsh r1, [r4, r2]
+ ldr r5, _08004FBC @ =0x0202A574
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ subs r0, #5
+ cmp r1, r0
+ beq _08004FA6
+ movs r0, #0x67
+ bl m4aSongNumStart
+ ldrh r0, [r4]
+ adds r0, #5
+ strh r0, [r4]
+ movs r0, #0
+ ldrsh r1, [r4, r0]
+ movs r2, #0
+ ldrsh r0, [r5, r2]
+ subs r0, #5
+ cmp r1, r0
+ ble _08004F96
+ ldrh r0, [r5]
+ subs r0, #5
+ strh r0, [r4]
+_08004F96:
+ ldr r1, _08004FC0 @ =0x0202ADE0
+ ldr r0, _08004FC4 @ =0x0202A57C
+ ldrh r0, [r0]
+ ldrh r4, [r4]
+ adds r0, r0, r4
+ strh r0, [r1]
+ movs r0, #9
+ strh r0, [r6]
+_08004FA6:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004FAC: .4byte 0x0202C58C
+_08004FB0: .4byte 0x0201A440
+_08004FB4: .4byte 0x0202BF0C
+_08004FB8: .4byte 0x0202C5B0
+_08004FBC: .4byte 0x0202A574
+_08004FC0: .4byte 0x0202ADE0
+_08004FC4: .4byte 0x0202A57C
+
+ thumb_func_start sub_4FC8
+sub_4FC8: @ 0x08004FC8
+ push {r4, r5, lr}
+ ldr r5, _08005048 @ =0x0200B0C0
+ ldrh r2, [r5, #0x1c]
+ movs r1, #0x88
+ lsls r1, r1, #2
+ adds r0, r1, #0
+ ands r0, r2
+ cmp r0, r1
+ bne _08005022
+ ldrh r1, [r5, #0x18]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08005022
+ ldr r2, _0800504C @ =0x02002830
+ movs r0, #0x28
+ strb r0, [r2]
+ ldr r1, _08005050 @ =0x02002831
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #3
+ bne _08005022
+ movs r4, #0
+ strb r4, [r1]
+ strb r4, [r2]
+ movs r0, #0x68
+ bl m4aSongNumStart
+ ldr r1, _08005054 @ =0x0202BEC4
+ movs r0, #1
+ strb r0, [r1]
+ ldr r1, _08005058 @ =0x0202BEFC
+ movs r0, #4
+ strb r0, [r1]
+ ldr r0, _0800505C @ =0x0202BF04
+ strb r4, [r0]
+ ldr r1, _08005060 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #0xb
+ strb r0, [r5, #3]
+_08005022:
+ ldr r2, _0800504C @ =0x02002830
+ ldrb r1, [r2]
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ cmp r0, #0
+ ble _08005040
+ subs r0, r1, #1
+ strb r0, [r2]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bgt _08005040
+ movs r1, #0
+ strb r1, [r2]
+ ldr r0, _08005050 @ =0x02002831
+ strb r1, [r0]
+_08005040:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005048: .4byte 0x0200B0C0
+_0800504C: .4byte 0x02002830
+_08005050: .4byte 0x02002831
+_08005054: .4byte 0x0202BEC4
+_08005058: .4byte 0x0202BEFC
+_0800505C: .4byte 0x0202BF04
+_08005060: .4byte 0x0202A588
+
+ thumb_func_start sub_5064
+sub_5064: @ 0x08005064
+ ldr r1, _080050A8 @ =0x0202A1C0
+ ldr r0, _080050AC @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r2, r0, #1
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08005110
+ ldr r0, _080050B0 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _080050C8
+ ldr r1, _080050B4 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _080050B8 @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r0, _080050BC @ =0x0202A568
+ movs r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ ldr r0, _080050C0 @ =0x0201A440
+ strh r1, [r0]
+ ldr r0, _080050C4 @ =0x0202BF0C
+ strh r1, [r0]
+ b _08005124
+ .align 2, 0
+_080050A8: .4byte 0x0202A1C0
+_080050AC: .4byte 0x0202ADE0
+_080050B0: .4byte 0x086A61BC
+_080050B4: .4byte 0x0202A588
+_080050B8: .4byte 0x0202A55C
+_080050BC: .4byte 0x0202A568
+_080050C0: .4byte 0x0201A440
+_080050C4: .4byte 0x0202BF0C
+_080050C8:
+ cmp r1, #0x63
+ bgt _080050F0
+ ldr r0, _080050E4 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080050E8 @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _080050EC @ =0x0202A568
+ movs r2, #0
+ movs r0, #1
+ strh r0, [r1]
+ strh r2, [r1, #2]
+ b _08005124
+ .align 2, 0
+_080050E4: .4byte 0x0202A588
+_080050E8: .4byte 0x0202A55C
+_080050EC: .4byte 0x0202A568
+_080050F0:
+ ldr r0, _08005104 @ =0x0202A588
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _08005108 @ =0x0202A55C
+ strh r1, [r0]
+ ldr r1, _0800510C @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+ movs r0, #1
+ b _08005122
+ .align 2, 0
+_08005104: .4byte 0x0202A588
+_08005108: .4byte 0x0202A55C
+_0800510C: .4byte 0x0202A568
+_08005110:
+ ldr r1, _08005128 @ =0x0202A588
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _0800512C @ =0x0202A55C
+ movs r0, #1
+ strh r0, [r1]
+ ldr r1, _08005130 @ =0x0202A568
+ movs r0, #0
+ strh r0, [r1]
+_08005122:
+ strh r0, [r1, #2]
+_08005124:
+ bx lr
+ .align 2, 0
+_08005128: .4byte 0x0202A588
+_0800512C: .4byte 0x0202A55C
+_08005130: .4byte 0x0202A568
+
+ thumb_func_start sub_5134
+sub_5134: @ 0x08005134
+ ldr r1, _08005160 @ =0x0202A1C0
+ ldr r0, _08005164 @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r2, r0, #1
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08005170
+ ldr r0, _08005168 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ beq _08005170
+ cmp r1, #0x63
+ bgt _0800516C
+ movs r0, #1
+ b _08005172
+ .align 2, 0
+_08005160: .4byte 0x0202A1C0
+_08005164: .4byte 0x0202ADE0
+_08005168: .4byte 0x086A61BC
+_0800516C:
+ movs r0, #2
+ b _08005172
+_08005170:
+ movs r0, #0
+_08005172:
+ bx lr
+
+ thumb_func_start sub_5174
+sub_5174: @ 0x08005174
+ push {r4, lr}
+ ldr r4, _080051BC @ =0x0202C5B0
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_6CA0
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_6F30
+ ldr r4, _080051C0 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_681C
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_6F78
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_8974
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ bl sub_8A78
+ ldr r0, _080051C4 @ =0x0202BF00
+ movs r1, #0
+ strh r1, [r0]
+ ldr r0, _080051C8 @ =0x0201A448
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080051BC: .4byte 0x0202C5B0
+_080051C0: .4byte 0x0202ADE0
+_080051C4: .4byte 0x0202BF00
+_080051C8: .4byte 0x0201A448
+
+ thumb_func_start sub_51CC
+sub_51CC: @ 0x080051CC
+ push {lr}
+ bl sub_5134
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080051E8
+ ldr r0, _080051E4 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ bl sub_6F78
+ b _080051F2
+ .align 2, 0
+_080051E4: .4byte 0x0202ADE0
+_080051E8:
+ ldr r0, _080051F8 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ bl sub_8974
+_080051F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080051F8: .4byte 0x0202ADE0
+
+ thumb_func_start sub_51FC
+sub_51FC: @ 0x080051FC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x18
+ ldr r4, _08005348 @ =0x0200B3B8
+ adds r7, r4, #0
+ adds r7, #0xb8
+ movs r0, #0xb8
+ lsls r0, r0, #1
+ adds r0, r0, r4
+ mov r8, r0
+ movs r1, #0x8a
+ lsls r1, r1, #2
+ adds r1, r1, r4
+ mov sl, r1
+ ldr r0, _0800534C @ =0x0201A448
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ movs r2, #0xb8
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r3, #0xe6
+ lsls r3, r3, #2
+ adds r0, r4, r3
+ adds r1, r1, r0
+ str r1, [sp]
+ ldr r0, _08005350 @ =0x0202BEFC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r1, r0, #0
+ muls r1, r2, r1
+ ldr r3, _08005354 @ =0x00000C38
+ adds r0, r4, r3
+ adds r1, r1, r0
+ mov sb, r1
+ ldr r0, _08005358 @ =0x0202BEE0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r3, #0xfd
+ lsls r3, r3, #4
+ adds r0, r4, r3
+ adds r1, r1, r0
+ str r1, [sp, #4]
+ ldr r0, _0800535C @ =0x02019C28
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ lsls r1, r1, #1
+ ldr r0, _08005360 @ =0x0202C5AC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, #0x19
+ adds r1, r1, r0
+ adds r0, r1, #0
+ muls r0, r2, r0
+ adds r0, r0, r4
+ str r0, [sp, #8]
+ movs r0, #1
+ strh r0, [r4]
+ strh r0, [r7]
+ ldr r0, _08005364 @ =0x0202A55C
+ ldrh r0, [r0]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r1, _08005368 @ =0x0202A568
+ ldrh r0, [r1]
+ mov r2, sl
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ ldr r3, _0800536C @ =0x0200B698
+ strh r0, [r3]
+ ldr r0, _08005370 @ =0x0202A588
+ ldrh r0, [r0]
+ ldr r1, [sp]
+ strh r0, [r1]
+ ldr r0, _08005374 @ =0x0202BEC4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ mov r2, sb
+ strh r0, [r2]
+ ldr r0, _08005378 @ =0x0202BF04
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r3, [sp, #4]
+ strh r0, [r3]
+ ldr r0, _0800537C @ =0x0202C590
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r1, _08005380 @ =0x0200C4F8
+ strh r0, [r1]
+ ldr r0, _08005384 @ =0x0201C1B4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r2, [sp, #8]
+ strh r0, [r2]
+ ldr r0, _08005388 @ =0x086A6148
+ movs r1, #0x1d
+ adds r2, r4, #0
+ bl sub_358
+ ldr r0, _0800538C @ =0x0201A4F0
+ ldrh r0, [r0]
+ adds r0, #0x14
+ strh r0, [r4, #2]
+ ldr r0, _08005390 @ =0x0202A57C
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #4
+ adds r0, #0x54
+ strh r0, [r4, #4]
+ adds r6, r4, #0
+ adds r6, #8
+ ldr r5, _08005394 @ =0x03005000
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r0, [r1, #5]
+ movs r2, #0xc
+ orrs r0, r2
+ strb r0, [r1, #5]
+ ldrh r2, [r4, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ movs r0, #2
+ ldrsh r1, [r6, r0]
+ movs r3, #2
+ ldrsh r0, [r4, r3]
+ adds r1, r1, r0
+ ldr r3, _08005398 @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _0800539C @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r4, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldrb r0, [r4, #4]
+ ldrb r6, [r6, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+ ldr r1, _080053A0 @ =0x0202ADE0
+ movs r4, #0
+ ldrsh r0, [r1, r4]
+ cmp r0, #0xc7
+ bgt _080053A8
+ ldr r4, _080053A4 @ =0x0202BF08
+ movs r1, #3
+ bl __divsi3
+ adds r0, #0x56
+ strh r0, [r4]
+ adds r1, r4, #0
+ b _080053AE
+ .align 2, 0
+_08005348: .4byte 0x0200B3B8
+_0800534C: .4byte 0x0201A448
+_08005350: .4byte 0x0202BEFC
+_08005354: .4byte 0x00000C38
+_08005358: .4byte 0x0202BEE0
+_0800535C: .4byte 0x02019C28
+_08005360: .4byte 0x0202C5AC
+_08005364: .4byte 0x0202A55C
+_08005368: .4byte 0x0202A568
+_0800536C: .4byte 0x0200B698
+_08005370: .4byte 0x0202A588
+_08005374: .4byte 0x0202BEC4
+_08005378: .4byte 0x0202BF04
+_0800537C: .4byte 0x0202C590
+_08005380: .4byte 0x0200C4F8
+_08005384: .4byte 0x0201C1B4
+_08005388: .4byte 0x086A6148
+_0800538C: .4byte 0x0201A4F0
+_08005390: .4byte 0x0202A57C
+_08005394: .4byte 0x03005000
+_08005398: .4byte 0x000001FF
+_0800539C: .4byte 0xFFFFFE00
+_080053A0: .4byte 0x0202ADE0
+_080053A4: .4byte 0x0202BF08
+_080053A8:
+ ldr r1, _08005564 @ =0x0202BF08
+ movs r0, #0x98
+ strh r0, [r1]
+_080053AE:
+ movs r0, #0xd
+ strh r0, [r7, #2]
+ ldrh r0, [r1]
+ strh r0, [r7, #4]
+ adds r6, r7, #0
+ adds r6, #8
+ ldr r4, _08005568 @ =0x03005000
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r1, #5]
+ movs r2, #0xc
+ orrs r0, r2
+ strb r0, [r1, #5]
+ ldrh r2, [r7, #8]
+ lsls r2, r2, #3
+ adds r2, r2, r4
+ movs r3, #2
+ ldrsh r1, [r6, r3]
+ movs r3, #2
+ ldrsh r0, [r7, r3]
+ adds r1, r1, r0
+ ldr r3, _0800556C @ =0x000001FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08005570 @ =0xFFFFFE00
+ mov ip, r0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldrb r0, [r7, #4]
+ ldrb r6, [r6, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+ mov r1, r8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800545E
+ movs r0, #0x24
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ adds r5, r4, #0
+ mov r4, r8
+ adds r4, #8
+ movs r6, #5
+_08005410:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ mov r7, r8
+ movs r2, #2
+ ldrsh r0, [r7, r2]
+ adds r1, r1, r0
+ ldr r7, _0800556C @ =0x000001FF
+ adds r0, r7, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ mov r2, r8
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _08005410
+_0800545E:
+ mov r4, sl
+ ldrh r0, [r4]
+ cmp r0, #1
+ bne _08005536
+ movs r0, #0x24
+ strh r0, [r4, #2]
+ movs r0, #0x1c
+ strh r0, [r4, #4]
+ movs r6, #0
+ ldr r7, _08005574 @ =0x0202BF0C
+ mov r8, r7
+ ldr r7, _08005568 @ =0x03005000
+ mov r5, sl
+ adds r5, #8
+ ldr r0, _08005570 @ =0xFFFFFE00
+ mov ip, r0
+_0800547E:
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ adds r2, r2, r7
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r4, [r5]
+ lsls r4, r4, #3
+ adds r4, r4, r7
+ lsls r3, r6, #1
+ ldr r1, _08005578 @ =0x0202BF14
+ movs r0, #0
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, #3
+ adds r3, r3, r0
+ ldr r1, _0800557C @ =0x086A5DDA
+ adds r3, r3, r1
+ str r3, [sp, #0x14]
+ mov r3, r8
+ movs r0, #0
+ ldrsh r1, [r3, r0]
+ lsls r1, r1, #1
+ lsls r0, r2, #2
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ ldr r2, _08005580 @ =0x086A5DF2
+ adds r1, r1, r2
+ ldrh r1, [r1]
+ ldr r3, [sp, #0x14]
+ ldrh r3, [r3]
+ adds r1, r1, r3
+ ldr r2, _08005584 @ =0x000003FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r4, #4]
+ ldr r0, _08005588 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, #4]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r7
+ movs r4, #2
+ ldrsh r1, [r5, r4]
+ mov r2, sl
+ movs r4, #2
+ ldrsh r0, [r2, r4]
+ adds r1, r1, r0
+ ldr r2, _0800556C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, ip
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r7
+ mov r3, sl
+ ldrb r0, [r3, #4]
+ ldrb r4, [r5, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ adds r5, #8
+ adds r6, #1
+ cmp r6, #3
+ ble _0800547E
+ ldr r7, _0800558C @ =0x0201A440
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xe
+ ble _08005536
+ movs r1, #0
+ strh r1, [r7]
+ mov r2, r8
+ ldrh r0, [r2]
+ adds r0, #1
+ strh r0, [r2]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _08005536
+ strh r1, [r2]
+_08005536:
+ ldr r3, _08005590 @ =0x0200B698
+ ldrh r0, [r3]
+ cmp r0, #1
+ beq _08005540
+ b _0800568A
+_08005540:
+ ldr r1, _08005594 @ =0x086A6356
+ ldr r0, _08005598 @ =0x0202ADE0
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r7, #0
+ ldrsh r1, [r0, r7]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ bne _0800559C
+ movs r0, #1
+ str r0, [sp, #0x10]
+ movs r1, #0x24
+ str r1, [sp, #0xc]
+ b _080055A4
+ .align 2, 0
+_08005564: .4byte 0x0202BF08
+_08005568: .4byte 0x03005000
+_0800556C: .4byte 0x000001FF
+_08005570: .4byte 0xFFFFFE00
+_08005574: .4byte 0x0202BF0C
+_08005578: .4byte 0x0202BF14
+_0800557C: .4byte 0x086A5DDA
+_08005580: .4byte 0x086A5DF2
+_08005584: .4byte 0x000003FF
+_08005588: .4byte 0xFFFFFC00
+_0800558C: .4byte 0x0201A440
+_08005590: .4byte 0x0200B698
+_08005594: .4byte 0x086A6356
+_08005598: .4byte 0x0202ADE0
+_0800559C:
+ movs r2, #2
+ str r2, [sp, #0x10]
+ movs r3, #0x30
+ str r3, [sp, #0xc]
+_080055A4:
+ movs r0, #0x30
+ ldr r4, _08005760 @ =0x0200B698
+ strh r0, [r4, #2]
+ movs r0, #0x28
+ strh r0, [r4, #4]
+ movs r6, #0
+ ldr r7, _08005764 @ =0x0202BF0C
+ mov r8, r7
+ ldr r0, [sp, #0x10]
+ lsls r0, r0, #3
+ mov sl, r0
+ ldr r5, _08005768 @ =0x03005000
+ adds r4, #8
+ movs r0, #0x66
+ ldr r2, [sp, #0x10]
+ adds r1, r2, #0
+ muls r1, r0, r1
+ mov ip, r1
+_080055C8:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ lsls r2, r6, #1
+ add r2, sl
+ ldr r7, _0800576C @ =0x086A5DDA
+ adds r2, r2, r7
+ mov r1, r8
+ movs r7, #0
+ ldrsh r0, [r1, r7]
+ lsls r0, r0, #1
+ add r0, ip
+ ldr r1, _08005770 @ =0x086A5EE2
+ adds r0, r0, r1
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r2, _08005774 @ =0x000003FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ ldr r0, _08005778 @ =0xFFFFFC00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, _08005760 @ =0x0200B698
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800577C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ ldr r0, _08005780 @ =0xFFFFFE00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r3, _08005760 @ =0x0200B698
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ cmp r6, #3
+ ble _080055C8
+ ldr r0, _08005784 @ =0x0201A440
+ ldrh r1, [r0]
+ adds r1, #1
+ strh r1, [r0]
+ mov r2, r8
+ movs r3, #0
+ ldrsh r0, [r2, r3]
+ lsls r0, r0, #1
+ movs r2, #0x66
+ ldr r4, [sp, #0x10]
+ muls r2, r4, r2
+ adds r0, r0, r2
+ ldr r7, _08005788 @ =0x086A6014
+ adds r0, r0, r7
+ lsls r1, r1, #0x10
+ asrs r1, r1, #0x10
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ ble _0800568A
+ movs r1, #0
+ ldr r3, _08005784 @ =0x0201A440
+ strh r1, [r3]
+ mov r4, r8
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ ldr r7, [sp, #0xc]
+ cmp r0, r7
+ ble _0800568A
+ strh r1, [r4]
+_0800568A:
+ ldr r1, [sp]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800573C
+ movs r0, #0x24
+ strh r0, [r1, #2]
+ movs r0, #0x40
+ strh r0, [r1, #4]
+ ldr r2, _0800578C @ =0x086A6148
+ ldr r1, _08005790 @ =0x0201A448
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ adds r0, #5
+ lsls r0, r0, #2
+ adds r0, r0, r2
+ ldr r5, [r0]
+ movs r6, #0
+ mov r8, r1
+ ldr r4, _08005794 @ =0x0202BF00
+ mov ip, r4
+ ldrh r7, [r5]
+ cmp r6, r7
+ bge _08005716
+ ldr r0, _08005780 @ =0xFFFFFE00
+ mov sl, r0
+ ldr r4, [sp]
+ adds r4, #8
+_080056C0:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ ldr r1, _08005768 @ =0x03005000
+ adds r2, r2, r1
+ ldrb r1, [r2, #5]
+ movs r0, #0xd
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r2, _08005768 @ =0x03005000
+ adds r3, r3, r2
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, [sp]
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _0800577C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ ldr r3, _08005768 @ =0x03005000
+ adds r1, r1, r3
+ ldr r7, [sp]
+ ldrb r0, [r7, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ ldrh r3, [r5]
+ cmp r6, r3
+ blt _080056C0
+_08005716:
+ mov r4, ip
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #8
+ ble _0800573C
+ movs r1, #0
+ strh r1, [r4]
+ mov r7, r8
+ ldrh r0, [r7]
+ adds r0, #1
+ strh r0, [r7]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xb
+ ble _0800573C
+ strh r1, [r7]
+_0800573C:
+ mov r1, sb
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005818
+ ldr r0, _08005798 @ =0x0202BEFC
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r2, r0, #0
+ cmp r1, #0
+ beq _08005754
+ cmp r1, #4
+ bne _0800579C
+_08005754:
+ movs r0, #0x78
+ mov r3, sb
+ strh r0, [r3, #2]
+ movs r0, #0x64
+ strh r0, [r3, #4]
+ b _080057A6
+ .align 2, 0
+_08005760: .4byte 0x0200B698
+_08005764: .4byte 0x0202BF0C
+_08005768: .4byte 0x03005000
+_0800576C: .4byte 0x086A5DDA
+_08005770: .4byte 0x086A5EE2
+_08005774: .4byte 0x000003FF
+_08005778: .4byte 0xFFFFFC00
+_0800577C: .4byte 0x000001FF
+_08005780: .4byte 0xFFFFFE00
+_08005784: .4byte 0x0201A440
+_08005788: .4byte 0x086A6014
+_0800578C: .4byte 0x086A6148
+_08005790: .4byte 0x0201A448
+_08005794: .4byte 0x0202BF00
+_08005798: .4byte 0x0202BEFC
+_0800579C:
+ movs r0, #0x78
+ mov r4, sb
+ strh r0, [r4, #2]
+ movs r0, #0x50
+ strh r0, [r4, #4]
+_080057A6:
+ ldr r1, _0800597C @ =0x086A6148
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #0x11
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r6, #0
+ ldrh r7, [r5]
+ cmp r6, r7
+ bge _08005818
+ ldr r0, _08005980 @ =0x03005000
+ mov ip, r0
+ movs r1, #0xd
+ rsbs r1, r1, #0
+ mov sl, r1
+ ldr r2, _08005984 @ =0xFFFFFE00
+ mov r8, r2
+ mov r4, sb
+ adds r4, #8
+_080057CE:
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ ldrb r2, [r1, #5]
+ mov r0, sl
+ ands r0, r2
+ strb r0, [r1, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, ip
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ mov r2, sb
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08005988 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, ip
+ mov r3, sb
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ ldrh r0, [r5]
+ cmp r6, r0
+ blt _080057CE
+_08005818:
+ ldr r1, [sp, #4]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _0800588A
+ movs r0, #0x9e
+ strh r0, [r1, #2]
+ movs r0, #0x94
+ strh r0, [r1, #4]
+ ldr r1, _0800597C @ =0x086A6148
+ ldr r0, _0800598C @ =0x0202BEE0
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r0, #0x16
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r6, #0
+ ldrh r2, [r5]
+ cmp r6, r2
+ bge _0800588A
+ ldr r3, _08005980 @ =0x03005000
+ mov sl, r3
+ ldr r4, _08005984 @ =0xFFFFFE00
+ mov r8, r4
+ ldr r4, [sp, #4]
+ adds r4, #8
+_0800584E:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sl
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, [sp, #4]
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08005988 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sl
+ ldr r3, [sp, #4]
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ adds r6, #1
+ ldrh r0, [r5]
+ cmp r6, r0
+ blt _0800584E
+_0800588A:
+ ldr r1, _08005990 @ =0x0200C4F8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _080058EE
+ movs r0, #0xa8
+ strh r0, [r1, #2]
+ movs r0, #0x54
+ strh r0, [r1, #4]
+ ldr r5, _08005980 @ =0x03005000
+ ldr r2, _08005984 @ =0xFFFFFE00
+ mov r8, r2
+ adds r4, r1, #0
+ adds r4, #8
+ movs r6, #2
+_080058A6:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r0, [r2, #5]
+ movs r1, #0xc
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r7, #2
+ ldrsh r1, [r4, r7]
+ ldr r2, _08005990 @ =0x0200C4F8
+ movs r7, #2
+ ldrsh r0, [r2, r7]
+ adds r1, r1, r0
+ ldr r2, _08005988 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r3, _08005990 @ =0x0200C4F8
+ ldrb r0, [r3, #4]
+ ldrb r7, [r4, #4]
+ adds r0, r0, r7
+ strb r0, [r1]
+ adds r4, #8
+ subs r6, #1
+ cmp r6, #0
+ bge _080058A6
+_080058EE:
+ ldr r1, [sp, #8]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005932
+ movs r0, #0x78
+ strh r0, [r1, #2]
+ movs r0, #0x84
+ strh r0, [r1, #4]
+ adds r6, r1, #0
+ adds r6, #8
+ ldrh r2, [r1, #8]
+ lsls r2, r2, #3
+ ldr r3, _08005980 @ =0x03005000
+ adds r2, r2, r3
+ movs r4, #2
+ ldrsh r1, [r6, r4]
+ adds r1, #0x78
+ ldr r7, _08005988 @ =0x000001FF
+ adds r0, r7, #0
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08005984 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldr r0, [sp, #8]
+ ldrh r1, [r0, #8]
+ lsls r1, r1, #3
+ ldr r2, _08005980 @ =0x03005000
+ adds r1, r1, r2
+ ldrb r0, [r0, #4]
+ ldrb r6, [r6, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+_08005932:
+ ldr r3, _08005994 @ =0x0202BE20
+ ldrh r0, [r3]
+ adds r0, #1
+ strh r0, [r3]
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ cmp r0, #0xc
+ ble _0800595A
+ movs r0, #0
+ strh r0, [r3]
+ ldr r2, _08005998 @ =0x0201A4F0
+ ldrh r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strh r0, [r2]
+ ldr r2, _0800598C @ =0x0202BEE0
+ ldrb r1, [r2]
+ movs r0, #1
+ subs r0, r0, r1
+ strb r0, [r2]
+_0800595A:
+ movs r0, #0
+ ldr r4, [sp]
+ strh r0, [r4]
+ mov r7, sb
+ strh r0, [r7]
+ ldr r1, [sp, #4]
+ strh r0, [r1]
+ ldr r2, [sp, #8]
+ strh r0, [r2]
+ add sp, #0x18
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800597C: .4byte 0x086A6148
+_08005980: .4byte 0x03005000
+_08005984: .4byte 0xFFFFFE00
+_08005988: .4byte 0x000001FF
+_0800598C: .4byte 0x0202BEE0
+_08005990: .4byte 0x0200C4F8
+_08005994: .4byte 0x0202BE20
+_08005998: .4byte 0x0201A4F0
+
+ thumb_func_start sub_599C
+sub_599C: @ 0x0800599C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0xc
+ ldr r7, _08005CFC @ =0x0200B3B8
+ adds r6, r7, #0
+ adds r6, #0xb8
+ ldr r0, _08005D00 @ =0x0201A448
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r2, #0xb8
+ adds r1, r0, #0
+ muls r1, r2, r1
+ movs r3, #0xe6
+ lsls r3, r3, #2
+ adds r0, r7, r3
+ adds r1, r1, r0
+ str r1, [sp]
+ ldr r0, _08005D04 @ =0x0202BEFC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r1, r0, #0
+ muls r1, r2, r1
+ ldr r4, _08005D08 @ =0x00000C38
+ adds r0, r7, r4
+ adds r1, r1, r0
+ str r1, [sp, #4]
+ movs r2, #0
+ movs r0, #1
+ strh r0, [r7]
+ strh r0, [r6]
+ ldr r0, _08005D0C @ =0x0202A55C
+ ldrh r0, [r0]
+ ldr r5, _08005D10 @ =0x0200B528
+ strh r0, [r5]
+ ldr r1, _08005D14 @ =0x0202A568
+ ldrh r0, [r1]
+ ldr r3, _08005D18 @ =0x0200B5E0
+ strh r0, [r3]
+ ldrh r0, [r1, #2]
+ ldr r4, _08005D1C @ =0x0200B698
+ strh r0, [r4]
+ ldr r5, [sp]
+ strh r2, [r5]
+ ldr r0, _08005D20 @ =0x0202BEC4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r1, [sp, #4]
+ strh r0, [r1]
+ ldr r0, _08005D24 @ =0x0202C590
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldr r2, _08005D28 @ =0x0200C4F8
+ strh r0, [r2]
+ ldr r0, _08005D2C @ =0x086A6148
+ movs r1, #0x1d
+ adds r2, r7, #0
+ bl sub_2414
+ ldr r0, _08005D30 @ =0x0201A4F0
+ ldrh r0, [r0]
+ adds r0, #0x14
+ strh r0, [r7, #2]
+ ldr r0, _08005D34 @ =0x0202A57C
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ lsls r0, r0, #4
+ adds r0, #0x54
+ strh r0, [r7, #4]
+ adds r5, r7, #0
+ adds r5, #8
+ ldr r4, _08005D38 @ =0x03005000
+ mov sl, r4
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ add r1, sl
+ ldrb r2, [r1, #5]
+ movs r4, #0xd
+ rsbs r4, r4, #0
+ adds r0, r4, #0
+ ands r0, r2
+ movs r2, #8
+ mov sb, r2
+ mov r3, sb
+ orrs r0, r3
+ strb r0, [r1, #5]
+ ldrh r2, [r7, #8]
+ lsls r2, r2, #3
+ add r2, sl
+ movs r0, #2
+ ldrsh r1, [r5, r0]
+ movs r3, #2
+ ldrsh r0, [r7, r3]
+ adds r1, r1, r0
+ ldr r0, _08005D3C @ =0x000001FF
+ mov r8, r0
+ mov r3, r8
+ ands r1, r3
+ ldrh r3, [r2, #2]
+ ldr r0, _08005D40 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r7, #8]
+ lsls r1, r1, #3
+ add r1, sl
+ ldrb r0, [r7, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldr r5, _08005D44 @ =0x0202BF08
+ ldr r0, _08005D48 @ =0x0202ADE0
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ movs r1, #3
+ bl __divsi3
+ adds r0, #0x56
+ strh r0, [r5]
+ movs r1, #0xd
+ strh r1, [r6, #2]
+ strh r0, [r6, #4]
+ adds r5, r7, #0
+ adds r5, #0xc0
+ ldrh r0, [r5]
+ lsls r0, r0, #3
+ add r0, sl
+ ldrb r1, [r0, #5]
+ ands r4, r1
+ mov r2, sb
+ orrs r4, r2
+ strb r4, [r0, #5]
+ ldrh r2, [r5]
+ lsls r2, r2, #3
+ add r2, sl
+ movs r3, #2
+ ldrsh r1, [r5, r3]
+ movs r4, #2
+ ldrsh r0, [r6, r4]
+ adds r1, r1, r0
+ mov r0, r8
+ ands r1, r0
+ ldrh r3, [r2, #2]
+ ldr r0, _08005D40 @ =0xFFFFFE00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ add r1, sl
+ ldrb r0, [r6, #4]
+ ldrb r5, [r5, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ ldr r1, _08005D10 @ =0x0200B528
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005B30
+ movs r0, #0x24
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ mov r4, sl
+ ldr r2, _08005D40 @ =0xFFFFFE00
+ mov r8, r2
+ movs r3, #0xbc
+ lsls r3, r3, #1
+ adds r6, r7, r3
+ movs r7, #5
+_08005AF6:
+ ldrh r3, [r6]
+ lsls r3, r3, #3
+ adds r3, r3, r4
+ movs r5, #2
+ ldrsh r1, [r6, r5]
+ ldr r2, _08005D10 @ =0x0200B528
+ movs r5, #2
+ ldrsh r0, [r2, r5]
+ adds r1, r1, r0
+ ldr r2, _08005D3C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r6]
+ lsls r1, r1, #3
+ adds r1, r1, r4
+ ldr r3, _08005D10 @ =0x0200B528
+ ldrb r0, [r3, #4]
+ ldrb r5, [r6, #4]
+ adds r0, r0, r5
+ strb r0, [r1]
+ adds r6, #8
+ subs r7, #1
+ cmp r7, #0
+ bge _08005AF6
+_08005B30:
+ ldr r6, _08005D18 @ =0x0200B5E0
+ ldrh r0, [r6]
+ cmp r0, #1
+ bne _08005BD4
+ movs r0, #0x24
+ strh r0, [r6, #2]
+ movs r0, #0x1c
+ strh r0, [r6, #4]
+ movs r7, #0
+ ldr r0, _08005D4C @ =0x0202BF0C
+ mov ip, r0
+ ldr r6, _08005D38 @ =0x03005000
+ ldr r1, _08005D50 @ =0x086A5DF2
+ mov sb, r1
+ ldr r2, _08005D54 @ =0xFFFFFC00
+ mov sl, r2
+ ldr r5, _08005D18 @ =0x0200B5E0
+ adds r5, #8
+ ldr r3, _08005D40 @ =0xFFFFFE00
+ mov r8, r3
+_08005B58:
+ ldrh r4, [r5]
+ lsls r4, r4, #3
+ adds r4, r4, r6
+ lsls r3, r7, #1
+ ldr r0, _08005D58 @ =0x0202BF14
+ movs r1, #0
+ ldrsh r2, [r0, r1]
+ lsls r0, r2, #3
+ adds r3, r3, r0
+ ldr r0, _08005D5C @ =0x086A5DDA
+ adds r3, r3, r0
+ str r3, [sp, #8]
+ mov r3, ip
+ movs r0, #0
+ ldrsh r1, [r3, r0]
+ lsls r1, r1, #1
+ lsls r0, r2, #2
+ adds r0, r0, r2
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ add r1, sb
+ ldrh r1, [r1]
+ ldr r2, [sp, #8]
+ ldrh r2, [r2]
+ adds r1, r1, r2
+ ldr r3, _08005D60 @ =0x000003FF
+ adds r0, r3, #0
+ ands r1, r0
+ ldrh r2, [r4, #4]
+ mov r0, sl
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, #4]
+ ldrh r3, [r5]
+ lsls r3, r3, #3
+ adds r3, r3, r6
+ movs r4, #2
+ ldrsh r1, [r5, r4]
+ ldr r2, _08005D18 @ =0x0200B5E0
+ movs r4, #2
+ ldrsh r0, [r2, r4]
+ adds r1, r1, r0
+ ldr r2, _08005D3C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r5]
+ lsls r1, r1, #3
+ adds r1, r1, r6
+ ldr r3, _08005D18 @ =0x0200B5E0
+ ldrb r0, [r3, #4]
+ ldrb r4, [r5, #4]
+ adds r0, r0, r4
+ strb r0, [r1]
+ adds r5, #8
+ adds r7, #1
+ cmp r7, #3
+ ble _08005B58
+_08005BD4:
+ ldr r5, _08005D1C @ =0x0200B698
+ ldrh r0, [r5]
+ cmp r0, #1
+ bne _08005C68
+ movs r0, #0x30
+ strh r0, [r5, #2]
+ movs r0, #0x28
+ strh r0, [r5, #4]
+ ldr r6, _08005D4C @ =0x0202BF0C
+ mov ip, r6
+ ldr r0, _08005D5C @ =0x086A5DDA
+ ldr r1, _08005D64 @ =0x086A5E1A
+ mov sl, r1
+ adds r4, r5, #0
+ adds r4, #8
+ adds r5, r0, #0
+ adds r5, #8
+ ldr r2, _08005D54 @ =0xFFFFFC00
+ mov sb, r2
+ ldr r3, _08005D40 @ =0xFFFFFE00
+ mov r8, r3
+ movs r7, #3
+_08005C00:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r6, _08005D38 @ =0x03005000
+ adds r3, r3, r6
+ mov r1, ip
+ movs r2, #0
+ ldrsh r0, [r1, r2]
+ lsls r0, r0, #1
+ add r0, sl
+ ldrh r1, [r0]
+ ldrh r6, [r5]
+ adds r1, r1, r6
+ ldr r2, _08005D60 @ =0x000003FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #4]
+ mov r0, sb
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #4]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ ldr r6, _08005D38 @ =0x03005000
+ adds r3, r3, r6
+ movs r0, #2
+ ldrsh r1, [r4, r0]
+ ldr r2, _08005D1C @ =0x0200B698
+ movs r6, #2
+ ldrsh r0, [r2, r6]
+ adds r1, r1, r0
+ ldr r2, _08005D3C @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ ldr r3, _08005D38 @ =0x03005000
+ adds r1, r1, r3
+ ldr r6, _08005D1C @ =0x0200B698
+ ldrb r0, [r6, #4]
+ ldrb r2, [r4, #4]
+ adds r0, r0, r2
+ strb r0, [r1]
+ adds r4, #8
+ adds r5, #2
+ subs r7, #1
+ cmp r7, #0
+ bge _08005C00
+_08005C68:
+ ldr r3, [sp]
+ ldrh r0, [r3]
+ cmp r0, #1
+ bne _08005CD8
+ movs r0, #0x24
+ strh r0, [r3, #2]
+ movs r0, #0x40
+ strh r0, [r3, #4]
+ ldr r1, _08005D2C @ =0x086A6148
+ ldr r0, _08005D00 @ =0x0201A448
+ movs r4, #0
+ ldrsh r0, [r0, r4]
+ adds r0, #5
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r7, #0
+ ldrh r6, [r5]
+ cmp r7, r6
+ bge _08005CD8
+ ldr r0, _08005D38 @ =0x03005000
+ mov sb, r0
+ ldr r1, _08005D40 @ =0xFFFFFE00
+ mov r8, r1
+ adds r4, r3, #0
+ adds r4, #8
+_08005C9C:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ ldr r6, [sp]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r6, _08005D3C @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ ldr r2, [sp]
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ adds r7, #1
+ ldrh r6, [r5]
+ cmp r7, r6
+ blt _08005C9C
+_08005CD8:
+ ldr r1, [sp, #4]
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005DD0
+ ldr r0, _08005D04 @ =0x0202BEFC
+ movs r1, #0
+ ldrsb r1, [r0, r1]
+ adds r2, r0, #0
+ cmp r1, #0
+ beq _08005CF0
+ cmp r1, #4
+ bne _08005D68
+_08005CF0:
+ movs r0, #0x78
+ ldr r3, [sp, #4]
+ strh r0, [r3, #2]
+ movs r0, #0x64
+ strh r0, [r3, #4]
+ b _08005D72
+ .align 2, 0
+_08005CFC: .4byte 0x0200B3B8
+_08005D00: .4byte 0x0201A448
+_08005D04: .4byte 0x0202BEFC
+_08005D08: .4byte 0x00000C38
+_08005D0C: .4byte 0x0202A55C
+_08005D10: .4byte 0x0200B528
+_08005D14: .4byte 0x0202A568
+_08005D18: .4byte 0x0200B5E0
+_08005D1C: .4byte 0x0200B698
+_08005D20: .4byte 0x0202BEC4
+_08005D24: .4byte 0x0202C590
+_08005D28: .4byte 0x0200C4F8
+_08005D2C: .4byte 0x086A6148
+_08005D30: .4byte 0x0201A4F0
+_08005D34: .4byte 0x0202A57C
+_08005D38: .4byte 0x03005000
+_08005D3C: .4byte 0x000001FF
+_08005D40: .4byte 0xFFFFFE00
+_08005D44: .4byte 0x0202BF08
+_08005D48: .4byte 0x0202ADE0
+_08005D4C: .4byte 0x0202BF0C
+_08005D50: .4byte 0x086A5DF2
+_08005D54: .4byte 0xFFFFFC00
+_08005D58: .4byte 0x0202BF14
+_08005D5C: .4byte 0x086A5DDA
+_08005D60: .4byte 0x000003FF
+_08005D64: .4byte 0x086A5E1A
+_08005D68:
+ movs r0, #0x78
+ ldr r4, [sp, #4]
+ strh r0, [r4, #2]
+ movs r0, #0x50
+ strh r0, [r4, #4]
+_08005D72:
+ ldr r1, _08005E4C @ =0x086A6148
+ movs r0, #0
+ ldrsb r0, [r2, r0]
+ adds r0, #0x11
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r5, [r0]
+ movs r7, #0
+ ldrh r6, [r5]
+ cmp r7, r6
+ bge _08005DD0
+ ldr r0, _08005E50 @ =0x03005000
+ mov sb, r0
+ ldr r1, _08005E54 @ =0xFFFFFE00
+ mov r8, r1
+ ldr r4, [sp, #4]
+ adds r4, #8
+_08005D94:
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ add r3, sb
+ movs r2, #2
+ ldrsh r1, [r4, r2]
+ ldr r6, [sp, #4]
+ movs r2, #2
+ ldrsh r0, [r6, r2]
+ adds r1, r1, r0
+ ldr r6, _08005E58 @ =0x000001FF
+ adds r0, r6, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ add r1, sb
+ ldr r2, [sp, #4]
+ ldrb r0, [r2, #4]
+ ldrb r3, [r4, #4]
+ adds r0, r0, r3
+ strb r0, [r1]
+ adds r4, #8
+ adds r7, #1
+ ldrh r6, [r5]
+ cmp r7, r6
+ blt _08005D94
+_08005DD0:
+ ldr r1, _08005E5C @ =0x0200C4F8
+ ldrh r0, [r1]
+ cmp r0, #1
+ bne _08005E34
+ movs r0, #0xa8
+ strh r0, [r1, #2]
+ movs r0, #0x54
+ strh r0, [r1, #4]
+ ldr r5, _08005E50 @ =0x03005000
+ ldr r2, _08005E54 @ =0xFFFFFE00
+ mov r8, r2
+ adds r4, r1, #0
+ adds r4, #8
+ movs r7, #2
+_08005DEC:
+ ldrh r2, [r4]
+ lsls r2, r2, #3
+ adds r2, r2, r5
+ ldrb r0, [r2, #5]
+ movs r1, #0xc
+ orrs r0, r1
+ strb r0, [r2, #5]
+ ldrh r3, [r4]
+ lsls r3, r3, #3
+ adds r3, r3, r5
+ movs r6, #2
+ ldrsh r1, [r4, r6]
+ ldr r2, _08005E5C @ =0x0200C4F8
+ movs r6, #2
+ ldrsh r0, [r2, r6]
+ adds r1, r1, r0
+ ldr r2, _08005E58 @ =0x000001FF
+ adds r0, r2, #0
+ ands r1, r0
+ ldrh r2, [r3, #2]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, #2]
+ ldrh r1, [r4]
+ lsls r1, r1, #3
+ adds r1, r1, r5
+ ldr r3, _08005E5C @ =0x0200C4F8
+ ldrb r0, [r3, #4]
+ ldrb r6, [r4, #4]
+ adds r0, r0, r6
+ strb r0, [r1]
+ adds r4, #8
+ subs r7, #1
+ cmp r7, #0
+ bge _08005DEC
+_08005E34:
+ movs r0, #0
+ ldr r1, [sp, #4]
+ strh r0, [r1]
+ add sp, #0xc
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005E4C: .4byte 0x086A6148
+_08005E50: .4byte 0x03005000
+_08005E54: .4byte 0xFFFFFE00
+_08005E58: .4byte 0x000001FF
+_08005E5C: .4byte 0x0200C4F8
+
+ thumb_func_start sub_5E60
+sub_5E60: @ 0x08005E60
+ ldr r1, _08005E84 @ =0x0202C5F0
+ movs r2, #0
+ ldr r0, _08005E88 @ =0x0000DDDD
+ strh r0, [r1]
+ ldr r0, _08005E8C @ =0x0202C5B4
+ movs r1, #1
+ strh r1, [r0]
+ ldr r0, _08005E90 @ =0x0201C180
+ strh r1, [r0]
+ ldr r0, _08005E94 @ =0x0201B128
+ strb r2, [r0]
+ ldr r0, _08005E98 @ =0x0201C1BC
+ strb r2, [r0]
+ ldr r0, _08005E9C @ =0x0202C544
+ strb r2, [r0]
+ ldr r0, _08005EA0 @ =0x0202BECC
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_08005E84: .4byte 0x0202C5F0
+_08005E88: .4byte 0x0000DDDD
+_08005E8C: .4byte 0x0202C5B4
+_08005E90: .4byte 0x0201C180
+_08005E94: .4byte 0x0201B128
+_08005E98: .4byte 0x0201C1BC
+_08005E9C: .4byte 0x0202C544
+_08005EA0: .4byte 0x0202BECC
+
+ thumb_func_start sub_5EA4
+sub_5EA4: @ 0x08005EA4
+ push {lr}
+ ldr r0, _08005EB4 @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08005EB8
+ bl sub_639C
+ b _08005EBC
+ .align 2, 0
+_08005EB4: .4byte 0x0202BF20
+_08005EB8:
+ bl sub_65DC
+_08005EBC:
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_5EC8
+sub_5EC8: @ 0x08005EC8
+ push {lr}
+ ldr r0, _08005ED8 @ =0x0202BF20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08005EDC
+ bl sub_5EEC
+ b _08005EE0
+ .align 2, 0
+_08005ED8: .4byte 0x0202BF20
+_08005EDC:
+ bl sub_6144
+_08005EE0:
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0x10
+ pop {r1}
+ bx r1
+
+ thumb_func_start sub_5EEC
+sub_5EEC: @ 0x08005EEC
+ push {r4, r5, lr}
+ ldr r0, _08005F0C @ =0x0201B128
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _08005F5C
+ ldr r0, _08005F10 @ =0x0201C1BC
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _08005F14
+ cmp r0, #1
+ beq _08005F4C
+ b _08006136
+ .align 2, 0
+_08005F0C: .4byte 0x0201B128
+_08005F10: .4byte 0x0201C1BC
+_08005F14:
+ ldr r0, _08005F28 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08005F34
+ ldr r1, _08005F2C @ =0x0202C5F0
+ ldr r0, _08005F30 @ =0x0000FEFE
+ strh r0, [r1]
+ b _08006136
+ .align 2, 0
+_08005F28: .4byte 0x0200B0C0
+_08005F2C: .4byte 0x0202C5F0
+_08005F30: .4byte 0x0000FEFE
+_08005F34:
+ ldr r1, _08005F48 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08005F3C:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08005F3C
+ b _08006136
+ .align 2, 0
+_08005F48: .4byte 0x0202C5F0
+_08005F4C:
+ ldr r1, _08005F54 @ =0x0202C5F0
+ ldr r0, _08005F58 @ =0x0000ECEC
+ strh r0, [r1]
+ b _08006136
+ .align 2, 0
+_08005F54: .4byte 0x0202C5F0
+_08005F58: .4byte 0x0000ECEC
+_08005F5C:
+ ldr r0, _08005F78 @ =0x0201C180
+ ldrh r1, [r0]
+ adds r5, r0, #0
+ cmp r1, #7
+ bhi _08005F84
+ ldr r1, _08005F7C @ =0x0202C5F0
+ ldr r2, _08005F80 @ =0x0000DDDD
+ adds r0, r1, #0
+ adds r0, #0xe
+_08005F6E:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08005F6E
+ b _08006130
+ .align 2, 0
+_08005F78: .4byte 0x0201C180
+_08005F7C: .4byte 0x0202C5F0
+_08005F80: .4byte 0x0000DDDD
+_08005F84:
+ cmp r1, #0xf
+ bls _08005F8A
+ b _08006120
+_08005F8A:
+ ldrh r2, [r5]
+ adds r1, r2, #0
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #0x12
+ lsrs r0, r0, #0x10
+ mov ip, r0
+ ldr r4, _08006118 @ =0x0202C5F0
+ strh r2, [r4]
+ ldr r3, _0800611C @ =0x0202A1C0
+ lsls r2, r0, #1
+ adds r2, r2, r3
+ adds r0, #1
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #2
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #3
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #2]
+ mov r2, ip
+ adds r2, #4
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #6
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #7
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #4]
+ mov r2, ip
+ adds r2, #8
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #9
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xa
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xb
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #6]
+ mov r2, ip
+ adds r2, #0xc
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0xd
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xe
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xf
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #8]
+ mov r2, ip
+ adds r2, #0x10
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x11
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x12
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x13
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xa]
+ mov r2, ip
+ adds r2, #0x14
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x15
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x16
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x17
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xc]
+ mov r2, ip
+ adds r2, #0x18
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x19
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1a
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1b
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xe]
+ b _08006130
+ .align 2, 0
+_08006118: .4byte 0x0202C5F0
+_0800611C: .4byte 0x0202A1C0
+_08006120:
+ ldr r1, _08006140 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08006128:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08006128
+_08006130:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_08006136:
+ movs r0, #0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006140: .4byte 0x0202C5F0
+
+ thumb_func_start sub_6144
+sub_6144: @ 0x08006144
+ push {r4, r5, lr}
+ ldr r0, _08006164 @ =0x0201B128
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ bne _080061B4
+ ldr r0, _08006168 @ =0x0202C544
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0
+ beq _0800616C
+ cmp r0, #1
+ beq _080061A4
+ b _0800638E
+ .align 2, 0
+_08006164: .4byte 0x0201B128
+_08006168: .4byte 0x0202C544
+_0800616C:
+ ldr r0, _08006180 @ =0x0200B0C0
+ ldrh r1, [r0, #0x18]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0800618C
+ ldr r1, _08006184 @ =0x0202C5F0
+ ldr r0, _08006188 @ =0x0000FEFE
+ strh r0, [r1]
+ b _0800638E
+ .align 2, 0
+_08006180: .4byte 0x0200B0C0
+_08006184: .4byte 0x0202C5F0
+_08006188: .4byte 0x0000FEFE
+_0800618C:
+ ldr r1, _080061A0 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08006194:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08006194
+ b _0800638E
+ .align 2, 0
+_080061A0: .4byte 0x0202C5F0
+_080061A4:
+ ldr r1, _080061AC @ =0x0202C5F0
+ ldr r0, _080061B0 @ =0x0000ECEC
+ strh r0, [r1]
+ b _0800638E
+ .align 2, 0
+_080061AC: .4byte 0x0202C5F0
+_080061B0: .4byte 0x0000ECEC
+_080061B4:
+ ldr r0, _080061D0 @ =0x0201C180
+ ldrh r1, [r0]
+ adds r5, r0, #0
+ cmp r1, #7
+ bhi _080061DC
+ ldr r1, _080061D4 @ =0x0202C5F0
+ ldr r2, _080061D8 @ =0x0000DDDD
+ adds r0, r1, #0
+ adds r0, #0xe
+_080061C6:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _080061C6
+ b _08006388
+ .align 2, 0
+_080061D0: .4byte 0x0201C180
+_080061D4: .4byte 0x0202C5F0
+_080061D8: .4byte 0x0000DDDD
+_080061DC:
+ cmp r1, #0xf
+ bls _080061E2
+ b _08006378
+_080061E2:
+ ldrh r2, [r5]
+ adds r1, r2, #0
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #0x12
+ lsrs r0, r0, #0x10
+ mov ip, r0
+ ldr r4, _08006370 @ =0x0202C5F0
+ strh r2, [r4]
+ ldr r3, _08006374 @ =0x0202A1C0
+ lsls r2, r0, #1
+ adds r2, r2, r3
+ adds r0, #1
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #2
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #3
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #2]
+ mov r2, ip
+ adds r2, #4
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #5
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #6
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #7
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #4]
+ mov r2, ip
+ adds r2, #8
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #9
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xa
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xb
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #6]
+ mov r2, ip
+ adds r2, #0xc
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0xd
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xe
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0xf
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #8]
+ mov r2, ip
+ adds r2, #0x10
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x11
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x12
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x13
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xa]
+ mov r2, ip
+ adds r2, #0x14
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x15
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x16
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x17
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xc]
+ mov r2, ip
+ adds r2, #0x18
+ lsls r2, r2, #1
+ adds r2, r2, r3
+ mov r0, ip
+ adds r0, #0x19
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r1, [r0]
+ lsls r1, r1, #4
+ ldrh r0, [r2]
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1a
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #8
+ orrs r1, r0
+ mov r0, ip
+ adds r0, #0x1b
+ lsls r0, r0, #1
+ adds r0, r0, r3
+ ldrh r0, [r0]
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ strh r1, [r4, #0xe]
+ b _08006388
+ .align 2, 0
+_08006370: .4byte 0x0202C5F0
+_08006374: .4byte 0x0202A1C0
+_08006378:
+ ldr r1, _08006398 @ =0x0202C5F0
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xe
+_08006380:
+ strh r2, [r0]
+ subs r0, #2
+ cmp r0, r1
+ bge _08006380
+_08006388:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_0800638E:
+ movs r0, #0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006398: .4byte 0x0202C5F0
+
+ thumb_func_start sub_639C
+sub_639C: @ 0x0800639C
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #0x38
+ ldr r4, _080063C0 @ =0x0201B128
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _08006438
+ ldr r3, _080063C4 @ =0x0201C1BC
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ cmp r1, #0
+ beq _080063C8
+ cmp r1, #1
+ beq _080063E8
+ b _080065AA
+ .align 2, 0
+_080063C0: .4byte 0x0201B128
+_080063C4: .4byte 0x0201C1BC
+_080063C8:
+ ldr r2, _080063E0 @ =0x0201A4D0
+ ldrh r0, [r2]
+ ldr r1, _080063E4 @ =0x0000FEFE
+ cmp r0, r1
+ beq _080063DA
+ ldrh r0, [r2, #2]
+ cmp r0, r1
+ beq _080063DA
+ b _080065AA
+_080063DA:
+ movs r0, #1
+ strb r0, [r3]
+ b _080065AA
+ .align 2, 0
+_080063E0: .4byte 0x0201A4D0
+_080063E4: .4byte 0x0000FEFE
+_080063E8:
+ ldr r3, _0800640C @ =0x0201A4D0
+ ldrh r2, [r3]
+ ldr r0, _08006410 @ =0x0000ECEC
+ cmp r2, r0
+ bne _0800641C
+ ldrh r0, [r3, #2]
+ cmp r0, r2
+ bne _0800641C
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ strb r0, [r4]
+ ldr r0, _08006414 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r0, _08006418 @ =0x0201C180
+ strh r1, [r0]
+ b _080065AA
+ .align 2, 0
+_0800640C: .4byte 0x0201A4D0
+_08006410: .4byte 0x0000ECEC
+_08006414: .4byte 0x0202BEFC
+_08006418: .4byte 0x0201C180
+_0800641C:
+ ldr r1, _08006434 @ =0x0202BECC
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ bgt _0800642E
+ b _080065AA
+_0800642E:
+ movs r0, #1
+ b _080065CC
+ .align 2, 0
+_08006434: .4byte 0x0202BECC
+_08006438:
+ ldr r7, _0800656C @ =0x0201A4D0
+ ldrh r1, [r7, #2]
+ adds r0, r1, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #7
+ bls _0800644A
+ b _080065CA
+_0800644A:
+ ldr r0, _08006570 @ =0x0202C5B4
+ mov r8, r0
+ strh r1, [r0]
+ mov r2, sp
+ ldrh r1, [r7, #6]
+ movs r6, #0xf
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2]
+ movs r5, #0xf0
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #2]
+ movs r4, #0xf0
+ lsls r4, r4, #4
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #4]
+ movs r3, #0xf0
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #6]
+ ldrh r1, [r7, #0xa]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #8]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0xa]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0xc]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0xe]
+ ldrh r1, [r7, #0xe]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x10]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x12]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x14]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x16]
+ ldrh r1, [r7, #0x12]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x18]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x1a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x1c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x1e]
+ ldrh r1, [r7, #0x16]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x20]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x22]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x24]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x26]
+ ldrh r1, [r7, #0x1a]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x28]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x2a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x2c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x2e]
+ mov r1, sp
+ ldrh r0, [r7, #0x1e]
+ ands r6, r0
+ strh r6, [r1, #0x30]
+ ands r5, r0
+ lsrs r5, r5, #4
+ strh r5, [r1, #0x32]
+ ands r4, r0
+ lsrs r4, r4, #8
+ strh r4, [r1, #0x34]
+ ands r3, r0
+ lsrs r3, r3, #0xc
+ strh r3, [r1, #0x36]
+ movs r3, #0
+ ldr r6, _08006574 @ =0x0202A1C0
+ ldr r5, _08006578 @ =0x0202A390
+ mov r4, sp
+_08006540:
+ mov r2, r8
+ ldrh r1, [r2]
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ cmp r0, #0
+ bne _0800657C
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _0800657C
+ adds r1, r1, r5
+ movs r0, #2
+ b _08006592
+ .align 2, 0
+_0800656C: .4byte 0x0201A4D0
+_08006570: .4byte 0x0202C5B4
+_08006574: .4byte 0x0202A1C0
+_08006578: .4byte 0x0202A390
+_0800657C:
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #1
+ bne _08006594
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _08006594
+ adds r1, r1, r5
+ movs r0, #3
+_08006592:
+ strh r0, [r1]
+_08006594:
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1b
+ ble _08006540
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #0xf
+ bne _080065AA
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _080065CC
+_080065AA:
+ movs r3, #0
+ ldr r5, _080065D8 @ =0x0201A4D0
+ movs r4, #0
+_080065B0:
+ adds r2, r3, #1
+ lsls r0, r3, #2
+ movs r1, #1
+ adds r0, r0, r5
+ adds r0, #2
+_080065BA:
+ strh r4, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _080065BA
+ adds r3, r2, #0
+ cmp r3, #7
+ ble _080065B0
+_080065CA:
+ movs r0, #0
+_080065CC:
+ add sp, #0x38
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080065D8: .4byte 0x0201A4D0
+
+ thumb_func_start sub_65DC
+sub_65DC: @ 0x080065DC
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #0x38
+ ldr r4, _08006600 @ =0x0201B128
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _08006678
+ ldr r3, _08006604 @ =0x0202C544
+ movs r1, #0
+ ldrsb r1, [r3, r1]
+ cmp r1, #0
+ beq _08006608
+ cmp r1, #1
+ beq _08006628
+ b _080067EA
+ .align 2, 0
+_08006600: .4byte 0x0201B128
+_08006604: .4byte 0x0202C544
+_08006608:
+ ldr r2, _08006620 @ =0x0201A4D0
+ ldrh r0, [r2]
+ ldr r1, _08006624 @ =0x0000FEFE
+ cmp r0, r1
+ beq _0800661A
+ ldrh r0, [r2, #2]
+ cmp r0, r1
+ beq _0800661A
+ b _080067EA
+_0800661A:
+ movs r0, #1
+ strb r0, [r3]
+ b _080067EA
+ .align 2, 0
+_08006620: .4byte 0x0201A4D0
+_08006624: .4byte 0x0000FEFE
+_08006628:
+ ldr r3, _0800664C @ =0x0201A4D0
+ ldrh r2, [r3]
+ ldr r0, _08006650 @ =0x0000ECEC
+ cmp r2, r0
+ bne _0800665C
+ ldrh r0, [r3, #2]
+ cmp r0, r2
+ bne _0800665C
+ movs r2, #1
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ strb r0, [r4]
+ ldr r0, _08006654 @ =0x0202BEFC
+ strb r1, [r0]
+ ldr r0, _08006658 @ =0x0201C180
+ strh r1, [r0]
+ b _080067EA
+ .align 2, 0
+_0800664C: .4byte 0x0201A4D0
+_08006650: .4byte 0x0000ECEC
+_08006654: .4byte 0x0202BEFC
+_08006658: .4byte 0x0201C180
+_0800665C:
+ ldr r1, _08006674 @ =0x0202BECC
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ cmp r0, #0xa
+ bgt _0800666E
+ b _080067EA
+_0800666E:
+ movs r0, #1
+ b _0800680C
+ .align 2, 0
+_08006674: .4byte 0x0202BECC
+_08006678:
+ ldr r7, _080067AC @ =0x0201A4D0
+ ldrh r1, [r7]
+ adds r0, r1, #0
+ subs r0, #8
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ cmp r0, #7
+ bls _0800668A
+ b _0800680A
+_0800668A:
+ ldr r0, _080067B0 @ =0x0202C5B4
+ mov r8, r0
+ strh r1, [r0]
+ mov r2, sp
+ ldrh r1, [r7, #4]
+ movs r6, #0xf
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2]
+ movs r5, #0xf0
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #2]
+ movs r4, #0xf0
+ lsls r4, r4, #4
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #4]
+ movs r3, #0xf0
+ lsls r3, r3, #8
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #6]
+ ldrh r1, [r7, #8]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #8]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0xa]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0xc]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0xe]
+ ldrh r1, [r7, #0xc]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x10]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x12]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x14]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x16]
+ ldrh r1, [r7, #0x10]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x18]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x1a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x1c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x1e]
+ ldrh r1, [r7, #0x14]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x20]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x22]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x24]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x26]
+ ldrh r1, [r7, #0x18]
+ adds r0, r6, #0
+ ands r0, r1
+ strh r0, [r2, #0x28]
+ adds r0, r5, #0
+ ands r0, r1
+ lsrs r0, r0, #4
+ strh r0, [r2, #0x2a]
+ adds r0, r4, #0
+ ands r0, r1
+ lsrs r0, r0, #8
+ strh r0, [r2, #0x2c]
+ adds r0, r3, #0
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ strh r0, [r2, #0x2e]
+ mov r1, sp
+ ldrh r0, [r7, #0x1c]
+ ands r6, r0
+ strh r6, [r1, #0x30]
+ ands r5, r0
+ lsrs r5, r5, #4
+ strh r5, [r1, #0x32]
+ ands r4, r0
+ lsrs r4, r4, #8
+ strh r4, [r1, #0x34]
+ ands r3, r0
+ lsrs r3, r3, #0xc
+ strh r3, [r1, #0x36]
+ movs r3, #0
+ ldr r6, _080067B4 @ =0x0202A1C0
+ ldr r5, _080067B8 @ =0x0202A390
+ mov r4, sp
+_08006780:
+ mov r2, r8
+ ldrh r1, [r2]
+ subs r1, #8
+ lsls r0, r1, #3
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r0, r0, r3
+ lsls r0, r0, #0x10
+ lsrs r2, r0, #0x10
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r7, #0
+ ldrsh r0, [r0, r7]
+ cmp r0, #0
+ bne _080067BC
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _080067BC
+ adds r1, r1, r5
+ movs r0, #2
+ b _080067D2
+ .align 2, 0
+_080067AC: .4byte 0x0201A4D0
+_080067B0: .4byte 0x0202C5B4
+_080067B4: .4byte 0x0202A1C0
+_080067B8: .4byte 0x0202A390
+_080067BC:
+ lsls r1, r2, #1
+ adds r0, r1, r6
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ cmp r0, #1
+ bne _080067D4
+ ldrh r0, [r4]
+ cmp r0, #4
+ bne _080067D4
+ adds r1, r1, r5
+ movs r0, #3
+_080067D2:
+ strh r0, [r1]
+_080067D4:
+ adds r4, #2
+ adds r3, #1
+ cmp r3, #0x1b
+ ble _08006780
+ mov r7, r8
+ ldrh r0, [r7]
+ cmp r0, #0xf
+ bne _080067EA
+ movs r0, #1
+ rsbs r0, r0, #0
+ b _0800680C
+_080067EA:
+ movs r3, #0
+ ldr r5, _08006818 @ =0x0201A4D0
+ movs r4, #0
+_080067F0:
+ adds r2, r3, #1
+ lsls r0, r3, #2
+ movs r1, #1
+ adds r0, r0, r5
+ adds r0, #2
+_080067FA:
+ strh r4, [r0]
+ subs r0, #2
+ subs r1, #1
+ cmp r1, #0
+ bge _080067FA
+ adds r3, r2, #0
+ cmp r3, #7
+ ble _080067F0
+_0800680A:
+ movs r0, #0
+_0800680C:
+ add sp, #0x38
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006818: .4byte 0x0201A4D0
+
+ thumb_func_start sub_681C
+sub_681C: @ 0x0800681C
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ sub sp, #0xc
+ add r2, sp, #8
+ movs r1, #0
+ strh r1, [r2]
+ ldr r2, _08006884 @ =0x040000D4
+ add r1, sp, #8
+ str r1, [r2]
+ ldr r1, _08006888 @ =0x03000000
+ str r1, [r2, #4]
+ ldr r1, _0800688C @ =0x81000400
+ str r1, [r2, #8]
+ ldr r1, [r2, #8]
+ movs r2, #0
+ mov r8, r2
+ lsls r7, r0, #0x10
+ asrs r2, r7, #0x10
+ cmp r2, #0xc8
+ bne _080068CC
+ ldr r0, _08006890 @ =0x0202A1C0
+ movs r3, #0xc8
+ lsls r3, r3, #1
+ adds r0, r0, r3
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ beq _08006894
+ movs r5, #1
+ str r5, [sp]
+ movs r4, #2
+ str r4, [sp, #4]
+ movs r0, #0x22
+ movs r1, #1
+ movs r2, #5
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x20
+ movs r1, #1
+ movs r2, #6
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x21
+ b _080068BE
+ .align 2, 0
+_08006884: .4byte 0x040000D4
+_08006888: .4byte 0x03000000
+_0800688C: .4byte 0x81000400
+_08006890: .4byte 0x0202A1C0
+_08006894:
+ movs r5, #1
+ str r5, [sp]
+ movs r4, #2
+ str r4, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #1
+ movs r2, #5
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #1
+ movs r2, #6
+ movs r3, #2
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2a
+_080068BE:
+ movs r1, #1
+ movs r2, #7
+ movs r3, #2
+ bl sub_105A0
+ mov sb, r7
+ b _08006900
+_080068CC:
+ movs r6, #0
+ mov sb, r7
+ ldr r1, _08006998 @ =0x0805C8B4
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r4, r0, r1
+_080068DE:
+ ldrh r0, [r4]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #5
+ movs r1, #1
+ str r1, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ movs r1, #1
+ movs r3, #2
+ bl sub_105A0
+ adds r4, #2
+ adds r6, #1
+ cmp r6, #2
+ ble _080068DE
+_08006900:
+ ldr r0, _0800699C @ =0x0202A1C0
+ mov r3, sb
+ asrs r2, r3, #0x10
+ lsls r1, r2, #1
+ adds r1, r1, r0
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _080069C4
+ movs r6, #0
+ ldr r1, _080069A0 @ =0x0805C8CC
+ ldr r5, _080069A4 @ =0x040000D4
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r7, r0, r1
+_08006924:
+ ldrh r1, [r7]
+ movs r2, #0x10
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ adds r3, r0, #0
+ ands r3, r1
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _0800693A
+ movs r4, #4
+_0800693A:
+ ldr r1, _080069A8 @ =0x08090780
+ adds r0, r3, r1
+ str r0, [r5]
+ ldr r0, _080069AC @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r2, _080069B0 @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ movs r0, #0x80
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r1, r3, r1
+ str r1, [r5]
+ ldr r0, _080069B4 @ =0x0201B130
+ str r0, [r5, #4]
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ mov r1, r8
+ movs r2, #0
+ bl sub_71DC
+ add r8, r4
+ adds r7, #2
+ adds r6, #1
+ cmp r6, #9
+ ble _08006924
+ ldr r4, _080069B8 @ =0x03000000
+ ldr r1, _080069BC @ =0x06004C00
+ adds r0, r4, #0
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r0, _080069A4 @ =0x040000D4
+ str r1, [r0]
+ str r4, [r0, #4]
+ ldr r1, _080069C0 @ =0x81000400
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ movs r1, #0
+ mov r8, r1
+ b _080069DC
+ .align 2, 0
+_08006998: .4byte 0x0805C8B4
+_0800699C: .4byte 0x0202A1C0
+_080069A0: .4byte 0x0805C8CC
+_080069A4: .4byte 0x040000D4
+_080069A8: .4byte 0x08090780
+_080069AC: .4byte 0x0202BE30
+_080069B0: .4byte 0x80000010
+_080069B4: .4byte 0x0201B130
+_080069B8: .4byte 0x03000000
+_080069BC: .4byte 0x06004C00
+_080069C0: .4byte 0x81000400
+_080069C4:
+ ldr r4, _08006A74 @ =0x06004C00
+ movs r6, #9
+_080069C8:
+ ldr r0, _08006A78 @ =0x08092FA0
+ adds r1, r4, #0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #0x20
+ subs r6, #1
+ cmp r6, #0
+ bge _080069C8
+_080069DC:
+ ldr r1, _08006A7C @ =0x0202A1C0
+ mov r3, sb
+ asrs r2, r3, #0x10
+ lsls r0, r2, #1
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #1
+ beq _080069F2
+ cmp r0, #2
+ ble _08006AA4
+_080069F2:
+ movs r6, #0
+ ldr r1, _08006A80 @ =0x0805C8E0
+ ldr r5, _08006A84 @ =0x040000D4
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r7, r0, r1
+_08006A04:
+ ldrh r1, [r7]
+ movs r2, #0x10
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ adds r3, r0, #0
+ ands r3, r1
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _08006A1A
+ movs r4, #6
+_08006A1A:
+ ldr r1, _08006A88 @ =0x08090780
+ adds r0, r3, r1
+ str r0, [r5]
+ ldr r0, _08006A8C @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r2, _08006A90 @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ movs r0, #0x80
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r1, r3, r1
+ str r1, [r5]
+ ldr r0, _08006A94 @ =0x0201B130
+ str r0, [r5, #4]
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ mov r1, r8
+ movs r2, #0
+ bl sub_71DC
+ add r8, r4
+ adds r7, #2
+ adds r6, #1
+ cmp r6, #0xa
+ ble _08006A04
+ ldr r4, _08006A98 @ =0x03000000
+ ldr r1, _08006A9C @ =0x06004D00
+ adds r0, r4, #0
+ movs r2, #9
+ movs r3, #2
+ bl sub_10708
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r0, _08006A84 @ =0x040000D4
+ str r1, [r0]
+ str r4, [r0, #4]
+ ldr r1, _08006AA0 @ =0x81000400
+ str r1, [r0, #8]
+ ldr r0, [r0, #8]
+ b _08006ABC
+ .align 2, 0
+_08006A74: .4byte 0x06004C00
+_08006A78: .4byte 0x08092FA0
+_08006A7C: .4byte 0x0202A1C0
+_08006A80: .4byte 0x0805C8E0
+_08006A84: .4byte 0x040000D4
+_08006A88: .4byte 0x08090780
+_08006A8C: .4byte 0x0202BE30
+_08006A90: .4byte 0x80000010
+_08006A94: .4byte 0x0201B130
+_08006A98: .4byte 0x03000000
+_08006A9C: .4byte 0x06004D00
+_08006AA0: .4byte 0x81000400
+_08006AA4:
+ ldr r4, _08006B6C @ =0x06004D00
+ movs r6, #8
+_08006AA8:
+ ldr r0, _08006B70 @ =0x08092FA0
+ adds r1, r4, #0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #0x20
+ subs r6, #1
+ cmp r6, #0
+ bge _08006AA8
+_08006ABC:
+ ldr r0, _08006B74 @ =0x0202A1C0
+ mov r1, sb
+ asrs r2, r1, #0x10
+ lsls r1, r2, #1
+ adds r1, r1, r0
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08006B7C
+ ldr r0, _08006B78 @ =0x0805C8B4
+ mov sb, r0
+ lsls r4, r2, #3
+ adds r4, r4, r2
+ lsls r4, r4, #4
+ subs r4, r4, r2
+ lsls r4, r4, #2
+ adds r1, r4, #0
+ add r1, sb
+ mov r8, r1
+ ldrh r0, [r1, #6]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ movs r6, #1
+ str r6, [sp]
+ movs r5, #2
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x10
+ movs r3, #6
+ bl sub_105A0
+ mov r2, r8
+ ldrh r0, [r2, #8]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r6, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x11
+ movs r3, #6
+ bl sub_105A0
+ mov r3, r8
+ ldrh r0, [r3, #0xa]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r6, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x13
+ movs r3, #6
+ bl sub_105A0
+ mov r1, r8
+ ldrh r0, [r1, #0xc]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r6, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r2, #0x14
+ movs r3, #6
+ bl sub_105A0
+ movs r6, #0
+ movs r2, #0xe
+ add sb, r2
+ add r4, sb
+ movs r5, #1
+_08006B4E:
+ ldrh r0, [r4]
+ adds r2, r6, #0
+ adds r2, #0x10
+ str r5, [sp]
+ str r5, [sp, #4]
+ movs r1, #1
+ movs r3, #8
+ bl sub_105A0
+ adds r4, #2
+ adds r6, #1
+ cmp r6, #4
+ ble _08006B4E
+ b _08006BDC
+ .align 2, 0
+_08006B6C: .4byte 0x06004D00
+_08006B70: .4byte 0x08092FA0
+_08006B74: .4byte 0x0202A1C0
+_08006B78: .4byte 0x0805C8B4
+_08006B7C:
+ movs r5, #1
+ str r5, [sp]
+ movs r4, #2
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x10
+ movs r3, #6
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x11
+ movs r3, #6
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x13
+ movs r3, #6
+ bl sub_105A0
+ str r5, [sp]
+ str r4, [sp, #4]
+ movs r0, #0x2b
+ movs r1, #1
+ movs r2, #0x14
+ movs r3, #6
+ bl sub_105A0
+ movs r6, #0
+ movs r4, #1
+_08006BC4:
+ adds r2, r6, #0
+ adds r2, #0x10
+ str r4, [sp]
+ str r4, [sp, #4]
+ movs r0, #0xb
+ movs r1, #1
+ movs r3, #8
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #4
+ ble _08006BC4
+_08006BDC:
+ add sp, #0xc
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_6BEC
+sub_6BEC: @ 0x08006BEC
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ sub sp, #0x20
+ adds r4, r1, #0
+ lsls r4, r4, #0x10
+ lsrs r4, r4, #0x10
+ lsls r0, r0, #0x10
+ asrs r6, r0, #0x10
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __divsi3
+ str r0, [sp, #8]
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __modsi3
+ adds r5, r0, #0
+ movs r1, #0xa
+ bl __divsi3
+ str r0, [sp, #0xc]
+ adds r0, r5, #0
+ movs r1, #0xa
+ bl __modsi3
+ str r0, [sp, #0x10]
+ lsls r4, r4, #0x10
+ asrs r6, r4, #0x10
+ add r5, sp, #0x14
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __divsi3
+ str r0, [sp, #0x14]
+ adds r0, r6, #0
+ movs r1, #0x64
+ bl __modsi3
+ adds r4, r0, #0
+ movs r1, #0xa
+ bl __divsi3
+ str r0, [r5, #4]
+ adds r0, r4, #0
+ movs r1, #0xa
+ bl __modsi3
+ str r0, [r5, #8]
+ movs r6, #0
+ movs r7, #1
+ mov r8, r5
+ add r5, sp, #8
+_08006C58:
+ ldm r5!, {r0}
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r4, r6, #0
+ adds r4, #0x19
+ str r7, [sp]
+ str r7, [sp, #4]
+ movs r1, #2
+ adds r2, r4, #0
+ movs r3, #0xf
+ bl sub_105A0
+ mov r1, r8
+ adds r1, #4
+ mov r8, r1
+ subs r1, #4
+ ldm r1!, {r0}
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r7, [sp]
+ movs r1, #2
+ str r1, [sp, #4]
+ adds r2, r4, #0
+ movs r3, #0x10
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #2
+ ble _08006C58
+ add sp, #0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_6CA0
+sub_6CA0: @ 0x08006CA0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08006D2C @ =0x040000D4
+ add r0, sp, #8
+ str r0, [r1]
+ ldr r0, _08006D30 @ =0x03000000
+ str r0, [r1, #4]
+ ldr r0, _08006D34 @ =0x81000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r1, #0
+ str r1, [sp, #0x10]
+ mov r8, r1
+ ldr r2, [sp, #0xc]
+ lsls r2, r2, #0x10
+ str r2, [sp, #0x14]
+ movs r3, #1
+ mov sb, r3
+ movs r5, #2
+ movs r4, #0
+ str r4, [sp, #0x18]
+ movs r4, #0xa
+_08006CE0:
+ ldr r1, [sp, #0xc]
+ lsls r0, r1, #0x10
+ asrs r0, r0, #0x10
+ add r0, r8
+ cmp r0, #0xc8
+ bne _08006D74
+ ldr r0, _08006D38 @ =0x0202A1C0
+ movs r2, #0xc8
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ movs r3, #0
+ ldrsh r0, [r0, r3]
+ cmp r0, #0
+ beq _08006D3C
+ mov r0, sb
+ str r0, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x22
+ movs r1, #2
+ movs r2, #8
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r1, sb
+ str r1, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x20
+ movs r1, #2
+ movs r2, #9
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r2, sb
+ str r2, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x21
+ b _08006D68
+ .align 2, 0
+_08006D2C: .4byte 0x040000D4
+_08006D30: .4byte 0x03000000
+_08006D34: .4byte 0x81000400
+_08006D38: .4byte 0x0202A1C0
+_08006D3C:
+ mov r3, sb
+ str r3, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #2
+ movs r2, #8
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r0, sb
+ str r0, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x2a
+ movs r1, #2
+ movs r2, #9
+ adds r3, r4, #0
+ bl sub_105A0
+ mov r1, sb
+ str r1, [sp]
+ str r5, [sp, #4]
+ movs r0, #0x2a
+_08006D68:
+ movs r1, #2
+ movs r2, #0xa
+ adds r3, r4, #0
+ bl sub_105A0
+ b _08006DB6
+_08006D74:
+ movs r6, #0
+ ldr r7, [sp, #0x18]
+ ldr r2, _08006E94 @ =0x0805C8B4
+ mov sl, r2
+_08006D7C:
+ lsls r2, r6, #1
+ ldr r0, _08006E98 @ =0x0202C5B0
+ movs r3, #0
+ ldrsh r1, [r0, r3]
+ add r1, r8
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ add r2, sl
+ ldrh r0, [r2]
+ adds r0, #0x20
+ lsls r0, r0, #0x10
+ lsrs r0, r0, #0x10
+ adds r2, r6, #0
+ adds r2, #8
+ mov r1, sb
+ str r1, [sp]
+ str r5, [sp, #4]
+ movs r1, #2
+ adds r3, r7, #0
+ adds r3, #0xa
+ bl sub_105A0
+ adds r6, #1
+ cmp r6, #2
+ ble _08006D7C
+_08006DB6:
+ ldr r2, [sp, #0x18]
+ adds r2, #2
+ str r2, [sp, #0x18]
+ adds r4, #2
+ movs r3, #1
+ add r8, r3
+ mov r0, r8
+ cmp r0, #4
+ ble _08006CE0
+ movs r1, #0
+ mov r8, r1
+_08006DCC:
+ ldr r0, _08006E9C @ =0x0202A1C0
+ ldr r2, [sp, #0x14]
+ asrs r1, r2, #0x10
+ add r1, r8
+ lsls r1, r1, #1
+ adds r1, r1, r0
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #0
+ ble _08006EC4
+ movs r6, #0
+ mov r4, r8
+ lsls r7, r4, #1
+ movs r0, #1
+ add r0, r8
+ mov sb, r0
+ ldr r5, _08006EA0 @ =0x040000D4
+ ldr r3, _08006EA4 @ =0x08090780
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r1, r1, r3
+ mov sl, r1
+_08006DF8:
+ lsls r2, r6, #1
+ ldr r0, _08006E98 @ =0x0202C5B0
+ movs r4, #0
+ ldrsh r1, [r0, r4]
+ add r1, r8
+ lsls r0, r1, #3
+ adds r0, r0, r1
+ lsls r0, r0, #4
+ subs r0, r0, r1
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ ldr r0, _08006EA8 @ =0x0805C8CC
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ movs r2, #0x10
+ rsbs r2, r2, #0
+ adds r0, r2, #0
+ adds r2, r1, #0
+ ands r2, r0
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _08006E28
+ movs r4, #4
+_08006E28:
+ adds r0, r2, r3
+ str r0, [r5]
+ ldr r0, _08006EAC @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r0, _08006EB0 @ =0x80000010
+ str r0, [r5, #8]
+ ldr r0, [r5, #8]
+ mov r1, sl
+ adds r0, r2, r1
+ str r0, [r5]
+ ldr r0, _08006EB4 @ =0x0201B130
+ str r0, [r5, #4]
+ ldr r2, _08006EB0 @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ ldr r1, [sp, #0x10]
+ movs r2, #0
+ str r3, [sp, #0x1c]
+ bl sub_71DC
+ ldr r0, [sp, #0x10]
+ adds r0, r0, r4
+ str r0, [sp, #0x10]
+ adds r6, #1
+ ldr r3, [sp, #0x1c]
+ cmp r6, #9
+ ble _08006DF8
+ ldr r1, _08006EB8 @ =0x086A64F0
+ adds r0, r7, r1
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r3, #0xc0
+ lsls r3, r3, #0x13
+ adds r1, r1, r3
+ ldr r0, _08006EBC @ =0x03000000
+ movs r2, #8
+ movs r3, #2
+ bl sub_10708
+ add r1, sp, #8
+ movs r0, #0
+ strh r0, [r1]
+ ldr r1, _08006EA0 @ =0x040000D4
+ add r4, sp, #8
+ str r4, [r1]
+ ldr r0, _08006EBC @ =0x03000000
+ str r0, [r1, #4]
+ ldr r0, _08006EC0 @ =0x81000400
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ movs r1, #0
+ str r1, [sp, #0x10]
+ b _08006F06
+ .align 2, 0
+_08006E94: .4byte 0x0805C8B4
+_08006E98: .4byte 0x0202C5B0
+_08006E9C: .4byte 0x0202A1C0
+_08006EA0: .4byte 0x040000D4
+_08006EA4: .4byte 0x08090780
+_08006EA8: .4byte 0x0805C8CC
+_08006EAC: .4byte 0x0202BE30
+_08006EB0: .4byte 0x80000010
+_08006EB4: .4byte 0x0201B130
+_08006EB8: .4byte 0x086A64F0
+_08006EBC: .4byte 0x03000000
+_08006EC0: .4byte 0x81000400
+_08006EC4:
+ mov r2, r8
+ lsls r7, r2, #1
+ movs r3, #1
+ add r3, r8
+ mov sb, r3
+ ldr r4, _08006F20 @ =0x086A64F0
+ adds r5, r7, r4
+ movs r4, #0xc0
+ lsls r4, r4, #0x13
+ movs r6, #6
+_08006ED8:
+ movs r0, #0
+ ldrsh r1, [r5, r0]
+ adds r1, r1, r4
+ ldr r0, _08006F24 @ =0x08092FA0
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+ adds r4, #0x20
+ subs r6, #1
+ cmp r6, #0
+ bge _08006ED8
+ ldr r1, _08006F20 @ =0x086A64F0
+ adds r0, r7, r1
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ ldr r3, _08006F28 @ =0x060000E0
+ adds r1, r1, r3
+ ldr r0, _08006F2C @ =0x08090780
+ movs r2, #1
+ movs r3, #2
+ bl sub_10708
+_08006F06:
+ mov r8, sb
+ mov r4, r8
+ cmp r4, #4
+ bgt _08006F10
+ b _08006DCC
+_08006F10:
+ add sp, #0x20
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006F20: .4byte 0x086A64F0
+_08006F24: .4byte 0x08092FA0
+_08006F28: .4byte 0x060000E0
+_08006F2C: .4byte 0x08090780
+
+ thumb_func_start sub_6F30
+sub_6F30: @ 0x08006F30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _08006F74 @ =0x0202A1C0
+ lsls r0, r0, #0x10
+ movs r6, #0xa
+ asrs r0, r0, #0xf
+ adds r4, r0, r1
+ movs r7, #2
+ movs r5, #4
+_08006F42:
+ movs r1, #0
+ ldrsh r0, [r4, r1]
+ movs r1, #0xdc
+ lsls r1, r1, #1
+ cmp r0, #4
+ bne _08006F50
+ adds r1, #2
+_08006F50:
+ adds r0, r1, #0
+ str r7, [sp]
+ str r7, [sp, #4]
+ movs r1, #1
+ movs r2, #4
+ adds r3, r6, #0
+ bl sub_105A0
+ adds r6, #2
+ adds r4, #2
+ subs r5, #1
+ cmp r5, #0
+ bge _08006F42
+ add sp, #8
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006F74: .4byte 0x0202A1C0
+
+ thumb_func_start sub_6F78
+sub_6F78: @ 0x08006F78
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ ldr r1, _08006FBC @ =0x0202A1C0
+ ldr r0, _08006FC0 @ =0x0202ADE0
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r5, [r0]
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ adds r0, r4, #0
+ movs r1, #0xf
+ bl __divsi3
+ lsls r0, r0, #0x10
+ lsrs r6, r0, #0x10
+ adds r0, r4, #0
+ movs r1, #0xf
+ bl __modsi3
+ lsls r0, r0, #0x10
+ lsrs r4, r0, #0x10
+ lsls r5, r5, #0x10
+ asrs r0, r5, #0x10
+ cmp r0, #4
+ bls _08006FB0
+ b _080070C0
+_08006FB0:
+ lsls r0, r0, #2
+ ldr r1, _08006FC4 @ =_08006FC8
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08006FBC: .4byte 0x0202A1C0
+_08006FC0: .4byte 0x0202ADE0
+_08006FC4: .4byte _08006FC8
+_08006FC8: @ jump table
+ .4byte _08006FDC @ case 0
+ .4byte _08007000 @ case 1
+ .4byte _08007040 @ case 2
+ .4byte _08007040 @ case 3
+ .4byte _08007088 @ case 4
+_08006FDC:
+ ldr r0, _08006FF0 @ =0x0808F760
+ ldr r1, _08006FF4 @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _08006FF8 @ =0x040000D4
+ ldr r0, _08006FFC @ =0x08089960
+ b _080070B4
+ .align 2, 0
+_08006FF0: .4byte 0x0808F760
+_08006FF4: .4byte 0x06013400
+_08006FF8: .4byte 0x040000D4
+_08006FFC: .4byte 0x08089960
+_08007000:
+ ldr r0, _08007030 @ =gMonPortraitGroupGfx
+ lsls r2, r6, #0x10
+ asrs r2, r2, #0xe
+ adds r2, r2, r0
+ lsls r0, r4, #0x10
+ asrs r0, r0, #0x10
+ lsls r1, r0, #1
+ adds r1, r1, r0
+ lsls r1, r1, #8
+ ldr r0, [r2]
+ adds r0, r0, r1
+ ldr r1, _08007034 @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _08007038 @ =0x040000D4
+ ldr r0, _0800703C @ =gMonPortraitGroupPals
+ ldr r0, [r0]
+ movs r2, #0xf0
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ b _080070B4
+ .align 2, 0
+_08007030: .4byte gMonPortraitGroupGfx
+_08007034: .4byte 0x06013400
+_08007038: .4byte 0x040000D4
+_0800703C: .4byte gMonPortraitGroupPals
+_08007040:
+ ldr r0, _08007078 @ =gMonPortraitGroupGfx
+ lsls r5, r6, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #1
+ adds r1, r1, r4
+ lsls r1, r1, #8
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _0800707C @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r0, _08007080 @ =gMonPortraitGroupPals
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+ ldr r1, _08007084 @ =0x05000220
+ movs r2, #0x20
+ movs r3, #0xe
+ bl sub_10170
+ b _080070C0
+ .align 2, 0
+_08007078: .4byte gMonPortraitGroupGfx
+_0800707C: .4byte 0x06013400
+_08007080: .4byte gMonPortraitGroupPals
+_08007084: .4byte 0x05000220
+_08007088:
+ ldr r0, _080070C8 @ =gMonPortraitGroupGfx
+ lsls r5, r6, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #1
+ adds r1, r1, r4
+ lsls r1, r1, #8
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _080070CC @ =0x06013400
+ movs r2, #0x18
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _080070D0 @ =0x040000D4
+ ldr r0, _080070D4 @ =gMonPortraitGroupPals
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+_080070B4:
+ str r0, [r1]
+ ldr r0, _080070D8 @ =0x05000220
+ str r0, [r1, #4]
+ ldr r0, _080070DC @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_080070C0:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080070C8: .4byte gMonPortraitGroupGfx
+_080070CC: .4byte 0x06013400
+_080070D0: .4byte 0x040000D4
+_080070D4: .4byte gMonPortraitGroupPals
+_080070D8: .4byte 0x05000220
+_080070DC: .4byte 0x80000010
+
+ thumb_func_start sub_70E0
+sub_70E0: @ 0x080070E0
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0xc
+ movs r2, #0
+ mov r8, r2
+ mov r2, sp
+ mov r3, r8
+ strh r3, [r2]
+ ldr r3, _080071B4 @ =0x040000D4
+ str r2, [r3]
+ ldr r2, _080071B8 @ =0x03000000
+ str r2, [r3, #4]
+ ldr r2, _080071BC @ =0x81000C00
+ str r2, [r3, #8]
+ ldr r2, [r3, #8]
+ movs r7, #0
+ lsls r2, r1, #6
+ lsls r0, r0, #0x10
+ str r0, [sp, #8]
+ subs r2, r2, r1
+ lsls r2, r2, #1
+ str r2, [sp, #4]
+ adds r5, r3, #0
+_08007114:
+ movs r6, #0
+ adds r0, r7, #1
+ mov sl, r0
+ movs r1, #0x2a
+ adds r0, r7, #0
+ muls r0, r1, r0
+ ldr r2, [sp, #4]
+ adds r2, r2, r0
+ mov sb, r2
+_08007126:
+ mov r3, sb
+ adds r1, r3, r6
+ lsls r1, r1, #1
+ ldr r0, [sp, #8]
+ asrs r2, r0, #0x10
+ lsls r0, r2, #3
+ adds r0, r0, r2
+ lsls r0, r0, #4
+ subs r0, r0, r2
+ lsls r0, r0, #2
+ adds r1, r1, r0
+ ldr r2, _080071C0 @ =0x0805C8F6
+ adds r1, r1, r2
+ ldrh r1, [r1]
+ movs r3, #0x10
+ rsbs r3, r3, #0
+ adds r0, r3, #0
+ adds r3, r1, #0
+ ands r3, r0
+ movs r4, #0xf
+ ands r4, r1
+ cmp r4, #0
+ bne _08007156
+ movs r4, #4
+_08007156:
+ ldr r1, _080071C4 @ =0x08090780
+ adds r0, r3, r1
+ str r0, [r5]
+ ldr r0, _080071C8 @ =0x0202BE30
+ str r0, [r5, #4]
+ ldr r2, _080071CC @ =0x80000010
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ movs r0, #0x80
+ lsls r0, r0, #3
+ adds r1, r1, r0
+ adds r1, r3, r1
+ str r1, [r5]
+ ldr r0, _080071D0 @ =0x0201B130
+ str r0, [r5, #4]
+ str r2, [r5, #8]
+ ldr r0, [r5, #8]
+ adds r0, r4, #0
+ mov r1, r8
+ adds r2, r7, #0
+ bl sub_71DC
+ add r8, r4
+ adds r6, #1
+ cmp r6, #0x29
+ ble _08007126
+ movs r1, #0
+ mov r8, r1
+ mov r7, sl
+ cmp r7, #2
+ ble _08007114
+ ldr r1, _080071B4 @ =0x040000D4
+ ldr r0, _080071B8 @ =0x03000000
+ str r0, [r1]
+ ldr r0, _080071D4 @ =0x06005C00
+ str r0, [r1, #4]
+ ldr r0, _080071D8 @ =0x80000C00
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+ add sp, #0xc
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080071B4: .4byte 0x040000D4
+_080071B8: .4byte 0x03000000
+_080071BC: .4byte 0x81000C00
+_080071C0: .4byte 0x0805C8F6
+_080071C4: .4byte 0x08090780
+_080071C8: .4byte 0x0202BE30
+_080071CC: .4byte 0x80000010
+_080071D0: .4byte 0x0201B130
+_080071D4: .4byte 0x06005C00
+_080071D8: .4byte 0x80000C00
+
+ thumb_func_start sub_71DC
+sub_71DC: @ 0x080071DC
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ sub sp, #0x14
+ adds r4, r0, #0
+ adds r3, r1, #0
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _080071F4
+ adds r0, r3, #7
+_080071F4:
+ asrs r0, r0, #3
+ lsls r0, r0, #4
+ lsls r1, r2, #0xa
+ adds r2, r0, r1
+ subs r0, r4, #2
+ cmp r0, #4
+ bls _08007206
+ bl _080088C8
+_08007206:
+ lsls r0, r0, #2
+ ldr r1, _08007210 @ =_08007214
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08007210: .4byte _08007214
+_08007214: @ jump table
+ .4byte _08008580 @ case 0
+ .4byte _0800819C @ case 1
+ .4byte _08007D50 @ case 2
+ .4byte _0800780C @ case 3
+ .4byte _08007228 @ case 4
+_08007228:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08007230
+ adds r0, r3, #7
+_08007230:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _0800723E
+ bl _080088C8
+_0800723E:
+ lsls r0, r0, #2
+ ldr r1, _08007248 @ =_0800724C
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08007248: .4byte _0800724C
+_0800724C: @ jump table
+ .4byte _0800726C @ case 0
+ .4byte _080072EC @ case 1
+ .4byte _08007398 @ case 2
+ .4byte _0800744C @ case 3
+ .4byte _08007548 @ case 4
+ .4byte _080075C0 @ case 5
+ .4byte _0800766C @ case 6
+ .4byte _08007714 @ case 7
+_0800726C:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _080072E0 @ =0x03000000
+ mov sb, r1
+ movs r0, #0xff
+ mov sl, r0
+ ldr r1, _080072E4 @ =0x0201B130
+ mov r8, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r5, r0, r2
+ ldr r6, _080072E8 @ =0x0202BE30
+ lsls r1, r1, #1
+ adds r4, r1, r2
+_08007290:
+ lsls r3, r7, #1
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r5]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ ldrh r1, [r6, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4]
+ mov r2, r8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r3, r3, r0
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r2, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r1, #4
+ add r8, r1
+ adds r4, #4
+ adds r5, #4
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007290
+ bl _080088C8
+ .align 2, 0
+_080072E0: .4byte 0x03000000
+_080072E4: .4byte 0x0201B130
+_080072E8: .4byte 0x0202BE30
+_080072EC:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _08007388 @ =0x03000000
+ mov sl, r1
+ ldr r0, _0800738C @ =0x0201B130
+ mov sb, r0
+ ldr r1, _08007390 @ =0x0202BE30
+ mov r8, r1
+ lsls r0, r2, #1
+ mov r2, sl
+ adds r6, r0, r2
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ adds r5, r0, r2
+_0800730C:
+ lsls r4, r7, #1
+ mov r2, r8
+ ldrh r1, [r2]
+ ldr r0, _08007394 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ add r3, sl
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ ldr r0, _08007394 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ add r4, sl
+ mov r2, sb
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r0, #4
+ add sb, r0
+ add r8, r0
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800730C
+ bl _080088C8
+ .align 2, 0
+_08007388: .4byte 0x03000000
+_0800738C: .4byte 0x0201B130
+_08007390: .4byte 0x0202BE30
+_08007394: .4byte 0x00000FFF
+_08007398:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ movs r0, #0xff
+ mov sl, r0
+ ldr r1, _08007440 @ =0x0201B130
+ mov sb, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, _08007444 @ =0x0202BE30
+ mov r8, r0
+ lsls r0, r2, #1
+ ldr r2, _08007448 @ =0x03000000
+ adds r6, r0, r2
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_080073BA:
+ lsls r4, r7, #1
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ ldr r1, _08007448 @ =0x03000000
+ adds r3, r3, r1
+ mov r2, r8
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ ldr r2, _08007448 @ =0x03000000
+ adds r4, r4, r2
+ mov r1, sb
+ ldrh r0, [r1]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ mov r0, sb
+ ldrh r2, [r0, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #4
+ add sb, r1
+ adds r5, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080073BA
+ bl _080088C8
+ .align 2, 0
+_08007440: .4byte 0x0201B130
+_08007444: .4byte 0x0202BE30
+_08007448: .4byte 0x03000000
+_0800744C:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ movs r1, #0x10
+ adds r1, r1, r2
+ mov sb, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ movs r0, #2
+ str r0, [sp, #8]
+ ldr r0, _08007538 @ =0x0202BE30
+ mov sl, r0
+ lsls r0, r2, #1
+ ldr r2, _0800753C @ =0x03000000
+ adds r0, r0, r2
+ mov r8, r0
+ ldr r0, _08007540 @ =0x0201B130
+ str r0, [sp, #0x10]
+ lsls r1, r1, #1
+ adds r6, r1, r2
+_08007476:
+ lsls r5, r7, #1
+ mov r2, sl
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ mov r2, r8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, ip
+ adds r4, r5, r0
+ lsls r3, r4, #1
+ ldr r1, _0800753C @ =0x03000000
+ adds r3, r3, r1
+ mov r2, sl
+ ldrh r0, [r2]
+ ldr r1, _08007544 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ add r5, sb
+ lsls r2, r5, #1
+ ldr r0, _0800753C @ =0x03000000
+ adds r2, r2, r0
+ mov r0, sl
+ ldrh r1, [r0, #2]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, [sp, #0x10]
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r4, r4, r0
+ lsls r4, r4, #1
+ ldr r1, _0800753C @ =0x03000000
+ adds r4, r4, r1
+ ldrh r0, [r2]
+ ldr r1, _08007544 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldr r2, [sp, #8]
+ ldr r0, _08007540 @ =0x0201B130
+ adds r3, r2, r0
+ ldrh r2, [r3]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r5, r5, r1
+ lsls r5, r5, #1
+ ldr r2, _0800753C @ =0x03000000
+ adds r5, r5, r2
+ ldrh r1, [r3]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ adds r6, #4
+ ldr r0, [sp, #8]
+ adds r0, #4
+ str r0, [sp, #8]
+ movs r1, #4
+ add sl, r1
+ add r8, r1
+ ldr r2, [sp, #0x10]
+ adds r2, #4
+ str r2, [sp, #0x10]
+ adds r7, #1
+ cmp r7, #7
+ ble _08007476
+ bl _080088C8
+ .align 2, 0
+_08007538: .4byte 0x0202BE30
+_0800753C: .4byte 0x03000000
+_08007540: .4byte 0x0201B130
+_08007544: .4byte 0x0000FFF0
+_08007548:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _080075B4 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _080075B8 @ =0x0201B130
+ ldr r5, _080075BC @ =0x0202BE30
+_08007560:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ ldrh r0, [r2]
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r5, #2]
+ movs r0, #0xff
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldrh r0, [r3]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r6, #2]
+ movs r0, #0xff
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007560
+ bl _080088C8
+ .align 2, 0
+_080075B4: .4byte 0x03000000
+_080075B8: .4byte 0x0201B130
+_080075BC: .4byte 0x0202BE30
+_080075C0:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ adds r2, #0x10
+ mov sb, r2
+ ldr r2, _0800765C @ =0x03000000
+ mov sl, r2
+ ldr r0, _08007660 @ =0x0201B130
+ mov r8, r0
+ ldr r6, _08007664 @ =0x0202BE30
+_080075D4:
+ lsls r5, r7, #1
+ mov r1, ip
+ adds r3, r5, r1
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ ldr r0, _08007668 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r6, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sl
+ mov r0, r8
+ ldrh r1, [r0]
+ ldr r0, _08007668 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, r5, r2
+ lsls r5, r5, #1
+ add r5, sl
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ mov r0, r8
+ ldrh r2, [r0, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080075D4
+ bl _080088C8
+ .align 2, 0
+_0800765C: .4byte 0x03000000
+_08007660: .4byte 0x0201B130
+_08007664: .4byte 0x0202BE30
+_08007668: .4byte 0x00000FFF
+_0800766C:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007708 @ =0x03000000
+ mov sl, r1
+ ldr r2, _0800770C @ =0x0201B130
+ mov r8, r2
+ ldr r6, _08007710 @ =0x0202BE30
+_08007680:
+ lsls r5, r7, #1
+ mov r0, ip
+ adds r3, r5, r0
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r6, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r3, r3, r1
+ lsls r3, r3, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ movs r0, #0xff
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007680
+ bl _080088C8
+ .align 2, 0
+_08007708: .4byte 0x03000000
+_0800770C: .4byte 0x0201B130
+_08007710: .4byte 0x0202BE30
+_08007714:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ movs r1, #0x10
+ adds r1, r1, r2
+ mov sb, r1
+ adds r2, #0x11
+ str r2, [sp]
+ ldr r2, _080077FC @ =0x03000000
+ mov sl, r2
+ movs r0, #2
+ str r0, [sp, #4]
+ ldr r1, _08007800 @ =0x0202BE30
+ mov r8, r1
+ ldr r2, _08007804 @ =0x0201B130
+ str r2, [sp, #0xc]
+_08007734:
+ lsls r6, r7, #1
+ mov r0, ip
+ adds r4, r6, r0
+ lsls r2, r4, #1
+ add r2, sl
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, sb
+ adds r5, r6, r1
+ lsls r3, r5, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r0, [r2]
+ ldr r1, _08007808 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ ldr r0, [sp]
+ adds r6, r6, r0
+ lsls r2, r6, #1
+ add r2, sl
+ mov r0, r8
+ ldrh r1, [r0, #2]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ add r4, sl
+ ldr r2, [sp, #0xc]
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ ldr r1, _08007808 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldr r2, [sp, #4]
+ ldr r0, _08007804 @ =0x0201B130
+ adds r3, r2, r0
+ ldrh r2, [r3]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r6, r6, r1
+ lsls r6, r6, #1
+ add r6, sl
+ ldrh r1, [r3]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ ldr r2, [sp, #4]
+ adds r2, #4
+ str r2, [sp, #4]
+ movs r0, #4
+ add r8, r0
+ ldr r1, [sp, #0xc]
+ adds r1, #4
+ str r1, [sp, #0xc]
+ adds r7, #1
+ cmp r7, #7
+ ble _08007734
+ bl _080088C8
+ .align 2, 0
+_080077FC: .4byte 0x03000000
+_08007800: .4byte 0x0202BE30
+_08007804: .4byte 0x0201B130
+_08007808: .4byte 0x0000FFF0
+_0800780C:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08007814
+ adds r0, r3, #7
+_08007814:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _08007822
+ bl _080088C8
+_08007822:
+ lsls r0, r0, #2
+ ldr r1, _0800782C @ =_08007830
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800782C: .4byte _08007830
+_08007830: @ jump table
+ .4byte _08007850 @ case 0
+ .4byte _080078D0 @ case 1
+ .4byte _0800797C @ case 2
+ .4byte _08007A28 @ case 3
+ .4byte _08007ADC @ case 4
+ .4byte _08007B54 @ case 5
+ .4byte _08007C00 @ case 6
+ .4byte _08007CA8 @ case 7
+_08007850:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _080078C4 @ =0x03000000
+ mov sb, r1
+ movs r0, #0xf
+ mov sl, r0
+ ldr r1, _080078C8 @ =0x0201B130
+ mov r8, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r5, r0, r2
+ ldr r6, _080078CC @ =0x0202BE30
+ lsls r1, r1, #1
+ adds r4, r1, r2
+_08007874:
+ lsls r3, r7, #1
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r5]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ ldrh r1, [r6, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4]
+ mov r2, r8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r3, r3, r0
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r2, #2]
+ mov r0, sl
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r1, #4
+ add r8, r1
+ adds r4, #4
+ adds r5, #4
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007874
+ bl _080088C8
+ .align 2, 0
+_080078C4: .4byte 0x03000000
+_080078C8: .4byte 0x0201B130
+_080078CC: .4byte 0x0202BE30
+_080078D0:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _0800796C @ =0x03000000
+ mov sl, r1
+ ldr r0, _08007970 @ =0x0201B130
+ mov sb, r0
+ ldr r1, _08007974 @ =0x0202BE30
+ mov r8, r1
+ lsls r0, r2, #1
+ mov r2, sl
+ adds r6, r0, r2
+ movs r1, #0x80
+ lsls r1, r1, #3
+ adds r0, r0, r1
+ adds r5, r0, r2
+_080078F0:
+ lsls r4, r7, #1
+ mov r2, r8
+ ldrh r1, [r2]
+ ldr r0, _08007978 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ add r3, sl
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ ldr r0, _08007978 @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ add r4, sl
+ mov r2, sb
+ ldrh r0, [r2]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r0, #4
+ add sb, r0
+ add r8, r0
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080078F0
+ bl _080088C8
+ .align 2, 0
+_0800796C: .4byte 0x03000000
+_08007970: .4byte 0x0201B130
+_08007974: .4byte 0x0202BE30
+_08007978: .4byte 0x00000FFF
+_0800797C:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08007A1C @ =0x03000000
+ mov sl, r0
+ ldr r1, _08007A20 @ =0x0201B130
+ mov sb, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, _08007A24 @ =0x0202BE30
+ mov r8, r0
+ lsls r0, r2, #1
+ mov r2, sl
+ adds r6, r0, r2
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_0800799E:
+ lsls r4, r7, #1
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ add r3, sl
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ mov r0, r8
+ ldrh r2, [r0, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r2, sb
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r4, r4, r0
+ lsls r4, r4, #1
+ add r4, sl
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #4
+ add sb, r1
+ adds r5, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800799E
+ bl _080088C8
+ .align 2, 0
+_08007A1C: .4byte 0x03000000
+_08007A20: .4byte 0x0201B130
+_08007A24: .4byte 0x0202BE30
+_08007A28:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ movs r1, #0xf
+ mov sl, r1
+ ldr r0, _08007ACC @ =0x0201B130
+ mov sb, r0
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ ldr r0, _08007AD0 @ =0x0202BE30
+ mov r8, r0
+ lsls r0, r2, #1
+ ldr r2, _08007AD4 @ =0x03000000
+ adds r6, r0, r2
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007A4A:
+ lsls r4, r7, #1
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r4, ip
+ lsls r3, r4, #1
+ ldr r1, _08007AD4 @ =0x03000000
+ adds r3, r3, r1
+ mov r2, r8
+ ldrh r0, [r2]
+ ldr r1, _08007AD8 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ mov r0, sb
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r4, r4, r1
+ lsls r4, r4, #1
+ ldr r2, _08007AD4 @ =0x03000000
+ adds r4, r4, r2
+ mov r1, sb
+ ldrh r0, [r1]
+ ldr r1, _08007AD8 @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ mov r0, sb
+ ldrh r2, [r0, #2]
+ mov r0, sl
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #4
+ add sb, r1
+ adds r5, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007A4A
+ bl _080088C8
+ .align 2, 0
+_08007ACC: .4byte 0x0201B130
+_08007AD0: .4byte 0x0202BE30
+_08007AD4: .4byte 0x03000000
+_08007AD8: .4byte 0x0000FFF0
+_08007ADC:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007B48 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08007B4C @ =0x0201B130
+ ldr r5, _08007B50 @ =0x0202BE30
+_08007AF4:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ ldrh r0, [r2]
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r5, #2]
+ movs r0, #0xf
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldrh r0, [r3]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r6, #2]
+ movs r0, #0xf
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007AF4
+ bl _080088C8
+ .align 2, 0
+_08007B48: .4byte 0x03000000
+_08007B4C: .4byte 0x0201B130
+_08007B50: .4byte 0x0202BE30
+_08007B54:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ adds r2, #0x10
+ mov sb, r2
+ ldr r2, _08007BF0 @ =0x03000000
+ mov sl, r2
+ ldr r0, _08007BF4 @ =0x0201B130
+ mov r8, r0
+ ldr r6, _08007BF8 @ =0x0202BE30
+_08007B68:
+ lsls r5, r7, #1
+ mov r1, ip
+ adds r3, r5, r1
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ ldr r0, _08007BFC @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ ldrh r2, [r6, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sl
+ mov r0, r8
+ ldrh r1, [r0]
+ ldr r0, _08007BFC @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, r5, r2
+ lsls r5, r5, #1
+ add r5, sl
+ mov r1, r8
+ ldrh r0, [r1]
+ movs r1, #0xf0
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #0xc
+ mov r0, r8
+ ldrh r2, [r0, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #4
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007B68
+ bl _080088C8
+ .align 2, 0
+_08007BF0: .4byte 0x03000000
+_08007BF4: .4byte 0x0201B130
+_08007BF8: .4byte 0x0202BE30
+_08007BFC: .4byte 0x00000FFF
+_08007C00:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007C9C @ =0x03000000
+ mov sl, r1
+ ldr r2, _08007CA0 @ =0x0201B130
+ mov r8, r2
+ ldr r6, _08007CA4 @ =0x0202BE30
+_08007C14:
+ lsls r5, r7, #1
+ mov r0, ip
+ adds r3, r5, r0
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r6, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r3, r3, r1
+ lsls r3, r3, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ movs r1, #0xff
+ lsls r1, r1, #8
+ ands r1, r0
+ lsrs r1, r1, #8
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #8
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007C14
+ bl _080088C8
+ .align 2, 0
+_08007C9C: .4byte 0x03000000
+_08007CA0: .4byte 0x0201B130
+_08007CA4: .4byte 0x0202BE30
+_08007CA8:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08007D40 @ =0x03000000
+ mov sl, r1
+ ldr r2, _08007D44 @ =0x0201B130
+ mov r8, r2
+ ldr r6, _08007D48 @ =0x0202BE30
+_08007CBC:
+ lsls r5, r7, #1
+ mov r0, ip
+ adds r3, r5, r0
+ lsls r2, r3, #1
+ add r2, sl
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r5, sb
+ lsls r4, r5, #1
+ add r4, sl
+ ldrh r0, [r6]
+ ldr r1, _08007D4C @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r6, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r4]
+ orrs r1, r0
+ strh r1, [r4]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ adds r3, r3, r1
+ lsls r3, r3, #1
+ add r3, sl
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r5, r5, r0
+ lsls r5, r5, #1
+ add r5, sl
+ ldrh r0, [r2]
+ ldr r1, _08007D4C @ =0x0000FFF0
+ ands r1, r0
+ lsrs r1, r1, #4
+ ldrh r2, [r2, #2]
+ movs r0, #0xf
+ ands r0, r2
+ lsls r0, r0, #0xc
+ orrs r1, r0
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+ movs r1, #4
+ add r8, r1
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007CBC
+ bl _080088C8
+ .align 2, 0
+_08007D40: .4byte 0x03000000
+_08007D44: .4byte 0x0201B130
+_08007D48: .4byte 0x0202BE30
+_08007D4C: .4byte 0x0000FFF0
+_08007D50:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08007D58
+ adds r0, r3, #7
+_08007D58:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _08007D66
+ bl _080088C8
+_08007D66:
+ lsls r0, r0, #2
+ ldr r1, _08007D70 @ =_08007D74
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08007D70: .4byte _08007D74
+_08007D74: @ jump table
+ .4byte _08007D94 @ case 0
+ .4byte _08007DD8 @ case 1
+ .4byte _08007E74 @ case 2
+ .4byte _08007F0C @ case 3
+ .4byte _08007FA4 @ case 4
+ .4byte _08007FF4 @ case 5
+ .4byte _08008084 @ case 6
+ .4byte _08008110 @ case 7
+_08007D94:
+ movs r7, #0
+ ldr r1, _08007DCC @ =0x03000000
+ lsls r0, r2, #1
+ adds r3, r0, r1
+ ldr r5, _08007DD0 @ =0x0202BE30
+ ldr r4, _08007DD4 @ =0x0201B130
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r2, r0, r1
+_08007DA8:
+ ldrh r0, [r3]
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2]
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r3, #4
+ adds r5, #4
+ adds r2, #4
+ adds r4, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08007DA8
+ bl _080088C8
+ .align 2, 0
+_08007DCC: .4byte 0x03000000
+_08007DD0: .4byte 0x0202BE30
+_08007DD4: .4byte 0x0201B130
+_08007DD8:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ ldr r1, _08007E64 @ =0x03000000
+ mov sb, r1
+ movs r0, #0xf0
+ lsls r0, r0, #8
+ mov sl, r0
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08007E68 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007DFC:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ ldr r0, _08007E6C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08007E70 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ ldr r0, _08007E6C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _08007DFC
+ bl _080088C8
+ .align 2, 0
+_08007E64: .4byte 0x03000000
+_08007E68: .4byte 0x0202BE30
+_08007E6C: .4byte 0x00000FFF
+_08007E70: .4byte 0x0201B130
+_08007E74:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08007F00 @ =0x03000000
+ mov sb, r0
+ movs r1, #0xff
+ lsls r1, r1, #8
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08007F04 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007E98:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08007F08 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _08007E98
+ bl _080088C8
+ .align 2, 0
+_08007F00: .4byte 0x03000000
+_08007F04: .4byte 0x0202BE30
+_08007F08: .4byte 0x0201B130
+_08007F0C:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08007F94 @ =0x03000000
+ mov sb, r0
+ ldr r1, _08007F98 @ =0x0000FFF0
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08007F9C @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_08007F2E:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08007FA0 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _08007F2E
+ bl _080088C8
+ .align 2, 0
+_08007F94: .4byte 0x03000000
+_08007F98: .4byte 0x0000FFF0
+_08007F9C: .4byte 0x0202BE30
+_08007FA0: .4byte 0x0201B130
+_08007FA4:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r1, _08007FE8 @ =0x03000000
+ mov r8, r1
+ ldr r6, _08007FEC @ =0x0202BE30
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ mov r5, ip
+_08007FB6:
+ lsls r3, r7, #2
+ ldrh r0, [r4]
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r5, r0
+ lsls r2, r2, #1
+ add r2, r8
+ ldr r1, _08007FF0 @ =0x0201B130
+ adds r3, r3, r1
+ ldrh r0, [r2]
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r6, #4
+ adds r4, #4
+ adds r5, #2
+ adds r7, #1
+ cmp r7, #7
+ ble _08007FB6
+ bl _080088C8
+ .align 2, 0
+_08007FE8: .4byte 0x03000000
+_08007FEC: .4byte 0x0202BE30
+_08007FF0: .4byte 0x0201B130
+_08007FF4:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08008074 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008078 @ =0x0202BE30
+_0800800A:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ ldr r0, _0800807C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xf0
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _08008080 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ ldr r0, _0800807C @ =0x00000FFF
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xf0
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #0xc
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800800A
+ bl _080088C8
+ .align 2, 0
+_08008074: .4byte 0x03000000
+_08008078: .4byte 0x0202BE30
+_0800807C: .4byte 0x00000FFF
+_08008080: .4byte 0x0201B130
+_08008084:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08008104 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008108 @ =0x0202BE30
+_0800809A:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _0800810C @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xff
+ lsls r0, r0, #8
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800809A
+ bl _080088C8
+ .align 2, 0
+_08008104: .4byte 0x03000000
+_08008108: .4byte 0x0202BE30
+_0800810C: .4byte 0x0201B130
+_08008110:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _0800818C @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008190 @ =0x0202BE30
+_08008126:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ ldr r0, _08008194 @ =0x0000FFF0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _08008198 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ ldr r0, _08008194 @ =0x0000FFF0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008126
+ b _080088C8
+ .align 2, 0
+_0800818C: .4byte 0x03000000
+_08008190: .4byte 0x0202BE30
+_08008194: .4byte 0x0000FFF0
+_08008198: .4byte 0x0201B130
+_0800819C:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _080081A4
+ adds r0, r3, #7
+_080081A4:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _080081B0
+ b _080088C8
+_080081B0:
+ lsls r0, r0, #2
+ ldr r1, _080081BC @ =_080081C0
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080081BC: .4byte _080081C0
+_080081C0: @ jump table
+ .4byte _080081E0 @ case 0
+ .4byte _08008230 @ case 1
+ .4byte _08008284 @ case 2
+ .4byte _08008318 @ case 3
+ .4byte _080083AC @ case 4
+ .4byte _0800840C @ case 5
+ .4byte _08008468 @ case 6
+ .4byte _080084F4 @ case 7
+_080081E0:
+ movs r7, #0
+ ldr r1, _08008220 @ =0x03000000
+ ldr r6, _08008224 @ =0x00000FFF
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _08008228 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_080081F4:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800822C @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080081F4
+ b _080088C8
+ .align 2, 0
+_08008220: .4byte 0x03000000
+_08008224: .4byte 0x00000FFF
+_08008228: .4byte 0x0202BE30
+_0800822C: .4byte 0x0201B130
+_08008230:
+ movs r7, #0
+ ldr r1, _08008274 @ =0x03000000
+ ldr r6, _08008278 @ =0x00000FFF
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _0800827C @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_08008244:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _08008280 @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008244
+ b _080088C8
+ .align 2, 0
+_08008274: .4byte 0x03000000
+_08008278: .4byte 0x00000FFF
+_0800827C: .4byte 0x0202BE30
+_08008280: .4byte 0x0201B130
+_08008284:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _0800830C @ =0x03000000
+ mov sb, r0
+ movs r1, #0xf0
+ lsls r1, r1, #4
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _08008310 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_080082A8:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08008314 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _080082A8
+ b _080088C8
+ .align 2, 0
+_0800830C: .4byte 0x03000000
+_08008310: .4byte 0x0202BE30
+_08008314: .4byte 0x0201B130
+_08008318:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _080083A0 @ =0x03000000
+ mov sb, r0
+ movs r1, #0xff
+ lsls r1, r1, #4
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _080083A4 @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_0800833C:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080083A8 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _0800833C
+ b _080088C8
+ .align 2, 0
+_080083A0: .4byte 0x03000000
+_080083A4: .4byte 0x0202BE30
+_080083A8: .4byte 0x0201B130
+_080083AC:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r1, _080083FC @ =0x03000000
+ mov sb, r1
+ ldr r2, _08008400 @ =0x00000FFF
+ mov r8, r2
+ ldr r6, _08008404 @ =0x0202BE30
+ mov r1, ip
+ lsls r0, r1, #1
+ mov r2, sb
+ adds r4, r0, r2
+ mov r5, ip
+_080083C6:
+ lsls r3, r7, #2
+ ldrh r1, [r6]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r5, r0
+ lsls r2, r2, #1
+ add r2, sb
+ ldr r1, _08008408 @ =0x0201B130
+ adds r3, r3, r1
+ ldrh r1, [r3]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r6, #4
+ adds r4, #4
+ adds r5, #2
+ adds r7, #1
+ cmp r7, #7
+ ble _080083C6
+ b _080088C8
+ .align 2, 0
+_080083FC: .4byte 0x03000000
+_08008400: .4byte 0x00000FFF
+_08008404: .4byte 0x0202BE30
+_08008408: .4byte 0x0201B130
+_0800840C:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r6, _08008458 @ =0x03000000
+ ldr r2, _0800845C @ =0x00000FFF
+ mov r8, r2
+ ldr r5, _08008460 @ =0x0202BE30
+_0800841A:
+ lsls r2, r7, #1
+ add r2, ip
+ lsls r3, r2, #1
+ adds r3, r3, r6
+ lsls r4, r7, #2
+ ldrh r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #1
+ adds r2, r2, r6
+ ldr r1, _08008464 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800841A
+ b _080088C8
+ .align 2, 0
+_08008458: .4byte 0x03000000
+_0800845C: .4byte 0x00000FFF
+_08008460: .4byte 0x0202BE30
+_08008464: .4byte 0x0201B130
+_08008468:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _080084E8 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _080084EC @ =0x0202BE30
+_0800847E:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xf0
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _080084F0 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xff
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xf0
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #8
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800847E
+ b _080088C8
+ .align 2, 0
+_080084E8: .4byte 0x03000000
+_080084EC: .4byte 0x0202BE30
+_080084F0: .4byte 0x0201B130
+_080084F4:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _08008574 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _08008578 @ =0x0202BE30
+_0800850A:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xff
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _0800857C @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xff
+ lsls r0, r0, #4
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _0800850A
+ b _080088C8
+ .align 2, 0
+_08008574: .4byte 0x03000000
+_08008578: .4byte 0x0202BE30
+_0800857C: .4byte 0x0201B130
+_08008580:
+ adds r0, r3, #0
+ cmp r3, #0
+ bge _08008588
+ adds r0, r3, #7
+_08008588:
+ asrs r0, r0, #3
+ lsls r0, r0, #3
+ subs r0, r3, r0
+ cmp r0, #7
+ bls _08008594
+ b _080088C8
+_08008594:
+ lsls r0, r0, #2
+ ldr r1, _080085A0 @ =_080085A4
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080085A0: .4byte _080085A4
+_080085A4: @ jump table
+ .4byte _080085C4 @ case 0
+ .4byte _08008610 @ case 1
+ .4byte _08008660 @ case 2
+ .4byte _080086B0 @ case 3
+ .4byte _08008744 @ case 4
+ .4byte _080087A0 @ case 5
+ .4byte _080087F8 @ case 6
+ .4byte _08008850 @ case 7
+_080085C4:
+ movs r7, #0
+ ldr r1, _08008604 @ =0x03000000
+ movs r6, #0xff
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _08008608 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_080085D8:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800860C @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080085D8
+ b _080088C8
+ .align 2, 0
+_08008604: .4byte 0x03000000
+_08008608: .4byte 0x0202BE30
+_0800860C: .4byte 0x0201B130
+_08008610:
+ movs r7, #0
+ ldr r1, _08008654 @ =0x03000000
+ movs r6, #0xff
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _08008658 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_08008624:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800865C @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008624
+ b _080088C8
+ .align 2, 0
+_08008654: .4byte 0x03000000
+_08008658: .4byte 0x0202BE30
+_0800865C: .4byte 0x0201B130
+_08008660:
+ movs r7, #0
+ ldr r1, _080086A4 @ =0x03000000
+ movs r6, #0xff
+ lsls r0, r2, #1
+ adds r4, r0, r1
+ ldr r5, _080086A8 @ =0x0202BE30
+ movs r2, #0x80
+ lsls r2, r2, #3
+ adds r0, r0, r2
+ adds r3, r0, r1
+_08008674:
+ lsls r2, r7, #2
+ ldrh r1, [r5]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _080086AC @ =0x0201B130
+ adds r2, r2, r0
+ ldrh r1, [r2]
+ adds r0, r6, #0
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, #4
+ adds r5, #4
+ adds r3, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008674
+ b _080088C8
+ .align 2, 0
+_080086A4: .4byte 0x03000000
+_080086A8: .4byte 0x0202BE30
+_080086AC: .4byte 0x0201B130
+_080086B0:
+ movs r7, #0
+ adds r1, r2, #1
+ mov ip, r1
+ ldr r0, _08008738 @ =0x03000000
+ mov sb, r0
+ movs r1, #0xf0
+ mov sl, r1
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r1, r2, r0
+ lsls r0, r2, #1
+ mov r2, sb
+ adds r6, r0, r2
+ ldr r0, _0800873C @ =0x0202BE30
+ mov r8, r0
+ lsls r1, r1, #1
+ adds r5, r1, r2
+_080086D2:
+ lsls r3, r7, #1
+ lsls r4, r7, #2
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ add r3, ip
+ lsls r2, r3, #1
+ add r2, sb
+ mov r0, r8
+ ldrh r1, [r0]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08008740 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r5]
+ orrs r0, r1
+ strh r0, [r5]
+ movs r2, #0x80
+ lsls r2, r2, #2
+ adds r3, r3, r2
+ lsls r3, r3, #1
+ add r3, sb
+ ldrh r1, [r4]
+ mov r0, sl
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r5, #4
+ adds r6, #4
+ movs r0, #4
+ add r8, r0
+ adds r7, #1
+ cmp r7, #7
+ ble _080086D2
+ b _080088C8
+ .align 2, 0
+_08008738: .4byte 0x03000000
+_0800873C: .4byte 0x0202BE30
+_08008740: .4byte 0x0201B130
+_08008744:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r1, _08008794 @ =0x03000000
+ mov sb, r1
+ movs r2, #0xff
+ mov r8, r2
+ ldr r6, _08008798 @ =0x0202BE30
+ mov r1, ip
+ lsls r0, r1, #1
+ mov r2, sb
+ adds r4, r0, r2
+ mov r5, ip
+_0800875E:
+ lsls r3, r7, #2
+ ldrh r1, [r6]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r5, r0
+ lsls r2, r2, #1
+ add r2, sb
+ ldr r1, _0800879C @ =0x0201B130
+ adds r3, r3, r1
+ ldrh r1, [r3]
+ mov r0, r8
+ ands r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r6, #4
+ adds r4, #4
+ adds r5, #2
+ adds r7, #1
+ cmp r7, #7
+ ble _0800875E
+ b _080088C8
+ .align 2, 0
+_08008794: .4byte 0x03000000
+_08008798: .4byte 0x0202BE30
+_0800879C: .4byte 0x0201B130
+_080087A0:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r6, _080087EC @ =0x03000000
+ movs r2, #0xff
+ mov r8, r2
+ ldr r5, _080087F0 @ =0x0202BE30
+_080087AE:
+ lsls r2, r7, #1
+ add r2, ip
+ lsls r3, r2, #1
+ adds r3, r3, r6
+ lsls r4, r7, #2
+ ldrh r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #1
+ adds r2, r2, r6
+ ldr r1, _080087F4 @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _080087AE
+ b _080088C8
+ .align 2, 0
+_080087EC: .4byte 0x03000000
+_080087F0: .4byte 0x0202BE30
+_080087F4: .4byte 0x0201B130
+_080087F8:
+ movs r7, #0
+ adds r2, #1
+ mov ip, r2
+ ldr r6, _08008844 @ =0x03000000
+ movs r2, #0xff
+ mov r8, r2
+ ldr r5, _08008848 @ =0x0202BE30
+_08008806:
+ lsls r2, r7, #1
+ add r2, ip
+ lsls r3, r2, #1
+ adds r3, r3, r6
+ lsls r4, r7, #2
+ ldrh r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, #0x80
+ lsls r0, r0, #2
+ adds r2, r2, r0
+ lsls r2, r2, #1
+ adds r2, r2, r6
+ ldr r1, _0800884C @ =0x0201B130
+ adds r4, r4, r1
+ ldrh r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ lsls r0, r0, #8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r5, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008806
+ b _080088C8
+ .align 2, 0
+_08008844: .4byte 0x03000000
+_08008848: .4byte 0x0202BE30
+_0800884C: .4byte 0x0201B130
+_08008850:
+ movs r7, #0
+ adds r0, r2, #1
+ mov ip, r0
+ adds r2, #0x10
+ mov sb, r2
+ ldr r1, _080088D8 @ =0x03000000
+ mov r8, r1
+ movs r2, #0x80
+ lsls r2, r2, #2
+ mov sl, r2
+ ldr r6, _080088DC @ =0x0202BE30
+_08008866:
+ lsls r4, r7, #1
+ mov r0, ip
+ adds r3, r4, r0
+ lsls r2, r3, #1
+ add r2, r8
+ lsls r5, r7, #2
+ ldrh r1, [r6]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r4, sb
+ lsls r2, r4, #1
+ add r2, r8
+ ldrh r1, [r6]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ add r3, sl
+ lsls r3, r3, #1
+ add r3, r8
+ ldr r1, _080088E0 @ =0x0201B130
+ adds r5, r5, r1
+ ldrh r1, [r5]
+ movs r0, #0xf
+ ands r0, r1
+ lsls r0, r0, #0xc
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r3]
+ add r4, sl
+ lsls r4, r4, #1
+ add r4, r8
+ ldrh r1, [r5]
+ movs r0, #0xf0
+ ands r0, r1
+ lsrs r0, r0, #4
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ adds r6, #4
+ adds r7, #1
+ cmp r7, #7
+ ble _08008866
+_080088C8:
+ add sp, #0x14
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080088D8: .4byte 0x03000000
+_080088DC: .4byte 0x0202BE30
+_080088E0: .4byte 0x0201B130
+
+ thumb_func_start sub_88E4
+sub_88E4: @ 0x080088E4
+ push {r4, r5, r6, lr}
+ movs r2, #0
+ ldr r6, _08008934 @ =0x0202A1C0
+ ldr r5, _08008938 @ =0x0201A514
+ ldr r4, _0800893C @ =0x0202BEB8
+ ldr r3, _08008940 @ =0x0200B134
+ adds r1, r6, #0
+_080088F2:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r1, #2
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _080088F2
+ ldr r0, _08008934 @ =0x0202A1C0
+ movs r1, #0
+ movs r2, #0xcd
+ lsls r2, r2, #1
+ adds r0, r0, r2
+ movs r2, #0x13
+_0800890C:
+ strh r1, [r0]
+ adds r0, #2
+ subs r2, #1
+ cmp r2, #0
+ bge _0800890C
+ movs r0, #0
+ strh r0, [r5]
+ strh r0, [r4]
+ movs r2, #0
+_0800891E:
+ lsls r0, r2, #1
+ adds r0, r0, r6
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #4
+ bhi _08008968
+ lsls r0, r0, #2
+ ldr r1, _08008944 @ =_08008948
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08008934: .4byte 0x0202A1C0
+_08008938: .4byte 0x0201A514
+_0800893C: .4byte 0x0202BEB8
+_08008940: .4byte 0x0200B134
+_08008944: .4byte _08008948
+_08008948: @ jump table
+ .4byte _08008968 @ case 0
+ .4byte _08008962 @ case 1
+ .4byte _08008968 @ case 2
+ .4byte _08008962 @ case 3
+ .4byte _0800895C @ case 4
+_0800895C:
+ ldrh r0, [r5]
+ adds r0, #1
+ strh r0, [r5]
+_08008962:
+ ldrh r0, [r4]
+ adds r0, #1
+ strh r0, [r4]
+_08008968:
+ adds r2, #1
+ cmp r2, #0xcc
+ ble _0800891E
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+
+ thumb_func_start sub_8974
+sub_8974: @ 0x08008974
+ push {r4, r5, lr}
+ ldr r1, _080089E0 @ =0x086A61BC
+ lsls r0, r0, #0x10
+ asrs r0, r0, #0xf
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r4, [r0, r1]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r4, r0
+ beq _08008A56
+ cmp r4, #0x63
+ bgt _080089FC
+ ldr r1, _080089E4 @ =0x0202BF14
+ movs r0, #0
+ strh r0, [r1]
+ adds r0, r4, #0
+ movs r1, #5
+ bl __divsi3
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ adds r0, r4, #0
+ movs r1, #5
+ bl __modsi3
+ adds r4, r0, #0
+ ldr r0, _080089E8 @ =0x086BB6F4
+ lsls r5, r5, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #3
+ subs r1, r1, r4
+ lsls r1, r1, #2
+ subs r1, r1, r4
+ lsls r1, r1, #7
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _080089EC @ =0x06013800
+ movs r2, #0x6c
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _080089F0 @ =0x040000D4
+ ldr r0, _080089F4 @ =0x086B15B4
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+ str r0, [r1]
+ ldr r0, _080089F8 @ =0x05000240
+ b _08008A4E
+ .align 2, 0
+_080089E0: .4byte 0x086A61BC
+_080089E4: .4byte 0x0202BF14
+_080089E8: .4byte 0x086BB6F4
+_080089EC: .4byte 0x06013800
+_080089F0: .4byte 0x040000D4
+_080089F4: .4byte 0x086B15B4
+_080089F8: .4byte 0x05000240
+_080089FC:
+ ldr r1, _08008A5C @ =0x0202BF14
+ movs r0, #1
+ strh r0, [r1]
+ subs r4, #0x64
+ adds r0, r4, #0
+ movs r1, #6
+ bl __divsi3
+ lsls r0, r0, #0x10
+ lsrs r5, r0, #0x10
+ adds r0, r4, #0
+ movs r1, #6
+ bl __modsi3
+ adds r4, r0, #0
+ ldr r0, _08008A60 @ =gMonHatchSpriteGroupGfx
+ lsls r5, r5, #0x10
+ asrs r5, r5, #0xe
+ adds r0, r5, r0
+ lsls r4, r4, #0x10
+ asrs r4, r4, #0x10
+ lsls r1, r4, #4
+ adds r1, r1, r4
+ lsls r1, r1, #3
+ subs r1, r1, r4
+ lsls r1, r1, #5
+ ldr r0, [r0]
+ adds r0, r0, r1
+ ldr r1, _08008A64 @ =0x06014800
+ movs r2, #0x87
+ movs r3, #1
+ bl sub_10708
+ ldr r1, _08008A68 @ =0x040000D4
+ ldr r0, _08008A6C @ =gMonHatchSpriteGroupPals
+ adds r5, r5, r0
+ lsls r4, r4, #5
+ ldr r0, [r5]
+ adds r0, r0, r4
+ str r0, [r1]
+ ldr r0, _08008A70 @ =0x05000260
+_08008A4E:
+ str r0, [r1, #4]
+ ldr r0, _08008A74 @ =0x80000010
+ str r0, [r1, #8]
+ ldr r0, [r1, #8]
+_08008A56:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008A5C: .4byte 0x0202BF14
+_08008A60: .4byte gMonHatchSpriteGroupGfx
+_08008A64: .4byte 0x06014800
+_08008A68: .4byte 0x040000D4
+_08008A6C: .4byte gMonHatchSpriteGroupPals
+_08008A70: .4byte 0x05000260
+_08008A74: .4byte 0x80000010
+
+ thumb_func_start sub_8A78
+sub_8A78: @ 0x08008A78
+ ldr r1, _08008AA0 @ =0x0202A1C0
+ lsls r0, r0, #0x10
+ asrs r2, r0, #0xf
+ adds r1, r2, r1
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ cmp r0, #4
+ bne _08008AAC
+ ldr r0, _08008AA4 @ =0x086A61BC
+ adds r0, r2, r0
+ movs r2, #0
+ ldrsh r1, [r0, r2]
+ movs r0, #1
+ rsbs r0, r0, #0
+ cmp r1, r0
+ beq _08008AAC
+ ldr r1, _08008AA8 @ =0x0202A588
+ movs r0, #1
+ b _08008AB0
+ .align 2, 0
+_08008AA0: .4byte 0x0202A1C0
+_08008AA4: .4byte 0x086A61BC
+_08008AA8: .4byte 0x0202A588
+_08008AAC:
+ ldr r1, _08008AB8 @ =0x0202A588
+ movs r0, #0
+_08008AB0:
+ strh r0, [r1]
+ movs r3, #0
+ ldrsh r0, [r1, r3]
+ bx lr
+ .align 2, 0
+_08008AB8: .4byte 0x0202A588
+
+ thumb_func_start sub_8ABC
+sub_8ABC: @ 0x08008ABC
+ ldr r1, _08008AD0 @ =0x0200B134
+ movs r2, #0
+ adds r0, r1, #0
+ adds r0, #0xcc
+_08008AC4:
+ strb r2, [r0]
+ subs r0, #1
+ cmp r0, r1
+ bge _08008AC4
+ bx lr
+ .align 2, 0
+_08008AD0: .4byte 0x0200B134