diff options
Diffstat (limited to 'asm/m4a.s')
-rw-r--r-- | asm/m4a.s | 4625 |
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. |