summaryrefslogtreecommitdiff
path: root/asm/m4a.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/m4a.s')
-rw-r--r--asm/m4a.s4625
1 files changed, 4625 insertions, 0 deletions
diff --git a/asm/m4a.s b/asm/m4a.s
new file mode 100644
index 0000000..7133670
--- /dev/null
+++ b/asm/m4a.s
@@ -0,0 +1,4625 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start umul3232H32
+umul3232H32:
+ adr r2, _080AE268
+ bx r2
+ .arm
+_080AE268:
+ umull r2, r3, r0, r1
+ add r0, r3, 0
+ bx lr
+ thumb_func_end umul3232H32
+
+ thumb_func_start SoundMain
+SoundMain:
+ ldr r0, _080AE2E0
+ ldr r0, [r0]
+ ldr r2, _080AE2E4
+ ldr r3, [r0]
+ cmp r2, r3
+ beq _080AE282
+ bx lr
+_080AE282:
+ adds r3, 0x1
+ str r3, [r0]
+ push {r4-r7,lr}
+ mov r1, r8
+ mov r2, r9
+ mov r3, r10
+ mov r4, r11
+ push {r0-r4}
+ sub sp, 0x18
+ ldrb r1, [r0, 0xC]
+ cmp r1, 0
+ beq _080AE2A6
+ ldr r2, _080AE2EC
+ ldrb r2, [r2]
+ cmp r2, 0xA0
+ bcs _080AE2A4
+ adds r2, 0xE4
+_080AE2A4:
+ adds r1, r2
+_080AE2A6:
+ str r1, [sp, 0x14]
+ ldr r3, [r0, 0x20]
+ cmp r3, 0
+ beq _080AE2B6
+ ldr r0, [r0, 0x24]
+ bl call_r3
+ ldr r0, [sp, 0x18]
+_080AE2B6:
+ ldr r3, [r0, 0x28]
+ bl call_r3
+ ldr r0, [sp, 0x18]
+ ldr r3, [r0, 0x10]
+ mov r8, r3
+ ldr r5, _080AE2F0
+ adds r5, r0
+ ldrb r4, [r0, 0x4]
+ subs r7, r4, 0x1
+ bls _080AE2D6
+ ldrb r1, [r0, 0xB]
+ subs r1, r7
+ mov r2, r8
+ muls r2, r1
+ adds r5, r2
+_080AE2D6:
+ str r5, [sp, 0x8]
+ ldr r6, _080AE2F4
+ ldr r3, _080AE2E8
+ bx r3
+ .align 2, 0
+_080AE2E0: .4byte SOUND_INFO_PTR
+_080AE2E4: .4byte 0x68736d53
+_080AE2E8: .4byte SoundMainRAM_Buffer + 1
+_080AE2EC: .4byte 0x04000006
+_080AE2F0: .4byte 0x00000350
+_080AE2F4: .4byte 0x00000630
+ thumb_func_end SoundMain
+
+ thumb_func_start sub_80AE2F8
+sub_80AE2F8:
+ ldrb r3, [r0, 0x5]
+ cmp r3, 0
+ beq _080AE358
+ adr r1, _080AE304
+ bx r1
+ .arm
+_080AE304:
+ cmp r4, 0x2
+ addeq r7, r0, 0x350
+ addne r7, r5, r8
+ mov r4, r8
+_080AE314:
+ ldrsb r0, [r5, r6]
+ ldrsb r1, [r5]
+ add r0, r0, r1
+ ldrsb r1, [r7, r6]
+ add r0, r0, r1
+ ldrsb r1, [r7], 0x1
+ add r0, r0, r1
+ mul r1, r0, r3
+ mov r0, r1, asr 9
+ tst r0, 0x80
+ addne r0, r0, 0x1
+ strb r0, [r5, r6]
+ strb r0, [r5], 0x1
+ subs r4, r4, 0x1
+ bgt _080AE314
+ add r0, pc, 0x2F
+ bx r0
+ .thumb
+_080AE358:
+ movs r0, 0
+ mov r1, r8
+ adds r6, r5
+ lsrs r1, 3
+ bcc _080AE366
+ stm r5!, {r0}
+ stm r6!, {r0}
+_080AE366:
+ lsrs r1, 1
+ bcc _080AE372
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+_080AE372:
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ subs r1, 0x1
+ bgt _080AE372
+ ldr r4, [sp, 0x18]
+ ldr r0, [r4, 0x18]
+ mov r12, r0
+ ldrb r0, [r4, 0x6]
+ adds r4, 0x50
+_080AE390:
+ str r0, [sp, 0x4]
+ ldr r3, [r4, 0x24]
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ beq _080AE3B0
+ ldr r1, _080AE3AC
+ ldrb r1, [r1]
+ cmp r1, 0xA0
+ bcs _080AE3A4
+ adds r1, 0xE4
+_080AE3A4:
+ cmp r1, r0
+ bcc _080AE3B0
+ b _080AE682
+ .align 2, 0
+_080AE3AC: .4byte 0x04000006
+_080AE3B0:
+ ldrb r6, [r4]
+ movs r0, 0xC7
+ tst r0, r6
+ bne _080AE3BA
+ b _080AE678
+_080AE3BA:
+ movs r0, 0x80
+ tst r0, r6
+ beq _080AE3EA
+ movs r0, 0x40
+ tst r0, r6
+ bne _080AE3FA
+ movs r6, 0x3
+ strb r6, [r4]
+ adds r0, r3, 0
+ adds r0, 0x10
+ str r0, [r4, 0x28]
+ ldr r0, [r3, 0xC]
+ str r0, [r4, 0x18]
+ movs r5, 0
+ strb r5, [r4, 0x9]
+ str r5, [r4, 0x1C]
+ ldrb r2, [r3, 0x3]
+ movs r0, 0xC0
+ tst r0, r2
+ beq _080AE442
+ movs r0, 0x10
+ orrs r6, r0
+ strb r6, [r4]
+ b _080AE442
+_080AE3EA:
+ ldrb r5, [r4, 0x9]
+ movs r0, 0x4
+ tst r0, r6
+ beq _080AE400
+ ldrb r0, [r4, 0xD]
+ subs r0, 0x1
+ strb r0, [r4, 0xD]
+ bhi _080AE450
+_080AE3FA:
+ movs r0, 0
+ strb r0, [r4]
+ b _080AE678
+_080AE400:
+ movs r0, 0x40
+ tst r0, r6
+ beq _080AE420
+ ldrb r0, [r4, 0x7]
+ muls r5, r0
+ lsrs r5, 8
+ ldrb r0, [r4, 0xC]
+ cmp r5, r0
+ bhi _080AE450
+_080AE412:
+ ldrb r5, [r4, 0xC]
+ cmp r5, 0
+ beq _080AE3FA
+ movs r0, 0x4
+ orrs r6, r0
+ strb r6, [r4]
+ b _080AE450
+_080AE420:
+ movs r2, 0x3
+ ands r2, r6
+ cmp r2, 0x2
+ bne _080AE43E
+ ldrb r0, [r4, 0x5]
+ muls r5, r0
+ lsrs r5, 8
+ ldrb r0, [r4, 0x6]
+ cmp r5, r0
+ bhi _080AE450
+ adds r5, r0, 0
+ beq _080AE412
+ subs r6, 0x1
+ strb r6, [r4]
+ b _080AE450
+_080AE43E:
+ cmp r2, 0x3
+ bne _080AE450
+_080AE442:
+ ldrb r0, [r4, 0x4]
+ adds r5, r0
+ cmp r5, 0xFF
+ bcc _080AE450
+ movs r5, 0xFF
+ subs r6, 0x1
+ strb r6, [r4]
+_080AE450:
+ strb r5, [r4, 0x9]
+ ldr r0, [sp, 0x18]
+ ldrb r0, [r0, 0x7]
+ adds r0, 0x1
+ muls r0, r5
+ lsrs r5, r0, 4
+ ldrb r0, [r4, 0x2]
+ muls r0, r5
+ lsrs r0, 8
+ strb r0, [r4, 0xA]
+ ldrb r0, [r4, 0x3]
+ muls r0, r5
+ lsrs r0, 8
+ strb r0, [r4, 0xB]
+ movs r0, 0x10
+ ands r0, r6
+ str r0, [sp, 0x10]
+ beq _080AE484
+ adds r0, r3, 0
+ adds r0, 0x10
+ ldr r1, [r3, 0x8]
+ adds r0, r1
+ str r0, [sp, 0xC]
+ ldr r0, [r3, 0xC]
+ subs r0, r1
+ str r0, [sp, 0x10]
+_080AE484:
+ ldr r5, [sp, 0x8]
+ ldr r2, [r4, 0x18]
+ ldr r3, [r4, 0x28]
+ adr r0, _080AE490
+ bx r0
+ .arm
+_080AE490:
+ str r8, [sp]
+ ldrb r10, [r4, 0xA]
+ ldrb r11, [r4, 0xB]
+ mov r10, r10, lsl 16
+ mov r11, r11, lsl 16
+ ldrb r0, [r4, 0x1]
+ tst r0, 0x8
+ beq _080AE5D0
+_080AE4B0:
+ cmp r2, 0x4
+ ble _080AE520
+ subs r2, r2, r8
+ movgt lr, 0
+ bgt _080AE4DC
+ mov lr, r8
+ add r2, r2, r8
+ sub r8, r2, 0x4
+ sub lr, lr, r8
+ ands r2, r2, 0x3
+ moveq r2, 0x4
+_080AE4DC:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_080AE4E4:
+ ldrsb r0, [r3], 0x1
+ mul r1, r10, r0
+ bic r1, r1, 0xFF0000
+ add r6, r1, r6, ror 8
+ mul r1, r11, r0
+ bic r1, r1, 0xFF0000
+ add r7, r1, r7, ror 8
+ adds r5, r5, 0x40000000
+ bcc _080AE4E4
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _080AE4DC
+ adds r8, r8, lr
+ beq _080AE664
+_080AE520:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_080AE528:
+ ldrsb r0, [r3], 0x1
+ mul r1, r10, r0
+ bic r1, r1, 0xFF0000
+ add r6, r1, r6, ror 8
+ mul r1, r11, r0
+ bic r1, r1, 0xFF0000
+ add r7, r1, r7, ror 8
+ subs r2, r2, 0x1
+ beq _080AE598
+_080AE54C:
+ adds r5, r5, 0x40000000
+ bcc _080AE528
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _080AE4B0
+ b _080AE664
+_080AE568:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0
+ beq _080AE58C
+ ldr r3, [sp, 0x14]
+ rsb r9, r2, 0
+_080AE57C:
+ adds r2, r0, r2
+ bgt _080AE634
+ sub r9, r9, r0
+ b _080AE57C
+_080AE58C:
+ ldmia sp!, {r4,r12}
+ mov r2, 0
+ b _080AE5A8
+_080AE598:
+ ldr r2, [sp, 0x10]
+ cmp r2, 0
+ ldrne r3, [sp, 0xC]
+ bne _080AE54C
+_080AE5A8:
+ strb r2, [r4]
+ mov r0, r5, lsr 30
+ bic r5, r5, 0xC0000000
+ rsb r0, r0, 0x3
+ mov r0, r0, lsl 3
+ mov r6, r6, ror r0
+ mov r7, r7, ror r0
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ b _080AE66C
+_080AE5D0:
+ stmdb sp!, {r4,r12}
+ ldr lr, [r4, 0x1C]
+ ldr r1, [r4, 0x20]
+ mul r4, r12, r1
+ ldrsb r0, [r3]
+ ldrsb r1, [r3, 0x1]!
+ sub r1, r1, r0
+_080AE5EC:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_080AE5F4:
+ mul r9, lr, r1
+ add r9, r0, r9, asr 23
+ mul r12, r10, r9
+ bic r12, r12, 0xFF0000
+ add r6, r12, r6, ror 8
+ mul r12, r11, r9
+ bic r12, r12, 0xFF0000
+ add r7, r12, r7, ror 8
+ add lr, lr, r4
+ movs r9, lr, lsr 23
+ beq _080AE640
+ bic lr, lr, 0x3F800000
+ subs r2, r2, r9
+ ble _080AE568
+ subs r9, r9, 0x1
+ addeq r0, r0, r1
+_080AE634:
+ ldrsbne r0, [r3, r9]!
+ ldrsb r1, [r3, 0x1]!
+ sub r1, r1, r0
+_080AE640:
+ adds r5, r5, 0x40000000
+ bcc _080AE5F4
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _080AE5EC
+ sub r3, r3, 0x1
+ ldmia sp!, {r4,r12}
+ str lr, [r4, 0x1C]
+_080AE664:
+ str r2, [r4, 0x18]
+ str r3, [r4, 0x28]
+_080AE66C:
+ ldr r8, [sp]
+ add r0, pc, 0x1
+ bx r0
+ .thumb
+_080AE678:
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ ble _080AE682
+ adds r4, 0x40
+ b _080AE390
+_080AE682:
+ ldr r0, [sp, 0x18]
+ ldr r3, _080AE698
+ str r3, [r0]
+ add sp, 0x1C
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r3}
+
+call_r3:
+ bx r3
+
+ .align 2, 0
+_080AE698: .4byte 0x68736D53
+ thumb_func_end sub_80AE2F8
+
+ thumb_func_start sub_80AE69C
+sub_80AE69C:
+ mov r12, r4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ movs r4, 0
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ mov r4, r12
+ bx lr
+ thumb_func_end sub_80AE69C
+
+ thumb_func_start sub_80AE6B4
+sub_80AE6B4:
+ ldr r3, [r0, 0x2C]
+ cmp r3, 0
+ beq _080AE6D2
+ ldr r1, [r0, 0x34]
+ ldr r2, [r0, 0x30]
+ cmp r2, 0
+ beq _080AE6C6
+ str r1, [r2, 0x34]
+ b _080AE6C8
+_080AE6C6:
+ str r1, [r3, 0x20]
+_080AE6C8:
+ cmp r1, 0
+ beq _080AE6CE
+ str r2, [r1, 0x30]
+_080AE6CE:
+ movs r1, 0
+ str r1, [r0, 0x2C]
+_080AE6D2:
+ bx lr
+ thumb_func_end sub_80AE6B4
+
+ thumb_func_start sub_80AE6D4
+sub_80AE6D4:
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _080AE6F8
+_080AE6DE:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _080AE6EC
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4]
+_080AE6EC:
+ adds r0, r4, 0
+ bl sub_80AE6B4
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _080AE6DE
+_080AE6F8:
+ movs r0, 0
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE6D4
+
+ thumb_func_start sub_80AE704
+sub_80AE704:
+ mov r12, lr
+ movs r1, 0x24
+ ldr r2, _080AE734
+_080AE70A:
+ ldr r3, [r2]
+ bl _080AE71E
+ stm r0!, {r3}
+ adds r2, 0x4
+ subs r1, 0x1
+ bgt _080AE70A
+ bx r12
+ thumb_func_end sub_80AE704
+
+ .align 2, 0
+ .thumb_func
+_080AE71C:
+ ldrb r3, [r2]
+
+ .thumb_func
+_080AE71E:
+ push {r0}
+ lsrs r0, r2, 25
+ bne _080AE730
+ ldr r0, _080AE734
+ cmp r2, r0
+ bcc _080AE72E
+ lsrs r0, r2, 14
+ beq _080AE730
+_080AE72E:
+ movs r3, 0
+_080AE730:
+ pop {r0}
+ bx lr
+ .align 2, 0
+_080AE734: .4byte gUnknown_826F98C
+
+ thumb_func_start sub_80AE738
+sub_80AE738:
+ ldr r2, [r1, 0x40]
+_080AE73A:
+ adds r3, r2, 0x1
+ str r3, [r1, 0x40]
+ ldrb r3, [r2]
+ b _080AE71E
+ thumb_func_end sub_80AE738
+
+ thumb_func_start sub_80AE744
+sub_80AE744:
+ push {lr}
+_080AE746:
+ ldr r2, [r1, 0x40]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ ldrb r3, [r2, 0x2]
+ orrs r0, r3
+ lsls r0, 8
+ ldrb r3, [r2, 0x1]
+ orrs r0, r3
+ lsls r0, 8
+ bl _080AE71C
+ orrs r0, r3
+ str r0, [r1, 0x40]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE744
+
+ thumb_func_start sub_80AE764
+sub_80AE764:
+ ldrb r2, [r1, 0x2]
+ cmp r2, 0x3
+ bcs _080AE77C
+ lsls r2, 2
+ adds r3, r1, r2
+ ldr r2, [r1, 0x40]
+ adds r2, 0x4
+ str r2, [r3, 0x44]
+ ldrb r2, [r1, 0x2]
+ adds r2, 0x1
+ strb r2, [r1, 0x2]
+ b sub_80AE744
+_080AE77C:
+ b sub_80AE6D4
+ thumb_func_end sub_80AE764
+
+ thumb_func_start sub_80AE780
+sub_80AE780:
+ ldrb r2, [r1, 0x2]
+ cmp r2, 0
+ beq _080AE792
+ subs r2, 0x1
+ strb r2, [r1, 0x2]
+ lsls r2, 2
+ adds r3, r1, r2
+ ldr r2, [r3, 0x44]
+ str r2, [r1, 0x40]
+_080AE792:
+ bx lr
+ thumb_func_end sub_80AE780
+
+ thumb_func_start sub_80AE794
+sub_80AE794:
+ push {lr}
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ cmp r3, 0
+ bne _080AE7A4
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ b _080AE746
+_080AE7A4:
+ ldrb r3, [r1, 0x3]
+ adds r3, 0x1
+ strb r3, [r1, 0x3]
+ mov r12, r3
+ bl sub_80AE738
+ cmp r12, r3
+ bcs _080AE7B6
+ b _080AE746
+_080AE7B6:
+ movs r3, 0
+ strb r3, [r1, 0x3]
+ adds r2, 0x5
+ str r2, [r1, 0x40]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE794
+
+ thumb_func_start sub_80AE7C4
+sub_80AE7C4:
+ mov r12, lr
+ bl sub_80AE738
+ strb r3, [r1, 0x1D]
+ bx r12
+ thumb_func_end sub_80AE7C4
+
+ thumb_func_start sub_80AE7D0
+sub_80AE7D0:
+ mov r12, lr
+ bl sub_80AE738
+ lsls r3, 1
+ strh r3, [r0, 0x1C]
+ ldrh r2, [r0, 0x1E]
+ muls r3, r2
+ lsrs r3, 8
+ strh r3, [r0, 0x20]
+ bx r12
+ thumb_func_end sub_80AE7D0
+
+ thumb_func_start sub_80AE7E4
+sub_80AE7E4:
+ mov r12, lr
+ bl sub_80AE738
+ strb r3, [r1, 0xA]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end sub_80AE7E4
+
+ thumb_func_start sub_80AE7F8
+sub_80AE7F8:
+ mov r12, lr
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, [r0, 0x30]
+ adds r2, r3
+ ldr r3, [r2]
+ bl _080AE71E
+ str r3, [r1, 0x24]
+ ldr r3, [r2, 0x4]
+ bl _080AE71E
+ str r3, [r1, 0x28]
+ ldr r3, [r2, 0x8]
+ bl _080AE71E
+ str r3, [r1, 0x2C]
+ bx r12
+ thumb_func_end sub_80AE7F8
+
+ thumb_func_start sub_80AE828
+sub_80AE828:
+ mov r12, lr
+ bl sub_80AE738
+ strb r3, [r1, 0x12]
+ ldrb r3, [r1]
+ movs r2, 0x3
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end sub_80AE828
+
+ thumb_func_start sub_80AE83C
+sub_80AE83C:
+ mov r12, lr
+ bl sub_80AE738
+ subs r3, 0x40
+ strb r3, [r1, 0x14]
+ ldrb r3, [r1]
+ movs r2, 0x3
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end sub_80AE83C
+
+ thumb_func_start sub_80AE850
+sub_80AE850:
+ mov r12, lr
+ bl sub_80AE738
+ subs r3, 0x40
+ strb r3, [r1, 0xE]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end sub_80AE850
+
+ thumb_func_start sub_80AE864
+sub_80AE864:
+ mov r12, lr
+ bl sub_80AE738
+ strb r3, [r1, 0xF]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end sub_80AE864
+
+ thumb_func_start sub_80AE878
+sub_80AE878:
+ mov r12, lr
+ bl sub_80AE738
+ strb r3, [r1, 0x1B]
+ bx r12
+ thumb_func_end sub_80AE878
+
+ thumb_func_start sub_80AE884
+sub_80AE884:
+ mov r12, lr
+ bl sub_80AE738
+ ldrb r0, [r1, 0x18]
+ cmp r0, r3
+ beq _080AE89A
+ strb r3, [r1, 0x18]
+ ldrb r3, [r1]
+ movs r2, 0xF
+ orrs r3, r2
+ strb r3, [r1]
+_080AE89A:
+ bx r12
+ thumb_func_end sub_80AE884
+
+ thumb_func_start sub_80AE89C
+sub_80AE89C:
+ mov r12, lr
+ bl sub_80AE738
+ subs r3, 0x40
+ strb r3, [r1, 0xC]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end sub_80AE89C
+
+ thumb_func_start sub_80AE8B0
+sub_80AE8B0:
+ mov r12, lr
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ ldr r0, _080AE8C4
+ adds r0, r3
+ bl _080AE73A
+ strb r3, [r0]
+ bx r12
+ .align 2, 0
+_080AE8C4: .4byte 0x04000060
+ thumb_func_end sub_80AE8B0
+
+ thumb_func_start m4aSoundVSync
+m4aSoundVSync:
+ ldr r0, _080AEB74
+ ldr r0, [r0]
+ ldr r2, _080AEB78
+ ldr r3, [r0]
+ subs r3, r2
+ cmp r3, 0x1
+ bhi _080AE908
+ ldrb r1, [r0, 0x4]
+ subs r1, 0x1
+ strb r1, [r0, 0x4]
+ bgt _080AE908
+ ldrb r1, [r0, 0xB]
+ strb r1, [r0, 0x4]
+ ldr r2, _080AE90C
+ ldr r1, [r2, 0x8]
+ lsls r1, 7
+ bcc _080AE8EE
+ ldr r1, _080AE910
+ str r1, [r2, 0x8]
+_080AE8EE:
+ ldr r1, [r2, 0x14]
+ lsls r1, 7
+ bcc _080AE8F8
+ ldr r1, _080AE910
+ str r1, [r2, 0x14]
+_080AE8F8:
+ movs r1, 0x4
+ lsls r1, 8
+ strh r1, [r2, 0xA]
+ strh r1, [r2, 0x16]
+ movs r1, 0xB6
+ lsls r1, 8
+ strh r1, [r2, 0xA]
+ strh r1, [r2, 0x16]
+_080AE908:
+ bx lr
+ .align 2, 0
+_080AE90C: .4byte 0x040000bc
+_080AE910: .4byte 0x84400004
+ thumb_func_end m4aSoundVSync
+
+ thumb_func_start sub_80AE914
+sub_80AE914:
+ ldr r2, _080AEB78
+ ldr r3, [r0, 0x34]
+ cmp r2, r3
+ beq _080AE91E
+ bx lr
+_080AE91E:
+ adds r3, 0x1
+ str r3, [r0, 0x34]
+ push {r0,lr}
+ ldr r3, [r0, 0x38]
+ cmp r3, 0
+ beq _080AE930
+ ldr r0, [r0, 0x3C]
+ bl _080AEB6C
+_080AE930:
+ pop {r0}
+ push {r4-r7}
+ mov r4, r8
+ mov r5, r9
+ mov r6, r10
+ mov r7, r11
+ push {r4-r7}
+ adds r7, r0, 0
+ ldr r0, [r7, 0x4]
+ cmp r0, 0
+ bge _080AE948
+ b _080AEB5C
+_080AE948:
+ ldr r0, _080AEB74
+ ldr r0, [r0]
+ mov r8, r0
+ adds r0, r7, 0
+ bl sub_80AF800
+ ldr r0, [r7, 0x4]
+ cmp r0, 0
+ bge _080AE95C
+ b _080AEB5C
+_080AE95C:
+ ldrh r0, [r7, 0x22]
+ ldrh r1, [r7, 0x20]
+ adds r0, r1
+ b _080AEAAC
+_080AE964:
+ ldrb r6, [r7, 0x8]
+ ldr r5, [r7, 0x2C]
+ movs r3, 0x1
+ movs r4, 0
+_080AE96C:
+ ldrb r0, [r5]
+ movs r1, 0x80
+ tst r1, r0
+ bne _080AE976
+ b _080AEA88
+_080AE976:
+ mov r10, r3
+ orrs r4, r3
+ mov r11, r4
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _080AE9AA
+_080AE982:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _080AE99E
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _080AE9A4
+ subs r0, 0x1
+ strb r0, [r4, 0x10]
+ bne _080AE9A4
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4]
+ b _080AE9A4
+_080AE99E:
+ adds r0, r4, 0
+ bl sub_80AF2FC
+_080AE9A4:
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _080AE982
+_080AE9AA:
+ ldrb r3, [r5]
+ movs r0, 0x40
+ tst r0, r3
+ beq _080AEA28
+ adds r0, r5, 0
+ bl sub_80AF310
+ movs r0, 0x80
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0xF]
+ movs r0, 0x40
+ strb r0, [r5, 0x13]
+ movs r0, 0x16
+ strb r0, [r5, 0x19]
+ movs r0, 0x1
+ adds r1, r5, 0x6
+ strb r0, [r1, 0x1E]
+ b _080AEA28
+_080AE9D0:
+ ldr r2, [r5, 0x40]
+ ldrb r1, [r2]
+ cmp r1, 0x80
+ bcs _080AE9DC
+ ldrb r1, [r5, 0x7]
+ b _080AE9E6
+_080AE9DC:
+ adds r2, 0x1
+ str r2, [r5, 0x40]
+ cmp r1, 0xBD
+ bcc _080AE9E6
+ strb r1, [r5, 0x7]
+_080AE9E6:
+ cmp r1, 0xCF
+ bcc _080AE9FC
+ mov r0, r8
+ ldr r3, [r0, 0x38]
+ adds r0, r1, 0
+ subs r0, 0xCF
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl _080AEB6C
+ b _080AEA28
+_080AE9FC:
+ cmp r1, 0xB0
+ bls _080AEA1E
+ adds r0, r1, 0
+ subs r0, 0xB1
+ strb r0, [r7, 0xA]
+ mov r3, r8
+ ldr r3, [r3, 0x34]
+ lsls r0, 2
+ ldr r3, [r3, r0]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl _080AEB6C
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080AEA84
+ b _080AEA28
+_080AEA1E:
+ ldr r0, _080AEB70
+ subs r1, 0x80
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r5, 0x1]
+_080AEA28:
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ beq _080AE9D0
+ subs r0, 0x1
+ strb r0, [r5, 0x1]
+ ldrb r1, [r5, 0x19]
+ cmp r1, 0
+ beq _080AEA84
+ ldrb r0, [r5, 0x17]
+ cmp r0, 0
+ beq _080AEA84
+ ldrb r0, [r5, 0x1C]
+ cmp r0, 0
+ beq _080AEA4A
+ subs r0, 0x1
+ strb r0, [r5, 0x1C]
+ b _080AEA84
+_080AEA4A:
+ ldrb r0, [r5, 0x1A]
+ adds r0, r1
+ strb r0, [r5, 0x1A]
+ adds r1, r0, 0
+ subs r0, 0x40
+ lsls r0, 24
+ bpl _080AEA5E
+ lsls r2, r1, 24
+ asrs r2, 24
+ b _080AEA62
+_080AEA5E:
+ movs r0, 0x80
+ subs r2, r0, r1
+_080AEA62:
+ ldrb r0, [r5, 0x17]
+ muls r0, r2
+ asrs r2, r0, 6
+ ldrb r0, [r5, 0x16]
+ eors r0, r2
+ lsls r0, 24
+ beq _080AEA84
+ strb r2, [r5, 0x16]
+ ldrb r0, [r5]
+ ldrb r1, [r5, 0x18]
+ cmp r1, 0
+ bne _080AEA7E
+ movs r1, 0xC
+ b _080AEA80
+_080AEA7E:
+ movs r1, 0x3
+_080AEA80:
+ orrs r0, r1
+ strb r0, [r5]
+_080AEA84:
+ mov r3, r10
+ mov r4, r11
+_080AEA88:
+ subs r6, 0x1
+ ble _080AEA94
+ movs r0, 0x50
+ adds r5, r0
+ lsls r3, 1
+ b _080AE96C
+_080AEA94:
+ ldr r0, [r7, 0xC]
+ adds r0, 0x1
+ str r0, [r7, 0xC]
+ cmp r4, 0
+ bne _080AEAA6
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r7, 0x4]
+ b _080AEB5C
+_080AEAA6:
+ str r4, [r7, 0x4]
+ ldrh r0, [r7, 0x22]
+ subs r0, 0x96
+_080AEAAC:
+ strh r0, [r7, 0x22]
+ cmp r0, 0x96
+ bcc _080AEAB4
+ b _080AE964
+_080AEAB4:
+ ldrb r2, [r7, 0x8]
+ ldr r5, [r7, 0x2C]
+_080AEAB8:
+ ldrb r0, [r5]
+ movs r1, 0x80
+ tst r1, r0
+ beq _080AEB52
+ movs r1, 0xF
+ tst r1, r0
+ beq _080AEB52
+ mov r9, r2
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80AF8C8
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _080AEB48
+_080AEAD6:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ bne _080AEAE6
+ adds r0, r4, 0
+ bl sub_80AF2FC
+ b _080AEB42
+_080AEAE6:
+ ldrb r0, [r4, 0x1]
+ movs r6, 0x7
+ ands r6, r0
+ ldrb r3, [r5]
+ movs r0, 0x3
+ tst r0, r3
+ beq _080AEB04
+ bl sub_80AEBC0
+ cmp r6, 0
+ beq _080AEB04
+ ldrb r0, [r4, 0x1D]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+_080AEB04:
+ ldrb r3, [r5]
+ movs r0, 0xC
+ tst r0, r3
+ beq _080AEB42
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x8
+ ldrsb r0, [r5, r0]
+ adds r2, r1, r0
+ bpl _080AEB18
+ movs r2, 0
+_080AEB18:
+ cmp r6, 0
+ beq _080AEB36
+ mov r0, r8
+ ldr r3, [r0, 0x30]
+ adds r1, r2, 0
+ ldrb r2, [r5, 0x9]
+ adds r0, r6, 0
+ bl _080AEB6C
+ str r0, [r4, 0x20]
+ ldrb r0, [r4, 0x1D]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ b _080AEB42
+_080AEB36:
+ adds r1, r2, 0
+ ldrb r2, [r5, 0x9]
+ ldr r0, [r4, 0x24]
+ bl sub_80AEE80
+ str r0, [r4, 0x20]
+_080AEB42:
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _080AEAD6
+_080AEB48:
+ ldrb r0, [r5]
+ movs r1, 0xF0
+ ands r0, r1
+ strb r0, [r5]
+ mov r2, r9
+_080AEB52:
+ subs r2, 0x1
+ ble _080AEB5C
+ movs r0, 0x50
+ adds r5, r0
+ bgt _080AEAB8
+_080AEB5C:
+ ldr r0, _080AEB78
+ str r0, [r7, 0x34]
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r3}
+_080AEB6C:
+ bx r3
+ .align 2, 0
+_080AEB70: .4byte gUnknown_826FC00
+_080AEB74: .4byte SOUND_INFO_PTR
+_080AEB78: .4byte 0x68736d53
+ thumb_func_end sub_80AE914
+
+ thumb_func_start sub_80AEB7C
+sub_80AEB7C:
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ ldrb r1, [r5]
+ movs r0, 0x80
+ tst r0, r1
+ beq _080AEBB4
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _080AEBB2
+ movs r6, 0
+_080AEB90:
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080AEBAA
+ ldrb r0, [r4, 0x1]
+ movs r3, 0x7
+ ands r0, r3
+ beq _080AEBA8
+ ldr r3, _080AEBBC
+ ldr r3, [r3]
+ ldr r3, [r3, 0x2C]
+ bl _080AEB6C
+_080AEBA8:
+ strb r6, [r4]
+_080AEBAA:
+ str r6, [r4, 0x2C]
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _080AEB90
+_080AEBB2:
+ str r4, [r5, 0x20]
+_080AEBB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEBBC: .4byte SOUND_INFO_PTR
+ thumb_func_end sub_80AEB7C
+
+ thumb_func_start sub_80AEBC0
+sub_80AEBC0:
+ ldrb r1, [r4, 0x12]
+ movs r0, 0x14
+ ldrsb r2, [r4, r0]
+ movs r3, 0x80
+ adds r3, r2
+ muls r3, r1
+ ldrb r0, [r5, 0x10]
+ muls r0, r3
+ asrs r0, 14
+ cmp r0, 0xFF
+ bls _080AEBD8
+ movs r0, 0xFF
+_080AEBD8:
+ strb r0, [r4, 0x2]
+ movs r3, 0x7F
+ subs r3, r2
+ muls r3, r1
+ ldrb r0, [r5, 0x11]
+ muls r0, r3
+ asrs r0, 14
+ cmp r0, 0xFF
+ bls _080AEBEC
+ movs r0, 0xFF
+_080AEBEC:
+ strb r0, [r4, 0x3]
+ bx lr
+ thumb_func_end sub_80AEBC0
+
+ thumb_func_start sub_80AEBF0
+sub_80AEBF0:
+ push {r4-r7,lr}
+ mov r4, r8
+ mov r5, r9
+ mov r6, r10
+ mov r7, r11
+ push {r4-r7}
+ sub sp, 0x18
+ str r1, [sp]
+ adds r5, r2, 0
+ ldr r1, _080AEDE8
+ ldr r1, [r1]
+ str r1, [sp, 0x4]
+ ldr r1, _080AEDEC
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5, 0x4]
+ ldr r3, [r5, 0x40]
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _080AEC36
+ strb r0, [r5, 0x5]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _080AEC34
+ strb r0, [r5, 0x6]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _080AEC34
+ ldrb r1, [r5, 0x4]
+ adds r1, r0
+ strb r1, [r5, 0x4]
+ adds r3, 0x1
+_080AEC34:
+ str r3, [r5, 0x40]
+_080AEC36:
+ movs r0, 0
+ str r0, [sp, 0x14]
+ adds r4, r5, 0
+ adds r4, 0x24
+ ldrb r2, [r4]
+ movs r0, 0xC0
+ tst r0, r2
+ beq _080AEC88
+ ldrb r3, [r5, 0x5]
+ movs r0, 0x40
+ tst r0, r2
+ beq _080AEC56
+ ldr r1, [r5, 0x2C]
+ adds r1, r3
+ ldrb r0, [r1]
+ b _080AEC58
+_080AEC56:
+ adds r0, r3, 0
+_080AEC58:
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r5, 0x28]
+ adds r1, r0
+ mov r9, r1
+ mov r6, r9
+ ldrb r1, [r6]
+ movs r0, 0xC0
+ tst r0, r1
+ beq _080AEC70
+ b _080AEDD6
+_080AEC70:
+ movs r0, 0x80
+ tst r0, r2
+ beq _080AEC8C
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x80
+ tst r0, r1
+ beq _080AEC84
+ subs r1, 0xC0
+ lsls r1, 1
+ str r1, [sp, 0x14]
+_080AEC84:
+ ldrb r3, [r6, 0x1]
+ b _080AEC8C
+_080AEC88:
+ mov r9, r4
+ ldrb r3, [r5, 0x5]
+_080AEC8C:
+ str r3, [sp, 0x8]
+ ldr r6, [sp]
+ ldrb r1, [r6, 0x9]
+ ldrb r0, [r5, 0x1D]
+ adds r0, r1
+ cmp r0, 0xFF
+ bls _080AEC9C
+ movs r0, 0xFF
+_080AEC9C:
+ str r0, [sp, 0x10]
+ mov r6, r9
+ ldrb r0, [r6]
+ movs r6, 0x7
+ ands r6, r0
+ str r6, [sp, 0xC]
+ beq _080AECDC
+ ldr r0, [sp, 0x4]
+ ldr r4, [r0, 0x1C]
+ cmp r4, 0
+ bne _080AECB4
+ b _080AEDD6
+_080AECB4:
+ subs r6, 0x1
+ lsls r0, r6, 6
+ adds r4, r0
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _080AED30
+ movs r0, 0x40
+ tst r0, r1
+ bne _080AED30
+ ldrb r1, [r4, 0x13]
+ ldr r0, [sp, 0x10]
+ cmp r1, r0
+ bcc _080AED30
+ beq _080AECD4
+ b _080AEDD6
+_080AECD4:
+ ldr r0, [r4, 0x2C]
+ cmp r0, r5
+ bcs _080AED30
+ b _080AEDD6
+_080AECDC:
+ ldr r6, [sp, 0x10]
+ adds r7, r5, 0
+ movs r2, 0
+ mov r8, r2
+ ldr r4, [sp, 0x4]
+ ldrb r3, [r4, 0x6]
+ adds r4, 0x50
+_080AECEA:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _080AED30
+ movs r0, 0x40
+ tst r0, r1
+ beq _080AED04
+ cmp r2, 0
+ bne _080AED08
+ adds r2, 0x1
+ ldrb r6, [r4, 0x13]
+ ldr r7, [r4, 0x2C]
+ b _080AED22
+_080AED04:
+ cmp r2, 0
+ bne _080AED24
+_080AED08:
+ ldrb r0, [r4, 0x13]
+ cmp r0, r6
+ bcs _080AED14
+ adds r6, r0, 0
+ ldr r7, [r4, 0x2C]
+ b _080AED22
+_080AED14:
+ bhi _080AED24
+ ldr r0, [r4, 0x2C]
+ cmp r0, r7
+ bls _080AED20
+ adds r7, r0, 0
+ b _080AED22
+_080AED20:
+ bcc _080AED24
+_080AED22:
+ mov r8, r4
+_080AED24:
+ adds r4, 0x40
+ subs r3, 0x1
+ bgt _080AECEA
+ mov r4, r8
+ cmp r4, 0
+ beq _080AEDD6
+_080AED30:
+ adds r0, r4, 0
+ bl sub_80AF2FC
+ movs r1, 0
+ str r1, [r4, 0x30]
+ ldr r3, [r5, 0x20]
+ str r3, [r4, 0x34]
+ cmp r3, 0
+ beq _080AED44
+ str r4, [r3, 0x30]
+_080AED44:
+ str r4, [r5, 0x20]
+ str r5, [r4, 0x2C]
+ ldrb r0, [r5, 0x1B]
+ strb r0, [r5, 0x1C]
+ cmp r0, r1
+ beq _080AED56
+ adds r1, r5, 0
+ bl sub_80AEE30
+_080AED56:
+ ldr r0, [sp]
+ adds r1, r5, 0
+ bl sub_80AF8C8
+ ldr r0, [r5, 0x4]
+ str r0, [r4, 0x10]
+ ldr r0, [sp, 0x10]
+ strb r0, [r4, 0x13]
+ ldr r0, [sp, 0x8]
+ strb r0, [r4, 0x8]
+ ldr r0, [sp, 0x14]
+ strb r0, [r4, 0x14]
+ mov r6, r9
+ ldrb r0, [r6]
+ strb r0, [r4, 0x1]
+ ldr r7, [r6, 0x4]
+ str r7, [r4, 0x24]
+ ldr r0, [r6, 0x8]
+ str r0, [r4, 0x4]
+ ldrh r0, [r5, 0x1E]
+ strh r0, [r4, 0xC]
+ bl sub_80AEBC0
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x8
+ ldrsb r0, [r5, r0]
+ adds r3, r1, r0
+ bpl _080AED90
+ movs r3, 0
+_080AED90:
+ ldr r6, [sp, 0xC]
+ cmp r6, 0
+ beq _080AEDBE
+ mov r6, r9
+ ldrb r0, [r6, 0x2]
+ strb r0, [r4, 0x1E]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x80
+ tst r0, r1
+ bne _080AEDAA
+ movs r0, 0x70
+ tst r0, r1
+ bne _080AEDAC
+_080AEDAA:
+ movs r1, 0x8
+_080AEDAC:
+ strb r1, [r4, 0x1F]
+ ldrb r2, [r5, 0x9]
+ adds r1, r3, 0
+ ldr r0, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ ldr r3, [r3, 0x30]
+ bl _080AEB6C
+ b _080AEDC8
+_080AEDBE:
+ ldrb r2, [r5, 0x9]
+ adds r1, r3, 0
+ adds r0, r7, 0
+ bl sub_80AEE80
+_080AEDC8:
+ str r0, [r4, 0x20]
+ movs r0, 0x80
+ strb r0, [r4]
+ ldrb r1, [r5]
+ movs r0, 0xF0
+ ands r0, r1
+ strb r0, [r5]
+_080AEDD6:
+ add sp, 0x18
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEDE8: .4byte SOUND_INFO_PTR
+_080AEDEC: .4byte gUnknown_826FC00
+ thumb_func_end sub_80AEBF0
+
+ thumb_func_start sub_80AEDF0
+sub_80AEDF0:
+ push {r4,r5}
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ cmp r3, 0x80
+ bcs _080AEE02
+ strb r3, [r1, 0x5]
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ b _080AEE04
+_080AEE02:
+ ldrb r3, [r1, 0x5]
+_080AEE04:
+ ldr r1, [r1, 0x20]
+ cmp r1, 0
+ beq _080AEE2C
+ movs r4, 0x83
+ movs r5, 0x40
+_080AEE0E:
+ ldrb r2, [r1]
+ tst r2, r4
+ beq _080AEE26
+ tst r2, r5
+ bne _080AEE26
+ ldrb r0, [r1, 0x11]
+ cmp r0, r3
+ bne _080AEE26
+ movs r0, 0x40
+ orrs r2, r0
+ strb r2, [r1]
+ b _080AEE2C
+_080AEE26:
+ ldr r1, [r1, 0x34]
+ cmp r1, 0
+ bne _080AEE0E
+_080AEE2C:
+ pop {r4,r5}
+ bx lr
+ thumb_func_end sub_80AEDF0
+
+ thumb_func_start sub_80AEE30
+sub_80AEE30:
+ movs r2, 0
+ strb r2, [r1, 0x16]
+ strb r2, [r1, 0x1A]
+ ldrb r2, [r1, 0x18]
+ cmp r2, 0
+ bne _080AEE40
+ movs r2, 0xC
+ b _080AEE42
+_080AEE40:
+ movs r2, 0x3
+_080AEE42:
+ ldrb r3, [r1]
+ orrs r3, r2
+ strb r3, [r1]
+ bx lr
+ thumb_func_end sub_80AEE30
+
+ thumb_func_start sub_80AEE4C
+sub_80AEE4C:
+ ldr r2, [r1, 0x40]
+ adds r3, r2, 0x1
+ str r3, [r1, 0x40]
+ ldrb r3, [r2]
+ bx lr
+ thumb_func_end sub_80AEE4C
+
+ thumb_func_start sub_80AEE58
+sub_80AEE58:
+ mov r12, lr
+ bl sub_80AEE4C
+ strb r3, [r1, 0x19]
+ cmp r3, 0
+ bne _080AEE68
+ bl sub_80AEE30
+_080AEE68:
+ bx r12
+ thumb_func_end sub_80AEE58
+
+ thumb_func_start sub_80AEE6C
+sub_80AEE6C:
+ mov r12, lr
+ bl sub_80AEE4C
+ strb r3, [r1, 0x17]
+ cmp r3, 0
+ bne _080AEE7C
+ bl sub_80AEE30
+_080AEE7C:
+ bx r12
+ thumb_func_end sub_80AEE6C
+
+ thumb_func_start sub_80AEE80
+sub_80AEE80:
+ push {r4-r7,lr}
+ mov r12, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r7, r2, 24
+ cmp r6, 0xB2
+ bls _080AEE94
+ movs r6, 0xB2
+ movs r7, 0xFF
+ lsls r7, 24
+_080AEE94:
+ ldr r3, _080AEEDC
+ adds r0, r6, r3
+ ldrb r5, [r0]
+ ldr r4, _080AEEE0
+ movs r2, 0xF
+ adds r0, r5, 0
+ ands r0, r2
+ lsls r0, 2
+ adds r0, r4
+ lsrs r1, r5, 4
+ ldr r5, [r0]
+ lsrs r5, r1
+ adds r0, r6, 0x1
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ ands r0, r2
+ lsls r0, 2
+ adds r0, r4
+ lsrs r1, 4
+ ldr r0, [r0]
+ lsrs r0, r1
+ mov r1, r12
+ ldr r4, [r1, 0x4]
+ subs r0, r5
+ adds r1, r7, 0
+ bl umul3232H32
+ adds r1, r0, 0
+ adds r1, r5, r1
+ adds r0, r4, 0
+ bl umul3232H32
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AEEDC: .4byte gUnknown_826FA1C
+_080AEEE0: .4byte gUnknown_826FAD0
+ thumb_func_end sub_80AEE80
+
+ thumb_func_start nullsub_212
+nullsub_212:
+ bx lr
+ thumb_func_end nullsub_212
+
+ thumb_func_start sub_80AEEE8
+sub_80AEEE8:
+ adds r2, r0, 0
+ ldr r3, [r2, 0x34]
+ ldr r0, _080AEEFC
+ cmp r3, r0
+ bne _080AEEFA
+ ldr r0, [r2, 0x4]
+ ldr r1, _080AEF00
+ ands r0, r1
+ str r0, [r2, 0x4]
+_080AEEFA:
+ bx lr
+ .align 2, 0
+_080AEEFC: .4byte 0x68736d53
+_080AEF00: .4byte 0x7fffffff
+ thumb_func_end sub_80AEEE8
+
+ thumb_func_start sub_80AEF04
+sub_80AEF04:
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _080AEF20
+ cmp r3, r0
+ bne _080AEF1C
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r2, 0x28]
+_080AEF1C:
+ bx lr
+ .align 2, 0
+_080AEF20: .4byte 0x68736d53
+ thumb_func_end sub_80AEF04
+
+ thumb_func_start sub_80AEF24
+sub_80AEF24:
+ push {r4-r6,lr}
+ ldr r0, _080AEF78
+ movs r1, 0x2
+ negs r1, r1
+ ands r0, r1
+ ldr r1, _080AEF7C
+ ldr r2, _080AEF80
+ bl CpuSet
+ ldr r0, _080AEF84
+ bl sub_80AF324
+ ldr r0, _080AEF88
+ bl sub_80AF1E0
+ ldr r0, _080AEF8C
+ bl sub_80AF4C0
+ ldr r0, _080AEF90
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080AEF72
+ ldr r5, _080AEF94
+ adds r6, r0, 0
+_080AEF56:
+ ldr r4, [r5]
+ ldr r1, [r5, 0x4]
+ ldrb r2, [r5, 0x8]
+ adds r0, r4, 0
+ bl sub_80AF664
+ ldrh r0, [r5, 0xA]
+ strb r0, [r4, 0xB]
+ ldr r0, _080AEF98
+ str r0, [r4, 0x18]
+ adds r5, 0xC
+ subs r6, 0x1
+ cmp r6, 0
+ bne _080AEF56
+_080AEF72:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEF78: .4byte sub_80AE2F8
+_080AEF7C: .4byte SoundMainRAM_Buffer
+_080AEF80: .4byte 0x04000100
+_080AEF84: .4byte gUnknown_2039ED0
+_080AEF88: .4byte gUnknown_203AF10
+_080AEF8C: .4byte 0x0096e500
+_080AEF90: .4byte 0x00000008
+_080AEF94: .4byte 0x09e8665c
+_080AEF98: .4byte gUnknown_2000A30
+ thumb_func_end sub_80AEF24
+
+ thumb_func_start m4aSoundMain
+m4aSoundMain:
+ push {lr}
+ bl SoundMain
+ pop {r0}
+ bx r0
+ thumb_func_end m4aSoundMain
+
+ thumb_func_start sub_80AEFA8
+sub_80AEFA8:
+ push {lr}
+ lsls r0, 16
+ ldr r2, _080AEFCC
+ ldr r1, _080AEFD0
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl sub_80AF6DC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEFCC: .4byte 0x09e8665c
+_080AEFD0: .4byte 0x09e866bc
+ thumb_func_end sub_80AEFA8
+
+ thumb_func_start sub_80AEFD4
+sub_80AEFD4:
+ push {lr}
+ lsls r0, 16
+ ldr r2, _080AF000
+ ldr r1, _080AF004
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r3, [r1]
+ ldr r2, [r0]
+ cmp r3, r2
+ beq _080AF008
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_80AF6DC
+ b _080AF01C
+ .align 2, 0
+_080AF000: .4byte 0x09e8665c
+_080AF004: .4byte 0x09e866bc
+_080AF008:
+ ldr r2, [r1, 0x4]
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080AF014
+ cmp r2, 0
+ bge _080AF01C
+_080AF014:
+ adds r0, r1, 0
+ adds r1, r3, 0
+ bl sub_80AF6DC
+_080AF01C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AEFD4
+
+ thumb_func_start sub_80AF020
+sub_80AF020:
+ push {lr}
+ lsls r0, 16
+ ldr r2, _080AF04C
+ ldr r1, _080AF050
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r3, [r1]
+ ldr r2, [r0]
+ cmp r3, r2
+ beq _080AF054
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_80AF6DC
+ b _080AF070
+ .align 2, 0
+_080AF04C: .4byte 0x09e8665c
+_080AF050: .4byte 0x09e866bc
+_080AF054:
+ ldr r2, [r1, 0x4]
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0
+ bne _080AF066
+ adds r0, r1, 0
+ adds r1, r3, 0
+ bl sub_80AF6DC
+ b _080AF070
+_080AF066:
+ cmp r2, 0
+ bge _080AF070
+ adds r0, r1, 0
+ bl sub_80AEEE8
+_080AF070:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF020
+
+ thumb_func_start sub_80AF074
+sub_80AF074:
+ push {lr}
+ lsls r0, 16
+ ldr r2, _080AF0A0
+ ldr r1, _080AF0A4
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, [r2]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _080AF09A
+ adds r0, r2, 0
+ bl sub_80AF7C0
+_080AF09A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF0A0: .4byte 0x09e8665c
+_080AF0A4: .4byte 0x09e866bc
+ thumb_func_end sub_80AF074
+
+ thumb_func_start sub_80AF0A8
+sub_80AF0A8:
+ push {lr}
+ lsls r0, 16
+ ldr r2, _080AF0D4
+ ldr r1, _080AF0D8
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, [r2]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _080AF0CE
+ adds r0, r2, 0
+ bl sub_80AEEE8
+_080AF0CE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF0D4: .4byte 0x09e8665c
+_080AF0D8: .4byte 0x09e866bc
+ thumb_func_end sub_80AF0A8
+
+ thumb_func_start sub_80AF0DC
+sub_80AF0DC:
+ push {r4,r5,lr}
+ ldr r0, _080AF100
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080AF0FA
+ ldr r5, _080AF104
+ adds r4, r0, 0
+_080AF0EC:
+ ldr r0, [r5]
+ bl sub_80AF7C0
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080AF0EC
+_080AF0FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF100: .4byte 0x00000008
+_080AF104: .4byte 0x09e8665c
+ thumb_func_end sub_80AF0DC
+
+ thumb_func_start sub_80AF108
+sub_80AF108:
+ push {lr}
+ bl sub_80AEEE8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF108
+
+ thumb_func_start sub_80AF114
+sub_80AF114:
+ push {r4,r5,lr}
+ ldr r0, _080AF138
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080AF132
+ ldr r5, _080AF13C
+ adds r4, r0, 0
+_080AF124:
+ ldr r0, [r5]
+ bl sub_80AEEE8
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080AF124
+_080AF132:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF138: .4byte 0x00000008
+_080AF13C: .4byte 0x09e8665c
+ thumb_func_end sub_80AF114
+
+ thumb_func_start sub_80AF140
+sub_80AF140:
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80AEF04
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF140
+
+ thumb_func_start sub_80AF150
+sub_80AF150:
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _080AF168
+ cmp r3, r0
+ bne _080AF166
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ ldr r0, _080AF16C
+ strh r0, [r2, 0x28]
+_080AF166:
+ bx lr
+ .align 2, 0
+_080AF168: .4byte 0x68736d53
+_080AF16C: .4byte 0x00000101
+ thumb_func_end sub_80AF150
+
+ thumb_func_start sub_80AF170
+sub_80AF170:
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _080AF190
+ cmp r3, r0
+ bne _080AF18E
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ movs r0, 0x2
+ strh r0, [r2, 0x28]
+ ldr r0, [r2, 0x4]
+ ldr r1, _080AF194
+ ands r0, r1
+ str r0, [r2, 0x4]
+_080AF18E:
+ bx lr
+ .align 2, 0
+_080AF190: .4byte 0x68736d53
+_080AF194: .4byte 0x7fffffff
+ thumb_func_end sub_80AF170
+
+ thumb_func_start sub_80AF198
+sub_80AF198:
+ push {r4-r7,lr}
+ ldrb r5, [r0, 0x8]
+ ldr r4, [r0, 0x2C]
+ cmp r5, 0
+ ble _080AF1DA
+ movs r7, 0x80
+_080AF1A4:
+ ldrb r1, [r4]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF1D2
+ movs r6, 0x40
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF1D2
+ adds r0, r4, 0
+ bl sub_80AF310
+ strb r7, [r4]
+ movs r0, 0x2
+ strb r0, [r4, 0xF]
+ strb r6, [r4, 0x13]
+ movs r0, 0x16
+ strb r0, [r4, 0x19]
+ adds r1, r4, 0
+ adds r1, 0x24
+ movs r0, 0x1
+ strb r0, [r1]
+_080AF1D2:
+ subs r5, 0x1
+ adds r4, 0x50
+ cmp r5, 0
+ bgt _080AF1A4
+_080AF1DA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF198
+
+ thumb_func_start sub_80AF1E0
+sub_80AF1E0:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r1, _080AF2A8
+ movs r0, 0x8F
+ strh r0, [r1]
+ ldr r3, _080AF2AC
+ movs r2, 0
+ strh r2, [r3]
+ ldr r0, _080AF2B0
+ movs r1, 0x8
+ strb r1, [r0]
+ adds r0, 0x6
+ strb r1, [r0]
+ adds r0, 0x10
+ strb r1, [r0]
+ subs r0, 0x14
+ movs r1, 0x80
+ strb r1, [r0]
+ adds r0, 0x8
+ strb r1, [r0]
+ adds r0, 0x10
+ strb r1, [r0]
+ subs r0, 0xD
+ strb r2, [r0]
+ movs r0, 0x77
+ strb r0, [r3]
+ ldr r0, _080AF2B4
+ ldr r4, [r0]
+ ldr r6, [r4]
+ ldr r0, _080AF2B8
+ cmp r6, r0
+ bne _080AF2A0
+ adds r0, r6, 0x1
+ str r0, [r4]
+ ldr r1, _080AF2BC
+ ldr r0, _080AF2C0
+ str r0, [r1, 0x20]
+ ldr r0, _080AF2C4
+ str r0, [r1, 0x44]
+ ldr r0, _080AF2C8
+ str r0, [r1, 0x4C]
+ ldr r0, _080AF2CC
+ str r0, [r1, 0x70]
+ ldr r0, _080AF2D0
+ str r0, [r1, 0x74]
+ ldr r0, _080AF2D4
+ str r0, [r1, 0x78]
+ ldr r0, _080AF2D8
+ str r0, [r1, 0x7C]
+ adds r2, r1, 0
+ adds r2, 0x80
+ ldr r0, _080AF2DC
+ str r0, [r2]
+ adds r1, 0x84
+ ldr r0, _080AF2E0
+ str r0, [r1]
+ str r5, [r4, 0x1C]
+ ldr r0, _080AF2E4
+ str r0, [r4, 0x28]
+ ldr r0, _080AF2E8
+ str r0, [r4, 0x2C]
+ ldr r0, _080AF2EC
+ str r0, [r4, 0x30]
+ ldr r0, _080AF2F0
+ movs r1, 0
+ strb r0, [r4, 0xC]
+ str r1, [sp]
+ ldr r2, _080AF2F4
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuSet
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0x11
+ strb r0, [r5, 0x1C]
+ adds r1, r5, 0
+ adds r1, 0x41
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1B
+ movs r0, 0x22
+ strb r0, [r1]
+ adds r1, 0x25
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r1, 0x1B
+ movs r0, 0x44
+ strb r0, [r1]
+ adds r1, 0x24
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ movs r0, 0x88
+ strb r0, [r1, 0x1C]
+ str r6, [r4]
+_080AF2A0:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF2A8: .4byte 0x04000084
+_080AF2AC: .4byte 0x04000080
+_080AF2B0: .4byte 0x04000063
+_080AF2B4: .4byte SOUND_INFO_PTR
+_080AF2B8: .4byte 0x68736d53
+_080AF2BC: .4byte gUnknown_203AE80
+_080AF2C0: .4byte sub_80B019C
+_080AF2C4: .4byte sub_80AEE58
+_080AF2C8: .4byte sub_80AEE6C
+_080AF2CC: .4byte sub_80B02F4
+_080AF2D0: .4byte sub_80AEDF0
+_080AF2D4: .4byte sub_80AF41C
+_080AF2D8: .4byte sub_80AEB7C
+_080AF2DC: .4byte sub_80AF800
+_080AF2E0: .4byte sub_80AF8C8
+_080AF2E4: .4byte sub_80AFADC
+_080AF2E8: .4byte sub_80AFA24
+_080AF2EC: .4byte sub_80AF97C
+_080AF2F0: .4byte 0x00000000
+_080AF2F4: .4byte 0x05000040
+ thumb_func_end sub_80AF1E0
+
+ thumb_func_start sub_80AF2F8
+sub_80AF2F8:
+ swi 0x2A
+ bx lr
+ thumb_func_end sub_80AF2F8
+
+ thumb_func_start sub_80AF2FC
+sub_80AF2FC:
+ push {lr}
+ ldr r1, _080AF30C
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF30C: .4byte gUnknown_203AF08
+ thumb_func_end sub_80AF2FC
+
+ thumb_func_start sub_80AF310
+sub_80AF310:
+ push {lr}
+ ldr r1, _080AF320
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF320: .4byte gUnknown_203AF0C
+ thumb_func_end sub_80AF310
+
+ thumb_func_start sub_80AF324
+sub_80AF324:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r3, 0
+ str r3, [r5]
+ ldr r1, _080AF3DC
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 18
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF340
+ ldr r0, _080AF3E0
+ str r0, [r1]
+_080AF340:
+ ldr r1, _080AF3E4
+ ldr r0, [r1]
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF34E
+ ldr r0, _080AF3E0
+ str r0, [r1]
+_080AF34E:
+ ldr r0, _080AF3E8
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ ldr r1, _080AF3EC
+ movs r0, 0x8F
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080AF3F0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080AF3F4
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080AF3F8
+ movs r2, 0xD4
+ lsls r2, 2
+ adds r0, r5, r2
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080AF3FC
+ str r0, [r1]
+ adds r1, 0x8
+ movs r2, 0x98
+ lsls r2, 4
+ adds r0, r5, r2
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080AF400
+ str r0, [r1]
+ ldr r0, _080AF404
+ str r5, [r0]
+ str r3, [sp]
+ ldr r2, _080AF408
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuSet
+ movs r0, 0x8
+ strb r0, [r5, 0x6]
+ movs r0, 0xF
+ strb r0, [r5, 0x7]
+ ldr r0, _080AF40C
+ str r0, [r5, 0x38]
+ ldr r0, _080AF410
+ str r0, [r5, 0x28]
+ str r0, [r5, 0x2C]
+ str r0, [r5, 0x30]
+ str r0, [r5, 0x3C]
+ ldr r4, _080AF414
+ adds r0, r4, 0
+ bl sub_80AE704
+ str r4, [r5, 0x34]
+ movs r0, 0x80
+ lsls r0, 11
+ bl sub_80AF41C
+ ldr r0, _080AF418
+ str r0, [r5]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF3DC: .4byte 0x040000c4
+_080AF3E0: .4byte 0x84400004
+_080AF3E4: .4byte 0x040000d0
+_080AF3E8: .4byte 0x040000c6
+_080AF3EC: .4byte 0x04000084
+_080AF3F0: .4byte 0x0000a90e
+_080AF3F4: .4byte 0x04000089
+_080AF3F8: .4byte 0x040000bc
+_080AF3FC: .4byte 0x040000a0
+_080AF400: .4byte 0x040000a4
+_080AF404: .4byte SOUND_INFO_PTR
+_080AF408: .4byte 0x050003ec
+_080AF40C: .4byte sub_80AEBF0
+_080AF410: .4byte nullsub_139
+_080AF414: .4byte gUnknown_203AE80
+_080AF418: .4byte 0x68736d53
+ thumb_func_end sub_80AF324
+
+ thumb_func_start sub_80AF41C
+sub_80AF41C:
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ ldr r0, _080AF49C
+ ldr r4, [r0]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r2
+ lsrs r2, r0, 16
+ movs r6, 0
+ strb r2, [r4, 0x8]
+ ldr r1, _080AF4A0
+ subs r0, r2, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r5, [r0]
+ str r5, [r4, 0x10]
+ movs r0, 0xC6
+ lsls r0, 3
+ adds r1, r5, 0
+ bl __divsi3
+ strb r0, [r4, 0xB]
+ ldr r0, _080AF4A4
+ muls r0, r5
+ ldr r1, _080AF4A8
+ adds r0, r1
+ ldr r1, _080AF4AC
+ bl __divsi3
+ adds r1, r0, 0
+ str r1, [r4, 0x14]
+ movs r0, 0x80
+ lsls r0, 17
+ bl __divsi3
+ adds r0, 0x1
+ asrs r0, 1
+ str r0, [r4, 0x18]
+ ldr r0, _080AF4B0
+ strh r6, [r0]
+ ldr r4, _080AF4B4
+ ldr r0, _080AF4B8
+ adds r1, r5, 0
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4]
+ bl sub_80AF628
+ ldr r1, _080AF4BC
+_080AF480:
+ ldrb r0, [r1]
+ cmp r0, 0x9F
+ beq _080AF480
+ ldr r1, _080AF4BC
+_080AF488:
+ ldrb r0, [r1]
+ cmp r0, 0x9F
+ bne _080AF488
+ ldr r1, _080AF4B0
+ movs r0, 0x80
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF49C: .4byte SOUND_INFO_PTR
+_080AF4A0: .4byte gUnknown_826FB00
+_080AF4A4: .4byte 0x00091d1b
+_080AF4A8: .4byte 0x00001388
+_080AF4AC: .4byte 0x00002710
+_080AF4B0: .4byte 0x04000102
+_080AF4B4: .4byte 0x04000100
+_080AF4B8: .4byte 0x00044940
+_080AF4BC: .4byte 0x04000006
+ thumb_func_end sub_80AF41C
+
+ thumb_func_start sub_80AF4C0
+sub_80AF4C0:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _080AF54C
+ ldr r5, [r0]
+ ldr r1, [r5]
+ ldr r0, _080AF550
+ cmp r1, r0
+ bne _080AF546
+ adds r0, r1, 0x1
+ str r0, [r5]
+ movs r4, 0xFF
+ ands r4, r3
+ cmp r4, 0
+ beq _080AF4E2
+ movs r0, 0x7F
+ ands r4, r0
+ strb r4, [r5, 0x5]
+_080AF4E2:
+ movs r4, 0xF0
+ lsls r4, 4
+ ands r4, r3
+ cmp r4, 0
+ beq _080AF502
+ lsrs r0, r4, 8
+ strb r0, [r5, 0x6]
+ movs r4, 0xC
+ adds r0, r5, 0
+ adds r0, 0x50
+ movs r1, 0
+_080AF4F8:
+ strb r1, [r0]
+ subs r4, 0x1
+ adds r0, 0x40
+ cmp r4, 0
+ bne _080AF4F8
+_080AF502:
+ movs r4, 0xF0
+ lsls r4, 8
+ ands r4, r3
+ cmp r4, 0
+ beq _080AF510
+ lsrs r0, r4, 12
+ strb r0, [r5, 0x7]
+_080AF510:
+ movs r4, 0xB0
+ lsls r4, 16
+ ands r4, r3
+ cmp r4, 0
+ beq _080AF52E
+ movs r0, 0xC0
+ lsls r0, 14
+ ands r0, r4
+ lsrs r4, r0, 14
+ ldr r2, _080AF554
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r4
+ strb r0, [r2]
+_080AF52E:
+ movs r4, 0xF0
+ lsls r4, 12
+ ands r4, r3
+ cmp r4, 0
+ beq _080AF542
+ bl sub_80AF5AC
+ adds r0, r4, 0
+ bl sub_80AF41C
+_080AF542:
+ ldr r0, _080AF550
+ str r0, [r5]
+_080AF546:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF54C: .4byte SOUND_INFO_PTR
+_080AF550: .4byte 0x68736d53
+_080AF554: .4byte 0x04000089
+ thumb_func_end sub_80AF4C0
+
+ thumb_func_start sub_80AF558
+sub_80AF558:
+ push {r4-r7,lr}
+ ldr r0, _080AF5A4
+ ldr r6, [r0]
+ ldr r1, [r6]
+ ldr r0, _080AF5A8
+ cmp r1, r0
+ bne _080AF59E
+ adds r0, r1, 0x1
+ str r0, [r6]
+ movs r5, 0xC
+ adds r4, r6, 0
+ adds r4, 0x50
+ movs r0, 0
+_080AF572:
+ strb r0, [r4]
+ subs r5, 0x1
+ adds r4, 0x40
+ cmp r5, 0
+ bgt _080AF572
+ ldr r4, [r6, 0x1C]
+ cmp r4, 0
+ beq _080AF59A
+ movs r5, 0x1
+ movs r7, 0
+_080AF586:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ ldr r1, [r6, 0x2C]
+ bl _call_via_r1
+ strb r7, [r4]
+ adds r5, 0x1
+ adds r4, 0x40
+ cmp r5, 0x4
+ ble _080AF586
+_080AF59A:
+ ldr r0, _080AF5A8
+ str r0, [r6]
+_080AF59E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF5A4: .4byte SOUND_INFO_PTR
+_080AF5A8: .4byte 0x68736d53
+ thumb_func_end sub_80AF558
+
+ thumb_func_start sub_80AF5AC
+sub_80AF5AC:
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080AF60C
+ ldr r2, [r0]
+ ldr r1, [r2]
+ ldr r3, _080AF610
+ adds r0, r1, r3
+ cmp r0, 0x1
+ bhi _080AF604
+ adds r0, r1, 0
+ adds r0, 0xA
+ str r0, [r2]
+ ldr r1, _080AF614
+ ldr r0, [r1]
+ movs r3, 0x80
+ lsls r3, 18
+ ands r0, r3
+ cmp r0, 0
+ beq _080AF5D6
+ ldr r0, _080AF618
+ str r0, [r1]
+_080AF5D6:
+ ldr r1, _080AF61C
+ ldr r0, [r1]
+ ands r0, r3
+ cmp r0, 0
+ beq _080AF5E4
+ ldr r0, _080AF618
+ str r0, [r1]
+_080AF5E4:
+ ldr r0, _080AF620
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xD4
+ lsls r0, 2
+ adds r1, r2, r0
+ ldr r2, _080AF624
+ mov r0, sp
+ bl CpuSet
+_080AF604:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF60C: .4byte SOUND_INFO_PTR
+_080AF610: .4byte 0x978c92ad
+_080AF614: .4byte 0x040000c4
+_080AF618: .4byte 0x84400004
+_080AF61C: .4byte 0x040000d0
+_080AF620: .4byte 0x040000c6
+_080AF624: .4byte 0x05000318
+ thumb_func_end sub_80AF5AC
+
+ thumb_func_start sub_80AF628
+sub_80AF628:
+ push {r4,lr}
+ ldr r0, _080AF658
+ ldr r2, [r0]
+ ldr r3, [r2]
+ ldr r0, _080AF65C
+ cmp r3, r0
+ beq _080AF650
+ ldr r0, _080AF660
+ movs r4, 0xB6
+ lsls r4, 8
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ ldrb r0, [r2, 0x4]
+ movs r0, 0
+ strb r0, [r2, 0x4]
+ adds r0, r3, 0
+ subs r0, 0xA
+ str r0, [r2]
+_080AF650:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF658: .4byte SOUND_INFO_PTR
+_080AF65C: .4byte 0x68736d53
+_080AF660: .4byte 0x040000c6
+ thumb_func_end sub_80AF628
+
+ thumb_func_start sub_80AF664
+sub_80AF664:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r4, 0
+ beq _080AF6C8
+ cmp r4, 0x10
+ bls _080AF678
+ movs r4, 0x10
+_080AF678:
+ ldr r0, _080AF6D0
+ ldr r5, [r0]
+ ldr r1, [r5]
+ ldr r0, _080AF6D4
+ cmp r1, r0
+ bne _080AF6C8
+ adds r0, r1, 0x1
+ str r0, [r5]
+ adds r0, r7, 0
+ bl sub_80AF310
+ str r6, [r7, 0x2C]
+ strb r4, [r7, 0x8]
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r7, 0x4]
+ cmp r4, 0
+ beq _080AF6AC
+ movs r1, 0
+_080AF69E:
+ strb r1, [r6]
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, 0x50
+ cmp r4, 0
+ bne _080AF69E
+_080AF6AC:
+ ldr r0, [r5, 0x20]
+ cmp r0, 0
+ beq _080AF6BC
+ str r0, [r7, 0x38]
+ ldr r0, [r5, 0x24]
+ str r0, [r7, 0x3C]
+ movs r0, 0
+ str r0, [r5, 0x20]
+_080AF6BC:
+ str r7, [r5, 0x24]
+ ldr r0, _080AF6D8
+ str r0, [r5, 0x20]
+ ldr r0, _080AF6D4
+ str r0, [r5]
+ str r0, [r7, 0x34]
+_080AF6C8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF6D0: .4byte SOUND_INFO_PTR
+_080AF6D4: .4byte 0x68736d53
+_080AF6D8: .4byte sub_80AE914
+ thumb_func_end sub_80AF664
+
+ thumb_func_start sub_80AF6DC
+sub_80AF6DC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldr r1, [r5, 0x34]
+ ldr r0, _080AF7BC
+ cmp r1, r0
+ bne _080AF7B2
+ ldrb r0, [r5, 0xB]
+ ldrb r2, [r7, 0x2]
+ cmp r0, 0
+ beq _080AF71E
+ ldr r0, [r5]
+ cmp r0, 0
+ beq _080AF708
+ ldr r1, [r5, 0x2C]
+ movs r0, 0x40
+ ldrb r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF714
+_080AF708:
+ ldr r1, [r5, 0x4]
+ ldrh r0, [r5, 0x4]
+ cmp r0, 0
+ beq _080AF71E
+ cmp r1, 0
+ blt _080AF71E
+_080AF714:
+ ldrb r0, [r7, 0x2]
+ adds r2, r0, 0
+ ldrb r0, [r5, 0x9]
+ cmp r0, r2
+ bhi _080AF7B2
+_080AF71E:
+ ldr r0, [r5, 0x34]
+ adds r0, 0x1
+ str r0, [r5, 0x34]
+ movs r1, 0
+ str r1, [r5, 0x4]
+ str r7, [r5]
+ ldr r0, [r7, 0x4]
+ str r0, [r5, 0x30]
+ strb r2, [r5, 0x9]
+ str r1, [r5, 0xC]
+ movs r0, 0x96
+ strh r0, [r5, 0x1C]
+ strh r0, [r5, 0x20]
+ adds r0, 0x6A
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x22]
+ strh r1, [r5, 0x24]
+ movs r6, 0
+ ldr r4, [r5, 0x2C]
+ ldrb r1, [r7]
+ cmp r6, r1
+ bge _080AF77E
+ ldrb r0, [r5, 0x8]
+ cmp r6, r0
+ bge _080AF79E
+ mov r8, r6
+_080AF752:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AEB7C
+ movs r0, 0xC0
+ strb r0, [r4]
+ mov r1, r8
+ str r1, [r4, 0x20]
+ lsls r1, r6, 2
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x40]
+ adds r6, 0x1
+ adds r4, 0x50
+ ldrb r0, [r7]
+ cmp r6, r0
+ bge _080AF77E
+ ldrb r1, [r5, 0x8]
+ cmp r6, r1
+ blt _080AF752
+_080AF77E:
+ ldrb r0, [r5, 0x8]
+ cmp r6, r0
+ bge _080AF79E
+ movs r1, 0
+ mov r8, r1
+_080AF788:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AEB7C
+ mov r0, r8
+ strb r0, [r4]
+ adds r6, 0x1
+ adds r4, 0x50
+ ldrb r1, [r5, 0x8]
+ cmp r6, r1
+ blt _080AF788
+_080AF79E:
+ movs r0, 0x80
+ ldrb r1, [r7, 0x3]
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF7AE
+ ldrb r0, [r7, 0x3]
+ bl sub_80AF4C0
+_080AF7AE:
+ ldr r0, _080AF7BC
+ str r0, [r5, 0x34]
+_080AF7B2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF7BC: .4byte 0x68736d53
+ thumb_func_end sub_80AF6DC
+
+ thumb_func_start sub_80AF7C0
+sub_80AF7C0:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r1, [r6, 0x34]
+ ldr r0, _080AF7FC
+ cmp r1, r0
+ bne _080AF7F6
+ adds r0, r1, 0x1
+ str r0, [r6, 0x34]
+ ldr r0, [r6, 0x4]
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r6, 0x4]
+ ldrb r4, [r6, 0x8]
+ ldr r5, [r6, 0x2C]
+ cmp r4, 0
+ ble _080AF7F2
+_080AF7E2:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80AEB7C
+ subs r4, 0x1
+ adds r5, 0x50
+ cmp r4, 0
+ bgt _080AF7E2
+_080AF7F2:
+ ldr r0, _080AF7FC
+ str r0, [r6, 0x34]
+_080AF7F6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF7FC: .4byte 0x68736d53
+ thumb_func_end sub_80AF7C0
+
+ thumb_func_start sub_80AF800
+sub_80AF800:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r1, [r6, 0x24]
+ cmp r1, 0
+ beq _080AF8C2
+ ldrh r0, [r6, 0x26]
+ subs r0, 0x1
+ strh r0, [r6, 0x26]
+ ldr r3, _080AF840
+ adds r2, r3, 0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _080AF8C2
+ strh r1, [r6, 0x26]
+ ldrh r1, [r6, 0x28]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF844
+ adds r0, r1, 0
+ adds r0, 0x10
+ strh r0, [r6, 0x28]
+ ands r0, r2
+ cmp r0, 0xFF
+ bls _080AF896
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r6, 0x28]
+ strh r3, [r6, 0x24]
+ b _080AF896
+ .align 2, 0
+_080AF840: .4byte 0x0000ffff
+_080AF844:
+ adds r0, r1, 0
+ subs r0, 0x10
+ strh r0, [r6, 0x28]
+ ands r0, r2
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080AF896
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ cmp r5, 0
+ ble _080AF876
+_080AF85A:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80AEB7C
+ movs r0, 0x1
+ ldrh r7, [r6, 0x28]
+ ands r0, r7
+ cmp r0, 0
+ bne _080AF86E
+ strb r0, [r4]
+_080AF86E:
+ subs r5, 0x1
+ adds r4, 0x50
+ cmp r5, 0
+ bgt _080AF85A
+_080AF876:
+ movs r0, 0x1
+ ldrh r1, [r6, 0x28]
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF88A
+ ldr r0, [r6, 0x4]
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ b _080AF88E
+_080AF88A:
+ movs r0, 0x80
+ lsls r0, 24
+_080AF88E:
+ str r0, [r6, 0x4]
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ b _080AF8C2
+_080AF896:
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ cmp r5, 0
+ ble _080AF8C2
+ movs r3, 0x80
+ movs r7, 0
+ movs r2, 0x3
+_080AF8A4:
+ ldrb r1, [r4]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF8BA
+ ldrh r7, [r6, 0x28]
+ lsrs r0, r7, 2
+ strb r0, [r4, 0x13]
+ adds r0, r1, 0
+ orrs r0, r2
+ strb r0, [r4]
+_080AF8BA:
+ subs r5, 0x1
+ adds r4, 0x50
+ cmp r5, 0
+ bgt _080AF8A4
+_080AF8C2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF800
+
+ thumb_func_start sub_80AF8C8
+sub_80AF8C8:
+ push {r4,lr}
+ adds r2, r1, 0
+ movs r0, 0x1
+ ldrb r1, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF92C
+ ldrb r3, [r2, 0x13]
+ ldrb r1, [r2, 0x12]
+ adds r0, r3, 0
+ muls r0, r1
+ lsrs r3, r0, 5
+ ldrb r4, [r2, 0x18]
+ cmp r4, 0x1
+ bne _080AF8F0
+ movs r0, 0x16
+ ldrsb r0, [r2, r0]
+ adds r0, 0x80
+ muls r0, r3
+ lsrs r3, r0, 7
+_080AF8F0:
+ movs r0, 0x14
+ ldrsb r0, [r2, r0]
+ lsls r0, 1
+ movs r1, 0x15
+ ldrsb r1, [r2, r1]
+ adds r1, r0, r1
+ cmp r4, 0x2
+ bne _080AF906
+ movs r0, 0x16
+ ldrsb r0, [r2, r0]
+ adds r1, r0
+_080AF906:
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ bge _080AF912
+ adds r1, r0, 0
+ b _080AF918
+_080AF912:
+ cmp r1, 0x7F
+ ble _080AF918
+ movs r1, 0x7F
+_080AF918:
+ adds r0, r1, 0
+ adds r0, 0x80
+ muls r0, r3
+ lsrs r0, 8
+ strb r0, [r2, 0x10]
+ movs r0, 0x7F
+ subs r0, r1
+ muls r0, r3
+ lsrs r0, 8
+ strb r0, [r2, 0x11]
+_080AF92C:
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _080AF970
+ movs r0, 0xE
+ ldrsb r0, [r2, r0]
+ ldrb r1, [r2, 0xF]
+ muls r0, r1
+ movs r1, 0xC
+ ldrsb r1, [r2, r1]
+ adds r1, r0
+ lsls r1, 2
+ movs r0, 0xA
+ ldrsb r0, [r2, r0]
+ lsls r0, 8
+ adds r1, r0
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0xD]
+ adds r1, r0, r1
+ ldrb r0, [r2, 0x18]
+ cmp r0, 0
+ bne _080AF96A
+ movs r0, 0x16
+ ldrsb r0, [r2, r0]
+ lsls r0, 4
+ adds r1, r0
+_080AF96A:
+ asrs r0, r1, 8
+ strb r0, [r2, 0x8]
+ strb r1, [r2, 0x9]
+_080AF970:
+ movs r0, 0xFA
+ ands r0, r3
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF8C8
+
+ thumb_func_start sub_80AF97C
+sub_80AF97C:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r12, r2
+ cmp r0, 0x4
+ bne _080AF9B4
+ cmp r5, 0x14
+ bhi _080AF998
+ movs r5, 0
+ b _080AF9A6
+_080AF998:
+ adds r0, r5, 0
+ subs r0, 0x15
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3B
+ bls _080AF9A6
+ movs r5, 0x3B
+_080AF9A6:
+ ldr r0, _080AF9B0
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ b _080AFA16
+ .align 2, 0
+_080AF9B0: .4byte gUnknown_826FBB4
+_080AF9B4:
+ cmp r5, 0x23
+ bhi _080AF9C0
+ movs r0, 0
+ mov r12, r0
+ movs r5, 0
+ b _080AF9D2
+_080AF9C0:
+ adds r0, r5, 0
+ subs r0, 0x24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x82
+ bls _080AF9D2
+ movs r5, 0x82
+ movs r1, 0xFF
+ mov r12, r1
+_080AF9D2:
+ ldr r3, _080AFA1C
+ adds r0, r5, r3
+ ldrb r6, [r0]
+ ldr r4, _080AFA20
+ movs r2, 0xF
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 1
+ adds r0, r4
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ asrs r0, r6, 4
+ adds r6, r1, 0
+ asrs r6, r0
+ adds r0, r5, 0x1
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ ands r0, r2
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r1, 4
+ asrs r0, r1
+ subs r0, r6
+ mov r7, r12
+ muls r7, r0
+ adds r0, r7, 0
+ asrs r0, 8
+ adds r0, r6, r0
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1
+_080AFA16:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AFA1C: .4byte gUnknown_826FB18
+_080AFA20: .4byte gUnknown_826FB9C
+ thumb_func_end sub_80AF97C
+
+ thumb_func_start sub_80AFA24
+sub_80AFA24:
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ beq _080AFA4C
+ cmp r0, 0x2
+ bgt _080AFA38
+ cmp r0, 0x1
+ beq _080AFA3E
+ b _080AFA60
+_080AFA38:
+ cmp r1, 0x3
+ beq _080AFA54
+ b _080AFA60
+_080AFA3E:
+ ldr r1, _080AFA48
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r1, 0x2
+ b _080AFA68
+ .align 2, 0
+_080AFA48: .4byte 0x04000063
+_080AFA4C:
+ ldr r1, _080AFA50
+ b _080AFA62
+ .align 2, 0
+_080AFA50: .4byte 0x04000069
+_080AFA54:
+ ldr r1, _080AFA5C
+ movs r0, 0
+ b _080AFA6A
+ .align 2, 0
+_080AFA5C: .4byte 0x04000070
+_080AFA60:
+ ldr r1, _080AFA70
+_080AFA62:
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r1, 0x4
+_080AFA68:
+ movs r0, 0x80
+_080AFA6A:
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080AFA70: .4byte 0x04000079
+ thumb_func_end sub_80AFA24
+
+ thumb_func_start sub_80AFA74
+sub_80AFA74:
+ push {r4,lr}
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x2]
+ lsls r2, r0, 24
+ lsrs r4, r2, 24
+ ldrb r3, [r1, 0x3]
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ cmp r4, r3
+ bcc _080AFA94
+ lsrs r0, r2, 25
+ cmp r0, r3
+ bcc _080AFAA0
+ movs r0, 0xF
+ strb r0, [r1, 0x1B]
+ b _080AFAAE
+_080AFA94:
+ lsrs r0, 25
+ cmp r0, r4
+ bcc _080AFAA0
+ movs r0, 0xF0
+ strb r0, [r1, 0x1B]
+ b _080AFAAE
+_080AFAA0:
+ movs r0, 0xFF
+ strb r0, [r1, 0x1B]
+ ldrb r2, [r1, 0x3]
+ ldrb r3, [r1, 0x2]
+ adds r0, r2, r3
+ lsrs r0, 4
+ b _080AFABE
+_080AFAAE:
+ ldrb r2, [r1, 0x3]
+ ldrb r3, [r1, 0x2]
+ adds r0, r2, r3
+ lsrs r0, 4
+ strb r0, [r1, 0xA]
+ cmp r0, 0xF
+ bls _080AFAC0
+ movs r0, 0xF
+_080AFABE:
+ strb r0, [r1, 0xA]
+_080AFAC0:
+ ldrb r2, [r1, 0x6]
+ ldrb r3, [r1, 0xA]
+ adds r0, r2, 0
+ muls r0, r3
+ adds r0, 0xF
+ asrs r0, 4
+ strb r0, [r1, 0x19]
+ ldrb r0, [r1, 0x1C]
+ ldrb r2, [r1, 0x1B]
+ ands r0, r2
+ strb r0, [r1, 0x1B]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFA74
+
+ thumb_func_start sub_80AFADC
+sub_80AFADC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _080AFAFC
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _080AFB00
+ subs r0, 0x1
+ ldr r1, [sp, 0x4]
+ strb r0, [r1, 0xA]
+ b _080AFB06
+ .align 2, 0
+_080AFAFC: .4byte SOUND_INFO_PTR
+_080AFB00:
+ movs r0, 0xE
+ ldr r2, [sp, 0x4]
+ strb r0, [r2, 0xA]
+_080AFB06:
+ movs r6, 0x1
+ ldr r0, [sp, 0x4]
+ ldr r4, [r0, 0x1C]
+_080AFB0C:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ ands r0, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ bne _080AFB22
+ b _080AFF0C
+_080AFB22:
+ cmp r6, 0x2
+ beq _080AFB54
+ cmp r6, 0x2
+ bgt _080AFB30
+ cmp r6, 0x1
+ beq _080AFB36
+ b _080AFB8C
+_080AFB30:
+ cmp r6, 0x3
+ beq _080AFB6C
+ b _080AFB8C
+_080AFB36:
+ ldr r0, _080AFB48
+ str r0, [sp, 0x8]
+ ldr r7, _080AFB4C
+ ldr r2, _080AFB50
+ str r2, [sp, 0xC]
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ adds r2, 0x2
+ b _080AFB9C
+ .align 2, 0
+_080AFB48: .4byte 0x04000060
+_080AFB4C: .4byte 0x04000062
+_080AFB50: .4byte 0x04000063
+_080AFB54:
+ ldr r0, _080AFB60
+ str r0, [sp, 0x8]
+ ldr r7, _080AFB64
+ ldr r2, _080AFB68
+ b _080AFB94
+ .align 2, 0
+_080AFB60: .4byte 0x04000061
+_080AFB64: .4byte 0x04000068
+_080AFB68: .4byte 0x04000069
+_080AFB6C:
+ ldr r0, _080AFB80
+ str r0, [sp, 0x8]
+ ldr r7, _080AFB84
+ ldr r2, _080AFB88
+ str r2, [sp, 0xC]
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ adds r2, 0x2
+ b _080AFB9C
+ .align 2, 0
+_080AFB80: .4byte 0x04000070
+_080AFB84: .4byte 0x04000072
+_080AFB88: .4byte 0x04000073
+_080AFB8C:
+ ldr r0, _080AFBEC
+ str r0, [sp, 0x8]
+ ldr r7, _080AFBF0
+ ldr r2, _080AFBF4
+_080AFB94:
+ str r2, [sp, 0xC]
+ adds r0, 0xB
+ str r0, [sp, 0x10]
+ adds r2, 0x4
+_080AFB9C:
+ str r2, [sp, 0x14]
+ ldr r0, [sp, 0x4]
+ ldrb r0, [r0, 0xA]
+ str r0, [sp]
+ ldr r2, [sp, 0xC]
+ ldrb r0, [r2]
+ mov r8, r0
+ adds r2, r1, 0
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFC92
+ movs r3, 0x40
+ adds r0, r3, 0
+ ands r0, r2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x1
+ mov r10, r0
+ movs r1, 0x40
+ adds r1, r4
+ mov r9, r1
+ cmp r5, 0
+ bne _080AFCB6
+ movs r0, 0x3
+ strb r0, [r4]
+ strb r0, [r4, 0x1D]
+ adds r0, r4, 0
+ str r3, [sp, 0x18]
+ bl sub_80AFA74
+ ldr r3, [sp, 0x18]
+ cmp r6, 0x2
+ beq _080AFC04
+ cmp r6, 0x2
+ bgt _080AFBF8
+ cmp r6, 0x1
+ beq _080AFBFE
+ b _080AFC58
+ .align 2, 0
+_080AFBEC: .4byte 0x04000071
+_080AFBF0: .4byte 0x04000078
+_080AFBF4: .4byte 0x04000079
+_080AFBF8:
+ cmp r6, 0x3
+ beq _080AFC10
+ b _080AFC58
+_080AFBFE:
+ ldrb r0, [r4, 0x1F]
+ ldr r2, [sp, 0x8]
+ strb r0, [r2]
+_080AFC04:
+ ldr r0, [r4, 0x24]
+ lsls r0, 6
+ ldrb r1, [r4, 0x1E]
+ adds r0, r1, r0
+ strb r0, [r7]
+ b _080AFC64
+_080AFC10:
+ ldr r1, [r4, 0x24]
+ ldr r0, [r4, 0x28]
+ cmp r1, r0
+ beq _080AFC38
+ ldr r2, [sp, 0x8]
+ strb r3, [r2]
+ ldr r1, _080AFC4C
+ ldr r2, [r4, 0x24]
+ ldr r0, [r2]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0xC]
+ str r0, [r1]
+ str r2, [r4, 0x28]
+_080AFC38:
+ ldr r0, [sp, 0x8]
+ strb r5, [r0]
+ ldrb r0, [r4, 0x1E]
+ strb r0, [r7]
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0
+ beq _080AFC50
+ movs r0, 0xC0
+ b _080AFC72
+ .align 2, 0
+_080AFC4C: .4byte 0x04000090
+_080AFC50:
+ movs r1, 0x80
+ negs r1, r1
+ strb r1, [r4, 0x1A]
+ b _080AFC74
+_080AFC58:
+ ldrb r0, [r4, 0x1E]
+ strb r0, [r7]
+ ldr r0, [r4, 0x24]
+ lsls r0, 3
+ ldr r2, [sp, 0x10]
+ strb r0, [r2]
+_080AFC64:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x8
+ mov r8, r0
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0
+ beq _080AFC72
+ movs r0, 0x40
+_080AFC72:
+ strb r0, [r4, 0x1A]
+_080AFC74:
+ ldrb r1, [r4, 0x4]
+ movs r2, 0
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r1, r6, 0x1
+ mov r10, r1
+ movs r1, 0x40
+ adds r1, r4
+ mov r9, r1
+ cmp r0, 0
+ bne _080AFC8E
+ b _080AFDCA
+_080AFC8E:
+ strb r2, [r4, 0x9]
+ b _080AFDF8
+_080AFC92:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFCC4
+ ldrb r0, [r4, 0xD]
+ subs r0, 0x1
+ strb r0, [r4, 0xD]
+ movs r2, 0xFF
+ ands r0, r2
+ lsls r0, 24
+ adds r1, r6, 0x1
+ mov r10, r1
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ ble _080AFCB6
+ b _080AFE0A
+_080AFCB6:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80AFA24
+ movs r0, 0
+ strb r0, [r4]
+ b _080AFF08
+_080AFCC4:
+ movs r0, 0x40
+ ands r0, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ beq _080AFD04
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFD04
+ movs r0, 0xFC
+ ands r0, r1
+ movs r2, 0
+ strb r0, [r4]
+ ldrb r1, [r4, 0x7]
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFD36
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _080AFDF8
+ ldrb r2, [r4, 0x7]
+ mov r8, r2
+ b _080AFDF8
+_080AFD04:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _080AFDF8
+ cmp r6, 0x3
+ bne _080AFD16
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+_080AFD16:
+ adds r0, r4, 0
+ bl sub_80AFA74
+ movs r0, 0x3
+ ldrb r2, [r4]
+ ands r0, r2
+ cmp r0, 0
+ bne _080AFD6A
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r0, 24
+ cmp r0, 0
+ bgt _080AFD66
+_080AFD36:
+ ldrb r2, [r4, 0xC]
+ ldrb r1, [r4, 0xA]
+ adds r0, r2, 0
+ muls r0, r1
+ adds r0, 0xFF
+ asrs r0, 8
+ movs r1, 0
+ strb r0, [r4, 0x9]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AFCB6
+ movs r0, 0x4
+ ldrb r2, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _080AFE0A
+ movs r2, 0x8
+ mov r8, r2
+ b _080AFE0A
+_080AFD66:
+ ldrb r0, [r4, 0x7]
+ b _080AFDF6
+_080AFD6A:
+ cmp r0, 0x1
+ bne _080AFD76
+_080AFD6E:
+ ldrb r0, [r4, 0x19]
+ strb r0, [r4, 0x9]
+ movs r0, 0x7
+ b _080AFDF6
+_080AFD76:
+ cmp r0, 0x2
+ bne _080AFDBA
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r0, 24
+ ldrb r2, [r4, 0x19]
+ lsls r1, r2, 24
+ cmp r0, r1
+ bgt _080AFDB6
+_080AFD8E:
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ bne _080AFD9E
+ movs r0, 0xFC
+ ldrb r1, [r4]
+ ands r0, r1
+ strb r0, [r4]
+ b _080AFD36
+_080AFD9E:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ ldrb r2, [r4, 0x1D]
+ orrs r0, r2
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _080AFD6E
+ movs r0, 0x8
+ mov r8, r0
+ b _080AFD6E
+_080AFDB6:
+ ldrb r0, [r4, 0x5]
+ b _080AFDF6
+_080AFDBA:
+ ldrb r0, [r4, 0x9]
+ adds r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ ldrb r2, [r4, 0xA]
+ cmp r0, r2
+ bcc _080AFDF4
+_080AFDCA:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ movs r2, 0
+ strb r0, [r4]
+ ldrb r1, [r4, 0x5]
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFD8E
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ ldrb r0, [r4, 0xA]
+ strb r0, [r4, 0x9]
+ cmp r6, 0x3
+ beq _080AFDF8
+ ldrb r2, [r4, 0x5]
+ mov r8, r2
+ b _080AFDF8
+_080AFDF4:
+ ldrb r0, [r4, 0x4]
+_080AFDF6:
+ strb r0, [r4, 0xB]
+_080AFDF8:
+ ldrb r0, [r4, 0xB]
+ subs r0, 0x1
+ strb r0, [r4, 0xB]
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _080AFE0A
+ subs r0, 0x1
+ str r0, [sp]
+ b _080AFD04
+_080AFE0A:
+ movs r0, 0x2
+ ldrb r1, [r4, 0x1D]
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFE82
+ cmp r6, 0x3
+ bgt _080AFE4A
+ movs r0, 0x8
+ ldrb r2, [r4, 0x1]
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFE4A
+ ldr r0, _080AFE34
+ ldrb r0, [r0]
+ cmp r0, 0x3F
+ bgt _080AFE3C
+ ldr r0, [r4, 0x20]
+ adds r0, 0x2
+ ldr r1, _080AFE38
+ b _080AFE46
+ .align 2, 0
+_080AFE34: .4byte 0x04000089
+_080AFE38: .4byte 0x000007fc
+_080AFE3C:
+ cmp r0, 0x7F
+ bgt _080AFE4A
+ ldr r0, [r4, 0x20]
+ adds r0, 0x1
+ ldr r1, _080AFE58
+_080AFE46:
+ ands r0, r1
+ str r0, [r4, 0x20]
+_080AFE4A:
+ cmp r6, 0x4
+ beq _080AFE5C
+ ldr r0, [r4, 0x20]
+ ldr r1, [sp, 0x10]
+ strb r0, [r1]
+ b _080AFE6A
+ .align 2, 0
+_080AFE58: .4byte 0x000007fe
+_080AFE5C:
+ ldr r2, [sp, 0x10]
+ ldrb r0, [r2]
+ movs r1, 0x8
+ ands r1, r0
+ ldr r0, [r4, 0x20]
+ orrs r0, r1
+ strb r0, [r2]
+_080AFE6A:
+ movs r0, 0xC0
+ ldrb r1, [r4, 0x1A]
+ ands r0, r1
+ adds r1, r4, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ adds r0, r1, r0
+ strb r0, [r4, 0x1A]
+ movs r2, 0xFF
+ ands r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+_080AFE82:
+ movs r0, 0x1
+ ldrb r2, [r4, 0x1D]
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFF08
+ ldr r1, _080AFECC
+ ldrb r0, [r1]
+ ldrb r2, [r4, 0x1C]
+ bics r0, r2
+ ldrb r2, [r4, 0x1B]
+ orrs r0, r2
+ strb r0, [r1]
+ cmp r6, 0x3
+ bne _080AFED4
+ ldr r0, _080AFED0
+ ldrb r1, [r4, 0x9]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, [sp, 0xC]
+ strb r0, [r2]
+ movs r1, 0x80
+ adds r0, r1, 0
+ ldrb r2, [r4, 0x1A]
+ ands r0, r2
+ cmp r0, 0
+ beq _080AFF08
+ ldr r0, [sp, 0x8]
+ strb r1, [r0]
+ ldrb r0, [r4, 0x1A]
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ movs r0, 0x7F
+ ldrb r2, [r4, 0x1A]
+ ands r0, r2
+ strb r0, [r4, 0x1A]
+ b _080AFF08
+ .align 2, 0
+_080AFECC: .4byte 0x04000081
+_080AFED0: .4byte gUnknown_826FBF0
+_080AFED4:
+ movs r0, 0xF
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldrb r2, [r4, 0x9]
+ lsls r0, r2, 4
+ add r0, r8
+ ldr r1, [sp, 0xC]
+ strb r0, [r1]
+ movs r2, 0x80
+ ldrb r0, [r4, 0x1A]
+ orrs r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ cmp r6, 0x1
+ bne _080AFF08
+ ldr r0, [sp, 0x8]
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080AFF08
+ ldrb r0, [r4, 0x1A]
+ orrs r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+_080AFF08:
+ movs r0, 0
+ strb r0, [r4, 0x1D]
+_080AFF0C:
+ mov r6, r10
+ mov r4, r9
+ cmp r6, 0x4
+ bgt _080AFF16
+ b _080AFB0C
+_080AFF16:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFADC
+
+ thumb_func_start sub_80AFF28
+sub_80AFF28:
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _080AFF4C
+ cmp r3, r0
+ bne _080AFF44
+ strh r1, [r2, 0x1E]
+ ldrh r4, [r2, 0x1C]
+ adds r0, r1, 0
+ muls r0, r4
+ asrs r0, 8
+ strh r0, [r2, 0x20]
+_080AFF44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFF4C: .4byte 0x68736d53
+ thumb_func_end sub_80AFF28
+
+ thumb_func_start sub_80AFF50
+sub_80AFF50:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r6, r2, 16
+ ldr r3, [r4, 0x34]
+ ldr r0, _080AFFB4
+ cmp r3, r0
+ bne _080AFFA8
+ adds r0, r3, 0x1
+ str r0, [r4, 0x34]
+ ldrb r2, [r4, 0x8]
+ ldr r1, [r4, 0x2C]
+ movs r5, 0x1
+ cmp r2, 0
+ ble _080AFFA4
+ movs r0, 0x80
+ mov r8, r0
+ lsrs r6, 18
+ movs r0, 0x3
+ mov r12, r0
+_080AFF80:
+ adds r0, r7, 0
+ ands r0, r5
+ cmp r0, 0
+ beq _080AFF9A
+ ldrb r3, [r1]
+ mov r0, r8
+ ands r0, r3
+ cmp r0, 0
+ beq _080AFF9A
+ strb r6, [r1, 0x13]
+ mov r0, r12
+ orrs r0, r3
+ strb r0, [r1]
+_080AFF9A:
+ subs r2, 0x1
+ adds r1, 0x50
+ lsls r5, 1
+ cmp r2, 0
+ bgt _080AFF80
+_080AFFA4:
+ ldr r0, _080AFFB4
+ str r0, [r4, 0x34]
+_080AFFA8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFFB4: .4byte 0x68736d53
+ thumb_func_end sub_80AFF50
+
+ thumb_func_start sub_80AFFB8
+sub_80AFFB8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r12, r1
+ lsls r2, 16
+ lsrs r6, r2, 16
+ ldr r3, [r4, 0x34]
+ ldr r0, _080B0028
+ cmp r3, r0
+ bne _080B001A
+ adds r0, r3, 0x1
+ str r0, [r4, 0x34]
+ ldrb r2, [r4, 0x8]
+ ldr r3, [r4, 0x2C]
+ movs r5, 0x1
+ cmp r2, 0
+ ble _080B0016
+ movs r0, 0x80
+ mov r9, r0
+ lsls r0, r6, 16
+ asrs r7, r0, 24
+ movs r0, 0xC
+ mov r8, r0
+_080AFFF0:
+ mov r0, r12
+ ands r0, r5
+ cmp r0, 0
+ beq _080B000C
+ ldrb r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _080B000C
+ strb r7, [r3, 0xB]
+ strb r6, [r3, 0xD]
+ mov r0, r8
+ orrs r0, r1
+ strb r0, [r3]
+_080B000C:
+ subs r2, 0x1
+ adds r3, 0x50
+ lsls r5, 1
+ cmp r2, 0
+ bgt _080AFFF0
+_080B0016:
+ ldr r0, _080B0028
+ str r0, [r4, 0x34]
+_080B001A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0028: .4byte 0x68736d53
+ thumb_func_end sub_80AFFB8
+
+ thumb_func_start sub_80B002C
+sub_80B002C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r3, [r4, 0x34]
+ ldr r0, _080B0090
+ cmp r3, r0
+ bne _080B0084
+ adds r0, r3, 0x1
+ str r0, [r4, 0x34]
+ ldrb r2, [r4, 0x8]
+ ldr r1, [r4, 0x2C]
+ movs r5, 0x1
+ cmp r2, 0
+ ble _080B0080
+ movs r0, 0x80
+ mov r8, r0
+ movs r0, 0x3
+ mov r12, r0
+_080B005C:
+ adds r0, r7, 0
+ ands r0, r5
+ cmp r0, 0
+ beq _080B0076
+ ldrb r3, [r1]
+ mov r0, r8
+ ands r0, r3
+ cmp r0, 0
+ beq _080B0076
+ strb r6, [r1, 0x15]
+ mov r0, r12
+ orrs r0, r3
+ strb r0, [r1]
+_080B0076:
+ subs r2, 0x1
+ adds r1, 0x50
+ lsls r5, 1
+ cmp r2, 0
+ bgt _080B005C
+_080B0080:
+ ldr r0, _080B0090
+ str r0, [r4, 0x34]
+_080B0084:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0090: .4byte 0x68736d53
+ thumb_func_end sub_80B002C
+
+ thumb_func_start sub_80B0094
+sub_80B0094:
+ adds r1, r0, 0
+ movs r2, 0
+ movs r0, 0
+ strb r0, [r1, 0x1A]
+ strb r0, [r1, 0x16]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ bne _080B00A8
+ movs r0, 0xC
+ b _080B00AA
+_080B00A8:
+ movs r0, 0x3
+_080B00AA:
+ ldrb r2, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ thumb_func_end sub_80B0094
+
+ thumb_func_start sub_80B00B4
+sub_80B00B4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r1, [r6, 0x34]
+ ldr r0, _080B0124
+ cmp r1, r0
+ bne _080B0114
+ adds r0, r1, 0x1
+ str r0, [r6, 0x34]
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ movs r7, 0x1
+ cmp r5, 0
+ ble _080B0110
+ mov r9, r8
+_080B00E4:
+ mov r0, r10
+ ands r0, r7
+ cmp r0, 0
+ beq _080B0106
+ movs r0, 0x80
+ ldrb r1, [r4]
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0106
+ mov r0, r8
+ strb r0, [r4, 0x17]
+ mov r1, r9
+ cmp r1, 0
+ bne _080B0106
+ adds r0, r4, 0
+ bl sub_80B0094
+_080B0106:
+ subs r5, 0x1
+ adds r4, 0x50
+ lsls r7, 1
+ cmp r5, 0
+ bgt _080B00E4
+_080B0110:
+ ldr r0, _080B0124
+ str r0, [r6, 0x34]
+_080B0114:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0124: .4byte 0x68736d53
+ thumb_func_end sub_80B00B4
+
+ thumb_func_start sub_80B0128
+sub_80B0128:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r1, [r6, 0x34]
+ ldr r0, _080B0198
+ cmp r1, r0
+ bne _080B0188
+ adds r0, r1, 0x1
+ str r0, [r6, 0x34]
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ movs r7, 0x1
+ cmp r5, 0
+ ble _080B0184
+ mov r9, r8
+_080B0158:
+ mov r0, r10
+ ands r0, r7
+ cmp r0, 0
+ beq _080B017A
+ movs r0, 0x80
+ ldrb r1, [r4]
+ ands r0, r1
+ cmp r0, 0
+ beq _080B017A
+ mov r0, r8
+ strb r0, [r4, 0x19]
+ mov r1, r9
+ cmp r1, 0
+ bne _080B017A
+ adds r0, r4, 0
+ bl sub_80B0094
+_080B017A:
+ subs r5, 0x1
+ adds r4, 0x50
+ lsls r7, 1
+ cmp r5, 0
+ bgt _080B0158
+_080B0184:
+ ldr r0, _080B0198
+ str r0, [r6, 0x34]
+_080B0188:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0198: .4byte 0x68736d53
+ thumb_func_end sub_80B0128
+
+ thumb_func_start sub_80B019C
+sub_80B019C:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ ldr r1, [r6, 0x40]
+ ldrb r5, [r1]
+ adds r2, r1, 0x1
+ str r2, [r6, 0x40]
+ ldr r0, [r4, 0x18]
+ ldrb r1, [r1, 0x1]
+ adds r3, r1, r0
+ adds r0, r2, 0x1
+ str r0, [r6, 0x40]
+ ldrb r2, [r2, 0x1]
+ adds r0, 0x1
+ str r0, [r6, 0x40]
+ cmp r5, 0x11
+ bls _080B01C0
+ b _080B02EE
+_080B01C0:
+ lsls r0, r5, 2
+ ldr r1, _080B01CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B01CC: .4byte _080B01D0
+ .align 2, 0
+_080B01D0:
+ .4byte _080B0218
+ .4byte _080B021C
+ .4byte _080B0224
+ .4byte _080B022C
+ .4byte _080B0236
+ .4byte _080B0244
+ .4byte _080B0252
+ .4byte _080B025A
+ .4byte _080B0262
+ .4byte _080B026A
+ .4byte _080B0272
+ .4byte _080B027A
+ .4byte _080B0282
+ .4byte _080B0290
+ .4byte _080B029E
+ .4byte _080B02AC
+ .4byte _080B02BA
+ .4byte _080B02C8
+_080B0218:
+ strb r2, [r3]
+ b _080B02EE
+_080B021C:
+ ldrb r1, [r3]
+ adds r0, r1, r2
+ strb r0, [r3]
+ b _080B02EE
+_080B0224:
+ ldrb r1, [r3]
+ subs r0, r1, r2
+ strb r0, [r3]
+ b _080B02EE
+_080B022C:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ b _080B02EE
+_080B0236:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r1, [r3]
+ ldrb r0, [r0]
+ adds r0, r1, r0
+ strb r0, [r3]
+ b _080B02EE
+_080B0244:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r1, [r3]
+ ldrb r0, [r0]
+ subs r0, r1, r0
+ strb r0, [r3]
+ b _080B02EE
+_080B0252:
+ ldrb r3, [r3]
+ cmp r3, r2
+ beq _080B02D4
+ b _080B02E8
+_080B025A:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bne _080B02D4
+ b _080B02E8
+_080B0262:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bhi _080B02D4
+ b _080B02E8
+_080B026A:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bcs _080B02D4
+ b _080B02E8
+_080B0272:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bls _080B02D4
+ b _080B02E8
+_080B027A:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bcc _080B02D4
+ b _080B02E8
+_080B0282:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080B02D4
+ b _080B02E8
+_080B0290:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bne _080B02D4
+ b _080B02E8
+_080B029E:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bhi _080B02D4
+ b _080B02E8
+_080B02AC:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080B02D4
+ b _080B02E8
+_080B02BA:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bls _080B02D4
+ b _080B02E8
+_080B02C8:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080B02E8
+_080B02D4:
+ ldr r0, _080B02E4
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl _call_via_r2
+ b _080B02EE
+ .align 2, 0
+_080B02E4: .4byte gUnknown_203AE84
+_080B02E8:
+ ldr r0, [r6, 0x40]
+ adds r0, 0x4
+ str r0, [r6, 0x40]
+_080B02EE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B019C
+
+ thumb_func_start sub_80B02F4
+sub_80B02F4:
+ push {lr}
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ ldr r2, _080B0310
+ lsls r3, 2
+ adds r3, r2
+ ldr r2, [r3]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0310: .4byte gUnknown_826FC34
+ thumb_func_end sub_80B02F4
+
+ thumb_func_start sub_80B0314
+sub_80B0314:
+ push {lr}
+ ldr r2, _080B0324
+ ldr r2, [r2]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0324: .4byte gUnknown_203AE80
+ thumb_func_end sub_80B0314
+
+ thumb_func_start sub_80B0328
+sub_80B0328:
+ push {r4,lr}
+ ldr r2, [r1, 0x40]
+ ldr r0, _080B0360
+ ands r4, r0
+ ldrb r0, [r2]
+ orrs r4, r0
+ ldrb r0, [r2, 0x1]
+ lsls r3, r0, 8
+ ldr r0, _080B0364
+ ands r4, r0
+ orrs r4, r3
+ ldrb r0, [r2, 0x2]
+ lsls r3, r0, 16
+ ldr r0, _080B0368
+ ands r4, r0
+ orrs r4, r3
+ ldrb r0, [r2, 0x3]
+ lsls r3, r0, 24
+ ldr r0, _080B036C
+ ands r4, r0
+ orrs r4, r3
+ str r4, [r1, 0x28]
+ adds r2, 0x4
+ str r2, [r1, 0x40]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0360: .4byte 0xffffff00
+_080B0364: .4byte 0xffff00ff
+_080B0368: .4byte 0xff00ffff
+_080B036C: .4byte 0x00ffffff
+ thumb_func_end sub_80B0328
+
+ thumb_func_start sub_80B0370
+sub_80B0370:
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ adds r0, 0x24
+ strb r2, [r0]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B0370
+
+ thumb_func_start sub_80B0384
+sub_80B0384:
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ strb r2, [r0]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B0384
+
+ thumb_func_start sub_80B0398
+sub_80B0398:
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x2D
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B0398
+
+ thumb_func_start sub_80B03AC
+sub_80B03AC:
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x2E
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B03AC
+
+ thumb_func_start sub_80B03C0
+sub_80B03C0:
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x2F
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B03C0
+
+ thumb_func_start sub_80B03D4
+sub_80B03D4:
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ strb r2, [r1, 0x1E]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B03D4
+
+ thumb_func_start sub_80B03E0
+sub_80B03E0:
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ strb r2, [r1, 0x1F]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B03E0
+
+ thumb_func_start sub_80B03EC
+sub_80B03EC:
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x26
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end sub_80B03EC
+
+ thumb_func_start ply_xswee
+ply_xswee:
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x27
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xswee
+
+ thumb_func_start nullsub_139
+nullsub_139:
+ bx lr
+ thumb_func_end nullsub_139
+
+ .align 2, 0 @ Don't pad with nop.