.include "asm/macros.s" .syntax unified .text thumb_func_start umul3232H32 umul3232H32: @ 82DF04C adr r2, _082DF050 bx r2 .arm _082DF050: umull r2, r3, r0, r1 add r0, r3, 0 bx lr thumb_func_end umul3232H32 thumb_func_start SoundMain SoundMain: @ 82DF05C ldr r0, _082DF0C8 ldr r0, [r0] ldr r2, _082DF0CC ldr r3, [r0] cmp r2, r3 beq _082DF06A bx lr _082DF06A: 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 _082DF08E ldr r2, _082DF0D4 ldrb r2, [r2] cmp r2, 0xA0 bcs _082DF08C adds r2, 0xE4 _082DF08C: adds r1, r2 _082DF08E: str r1, [sp, 0x14] ldr r3, [r0, 0x20] cmp r3, 0 beq _082DF09E ldr r0, [r0, 0x24] bl _082DF496 ldr r0, [sp, 0x18] _082DF09E: ldr r3, [r0, 0x28] bl _082DF496 ldr r0, [sp, 0x18] ldr r3, [r0, 0x10] mov r8, r3 ldr r5, _082DF0D8 adds r5, r0 ldrb r4, [r0, 0x4] subs r7, r4, 0x1 bls _082DF0BE ldrb r1, [r0, 0xB] subs r1, r7 mov r2, r8 muls r2, r1 adds r5, r2 _082DF0BE: str r5, [sp, 0x8] ldr r6, _082DF0DC ldr r3, _082DF0D0 bx r3 .align 2, 0 _082DF0C8: .4byte 0x03007ff0 _082DF0CC: .4byte 0x68736d53 _082DF0D0: .4byte 0x03001aa9 _082DF0D4: .4byte 0x04000006 _082DF0D8: .4byte 0x00000350 _082DF0DC: .4byte 0x00000630 thumb_func_end SoundMain thumb_func_start SoundMainRAM SoundMainRAM: @ 82DF0E0 ldrb r3, [r0, 0x5] cmp r3, 0 beq _082DF140 adr r1, _082DF0EC bx r1 .arm _082DF0EC: cmp r4, 0x2 addeq r7, r0, 0x350 addne r7, r5, r8 mov r4, r8 _082DF0FC: 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 _082DF0FC add r0, pc, 0x2F bx r0 .thumb _082DF140: movs r0, 0 mov r1, r8 adds r6, r5 lsrs r1, 3 bcc _082DF14E stm r5!, {r0} stm r6!, {r0} _082DF14E: lsrs r1, 1 bcc _082DF15A stm r5!, {r0} stm r6!, {r0} stm r5!, {r0} stm r6!, {r0} _082DF15A: 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 _082DF15A ldr r4, [sp, 0x18] ldr r0, [r4, 0x18] mov r12, r0 ldrb r0, [r4, 0x6] adds r4, 0x50 _082DF178: str r0, [sp, 0x4] ldr r3, [r4, 0x24] ldr r0, [sp, 0x14] cmp r0, 0 beq _082DF198 ldr r1, _082DF194 ldrb r1, [r1] cmp r1, 0xA0 bcs _082DF18C adds r1, 0xE4 _082DF18C: cmp r1, r0 bcc _082DF198 b _082DF482 .align 2, 0 _082DF194: .4byte 0x04000006 _082DF198: ldrb r6, [r4] movs r0, 0xC7 tst r0, r6 bne _082DF1A2 b _082DF478 _082DF1A2: movs r0, 0x80 tst r0, r6 beq _082DF1D8 movs r0, 0x40 tst r0, r6 bne _082DF1E8 movs r6, 0x3 strb r6, [r4] adds r0, r3, 0 adds r0, 0x10 ldr r1, [r4, 0x18] adds r0, r1 str r0, [r4, 0x28] ldr r0, [r3, 0xC] subs r0, r1 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 _082DF230 movs r0, 0x10 orrs r6, r0 strb r6, [r4] b _082DF230 _082DF1D8: ldrb r5, [r4, 0x9] movs r0, 0x4 tst r0, r6 beq _082DF1EE ldrb r0, [r4, 0xD] subs r0, 0x1 strb r0, [r4, 0xD] bhi _082DF23E _082DF1E8: movs r0, 0 strb r0, [r4] b _082DF478 _082DF1EE: movs r0, 0x40 tst r0, r6 beq _082DF20E ldrb r0, [r4, 0x7] muls r5, r0 lsrs r5, 8 ldrb r0, [r4, 0xC] cmp r5, r0 bhi _082DF23E _082DF200: ldrb r5, [r4, 0xC] cmp r5, 0 beq _082DF1E8 movs r0, 0x4 orrs r6, r0 strb r6, [r4] b _082DF23E _082DF20E: movs r2, 0x3 ands r2, r6 cmp r2, 0x2 bne _082DF22C ldrb r0, [r4, 0x5] muls r5, r0 lsrs r5, 8 ldrb r0, [r4, 0x6] cmp r5, r0 bhi _082DF23E adds r5, r0, 0 beq _082DF200 subs r6, 0x1 strb r6, [r4] b _082DF23E _082DF22C: cmp r2, 0x3 bne _082DF23E _082DF230: ldrb r0, [r4, 0x4] adds r5, r0 cmp r5, 0xFF bcc _082DF23E movs r5, 0xFF subs r6, 0x1 strb r6, [r4] _082DF23E: 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 _082DF272 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] _082DF272: ldr r5, [sp, 0x8] ldr r2, [r4, 0x18] ldr r3, [r4, 0x28] adr r0, _082DF27C bx r0 .arm _082DF27C: str r8, [sp] ldr r9, [r4, 0x1C] ldrb r10, [r4, 0xA] ldrb r11, [r4, 0xB] ldrb r0, [r4, 0x1] tst r0, 0x30 beq _082DF2A0 bl sub_82DF49C b _082DF460 _082DF2A0: mov r10, r10, lsl 16 mov r11, r11, lsl 16 ldrb r0, [r4, 0x1] tst r0, 0x8 beq _082DF3D4 _082DF2B4: cmp r2, 0x4 ble _082DF324 subs r2, r2, r8 movgt r9, 0 bgt _082DF2E0 mov r9, r8 add r2, r2, r8 sub r8, r2, 0x4 sub r9, r9, r8 ands r2, r2, 0x3 moveq r2, 0x4 _082DF2E0: ldr r6, [r5] ldr r7, [r5, 0x630] _082DF2E8: 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 _082DF2E8 str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _082DF2E0 adds r8, r8, r9 beq _082DF464 _082DF324: ldr r6, [r5] ldr r7, [r5, 0x630] _082DF32C: 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 _082DF39C _082DF350: adds r5, r5, 0x40000000 bcc _082DF32C str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _082DF2B4 b _082DF464 _082DF36C: ldr r0, [sp, 0x18] cmp r0, 0 beq _082DF390 ldr r3, [sp, 0x14] rsb lr, r2, 0 _082DF380: adds r2, r0, r2 bgt _082DF434 sub lr, lr, r0 b _082DF380 _082DF390: ldmia sp!, {r4,r12} mov r2, 0 b _082DF3AC _082DF39C: ldr r2, [sp, 0x10] cmp r2, 0 ldrne r3, [sp, 0xC] bne _082DF350 _082DF3AC: 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 _082DF46C _082DF3D4: stmdb sp!, {r4,r12} ldr r1, [r4, 0x20] mul r4, r12, r1 ldrsb r0, [r3] ldrsb r1, [r3, 0x1]! sub r1, r1, r0 _082DF3EC: ldr r6, [r5] ldr r7, [r5, 0x630] _082DF3F4: mul lr, r9, r1 add lr, r0, lr, asr 23 mul r12, r10, lr bic r12, r12, 0xFF0000 add r6, r12, r6, ror 8 mul r12, r11, lr bic r12, r12, 0xFF0000 add r7, r12, r7, ror 8 add r9, r9, r4 movs lr, r9, lsr 23 beq _082DF440 bic r9, r9, 0x3F800000 subs r2, r2, lr ble _082DF36C subs lr, lr, 0x1 addeq r0, r0, r1 _082DF434: ldrsbne r0, [r3, lr]! ldrsb r1, [r3, 0x1]! sub r1, r1, r0 _082DF440: adds r5, r5, 0x40000000 bcc _082DF3F4 str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _082DF3EC sub r3, r3, 0x1 ldmia sp!, {r4,r12} _082DF460: str r9, [r4, 0x1C] _082DF464: str r2, [r4, 0x18] str r3, [r4, 0x28] _082DF46C: ldr r8, [sp] add r0, pc, 0x1 bx r0 .thumb _082DF478: ldr r0, [sp, 0x4] subs r0, 0x1 ble _082DF482 adds r4, 0x40 b _082DF178 _082DF482: ldr r0, [sp, 0x18] ldr r3, _082DF498 str r3, [r0] add sp, 0x1C pop {r0-r7} mov r8, r0 mov r9, r1 mov r10, r2 mov r11, r3 pop {r3} _082DF496: bx r3 .align 2, 0 _082DF498: .4byte 0x68736d53 thumb_func_end SoundMainRAM arm_func_start sub_82DF49C sub_82DF49C: @ 82DF49C ldr r6, [r4, 0x24] ldrb r0, [r4] tst r0, 0x20 bne _082DF4EC orr r0, r0, 0x20 strb r0, [r4] ldrb r0, [r4, 0x1] tst r0, 0x10 beq _082DF4D4 ldr r1, [r6, 0xC] add r1, r1, r6, lsl 1 add r1, r1, 0x20 sub r3, r1, r3 str r3, [r4, 0x28] _082DF4D4: ldrh r0, [r6] cmp r0, 0 beq _082DF4EC sub r3, r3, r6 sub r3, r3, 0x10 str r3, [r4, 0x28] _082DF4EC: stmdb sp!, {r8,r12,lr} mov r10, r10, lsl 16 mov r11, r11, lsl 16 ldr r1, [r4, 0x20] ldrb r0, [r4, 0x1] tst r0, 0x8 movne r8, 0x800000 muleq r8, r12, r1 ldrh r0, [r6] cmp r0, 0 beq _082DF6A0 mov r0, 0xFF000000 str r0, [r4, 0x3C] ldrb r0, [r4, 0x1] tst r0, 0x10 bne _082DF5F8 bl sub_82DF758 mov r0, r1 add r3, r3, 0x1 bl sub_82DF758 sub r1, r1, r0 _082DF540: ldr r6, [r5] ldr r7, [r5, 0x630] _082DF548: mul lr, r9, r1 add lr, r0, lr, asr 23 mul r12, r10, lr bic r12, r12, 0xFF0000 add r6, r12, r6, ror 8 mul r12, r11, lr bic r12, r12, 0xFF0000 add r7, r12, r7, ror 8 add r9, r9, r8 movs lr, r9, lsr 23 beq _082DF5A8 bic r9, r9, 0x3F800000 subs r2, r2, lr ble _082DF5D0 subs lr, lr, 0x1 bne _082DF590 add r0, r0, r1 b _082DF59C _082DF590: add r3, r3, lr bl sub_82DF758 mov r0, r1 _082DF59C: add r3, r3, 0x1 bl sub_82DF758 sub r1, r1, r0 _082DF5A8: adds r5, r5, 0x40000000 bcc _082DF548 str r7, [r5, 0x630] str r6, [r5], 0x4 ldr r6, [sp] subs r6, r6, 0x4 str r6, [sp] bgt _082DF540 sub r3, r3, 0x1 b _082DF728 _082DF5D0: ldr r0, [sp, 0x1C] cmp r0, 0 beq _082DF72C ldr r3, [r4, 0x24] ldr r3, [r3, 0x8] rsb lr, r2, 0 _082DF5E8: adds r2, r2, r0 bgt _082DF590 sub lr, lr, r0 b _082DF5E8 _082DF5F8: sub r3, r3, 0x1 bl sub_82DF758 mov r0, r1 sub r3, r3, 0x1 bl sub_82DF758 sub r1, r1, r0 _082DF610: ldr r6, [r5] ldr r7, [r5, 0x630] _082DF618: mul lr, r9, r1 add lr, r0, lr, asr 23 mul r12, r10, lr bic r12, r12, 0xFF0000 add r6, r12, r6, ror 8 mul r12, r11, lr bic r12, r12, 0xFF0000 add r7, r12, r7, ror 8 add r9, r9, r8 movs lr, r9, lsr 23 beq _082DF678 bic r9, r9, 0x3F800000 subs r2, r2, lr ble _082DF72C subs lr, lr, 0x1 bne _082DF660 add r0, r0, r1 b _082DF66C _082DF660: sub r3, r3, lr bl sub_82DF758 mov r0, r1 _082DF66C: sub r3, r3, 0x1 bl sub_82DF758 sub r1, r1, r0 _082DF678: adds r5, r5, 0x40000000 bcc _082DF618 str r7, [r5, 0x630] str r6, [r5], 0x4 ldr r6, [sp] subs r6, r6, 0x4 str r6, [sp] bgt _082DF610 add r3, r3, 0x2 b _082DF728 _082DF6A0: ldrb r0, [r4, 0x1] tst r0, 0x10 beq _082DF728 ldrsb r0, [r3, -0x1]! ldrsb r1, [r3, -0x1] sub r1, r1, r0 _082DF6B8: ldr r6, [r5] ldr r7, [r5, 0x630] _082DF6C0: mul lr, r9, r1 add lr, r0, lr, asr 23 mul r12, r10, lr bic r12, r12, 0xFF0000 add r6, r12, r6, ror 8 mul r12, r11, lr bic r12, r12, 0xFF0000 add r7, r12, r7, ror 8 add r9, r9, r8 movs lr, r9, lsr 23 beq _082DF704 bic r9, r9, 0x3F800000 subs r2, r2, lr ble _082DF72C ldrsb r0, [r3, -lr]! ldrsb r1, [r3, -0x1] sub r1, r1, r0 _082DF704: adds r5, r5, 0x40000000 bcc _082DF6C0 str r7, [r5, 0x630] str r6, [r5], 0x4 ldr r6, [sp] subs r6, r6, 0x4 str r6, [sp] bgt _082DF6B8 add r3, r3, 0x1 _082DF728: ldmia sp!, {r8,r12,pc} _082DF72C: mov r2, 0 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 ldmia sp!, {r8,r12,pc} arm_func_end sub_82DF49C arm_func_start sub_82DF758 sub_82DF758: @ 82DF758 stmdb sp!, {r0,r2,r5-r7,lr} mov r0, r3, lsr 6 ldr r1, [r4, 0x3C] cmp r0, r1 beq _082DF7CC str r0, [r4, 0x3C] mov r1, 0x21 mul r2, r1, r0 ldr r1, [r4, 0x24] add r2, r2, r1 add r2, r2, 0x10 ldr r5, _082DF7DC ldr r6, _082DF7E0 mov r7, 0x40 ldrb lr, [r2], 0x1 strb lr, [r5], 0x1 ldrb r1, [r2], 0x1 b _082DF7B4 _082DF7A0: ldrb r1, [r2], 0x1 mov r0, r1, lsr 4 ldrsb r0, [r6, r0] add lr, lr, r0 strb lr, [r5], 0x1 _082DF7B4: and r0, r1, 0xF ldrsb r0, [r6, r0] add lr, lr, r0 strb lr, [r5], 0x1 subs r7, r7, 0x2 bgt _082DF7A0 _082DF7CC: ldr r5, _082DF7DC and r0, r3, 0x3F ldrsb r1, [r5, r0] ldmia sp!, {r0,r2,r5-r7,pc} .align 2, 0 _082DF7DC: .4byte 0x03001300 _082DF7E0: .4byte gUnknown_08675A70 arm_func_end sub_82DF758 thumb_func_start SoundMainBTM SoundMainBTM: @ 82DF7E4 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 SoundMainBTM thumb_func_start ClearChain ClearChain: @ 82DF7FC ldr r3, [r0, 0x2C] cmp r3, 0 beq _082DF81A ldr r1, [r0, 0x34] ldr r2, [r0, 0x30] cmp r2, 0 beq _082DF80E str r1, [r2, 0x34] b _082DF810 _082DF80E: str r1, [r3, 0x20] _082DF810: cmp r1, 0 beq _082DF816 str r2, [r1, 0x30] _082DF816: movs r1, 0 str r1, [r0, 0x2C] _082DF81A: bx lr thumb_func_end ClearChain thumb_func_start ply_fine ply_fine: @ 82DF81C push {r4,r5,lr} adds r5, r1, 0 ldr r4, [r5, 0x20] cmp r4, 0 beq _082DF840 _082DF826: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _082DF834 movs r0, 0x40 orrs r1, r0 strb r1, [r4] _082DF834: adds r0, r4, 0 bl ClearChain ldr r4, [r4, 0x34] cmp r4, 0 bne _082DF826 _082DF840: movs r0, 0 strb r0, [r5] pop {r4,r5} pop {r0} bx r0 thumb_func_end ply_fine thumb_func_start MPlyJmpTblCopy MPlyJmpTblCopy: @ 82DF84C mov r12, lr movs r1, 0x24 ldr r2, _082DF87C _082DF852: ldr r3, [r2] bl chk_adr_r2 stm r0!, {r3} adds r2, 0x4 subs r1, 0x1 bgt _082DF852 bx r12 thumb_func_end MPlyJmpTblCopy thumb_func_start ldrb_r3_r2 ldrb_r3_r2: @ 82DF864 ldrb r3, [r2] thumb_func_end ldrb_r3_r2 non_word_aligned_thumb_func_start chk_adr_r2 chk_adr_r2: @ 82DF866 push {r0} lsrs r0, r2, 25 bne _082DF878 ldr r0, _082DF87C cmp r2, r0 bcc _082DF876 lsrs r0, r2, 14 beq _082DF878 _082DF876: movs r3, 0 _082DF878: pop {r0} bx lr .align 2, 0 _082DF87C: .4byte gUnknown_086759E0 thumb_func_end chk_adr_r2 thumb_func_start ld_r3_tp_adr_i ld_r3_tp_adr_i: @ 82DF880 ldr r2, [r1, 0x40] _082DF882: adds r3, r2, 0x1 str r3, [r1, 0x40] ldrb r3, [r2] b chk_adr_r2 thumb_func_end ld_r3_tp_adr_i thumb_func_start ply_goto ply_goto: @ 82DF88C push {lr} _082DF88E: 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 ldrb_r3_r2 orrs r0, r3 str r0, [r1, 0x40] pop {r0} bx r0 thumb_func_end ply_goto thumb_func_start ply_patt ply_patt: @ 82DF8AC ldrb r2, [r1, 0x2] cmp r2, 0x3 bcs _082DF8C4 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 ply_goto _082DF8C4: b ply_fine thumb_func_end ply_patt thumb_func_start play_pend play_pend: @ 82DF8C8 ldrb r2, [r1, 0x2] cmp r2, 0 beq _082DF8DA subs r2, 0x1 strb r2, [r1, 0x2] lsls r2, 2 adds r3, r1, r2 ldr r2, [r3, 0x44] str r2, [r1, 0x40] _082DF8DA: bx lr thumb_func_end play_pend thumb_func_start ply_rept ply_rept: @ 82DF8DC push {lr} ldr r2, [r1, 0x40] ldrb r3, [r2] cmp r3, 0 bne _082DF8EC adds r2, 0x1 str r2, [r1, 0x40] b _082DF88E _082DF8EC: ldrb r3, [r1, 0x3] adds r3, 0x1 strb r3, [r1, 0x3] mov r12, r3 bl ld_r3_tp_adr_i cmp r12, r3 bcs _082DF8FE b _082DF88E _082DF8FE: movs r3, 0 strb r3, [r1, 0x3] adds r2, 0x5 str r2, [r1, 0x40] pop {r0} bx r0 thumb_func_end ply_rept thumb_func_start ply_prio ply_prio: @ 82DF90C mov r12, lr bl ld_r3_tp_adr_i strb r3, [r1, 0x1D] bx r12 thumb_func_end ply_prio thumb_func_start ply_tempo ply_tempo: @ 82DF918 mov r12, lr bl ld_r3_tp_adr_i 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 ply_tempo thumb_func_start ply_keysh ply_keysh: @ 82DF92C mov r12, lr bl ld_r3_tp_adr_i strb r3, [r1, 0xA] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end ply_keysh thumb_func_start ply_voice ply_voice: @ 82DF940 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 chk_adr_r2 str r3, [r1, 0x24] ldr r3, [r2, 0x4] bl chk_adr_r2 str r3, [r1, 0x28] ldr r3, [r2, 0x8] bl chk_adr_r2 str r3, [r1, 0x2C] bx r12 thumb_func_end ply_voice thumb_func_start ply_vol ply_vol: @ 82DF970 mov r12, lr bl ld_r3_tp_adr_i strb r3, [r1, 0x12] ldrb r3, [r1] movs r2, 0x3 orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end ply_vol thumb_func_start ply_pan ply_pan: @ 82DF984 mov r12, lr bl ld_r3_tp_adr_i subs r3, 0x40 strb r3, [r1, 0x14] ldrb r3, [r1] movs r2, 0x3 orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end ply_pan thumb_func_start ply_bend ply_bend: @ 82DF998 mov r12, lr bl ld_r3_tp_adr_i subs r3, 0x40 strb r3, [r1, 0xE] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end ply_bend thumb_func_start ply_bendr ply_bendr: @ 82DF9AC mov r12, lr bl ld_r3_tp_adr_i strb r3, [r1, 0xF] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end ply_bendr thumb_func_start ply_lfodl ply_lfodl: @ 82DF9C0 mov r12, lr bl ld_r3_tp_adr_i strb r3, [r1, 0x1B] bx r12 thumb_func_end ply_lfodl thumb_func_start ply_modt ply_modt: @ 82DF9CC mov r12, lr bl ld_r3_tp_adr_i ldrb r0, [r1, 0x18] cmp r0, r3 beq _082DF9E2 strb r3, [r1, 0x18] ldrb r3, [r1] movs r2, 0xF orrs r3, r2 strb r3, [r1] _082DF9E2: bx r12 thumb_func_end ply_modt thumb_func_start ply_tune ply_tune: @ 82DF9E4 mov r12, lr bl ld_r3_tp_adr_i subs r3, 0x40 strb r3, [r1, 0xC] ldrb r3, [r1] movs r2, 0xC orrs r3, r2 strb r3, [r1] bx r12 thumb_func_end ply_tune thumb_func_start ply_port ply_port: @ 82DF9F8 mov r12, lr ldr r2, [r1, 0x40] ldrb r3, [r2] adds r2, 0x1 ldr r0, _082DFA0C adds r0, r3 bl _082DF882 strb r3, [r0] bx r12 .align 2, 0 _082DFA0C: .4byte 0x04000060 thumb_func_end ply_port thumb_func_start SoundVSync_rev01 SoundVSync_rev01: @ 82DFA10 ldr r0, _082DFCBC ldr r0, [r0] ldr r2, _082DFCC0 ldr r3, [r0] subs r3, r2 cmp r3, 0x1 bhi _082DFA50 ldrb r1, [r0, 0x4] subs r1, 0x1 strb r1, [r0, 0x4] bgt _082DFA50 ldrb r1, [r0, 0xB] strb r1, [r0, 0x4] ldr r2, _082DFA54 ldr r1, [r2, 0x8] lsls r1, 7 bcc _082DFA36 ldr r1, _082DFA58 str r1, [r2, 0x8] _082DFA36: ldr r1, [r2, 0x14] lsls r1, 7 bcc _082DFA40 ldr r1, _082DFA58 str r1, [r2, 0x14] _082DFA40: 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] _082DFA50: bx lr .align 2, 0 _082DFA54: .4byte 0x040000bc _082DFA58: .4byte 0x84400004 thumb_func_end SoundVSync_rev01 thumb_func_start MPlayMain_rev01 MPlayMain_rev01: @ 82DFA5C ldr r2, _082DFCC0 ldr r3, [r0, 0x34] cmp r2, r3 beq _082DFA66 bx lr _082DFA66: adds r3, 0x1 str r3, [r0, 0x34] push {r0,lr} ldr r3, [r0, 0x38] cmp r3, 0 beq _082DFA78 ldr r0, [r0, 0x3C] bl _082DFCB4 _082DFA78: 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 _082DFA90 b _082DFCA4 _082DFA90: ldr r0, _082DFCBC ldr r0, [r0] mov r8, r0 adds r0, r7, 0 bl FadeOutBody_rev01 ldr r0, [r7, 0x4] cmp r0, 0 bge _082DFAA4 b _082DFCA4 _082DFAA4: ldrh r0, [r7, 0x22] ldrh r1, [r7, 0x20] adds r0, r1 b _082DFBF4 _082DFAAC: ldrb r6, [r7, 0x8] ldr r5, [r7, 0x2C] movs r3, 0x1 movs r4, 0 _082DFAB4: ldrb r0, [r5] movs r1, 0x80 tst r1, r0 bne _082DFABE b _082DFBD0 _082DFABE: mov r10, r3 orrs r4, r3 mov r11, r4 ldr r4, [r5, 0x20] cmp r4, 0 beq _082DFAF2 _082DFACA: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _082DFAE6 ldrb r0, [r4, 0x10] cmp r0, 0 beq _082DFAEC subs r0, 0x1 strb r0, [r4, 0x10] bne _082DFAEC movs r0, 0x40 orrs r1, r0 strb r1, [r4] b _082DFAEC _082DFAE6: adds r0, r4, 0 bl ClearChain_rev _082DFAEC: ldr r4, [r4, 0x34] cmp r4, 0 bne _082DFACA _082DFAF2: ldrb r3, [r5] movs r0, 0x40 tst r0, r3 beq _082DFB70 adds r0, r5, 0 bl Clear64byte_rev 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 _082DFB70 _082DFB18: ldr r2, [r5, 0x40] ldrb r1, [r2] cmp r1, 0x80 bcs _082DFB24 ldrb r1, [r5, 0x7] b _082DFB2E _082DFB24: adds r2, 0x1 str r2, [r5, 0x40] cmp r1, 0xBD bcc _082DFB2E strb r1, [r5, 0x7] _082DFB2E: cmp r1, 0xCF bcc _082DFB44 mov r0, r8 ldr r3, [r0, 0x38] adds r0, r1, 0 subs r0, 0xCF adds r1, r7, 0 adds r2, r5, 0 bl _082DFCB4 b _082DFB70 _082DFB44: cmp r1, 0xB0 bls _082DFB66 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 _082DFCB4 ldrb r0, [r5] cmp r0, 0 beq _082DFBCC b _082DFB70 _082DFB66: ldr r0, _082DFCB8 subs r1, 0x80 adds r1, r0 ldrb r0, [r1] strb r0, [r5, 0x1] _082DFB70: ldrb r0, [r5, 0x1] cmp r0, 0 beq _082DFB18 subs r0, 0x1 strb r0, [r5, 0x1] ldrb r1, [r5, 0x19] cmp r1, 0 beq _082DFBCC ldrb r0, [r5, 0x17] cmp r0, 0 beq _082DFBCC ldrb r0, [r5, 0x1C] cmp r0, 0 beq _082DFB92 subs r0, 0x1 strb r0, [r5, 0x1C] b _082DFBCC _082DFB92: ldrb r0, [r5, 0x1A] adds r0, r1 strb r0, [r5, 0x1A] adds r1, r0, 0 subs r0, 0x40 lsls r0, 24 bpl _082DFBA6 lsls r2, r1, 24 asrs r2, 24 b _082DFBAA _082DFBA6: movs r0, 0x80 subs r2, r0, r1 _082DFBAA: ldrb r0, [r5, 0x17] muls r0, r2 asrs r2, r0, 6 ldrb r0, [r5, 0x16] eors r0, r2 lsls r0, 24 beq _082DFBCC strb r2, [r5, 0x16] ldrb r0, [r5] ldrb r1, [r5, 0x18] cmp r1, 0 bne _082DFBC6 movs r1, 0xC b _082DFBC8 _082DFBC6: movs r1, 0x3 _082DFBC8: orrs r0, r1 strb r0, [r5] _082DFBCC: mov r3, r10 mov r4, r11 _082DFBD0: subs r6, 0x1 ble _082DFBDC movs r0, 0x50 adds r5, r0 lsls r3, 1 b _082DFAB4 _082DFBDC: ldr r0, [r7, 0xC] adds r0, 0x1 str r0, [r7, 0xC] cmp r4, 0 bne _082DFBEE movs r0, 0x80 lsls r0, 24 str r0, [r7, 0x4] b _082DFCA4 _082DFBEE: str r4, [r7, 0x4] ldrh r0, [r7, 0x22] subs r0, 0x96 _082DFBF4: strh r0, [r7, 0x22] cmp r0, 0x96 bcc _082DFBFC b _082DFAAC _082DFBFC: ldrb r2, [r7, 0x8] ldr r5, [r7, 0x2C] _082DFC00: ldrb r0, [r5] movs r1, 0x80 tst r1, r0 beq _082DFC9A movs r1, 0xF tst r1, r0 beq _082DFC9A mov r9, r2 adds r0, r7, 0 adds r1, r5, 0 bl TrkVolPitSet_rev01 ldr r4, [r5, 0x20] cmp r4, 0 beq _082DFC90 _082DFC1E: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 bne _082DFC2E adds r0, r4, 0 bl ClearChain_rev b _082DFC8A _082DFC2E: ldrb r0, [r4, 0x1] movs r6, 0x7 ands r6, r0 ldrb r3, [r5] movs r0, 0x3 tst r0, r3 beq _082DFC4C bl ChnVolSetAsm cmp r6, 0 beq _082DFC4C ldrb r0, [r4, 0x1D] movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1D] _082DFC4C: ldrb r3, [r5] movs r0, 0xC tst r0, r3 beq _082DFC8A ldrb r1, [r4, 0x8] movs r0, 0x8 ldrsb r0, [r5, r0] adds r2, r1, r0 bpl _082DFC60 movs r2, 0 _082DFC60: cmp r6, 0 beq _082DFC7E mov r0, r8 ldr r3, [r0, 0x30] adds r1, r2, 0 ldrb r2, [r5, 0x9] adds r0, r6, 0 bl _082DFCB4 str r0, [r4, 0x20] ldrb r0, [r4, 0x1D] movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x1D] b _082DFC8A _082DFC7E: adds r1, r2, 0 ldrb r2, [r5, 0x9] ldr r0, [r4, 0x24] bl MidiKey2fr str r0, [r4, 0x20] _082DFC8A: ldr r4, [r4, 0x34] cmp r4, 0 bne _082DFC1E _082DFC90: ldrb r0, [r5] movs r1, 0xF0 ands r0, r1 strb r0, [r5] mov r2, r9 _082DFC9A: subs r2, 0x1 ble _082DFCA4 movs r0, 0x50 adds r5, r0 bgt _082DFC00 _082DFCA4: ldr r0, _082DFCC0 str r0, [r7, 0x34] pop {r0-r7} mov r8, r0 mov r9, r1 mov r10, r2 mov r11, r3 pop {r3} _082DFCB4: bx r3 .align 2, 0 _082DFCB8: .4byte gUnknown_08675C64 _082DFCBC: .4byte 0x03007ff0 _082DFCC0: .4byte 0x68736d53 thumb_func_end MPlayMain_rev01 thumb_func_start TrackStop_rev01 TrackStop_rev01: @ 82DFCC4 push {r4-r6,lr} adds r5, r1, 0 ldrb r1, [r5] movs r0, 0x80 tst r0, r1 beq _082DFCFC ldr r4, [r5, 0x20] cmp r4, 0 beq _082DFCFA movs r6, 0 _082DFCD8: ldrb r0, [r4] cmp r0, 0 beq _082DFCF2 ldrb r0, [r4, 0x1] movs r3, 0x7 ands r0, r3 beq _082DFCF0 ldr r3, _082DFD04 ldr r3, [r3] ldr r3, [r3, 0x2C] bl _082DFCB4 _082DFCF0: strb r6, [r4] _082DFCF2: str r6, [r4, 0x2C] ldr r4, [r4, 0x34] cmp r4, 0 bne _082DFCD8 _082DFCFA: str r4, [r5, 0x20] _082DFCFC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _082DFD04: .4byte 0x03007ff0 thumb_func_end TrackStop_rev01 thumb_func_start ChnVolSetAsm ChnVolSetAsm: @ 82DFD08 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 _082DFD20 movs r0, 0xFF _082DFD20: 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 _082DFD34 movs r0, 0xFF _082DFD34: strb r0, [r4, 0x3] bx lr thumb_func_end ChnVolSetAsm thumb_func_start ply_note_rev01 ply_note_rev01: @ 82DFD38 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, _082DFF34 ldr r1, [r1] str r1, [sp, 0x4] ldr r1, _082DFF38 adds r0, r1 ldrb r0, [r0] strb r0, [r5, 0x4] ldr r3, [r5, 0x40] ldrb r0, [r3] cmp r0, 0x80 bcs _082DFD7E strb r0, [r5, 0x5] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0x80 bcs _082DFD7C strb r0, [r5, 0x6] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0x80 bcs _082DFD7C ldrb r1, [r5, 0x4] adds r1, r0 strb r1, [r5, 0x4] adds r3, 0x1 _082DFD7C: str r3, [r5, 0x40] _082DFD7E: movs r0, 0 str r0, [sp, 0x14] adds r4, r5, 0 adds r4, 0x24 ldrb r2, [r4] movs r0, 0xC0 tst r0, r2 beq _082DFDD0 ldrb r3, [r5, 0x5] movs r0, 0x40 tst r0, r2 beq _082DFD9E ldr r1, [r5, 0x2C] adds r1, r3 ldrb r0, [r1] b _082DFDA0 _082DFD9E: adds r0, r3, 0 _082DFDA0: 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 _082DFDB8 b _082DFF22 _082DFDB8: movs r0, 0x80 tst r0, r2 beq _082DFDD4 ldrb r1, [r6, 0x3] movs r0, 0x80 tst r0, r1 beq _082DFDCC subs r1, 0xC0 lsls r1, 1 str r1, [sp, 0x14] _082DFDCC: ldrb r3, [r6, 0x1] b _082DFDD4 _082DFDD0: mov r9, r4 ldrb r3, [r5, 0x5] _082DFDD4: str r3, [sp, 0x8] ldr r6, [sp] ldrb r1, [r6, 0x9] ldrb r0, [r5, 0x1D] adds r0, r1 cmp r0, 0xFF bls _082DFDE4 movs r0, 0xFF _082DFDE4: str r0, [sp, 0x10] mov r6, r9 ldrb r0, [r6] movs r6, 0x7 ands r6, r0 str r6, [sp, 0xC] beq _082DFE24 ldr r0, [sp, 0x4] ldr r4, [r0, 0x1C] cmp r4, 0 bne _082DFDFC b _082DFF22 _082DFDFC: subs r6, 0x1 lsls r0, r6, 6 adds r4, r0 ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _082DFE78 movs r0, 0x40 tst r0, r1 bne _082DFE78 ldrb r1, [r4, 0x13] ldr r0, [sp, 0x10] cmp r1, r0 bcc _082DFE78 beq _082DFE1C b _082DFF22 _082DFE1C: ldr r0, [r4, 0x2C] cmp r0, r5 bcs _082DFE78 b _082DFF22 _082DFE24: 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 _082DFE32: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _082DFE78 movs r0, 0x40 tst r0, r1 beq _082DFE4C cmp r2, 0 bne _082DFE50 adds r2, 0x1 ldrb r6, [r4, 0x13] ldr r7, [r4, 0x2C] b _082DFE6A _082DFE4C: cmp r2, 0 bne _082DFE6C _082DFE50: ldrb r0, [r4, 0x13] cmp r0, r6 bcs _082DFE5C adds r6, r0, 0 ldr r7, [r4, 0x2C] b _082DFE6A _082DFE5C: bhi _082DFE6C ldr r0, [r4, 0x2C] cmp r0, r7 bls _082DFE68 adds r7, r0, 0 b _082DFE6A _082DFE68: bcc _082DFE6C _082DFE6A: mov r8, r4 _082DFE6C: adds r4, 0x40 subs r3, 0x1 bgt _082DFE32 mov r4, r8 cmp r4, 0 beq _082DFF22 _082DFE78: adds r0, r4, 0 bl ClearChain_rev movs r1, 0 str r1, [r4, 0x30] ldr r3, [r5, 0x20] str r3, [r4, 0x34] cmp r3, 0 beq _082DFE8C str r4, [r3, 0x30] _082DFE8C: str r4, [r5, 0x20] str r5, [r4, 0x2C] ldrb r0, [r5, 0x1B] strb r0, [r5, 0x1C] cmp r0, r1 beq _082DFE9E adds r1, r5, 0 bl clear_modM _082DFE9E: ldr r0, [sp] adds r1, r5, 0 bl TrkVolPitSet_rev01 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 ChnVolSetAsm ldrb r1, [r4, 0x8] movs r0, 0x8 ldrsb r0, [r5, r0] adds r3, r1, r0 bpl _082DFED8 movs r3, 0 _082DFED8: ldr r6, [sp, 0xC] cmp r6, 0 beq _082DFF06 mov r6, r9 ldrb r0, [r6, 0x2] strb r0, [r4, 0x1E] ldrb r1, [r6, 0x3] movs r0, 0x80 tst r0, r1 bne _082DFEF2 movs r0, 0x70 tst r0, r1 bne _082DFEF4 _082DFEF2: movs r1, 0x8 _082DFEF4: 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 _082DFCB4 b _082DFF14 _082DFF06: ldr r0, [r5, 0x3C] str r0, [r4, 0x18] ldrb r2, [r5, 0x9] adds r1, r3, 0 adds r0, r7, 0 bl MidiKey2fr _082DFF14: str r0, [r4, 0x20] movs r0, 0x80 strb r0, [r4] ldrb r1, [r5] movs r0, 0xF0 ands r0, r1 strb r0, [r5] _082DFF22: 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 _082DFF34: .4byte 0x03007ff0 _082DFF38: .4byte gUnknown_08675C64 thumb_func_end ply_note_rev01 thumb_func_start ply_endtie_rev01 ply_endtie_rev01: @ 82DFF3C push {r4,r5} ldr r2, [r1, 0x40] ldrb r3, [r2] cmp r3, 0x80 bcs _082DFF4E strb r3, [r1, 0x5] adds r2, 0x1 str r2, [r1, 0x40] b _082DFF50 _082DFF4E: ldrb r3, [r1, 0x5] _082DFF50: ldr r1, [r1, 0x20] cmp r1, 0 beq _082DFF78 movs r4, 0x83 movs r5, 0x40 _082DFF5A: ldrb r2, [r1] tst r2, r4 beq _082DFF72 tst r2, r5 bne _082DFF72 ldrb r0, [r1, 0x11] cmp r0, r3 bne _082DFF72 movs r0, 0x40 orrs r2, r0 strb r2, [r1] b _082DFF78 _082DFF72: ldr r1, [r1, 0x34] cmp r1, 0 bne _082DFF5A _082DFF78: pop {r4,r5} bx lr thumb_func_end ply_endtie_rev01 thumb_func_start clear_modM clear_modM: @ 82DFF7C movs r2, 0 strb r2, [r1, 0x16] strb r2, [r1, 0x1A] ldrb r2, [r1, 0x18] cmp r2, 0 bne _082DFF8C movs r2, 0xC b _082DFF8E _082DFF8C: movs r2, 0x3 _082DFF8E: ldrb r3, [r1] orrs r3, r2 strb r3, [r1] bx lr thumb_func_end clear_modM thumb_func_start ld_r3_tp_adr_i_rev ld_r3_tp_adr_i_rev: @ 82DFF98 ldr r2, [r1, 0x40] adds r3, r2, 0x1 str r3, [r1, 0x40] ldrb r3, [r2] bx lr thumb_func_end ld_r3_tp_adr_i_rev thumb_func_start ply_lfos_rev01 ply_lfos_rev01: @ 82DFFA4 mov r12, lr bl ld_r3_tp_adr_i_rev strb r3, [r1, 0x19] cmp r3, 0 bne _082DFFB4 bl clear_modM _082DFFB4: bx r12 thumb_func_end ply_lfos_rev01 thumb_func_start ply_mod_rev01 ply_mod_rev01: @ 82DFFB8 mov r12, lr bl ld_r3_tp_adr_i_rev strb r3, [r1, 0x17] cmp r3, 0 bne _082DFFC8 bl clear_modM _082DFFC8: bx r12 thumb_func_end ply_mod_rev01 thumb_func_start MidiKey2fr MidiKey2fr: @ 82DFFCC push {r4-r7,lr} mov r12, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r7, r2, 24 cmp r6, 0xB2 bls _082DFFE0 movs r6, 0xB2 movs r7, 0xFF lsls r7, 24 _082DFFE0: ldr r3, _082E0028 adds r0, r6, r3 ldrb r5, [r0] ldr r4, _082E002C 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 _082E0028: .4byte gUnknown_08675A80 _082E002C: .4byte gUnknown_08675B34 thumb_func_end MidiKey2fr thumb_func_start DummyFunc DummyFunc: @ 82E0030 bx lr thumb_func_end DummyFunc thumb_func_start MPlayContinue MPlayContinue: @ 82E0034 adds r2, r0, 0 ldr r3, [r2, 0x34] ldr r0, _082E0048 cmp r3, r0 bne _082E0046 ldr r0, [r2, 0x4] ldr r1, _082E004C ands r0, r1 str r0, [r2, 0x4] _082E0046: bx lr .align 2, 0 _082E0048: .4byte 0x68736d53 _082E004C: .4byte 0x7fffffff thumb_func_end MPlayContinue thumb_func_start MPlayFadeOut @ void MPlayFadeOut(mplay_table_entry *a1, s16 a2) MPlayFadeOut: @ 82E0050 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _082E006C cmp r3, r0 bne _082E0068 strh r1, [r2, 0x26] strh r1, [r2, 0x24] movs r0, 0x80 lsls r0, 1 strh r0, [r2, 0x28] _082E0068: bx lr .align 2, 0 _082E006C: .4byte 0x68736d53 thumb_func_end MPlayFadeOut thumb_func_start m4aSoundInit m4aSoundInit: @ 82E0070 push {r4-r6,lr} ldr r0, _082E00F0 movs r1, 0x2 negs r1, r1 ands r0, r1 ldr r1, _082E00F4 ldr r2, _082E00F8 bl CpuSet ldr r0, _082E00FC bl SoundInit_rev01 ldr r0, _082E0100 bl MPlayExtender ldr r0, _082E0104 bl SoundMode_rev01 ldr r0, _082E0108 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _082E00BE ldr r6, _082E010C adds r5, r0, 0 _082E00A2: ldr r4, [r6] ldr r1, [r6, 0x4] ldrb r2, [r6, 0x8] adds r0, r4, 0 bl MPlayOpen_rev01 ldrh r0, [r6, 0xA] strb r0, [r4, 0xB] ldr r0, _082E0110 str r0, [r4, 0x18] adds r6, 0xC subs r5, 0x1 cmp r5, 0 bne _082E00A2 _082E00BE: ldr r0, _082E0114 ldr r1, _082E0118 movs r2, 0x34 bl memcpy movs r5, 0 movs r6, 0 _082E00CC: lsls r0, r5, 6 ldr r1, _082E011C adds r0, r1 ldr r4, _082E0120 adds r4, r6, r4 adds r1, r4, 0 movs r2, 0x2 bl MPlayOpen_rev01 movs r0, 0 str r0, [r4, 0x20] adds r6, 0xA0 adds r5, 0x1 cmp r5, 0x1 ble _082E00CC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _082E00F0: .4byte SoundMainRAM _082E00F4: .4byte 0x03001aa8 _082E00F8: .4byte 0x04000200 _082E00FC: .4byte 0x03006380 _082E0100: .4byte 0x030074f0 _082E0104: .4byte 0x0094c500 _082E0108: .4byte 0x00000004 _082E010C: .4byte gUnknown_086B49C0 _082E0110: .4byte 0x030077f0 _082E0114: .4byte 0x030077b0 _082E0118: .4byte gUnknown_08675C98 _082E011C: .4byte 0x030073a0 _082E0120: .4byte 0x03007670 thumb_func_end m4aSoundInit thumb_func_start m4aSoundMain m4aSoundMain: @ 82E0124 push {lr} bl SoundMain pop {r0} bx r0 thumb_func_end m4aSoundMain thumb_func_start m4aSongNumStart m4aSongNumStart: @ 82E0130 push {lr} lsls r0, 16 ldr r2, _082E0154 ldr r1, _082E0158 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 MPlayStart_rev01 pop {r0} bx r0 .align 2, 0 _082E0154: .4byte gUnknown_086B49C0 _082E0158: .4byte gUnknown_086B49F0 thumb_func_end m4aSongNumStart thumb_func_start m4aSongNumStartOrChange m4aSongNumStartOrChange: @ 82E015C push {lr} lsls r0, 16 ldr r2, _082E0188 ldr r1, _082E018C 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 _082E0190 adds r0, r1, 0 adds r1, r2, 0 bl MPlayStart_rev01 b _082E01A4 .align 2, 0 _082E0188: .4byte gUnknown_086B49C0 _082E018C: .4byte gUnknown_086B49F0 _082E0190: ldr r2, [r1, 0x4] ldrh r0, [r1, 0x4] cmp r0, 0 beq _082E019C cmp r2, 0 bge _082E01A4 _082E019C: adds r0, r1, 0 adds r1, r3, 0 bl MPlayStart_rev01 _082E01A4: pop {r0} bx r0 thumb_func_end m4aSongNumStartOrChange thumb_func_start m4aSongNumStartOrContinue m4aSongNumStartOrContinue: @ 82E01A8 push {lr} lsls r0, 16 ldr r2, _082E01D4 ldr r1, _082E01D8 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 _082E01DC adds r0, r1, 0 adds r1, r2, 0 bl MPlayStart_rev01 b _082E01F8 .align 2, 0 _082E01D4: .4byte gUnknown_086B49C0 _082E01D8: .4byte gUnknown_086B49F0 _082E01DC: ldr r2, [r1, 0x4] ldrh r0, [r1, 0x4] cmp r0, 0 bne _082E01EE adds r0, r1, 0 adds r1, r3, 0 bl MPlayStart_rev01 b _082E01F8 _082E01EE: cmp r2, 0 bge _082E01F8 adds r0, r1, 0 bl MPlayContinue _082E01F8: pop {r0} bx r0 thumb_func_end m4aSongNumStartOrContinue thumb_func_start m4aSongNumStop m4aSongNumStop: @ 82E01FC push {lr} lsls r0, 16 ldr r2, _082E0228 ldr r1, _082E022C 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 _082E0222 adds r0, r2, 0 bl MPlayStop_rev01 _082E0222: pop {r0} bx r0 .align 2, 0 _082E0228: .4byte gUnknown_086B49C0 _082E022C: .4byte gUnknown_086B49F0 thumb_func_end m4aSongNumStop thumb_func_start m4aSongNumContinue m4aSongNumContinue: @ 82E0230 push {lr} lsls r0, 16 ldr r2, _082E025C ldr r1, _082E0260 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 _082E0256 adds r0, r2, 0 bl MPlayContinue _082E0256: pop {r0} bx r0 .align 2, 0 _082E025C: .4byte gUnknown_086B49C0 _082E0260: .4byte gUnknown_086B49F0 thumb_func_end m4aSongNumContinue thumb_func_start m4aMPlayAllStop m4aMPlayAllStop: @ 82E0264 push {r4,r5,lr} ldr r0, _082E029C lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _082E0282 ldr r5, _082E02A0 adds r4, r0, 0 _082E0274: ldr r0, [r5] bl MPlayStop_rev01 adds r5, 0xC subs r4, 0x1 cmp r4, 0 bne _082E0274 _082E0282: ldr r5, _082E02A4 movs r4, 0x1 _082E0286: adds r0, r5, 0 bl MPlayStop_rev01 adds r5, 0x40 subs r4, 0x1 cmp r4, 0 bge _082E0286 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _082E029C: .4byte 0x00000004 _082E02A0: .4byte gUnknown_086B49C0 _082E02A4: .4byte 0x030073a0 thumb_func_end m4aMPlayAllStop thumb_func_start m4aMPlayContinue m4aMPlayContinue: @ 82E02A8 push {lr} bl MPlayContinue pop {r0} bx r0 thumb_func_end m4aMPlayContinue thumb_func_start m4aMPlayAllContinue m4aMPlayAllContinue: @ 82E02B2 push {r4,r5,lr} ldr r0, _082E02EC lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _082E02D2 ldr r5, _082E02F0 adds r4, r0, 0 _082E02C4: ldr r0, [r5] bl MPlayContinue adds r5, 0xC subs r4, 0x1 cmp r4, 0 bne _082E02C4 _082E02D2: ldr r5, _082E02F4 movs r4, 0x1 _082E02D6: adds r0, r5, 0 bl MPlayContinue adds r5, 0x40 subs r4, 0x1 cmp r4, 0 bge _082E02D6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _082E02EC: .4byte 0x00000004 _082E02F0: .4byte gUnknown_086B49C0 _082E02F4: .4byte 0x030073a0 thumb_func_end m4aMPlayAllContinue thumb_func_start m4aMPlayFadeOut @ void m4aMPlayFadeOut(mplay_table_entry *a1, u16 a2) m4aMPlayFadeOut: @ 82E02F8 push {lr} lsls r1, 16 lsrs r1, 16 bl MPlayFadeOut pop {r0} bx r0 thumb_func_end m4aMPlayFadeOut thumb_func_start sub_82E0308 sub_82E0308: @ 82E0308 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _082E0320 cmp r3, r0 bne _082E031E strh r1, [r2, 0x26] strh r1, [r2, 0x24] ldr r0, _082E0324 strh r0, [r2, 0x28] _082E031E: bx lr .align 2, 0 _082E0320: .4byte 0x68736d53 _082E0324: .4byte 0x00000101 thumb_func_end sub_82E0308 thumb_func_start sub_82E0328 sub_82E0328: @ 82E0328 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _082E0348 cmp r3, r0 bne _082E0346 strh r1, [r2, 0x26] strh r1, [r2, 0x24] movs r0, 0x2 strh r0, [r2, 0x28] ldr r0, [r2, 0x4] ldr r1, _082E034C ands r0, r1 str r0, [r2, 0x4] _082E0346: bx lr .align 2, 0 _082E0348: .4byte 0x68736d53 _082E034C: .4byte 0x7fffffff thumb_func_end sub_82E0328 thumb_func_start m4aMPlayImmInit m4aMPlayImmInit: @ 82E0350 push {r4-r7,lr} ldrb r5, [r0, 0x8] ldr r4, [r0, 0x2C] cmp r5, 0 ble _082E0392 movs r7, 0x80 _082E035C: ldrb r1, [r4] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _082E038A movs r6, 0x40 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _082E038A adds r0, r4, 0 bl Clear64byte_rev 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] _082E038A: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _082E035C _082E0392: pop {r4-r7} pop {r0} bx r0 thumb_func_end m4aMPlayImmInit thumb_func_start MPlayExtender @ int MPlayExtender(void *dest) MPlayExtender: @ 82E0398 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 ldr r1, _082E0460 movs r0, 0x8F strh r0, [r1] ldr r3, _082E0464 movs r2, 0 strh r2, [r3] ldr r0, _082E0468 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, _082E046C ldr r4, [r0] ldr r6, [r4] ldr r0, _082E0470 cmp r6, r0 bne _082E0458 adds r0, r6, 0x1 str r0, [r4] ldr r1, _082E0474 ldr r0, _082E0478 str r0, [r1, 0x20] ldr r0, _082E047C str r0, [r1, 0x44] ldr r0, _082E0480 str r0, [r1, 0x4C] ldr r0, _082E0484 str r0, [r1, 0x70] ldr r0, _082E0488 str r0, [r1, 0x74] ldr r0, _082E048C str r0, [r1, 0x78] ldr r0, _082E0490 str r0, [r1, 0x7C] adds r2, r1, 0 adds r2, 0x80 ldr r0, _082E0494 str r0, [r2] adds r1, 0x84 ldr r0, _082E0498 str r0, [r1] str r5, [r4, 0x1C] ldr r0, _082E049C str r0, [r4, 0x28] ldr r0, _082E04A0 str r0, [r4, 0x2C] ldr r0, _082E04A4 str r0, [r4, 0x30] ldr r0, _082E04A8 movs r1, 0 strb r0, [r4, 0xC] str r1, [sp] ldr r2, _082E04AC 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] _082E0458: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _082E0460: .4byte 0x04000084 _082E0464: .4byte 0x04000080 _082E0468: .4byte 0x04000063 _082E046C: .4byte 0x03007ff0 _082E0470: .4byte 0x68736d53 _082E0474: .4byte 0x03007460 _082E0478: .4byte ply_memacc _082E047C: .4byte ply_lfos_rev01 _082E0480: .4byte ply_mod_rev01 _082E0484: .4byte ply_xcmd _082E0488: .4byte ply_endtie_rev01 _082E048C: .4byte SampFreqSet_rev01 _082E0490: .4byte TrackStop_rev01 _082E0494: .4byte FadeOutBody_rev01 _082E0498: .4byte TrkVolPitSet_rev01 _082E049C: .4byte CgbSound _082E04A0: .4byte CgbOscOff _082E04A4: .4byte MidiKey2CgbFr _082E04A8: .4byte 0x00000000 _082E04AC: .4byte 0x05000040 thumb_func_end MPlayExtender thumb_func_start MusicPlayerJumpTableCopy MusicPlayerJumpTableCopy: @ 82E04B0 swi 0x2A bx lr thumb_func_end MusicPlayerJumpTableCopy thumb_func_start ClearChain_rev ClearChain_rev: @ 82E04B4 push {lr} ldr r1, _082E04C4 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _082E04C4: .4byte 0x030074e8 thumb_func_end ClearChain_rev thumb_func_start Clear64byte_rev Clear64byte_rev: @ 82E04C8 push {lr} ldr r1, _082E04D8 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _082E04D8: .4byte 0x030074ec thumb_func_end Clear64byte_rev thumb_func_start SoundInit_rev01 @ int SoundInit_rev01(void *dest) SoundInit_rev01: @ 82E04DC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r3, 0 str r3, [r5] ldr r1, _082E0594 ldr r0, [r1] movs r2, 0x80 lsls r2, 18 ands r0, r2 cmp r0, 0 beq _082E04F8 ldr r0, _082E0598 str r0, [r1] _082E04F8: ldr r1, _082E059C ldr r0, [r1] ands r0, r2 cmp r0, 0 beq _082E0506 ldr r0, _082E0598 str r0, [r1] _082E0506: ldr r0, _082E05A0 movs r2, 0x80 lsls r2, 3 adds r1, r2, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] ldr r1, _082E05A4 movs r0, 0x8F strh r0, [r1] subs r1, 0x2 ldr r2, _082E05A8 adds r0, r2, 0 strh r0, [r1] ldr r2, _082E05AC ldrb r1, [r2] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r1, _082E05B0 movs r2, 0xD4 lsls r2, 2 adds r0, r5, r2 str r0, [r1] adds r1, 0x4 ldr r0, _082E05B4 str r0, [r1] adds r1, 0x8 movs r2, 0x98 lsls r2, 4 adds r0, r5, r2 str r0, [r1] adds r1, 0x4 ldr r0, _082E05B8 str r0, [r1] ldr r0, _082E05BC str r5, [r0] str r3, [sp] ldr r2, _082E05C0 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, _082E05C4 str r0, [r5, 0x38] ldr r0, _082E05C8 str r0, [r5, 0x28] str r0, [r5, 0x2C] str r0, [r5, 0x30] str r0, [r5, 0x3C] ldr r4, _082E05CC adds r0, r4, 0 bl MPlyJmpTblCopy str r4, [r5, 0x34] movs r0, 0x80 lsls r0, 11 bl SampFreqSet_rev01 ldr r0, _082E05D0 str r0, [r5] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _082E0594: .4byte 0x040000c4 _082E0598: .4byte 0x84400004 _082E059C: .4byte 0x040000d0 _082E05A0: .4byte 0x040000c6 _082E05A4: .4byte 0x04000084 _082E05A8: .4byte 0x0000a90e _082E05AC: .4byte 0x04000089 _082E05B0: .4byte 0x040000bc _082E05B4: .4byte 0x040000a0 _082E05B8: .4byte 0x040000a4 _082E05BC: .4byte 0x03007ff0 _082E05C0: .4byte 0x050003ec _082E05C4: .4byte ply_note_rev01 _082E05C8: .4byte DummyFunc_rev _082E05CC: .4byte 0x03007460 _082E05D0: .4byte 0x68736d53 thumb_func_end SoundInit_rev01 thumb_func_start SampFreqSet_rev01 SampFreqSet_rev01: @ 82E05D4 push {r4-r6,lr} adds r2, r0, 0 ldr r0, _082E0654 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, _082E0658 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, _082E065C muls r0, r5 ldr r1, _082E0660 adds r0, r1 ldr r1, _082E0664 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, _082E0668 strh r6, [r0] ldr r4, _082E066C ldr r0, _082E0670 adds r1, r5, 0 bl __divsi3 negs r0, r0 strh r0, [r4] bl SoundVSyncOn_rev01 ldr r1, _082E0674 _082E0638: ldrb r0, [r1] cmp r0, 0x9F beq _082E0638 ldr r1, _082E0674 _082E0640: ldrb r0, [r1] cmp r0, 0x9F bne _082E0640 ldr r1, _082E0668 movs r0, 0x80 strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _082E0654: .4byte 0x03007ff0 _082E0658: .4byte gUnknown_08675B64 _082E065C: .4byte 0x00091d1b _082E0660: .4byte 0x00001388 _082E0664: .4byte 0x00002710 _082E0668: .4byte 0x04000102 _082E066C: .4byte 0x04000100 _082E0670: .4byte 0x00044940 _082E0674: .4byte 0x04000006 thumb_func_end SampFreqSet_rev01 thumb_func_start SoundMode_rev01 SoundMode_rev01: @ 82E0678 push {r4,r5,lr} adds r3, r0, 0 ldr r0, _082E0704 ldr r5, [r0] ldr r1, [r5] ldr r0, _082E0708 cmp r1, r0 bne _082E06FE adds r0, r1, 0x1 str r0, [r5] movs r4, 0xFF ands r4, r3 cmp r4, 0 beq _082E069A movs r0, 0x7F ands r4, r0 strb r4, [r5, 0x5] _082E069A: movs r4, 0xF0 lsls r4, 4 ands r4, r3 cmp r4, 0 beq _082E06BA lsrs r0, r4, 8 strb r0, [r5, 0x6] movs r4, 0xC adds r0, r5, 0 adds r0, 0x50 movs r1, 0 _082E06B0: strb r1, [r0] subs r4, 0x1 adds r0, 0x40 cmp r4, 0 bne _082E06B0 _082E06BA: movs r4, 0xF0 lsls r4, 8 ands r4, r3 cmp r4, 0 beq _082E06C8 lsrs r0, r4, 12 strb r0, [r5, 0x7] _082E06C8: movs r4, 0xB0 lsls r4, 16 ands r4, r3 cmp r4, 0 beq _082E06E6 movs r0, 0xC0 lsls r0, 14 ands r0, r4 lsrs r4, r0, 14 ldr r2, _082E070C ldrb r1, [r2] movs r0, 0x3F ands r0, r1 orrs r0, r4 strb r0, [r2] _082E06E6: movs r4, 0xF0 lsls r4, 12 ands r4, r3 cmp r4, 0 beq _082E06FA bl SoundVSyncOff_rev01 adds r0, r4, 0 bl SampFreqSet_rev01 _082E06FA: ldr r0, _082E0708 str r0, [r5] _082E06FE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _082E0704: .4byte 0x03007ff0 _082E0708: .4byte 0x68736d53 _082E070C: .4byte 0x04000089 thumb_func_end SoundMode_rev01 thumb_func_start SoundClear_rev01 SoundClear_rev01: @ 82E0710 push {r4-r7,lr} ldr r0, _082E075C ldr r6, [r0] ldr r1, [r6] ldr r0, _082E0760 cmp r1, r0 bne _082E0756 adds r0, r1, 0x1 str r0, [r6] movs r5, 0xC adds r4, r6, 0 adds r4, 0x50 movs r0, 0 _082E072A: strb r0, [r4] subs r5, 0x1 adds r4, 0x40 cmp r5, 0 bgt _082E072A ldr r4, [r6, 0x1C] cmp r4, 0 beq _082E0752 movs r5, 0x1 movs r7, 0 _082E073E: 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 _082E073E _082E0752: ldr r0, _082E0760 str r0, [r6] _082E0756: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E075C: .4byte 0x03007ff0 _082E0760: .4byte 0x68736d53 thumb_func_end SoundClear_rev01 thumb_func_start SoundVSyncOff_rev01 SoundVSyncOff_rev01: @ 82E0764 push {lr} sub sp, 0x4 ldr r0, _082E07C4 ldr r2, [r0] ldr r1, [r2] ldr r3, _082E07C8 adds r0, r1, r3 cmp r0, 0x1 bhi _082E07BC adds r0, r1, 0 adds r0, 0xA str r0, [r2] ldr r1, _082E07CC ldr r0, [r1] movs r3, 0x80 lsls r3, 18 ands r0, r3 cmp r0, 0 beq _082E078E ldr r0, _082E07D0 str r0, [r1] _082E078E: ldr r1, _082E07D4 ldr r0, [r1] ands r0, r3 cmp r0, 0 beq _082E079C ldr r0, _082E07D0 str r0, [r1] _082E079C: ldr r0, _082E07D8 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, _082E07DC mov r0, sp bl CpuSet _082E07BC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _082E07C4: .4byte 0x03007ff0 _082E07C8: .4byte 0x978c92ad _082E07CC: .4byte 0x040000c4 _082E07D0: .4byte 0x84400004 _082E07D4: .4byte 0x040000d0 _082E07D8: .4byte 0x040000c6 _082E07DC: .4byte 0x05000318 thumb_func_end SoundVSyncOff_rev01 thumb_func_start SoundVSyncOn_rev01 SoundVSyncOn_rev01: @ 82E07E0 push {r4,lr} ldr r0, _082E0810 ldr r2, [r0] ldr r3, [r2] ldr r0, _082E0814 cmp r3, r0 beq _082E0808 ldr r0, _082E0818 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] _082E0808: pop {r4} pop {r0} bx r0 .align 2, 0 _082E0810: .4byte 0x03007ff0 _082E0814: .4byte 0x68736d53 _082E0818: .4byte 0x040000c6 thumb_func_end SoundVSyncOn_rev01 thumb_func_start MPlayOpen_rev01 MPlayOpen_rev01: @ 82E081C push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 cmp r4, 0 beq _082E0880 cmp r4, 0x10 bls _082E0830 movs r4, 0x10 _082E0830: ldr r0, _082E0888 ldr r5, [r0] ldr r1, [r5] ldr r0, _082E088C cmp r1, r0 bne _082E0880 adds r0, r1, 0x1 str r0, [r5] adds r0, r7, 0 bl Clear64byte_rev str r6, [r7, 0x2C] strb r4, [r7, 0x8] movs r0, 0x80 lsls r0, 24 str r0, [r7, 0x4] cmp r4, 0 beq _082E0864 movs r1, 0 _082E0856: strb r1, [r6] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r6, 0x50 cmp r4, 0 bne _082E0856 _082E0864: ldr r0, [r5, 0x20] cmp r0, 0 beq _082E0874 str r0, [r7, 0x38] ldr r0, [r5, 0x24] str r0, [r7, 0x3C] movs r0, 0 str r0, [r5, 0x20] _082E0874: str r7, [r5, 0x24] ldr r0, _082E0890 str r0, [r5, 0x20] ldr r0, _082E088C str r0, [r5] str r0, [r7, 0x34] _082E0880: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E0888: .4byte 0x03007ff0 _082E088C: .4byte 0x68736d53 _082E0890: .4byte MPlayMain_rev01 thumb_func_end MPlayOpen_rev01 thumb_func_start MPlayStart_rev01 MPlayStart_rev01: @ 82E0894 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r1, 0 ldr r1, [r5, 0x34] ldr r0, _082E0974 cmp r1, r0 bne _082E096A ldrb r0, [r5, 0xB] ldrb r2, [r7, 0x2] cmp r0, 0 beq _082E08D6 ldr r0, [r5] cmp r0, 0 beq _082E08C0 ldr r1, [r5, 0x2C] movs r0, 0x40 ldrb r1, [r1] ands r0, r1 cmp r0, 0 bne _082E08CC _082E08C0: ldr r1, [r5, 0x4] ldrh r0, [r5, 0x4] cmp r0, 0 beq _082E08D6 cmp r1, 0 blt _082E08D6 _082E08CC: ldrb r0, [r7, 0x2] adds r2, r0, 0 ldrb r0, [r5, 0x9] cmp r0, r2 bhi _082E096A _082E08D6: 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 _082E0936 ldrb r0, [r5, 0x8] cmp r6, r0 bge _082E0956 mov r8, r6 _082E090A: adds r0, r5, 0 adds r1, r4, 0 bl TrackStop_rev01 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 _082E0936 ldrb r1, [r5, 0x8] cmp r6, r1 blt _082E090A _082E0936: ldrb r0, [r5, 0x8] cmp r6, r0 bge _082E0956 movs r1, 0 mov r8, r1 _082E0940: adds r0, r5, 0 adds r1, r4, 0 bl TrackStop_rev01 mov r0, r8 strb r0, [r4] adds r6, 0x1 adds r4, 0x50 ldrb r1, [r5, 0x8] cmp r6, r1 blt _082E0940 _082E0956: movs r0, 0x80 ldrb r1, [r7, 0x3] ands r0, r1 cmp r0, 0 beq _082E0966 ldrb r0, [r7, 0x3] bl SoundMode_rev01 _082E0966: ldr r0, _082E0974 str r0, [r5, 0x34] _082E096A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E0974: .4byte 0x68736d53 thumb_func_end MPlayStart_rev01 thumb_func_start MPlayStop_rev01 MPlayStop_rev01: @ 82E0978 push {r4-r6,lr} adds r6, r0, 0 ldr r1, [r6, 0x34] ldr r0, _082E09B4 cmp r1, r0 bne _082E09AE 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 _082E09AA _082E099A: adds r0, r6, 0 adds r1, r5, 0 bl TrackStop_rev01 subs r4, 0x1 adds r5, 0x50 cmp r4, 0 bgt _082E099A _082E09AA: ldr r0, _082E09B4 str r0, [r6, 0x34] _082E09AE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _082E09B4: .4byte 0x68736d53 thumb_func_end MPlayStop_rev01 thumb_func_start FadeOutBody_rev01 FadeOutBody_rev01: @ 82E09B8 push {r4-r7,lr} adds r6, r0, 0 ldrh r1, [r6, 0x24] cmp r1, 0 beq _082E0A7A ldrh r0, [r6, 0x26] subs r0, 0x1 strh r0, [r6, 0x26] ldr r3, _082E09F8 adds r2, r3, 0 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _082E0A7A strh r1, [r6, 0x26] ldrh r1, [r6, 0x28] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _082E09FC adds r0, r1, 0 adds r0, 0x10 strh r0, [r6, 0x28] ands r0, r2 cmp r0, 0xFF bls _082E0A4E movs r0, 0x80 lsls r0, 1 strh r0, [r6, 0x28] strh r3, [r6, 0x24] b _082E0A4E .align 2, 0 _082E09F8: .4byte 0x0000ffff _082E09FC: adds r0, r1, 0 subs r0, 0x10 strh r0, [r6, 0x28] ands r0, r2 lsls r0, 16 cmp r0, 0 bgt _082E0A4E ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] cmp r5, 0 ble _082E0A2E _082E0A12: adds r0, r6, 0 adds r1, r4, 0 bl TrackStop_rev01 movs r0, 0x1 ldrh r7, [r6, 0x28] ands r0, r7 cmp r0, 0 bne _082E0A26 strb r0, [r4] _082E0A26: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _082E0A12 _082E0A2E: movs r0, 0x1 ldrh r1, [r6, 0x28] ands r0, r1 cmp r0, 0 beq _082E0A42 ldr r0, [r6, 0x4] movs r1, 0x80 lsls r1, 24 orrs r0, r1 b _082E0A46 _082E0A42: movs r0, 0x80 lsls r0, 24 _082E0A46: str r0, [r6, 0x4] movs r0, 0 strh r0, [r6, 0x24] b _082E0A7A _082E0A4E: ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] cmp r5, 0 ble _082E0A7A movs r3, 0x80 movs r7, 0 movs r2, 0x3 _082E0A5C: ldrb r1, [r4] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _082E0A72 ldrh r7, [r6, 0x28] lsrs r0, r7, 2 strb r0, [r4, 0x13] adds r0, r1, 0 orrs r0, r2 strb r0, [r4] _082E0A72: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _082E0A5C _082E0A7A: pop {r4-r7} pop {r0} bx r0 thumb_func_end FadeOutBody_rev01 thumb_func_start TrkVolPitSet_rev01 TrkVolPitSet_rev01: @ 82E0A80 push {r4,lr} adds r2, r1, 0 movs r0, 0x1 ldrb r1, [r2] ands r0, r1 cmp r0, 0 beq _082E0AE4 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 _082E0AA8 movs r0, 0x16 ldrsb r0, [r2, r0] adds r0, 0x80 muls r0, r3 lsrs r3, r0, 7 _082E0AA8: 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 _082E0ABE movs r0, 0x16 ldrsb r0, [r2, r0] adds r1, r0 _082E0ABE: movs r0, 0x80 negs r0, r0 cmp r1, r0 bge _082E0ACA adds r1, r0, 0 b _082E0AD0 _082E0ACA: cmp r1, 0x7F ble _082E0AD0 movs r1, 0x7F _082E0AD0: 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] _082E0AE4: ldrb r1, [r2] movs r0, 0x4 ands r0, r1 adds r3, r1, 0 cmp r0, 0 beq _082E0B28 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 _082E0B22 movs r0, 0x16 ldrsb r0, [r2, r0] lsls r0, 4 adds r1, r0 _082E0B22: asrs r0, r1, 8 strb r0, [r2, 0x8] strb r1, [r2, 0x9] _082E0B28: movs r0, 0xFA ands r0, r3 strb r0, [r2] pop {r4} pop {r0} bx r0 thumb_func_end TrkVolPitSet_rev01 thumb_func_start MidiKey2CgbFr MidiKey2CgbFr: @ 82E0B34 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 _082E0B6C cmp r5, 0x14 bhi _082E0B50 movs r5, 0 b _082E0B5E _082E0B50: adds r0, r5, 0 subs r0, 0x15 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3B bls _082E0B5E movs r5, 0x3B _082E0B5E: ldr r0, _082E0B68 adds r0, r5, r0 ldrb r0, [r0] b _082E0BCE .align 2, 0 _082E0B68: .4byte gUnknown_08675C18 _082E0B6C: cmp r5, 0x23 bhi _082E0B78 movs r0, 0 mov r12, r0 movs r5, 0 b _082E0B8A _082E0B78: adds r0, r5, 0 subs r0, 0x24 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x82 bls _082E0B8A movs r5, 0x82 movs r1, 0xFF mov r12, r1 _082E0B8A: ldr r3, _082E0BD4 adds r0, r5, r3 ldrb r6, [r0] ldr r4, _082E0BD8 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 _082E0BCE: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _082E0BD4: .4byte gUnknown_08675B7C _082E0BD8: .4byte gUnknown_08675C00 thumb_func_end MidiKey2CgbFr thumb_func_start CgbOscOff CgbOscOff: @ 82E0BDC lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x2 beq _082E0C04 cmp r0, 0x2 bgt _082E0BF0 cmp r0, 0x1 beq _082E0BF6 b _082E0C18 _082E0BF0: cmp r1, 0x3 beq _082E0C0C b _082E0C18 _082E0BF6: ldr r1, _082E0C00 movs r0, 0x8 strb r0, [r1] adds r1, 0x2 b _082E0C20 .align 2, 0 _082E0C00: .4byte 0x04000063 _082E0C04: ldr r1, _082E0C08 b _082E0C1A .align 2, 0 _082E0C08: .4byte 0x04000069 _082E0C0C: ldr r1, _082E0C14 movs r0, 0 b _082E0C22 .align 2, 0 _082E0C14: .4byte 0x04000070 _082E0C18: ldr r1, _082E0C28 _082E0C1A: movs r0, 0x8 strb r0, [r1] adds r1, 0x4 _082E0C20: movs r0, 0x80 _082E0C22: strb r0, [r1] bx lr .align 2, 0 _082E0C28: .4byte 0x04000079 thumb_func_end CgbOscOff thumb_func_start CgbModVol CgbModVol: @ 82E0C2C push {r4,lr} adds r2, r0, 0 ldr r0, _082E0C5C ldr r1, [r0] movs r0, 0x1 ldrb r1, [r1, 0x9] ands r0, r1 cmp r0, 0 bne _082E0C6C ldrb r0, [r2, 0x2] lsls r1, r0, 24 lsrs r4, r1, 24 ldrb r3, [r2, 0x3] lsls r0, r3, 24 lsrs r3, r0, 24 cmp r4, r3 bcc _082E0C60 lsrs r0, r1, 25 cmp r0, r3 bcc _082E0C6C movs r0, 0xF strb r0, [r2, 0x1B] b _082E0C7A .align 2, 0 _082E0C5C: .4byte 0x03007ff0 _082E0C60: lsrs r0, 25 cmp r0, r4 bcc _082E0C6C movs r0, 0xF0 strb r0, [r2, 0x1B] b _082E0C7A _082E0C6C: movs r0, 0xFF strb r0, [r2, 0x1B] ldrb r1, [r2, 0x3] ldrb r3, [r2, 0x2] adds r0, r1, r3 lsrs r0, 4 b _082E0C8A _082E0C7A: ldrb r1, [r2, 0x3] ldrb r3, [r2, 0x2] adds r0, r1, r3 lsrs r0, 4 strb r0, [r2, 0xA] cmp r0, 0xF bls _082E0C8C movs r0, 0xF _082E0C8A: strb r0, [r2, 0xA] _082E0C8C: ldrb r1, [r2, 0x6] ldrb r3, [r2, 0xA] adds r0, r1, 0 muls r0, r3 adds r0, 0xF asrs r0, 4 strb r0, [r2, 0x19] ldrb r0, [r2, 0x1C] ldrb r1, [r2, 0x1B] ands r0, r1 strb r0, [r2, 0x1B] pop {r4} pop {r0} bx r0 thumb_func_end CgbModVol thumb_func_start CgbSound CgbSound: @ 82E0CA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, _082E0CC8 ldr r0, [r0] str r0, [sp, 0x4] ldrb r0, [r0, 0xA] cmp r0, 0 beq _082E0CCC subs r0, 0x1 ldr r1, [sp, 0x4] strb r0, [r1, 0xA] b _082E0CD2 .align 2, 0 _082E0CC8: .4byte 0x03007ff0 _082E0CCC: movs r0, 0xE ldr r2, [sp, 0x4] strb r0, [r2, 0xA] _082E0CD2: movs r6, 0x1 ldr r0, [sp, 0x4] ldr r4, [r0, 0x1C] _082E0CD8: 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 _082E0CEE b _082E10D8 _082E0CEE: cmp r6, 0x2 beq _082E0D20 cmp r6, 0x2 bgt _082E0CFC cmp r6, 0x1 beq _082E0D02 b _082E0D58 _082E0CFC: cmp r6, 0x3 beq _082E0D38 b _082E0D58 _082E0D02: ldr r0, _082E0D14 str r0, [sp, 0x8] ldr r7, _082E0D18 ldr r2, _082E0D1C str r2, [sp, 0xC] adds r0, 0x4 str r0, [sp, 0x10] adds r2, 0x2 b _082E0D68 .align 2, 0 _082E0D14: .4byte 0x04000060 _082E0D18: .4byte 0x04000062 _082E0D1C: .4byte 0x04000063 _082E0D20: ldr r0, _082E0D2C str r0, [sp, 0x8] ldr r7, _082E0D30 ldr r2, _082E0D34 b _082E0D60 .align 2, 0 _082E0D2C: .4byte 0x04000061 _082E0D30: .4byte 0x04000068 _082E0D34: .4byte 0x04000069 _082E0D38: ldr r0, _082E0D4C str r0, [sp, 0x8] ldr r7, _082E0D50 ldr r2, _082E0D54 str r2, [sp, 0xC] adds r0, 0x4 str r0, [sp, 0x10] adds r2, 0x2 b _082E0D68 .align 2, 0 _082E0D4C: .4byte 0x04000070 _082E0D50: .4byte 0x04000072 _082E0D54: .4byte 0x04000073 _082E0D58: ldr r0, _082E0DB8 str r0, [sp, 0x8] ldr r7, _082E0DBC ldr r2, _082E0DC0 _082E0D60: str r2, [sp, 0xC] adds r0, 0xB str r0, [sp, 0x10] adds r2, 0x4 _082E0D68: 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 _082E0E5E 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 _082E0E82 movs r0, 0x3 strb r0, [r4] strb r0, [r4, 0x1D] adds r0, r4, 0 str r3, [sp, 0x18] bl CgbModVol ldr r3, [sp, 0x18] cmp r6, 0x2 beq _082E0DD0 cmp r6, 0x2 bgt _082E0DC4 cmp r6, 0x1 beq _082E0DCA b _082E0E24 .align 2, 0 _082E0DB8: .4byte 0x04000071 _082E0DBC: .4byte 0x04000078 _082E0DC0: .4byte 0x04000079 _082E0DC4: cmp r6, 0x3 beq _082E0DDC b _082E0E24 _082E0DCA: ldrb r0, [r4, 0x1F] ldr r2, [sp, 0x8] strb r0, [r2] _082E0DD0: ldr r0, [r4, 0x24] lsls r0, 6 ldrb r1, [r4, 0x1E] adds r0, r1, r0 strb r0, [r7] b _082E0E30 _082E0DDC: ldr r1, [r4, 0x24] ldr r0, [r4, 0x28] cmp r1, r0 beq _082E0E04 ldr r2, [sp, 0x8] strb r3, [r2] ldr r1, _082E0E18 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] _082E0E04: ldr r0, [sp, 0x8] strb r5, [r0] ldrb r0, [r4, 0x1E] strb r0, [r7] ldrb r0, [r4, 0x1E] cmp r0, 0 beq _082E0E1C movs r0, 0xC0 b _082E0E3E .align 2, 0 _082E0E18: .4byte 0x04000090 _082E0E1C: movs r1, 0x80 negs r1, r1 strb r1, [r4, 0x1A] b _082E0E40 _082E0E24: ldrb r0, [r4, 0x1E] strb r0, [r7] ldr r0, [r4, 0x24] lsls r0, 3 ldr r2, [sp, 0x10] strb r0, [r2] _082E0E30: ldrb r0, [r4, 0x4] adds r0, 0x8 mov r8, r0 ldrb r0, [r4, 0x1E] cmp r0, 0 beq _082E0E3E movs r0, 0x40 _082E0E3E: strb r0, [r4, 0x1A] _082E0E40: 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 _082E0E5A b _082E0F96 _082E0E5A: strb r2, [r4, 0x9] b _082E0FC4 _082E0E5E: movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _082E0E90 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 _082E0E82 b _082E0FD6 _082E0E82: lsls r0, r6, 24 lsrs r0, 24 bl CgbOscOff movs r0, 0 strb r0, [r4] b _082E10D4 _082E0E90: 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 _082E0ED0 movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _082E0ED0 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 _082E0F02 movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] cmp r6, 0x3 beq _082E0FC4 ldrb r2, [r4, 0x7] mov r8, r2 b _082E0FC4 _082E0ED0: ldrb r0, [r4, 0xB] cmp r0, 0 bne _082E0FC4 cmp r6, 0x3 bne _082E0EE2 movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] _082E0EE2: adds r0, r4, 0 bl CgbModVol movs r0, 0x3 ldrb r2, [r4] ands r0, r2 cmp r0, 0 bne _082E0F36 ldrb r0, [r4, 0x9] subs r0, 0x1 strb r0, [r4, 0x9] movs r1, 0xFF ands r0, r1 lsls r0, 24 cmp r0, 0 bgt _082E0F32 _082E0F02: 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 _082E0E82 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 _082E0FD6 movs r2, 0x8 mov r8, r2 b _082E0FD6 _082E0F32: ldrb r0, [r4, 0x7] b _082E0FC2 _082E0F36: cmp r0, 0x1 bne _082E0F42 _082E0F3A: ldrb r0, [r4, 0x19] strb r0, [r4, 0x9] movs r0, 0x7 b _082E0FC2 _082E0F42: cmp r0, 0x2 bne _082E0F86 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 _082E0F82 _082E0F5A: ldrb r0, [r4, 0x6] cmp r0, 0 bne _082E0F6A movs r0, 0xFC ldrb r1, [r4] ands r0, r1 strb r0, [r4] b _082E0F02 _082E0F6A: 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 _082E0F3A movs r0, 0x8 mov r8, r0 b _082E0F3A _082E0F82: ldrb r0, [r4, 0x5] b _082E0FC2 _082E0F86: 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 _082E0FC0 _082E0F96: 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 _082E0F5A 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 _082E0FC4 ldrb r2, [r4, 0x5] mov r8, r2 b _082E0FC4 _082E0FC0: ldrb r0, [r4, 0x4] _082E0FC2: strb r0, [r4, 0xB] _082E0FC4: ldrb r0, [r4, 0xB] subs r0, 0x1 strb r0, [r4, 0xB] ldr r0, [sp] cmp r0, 0 bne _082E0FD6 subs r0, 0x1 str r0, [sp] b _082E0ED0 _082E0FD6: movs r0, 0x2 ldrb r1, [r4, 0x1D] ands r0, r1 cmp r0, 0 beq _082E104E cmp r6, 0x3 bgt _082E1016 movs r0, 0x8 ldrb r2, [r4, 0x1] ands r0, r2 cmp r0, 0 beq _082E1016 ldr r0, _082E1000 ldrb r0, [r0] cmp r0, 0x3F bgt _082E1008 ldr r0, [r4, 0x20] adds r0, 0x2 ldr r1, _082E1004 b _082E1012 .align 2, 0 _082E1000: .4byte 0x04000089 _082E1004: .4byte 0x000007fc _082E1008: cmp r0, 0x7F bgt _082E1016 ldr r0, [r4, 0x20] adds r0, 0x1 ldr r1, _082E1024 _082E1012: ands r0, r1 str r0, [r4, 0x20] _082E1016: cmp r6, 0x4 beq _082E1028 ldr r0, [r4, 0x20] ldr r1, [sp, 0x10] strb r0, [r1] b _082E1036 .align 2, 0 _082E1024: .4byte 0x000007fe _082E1028: ldr r2, [sp, 0x10] ldrb r0, [r2] movs r1, 0x8 ands r1, r0 ldr r0, [r4, 0x20] orrs r0, r1 strb r0, [r2] _082E1036: 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] _082E104E: movs r0, 0x1 ldrb r2, [r4, 0x1D] ands r0, r2 cmp r0, 0 beq _082E10D4 ldr r1, _082E1098 ldrb r0, [r1] ldrb r2, [r4, 0x1C] bics r0, r2 ldrb r2, [r4, 0x1B] orrs r0, r2 strb r0, [r1] cmp r6, 0x3 bne _082E10A0 ldr r0, _082E109C 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 _082E10D4 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 _082E10D4 .align 2, 0 _082E1098: .4byte 0x04000081 _082E109C: .4byte gUnknown_08675C54 _082E10A0: 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 _082E10D4 ldr r0, [sp, 0x8] ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _082E10D4 ldrb r0, [r4, 0x1A] orrs r0, r2 ldr r1, [sp, 0x14] strb r0, [r1] _082E10D4: movs r0, 0 strb r0, [r4, 0x1D] _082E10D8: mov r6, r10 mov r4, r9 cmp r6, 0x4 bgt _082E10E2 b _082E0CD8 _082E10E2: 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 CgbSound thumb_func_start MPlayTempoControl MPlayTempoControl: @ 82E10F4 push {r4,lr} adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _082E1118 cmp r3, r0 bne _082E1110 strh r1, [r2, 0x1E] ldrh r4, [r2, 0x1C] adds r0, r1, 0 muls r0, r4 asrs r0, 8 strh r0, [r2, 0x20] _082E1110: pop {r4} pop {r0} bx r0 .align 2, 0 _082E1118: .4byte 0x68736d53 thumb_func_end MPlayTempoControl thumb_func_start MPlayVolumeControl MPlayVolumeControl: @ 82E111C 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, _082E1180 cmp r3, r0 bne _082E1174 adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r1, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _082E1170 movs r0, 0x80 mov r8, r0 lsrs r6, 18 movs r0, 0x3 mov r12, r0 _082E114C: adds r0, r7, 0 ands r0, r5 cmp r0, 0 beq _082E1166 ldrb r3, [r1] mov r0, r8 ands r0, r3 cmp r0, 0 beq _082E1166 strb r6, [r1, 0x13] mov r0, r12 orrs r0, r3 strb r0, [r1] _082E1166: subs r2, 0x1 adds r1, 0x50 lsls r5, 1 cmp r2, 0 bgt _082E114C _082E1170: ldr r0, _082E1180 str r0, [r4, 0x34] _082E1174: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E1180: .4byte 0x68736d53 thumb_func_end MPlayVolumeControl thumb_func_start MPlayPitchControl MPlayPitchControl: @ 82E1184 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, _082E11F4 cmp r3, r0 bne _082E11E6 adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r3, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _082E11E2 movs r0, 0x80 mov r9, r0 lsls r0, r6, 16 asrs r7, r0, 24 movs r0, 0xC mov r8, r0 _082E11BC: mov r0, r12 ands r0, r5 cmp r0, 0 beq _082E11D8 ldrb r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 beq _082E11D8 strb r7, [r3, 0xB] strb r6, [r3, 0xD] mov r0, r8 orrs r0, r1 strb r0, [r3] _082E11D8: subs r2, 0x1 adds r3, 0x50 lsls r5, 1 cmp r2, 0 bgt _082E11BC _082E11E2: ldr r0, _082E11F4 str r0, [r4, 0x34] _082E11E6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E11F4: .4byte 0x68736d53 thumb_func_end MPlayPitchControl thumb_func_start MPlayPanpotControl MPlayPanpotControl: @ 82E11F8 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, _082E125C cmp r3, r0 bne _082E1250 adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r1, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _082E124C movs r0, 0x80 mov r8, r0 movs r0, 0x3 mov r12, r0 _082E1228: adds r0, r7, 0 ands r0, r5 cmp r0, 0 beq _082E1242 ldrb r3, [r1] mov r0, r8 ands r0, r3 cmp r0, 0 beq _082E1242 strb r6, [r1, 0x15] mov r0, r12 orrs r0, r3 strb r0, [r1] _082E1242: subs r2, 0x1 adds r1, 0x50 lsls r5, 1 cmp r2, 0 bgt _082E1228 _082E124C: ldr r0, _082E125C str r0, [r4, 0x34] _082E1250: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E125C: .4byte 0x68736d53 thumb_func_end MPlayPanpotControl thumb_func_start MP_clear_modM MP_clear_modM: @ 82E1260 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 _082E1274 movs r0, 0xC b _082E1276 _082E1274: movs r0, 0x3 _082E1276: ldrb r2, [r1] orrs r0, r2 strb r0, [r1] bx lr thumb_func_end MP_clear_modM thumb_func_start MPlayModDepthSet MPlayModDepthSet: @ 82E1280 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, _082E12F0 cmp r1, r0 bne _082E12E0 adds r0, r1, 0x1 str r0, [r6, 0x34] ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] movs r7, 0x1 cmp r5, 0 ble _082E12DC mov r9, r8 _082E12B0: mov r0, r10 ands r0, r7 cmp r0, 0 beq _082E12D2 movs r0, 0x80 ldrb r1, [r4] ands r0, r1 cmp r0, 0 beq _082E12D2 mov r0, r8 strb r0, [r4, 0x17] mov r1, r9 cmp r1, 0 bne _082E12D2 adds r0, r4, 0 bl MP_clear_modM _082E12D2: subs r5, 0x1 adds r4, 0x50 lsls r7, 1 cmp r5, 0 bgt _082E12B0 _082E12DC: ldr r0, _082E12F0 str r0, [r6, 0x34] _082E12E0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E12F0: .4byte 0x68736d53 thumb_func_end MPlayModDepthSet thumb_func_start MPlayLFOSpeedSet MPlayLFOSpeedSet: @ 82E12F4 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, _082E1364 cmp r1, r0 bne _082E1354 adds r0, r1, 0x1 str r0, [r6, 0x34] ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] movs r7, 0x1 cmp r5, 0 ble _082E1350 mov r9, r8 _082E1324: mov r0, r10 ands r0, r7 cmp r0, 0 beq _082E1346 movs r0, 0x80 ldrb r1, [r4] ands r0, r1 cmp r0, 0 beq _082E1346 mov r0, r8 strb r0, [r4, 0x19] mov r1, r9 cmp r1, 0 bne _082E1346 adds r0, r4, 0 bl MP_clear_modM _082E1346: subs r5, 0x1 adds r4, 0x50 lsls r7, 1 cmp r5, 0 bgt _082E1324 _082E1350: ldr r0, _082E1364 str r0, [r6, 0x34] _082E1354: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _082E1364: .4byte 0x68736d53 thumb_func_end MPlayLFOSpeedSet thumb_func_start ply_memacc ply_memacc: @ 82E1368 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 _082E138C b _082E14BA _082E138C: lsls r0, r5, 2 ldr r1, _082E1398 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _082E1398: .4byte _082E139C .align 2, 0 _082E139C: .4byte _082E13E4 .4byte _082E13E8 .4byte _082E13F0 .4byte _082E13F8 .4byte _082E1402 .4byte _082E1410 .4byte _082E141E .4byte _082E1426 .4byte _082E142E .4byte _082E1436 .4byte _082E143E .4byte _082E1446 .4byte _082E144E .4byte _082E145C .4byte _082E146A .4byte _082E1478 .4byte _082E1486 .4byte _082E1494 _082E13E4: strb r2, [r3] b _082E14BA _082E13E8: ldrb r1, [r3] adds r0, r1, r2 strb r0, [r3] b _082E14BA _082E13F0: ldrb r1, [r3] subs r0, r1, r2 strb r0, [r3] b _082E14BA _082E13F8: ldr r0, [r4, 0x18] adds r0, r2 ldrb r0, [r0] strb r0, [r3] b _082E14BA _082E1402: ldr r0, [r4, 0x18] adds r0, r2 ldrb r1, [r3] ldrb r0, [r0] adds r0, r1, r0 strb r0, [r3] b _082E14BA _082E1410: ldr r0, [r4, 0x18] adds r0, r2 ldrb r1, [r3] ldrb r0, [r0] subs r0, r1, r0 strb r0, [r3] b _082E14BA _082E141E: ldrb r3, [r3] cmp r3, r2 beq _082E14A0 b _082E14B4 _082E1426: ldrb r3, [r3] cmp r3, r2 bne _082E14A0 b _082E14B4 _082E142E: ldrb r3, [r3] cmp r3, r2 bhi _082E14A0 b _082E14B4 _082E1436: ldrb r3, [r3] cmp r3, r2 bcs _082E14A0 b _082E14B4 _082E143E: ldrb r3, [r3] cmp r3, r2 bls _082E14A0 b _082E14B4 _082E1446: ldrb r3, [r3] cmp r3, r2 bcc _082E14A0 b _082E14B4 _082E144E: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 beq _082E14A0 b _082E14B4 _082E145C: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bne _082E14A0 b _082E14B4 _082E146A: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bhi _082E14A0 b _082E14B4 _082E1478: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bcs _082E14A0 b _082E14B4 _082E1486: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bls _082E14A0 b _082E14B4 _082E1494: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bcs _082E14B4 _082E14A0: ldr r0, _082E14B0 ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl _call_via_r2 b _082E14BA .align 2, 0 _082E14B0: .4byte 0x03007464 _082E14B4: ldr r0, [r6, 0x40] adds r0, 0x4 str r0, [r6, 0x40] _082E14BA: pop {r4-r6} pop {r0} bx r0 thumb_func_end ply_memacc thumb_func_start ply_xcmd ply_xcmd: @ 82E14C0 push {lr} ldr r2, [r1, 0x40] ldrb r3, [r2] adds r2, 0x1 str r2, [r1, 0x40] ldr r2, _082E14DC lsls r3, 2 adds r3, r2 ldr r2, [r3] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _082E14DC: .4byte gUnknown_08675CCC thumb_func_end ply_xcmd thumb_func_start ply_xxx ply_xxx: @ 82E14E0 push {lr} ldr r2, _082E14F0 ldr r2, [r2] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _082E14F0: .4byte 0x03007460 thumb_func_end ply_xxx thumb_func_start ply_xwave ply_xwave: @ 82E14F4 push {r4,lr} ldr r2, [r1, 0x40] ldr r0, _082E152C ands r4, r0 ldrb r0, [r2] orrs r4, r0 ldrb r0, [r2, 0x1] lsls r3, r0, 8 ldr r0, _082E1530 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x2] lsls r3, r0, 16 ldr r0, _082E1534 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x3] lsls r3, r0, 24 ldr r0, _082E1538 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 _082E152C: .4byte 0xffffff00 _082E1530: .4byte 0xffff00ff _082E1534: .4byte 0xff00ffff _082E1538: .4byte 0x00ffffff thumb_func_end ply_xwave thumb_func_start ply_xtype ply_xtype: @ 82E153C 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 ply_xtype thumb_func_start ply_xatta ply_xatta: @ 82E1550 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 ply_xatta thumb_func_start ply_xdeca ply_xdeca: @ 82E1564 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 ply_xdeca thumb_func_start ply_xsust ply_xsust: @ 82E1578 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 ply_xsust thumb_func_start ply_xrele ply_xrele: @ 82E158C 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 ply_xrele thumb_func_start ply_xiecv ply_xiecv: @ 82E15A0 ldr r0, [r1, 0x40] ldrb r2, [r0] strb r2, [r1, 0x1E] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end ply_xiecv thumb_func_start ply_xiecl ply_xiecl: @ 82E15AC ldr r0, [r1, 0x40] ldrb r2, [r0] strb r2, [r1, 0x1F] adds r0, 0x1 str r0, [r1, 0x40] bx lr thumb_func_end ply_xiecl thumb_func_start ply_xleng ply_xleng: @ 82E15B8 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 ply_xleng thumb_func_start ply_xswee ply_xswee: @ 82E15CC 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 ply_xcmd0C ply_xcmd0C: @ 82E15E0 push {r4,lr} adds r3, r1, 0 ldr r4, [r3, 0x40] ldr r0, _082E1610 ands r2, r0 ldrb r0, [r4] orrs r2, r0 ldrb r0, [r4, 0x1] lsls r1, r0, 8 ldr r0, _082E1614 ands r2, r0 orrs r2, r1 ldrh r1, [r3, 0x3A] lsls r0, r2, 16 lsrs r0, 16 cmp r1, r0 bcs _082E1618 adds r0, r1, 0x1 strh r0, [r3, 0x3A] subs r0, r4, 0x2 str r0, [r3, 0x40] movs r0, 0x1 strb r0, [r3, 0x1] b _082E1620 .align 2, 0 _082E1610: .4byte 0xffffff00 _082E1614: .4byte 0xffff00ff _082E1618: movs r0, 0 strh r0, [r3, 0x3A] adds r0, r4, 0x2 str r0, [r3, 0x40] _082E1620: pop {r4} pop {r0} bx r0 thumb_func_end ply_xcmd0C thumb_func_start ply_xcmd0D ply_xcmd0D: @ 82E1628 push {r4,lr} ldr r2, [r1, 0x40] ldr r0, _082E1660 ands r4, r0 ldrb r0, [r2] orrs r4, r0 ldrb r0, [r2, 0x1] lsls r3, r0, 8 ldr r0, _082E1664 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x2] lsls r3, r0, 16 ldr r0, _082E1668 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x3] lsls r3, r0, 24 ldr r0, _082E166C ands r4, r0 orrs r4, r3 str r4, [r1, 0x3C] adds r2, 0x4 str r2, [r1, 0x40] pop {r4} pop {r0} bx r0 .align 2, 0 _082E1660: .4byte 0xffffff00 _082E1664: .4byte 0xffff00ff _082E1668: .4byte 0xff00ffff _082E166C: .4byte 0x00ffffff thumb_func_end ply_xcmd0D thumb_func_start DummyFunc_rev DummyFunc_rev: @ 82E1670 bx lr thumb_func_end DummyFunc_rev thumb_func_start sub_82E1674 sub_82E1674: @ 82E1674 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 movs r6, 0 movs r1, 0 movs r4, 0 ldr r0, _082E1730 mov r8, r0 ldr r7, _082E1734 ldr r0, _082E1738 mov r10, r0 mov r5, r8 adds r5, 0xC movs r3, 0 ldr r0, _082E173C mov r12, r0 _082E169A: mov r0, r12 adds r2, r3, r0 ldrb r0, [r2] cmp r0, 0 bne _082E16B0 ldr r0, [r2, 0x20] cmp r0, 0 beq _082E16C6 ldr r0, [r0, 0x2C] cmp r0, r2 bne _082E16C6 _082E16B0: ldr r0, [r5] cmp r6, r0 bcs _082E16BA adds r6, r0, 0 adds r1, r4, 0 _082E16BA: adds r5, 0x40 adds r3, 0xA0 adds r4, 0x1 cmp r4, 0x1 ble _082E169A adds r4, r1, 0 _082E16C6: lsls r5, r4, 6 add r5, r8 ldr r0, [r5, 0x34] adds r0, 0x1 str r0, [r5, 0x34] movs r0, 0x34 muls r4, r0 adds r6, r4, r7 adds r0, r6, 0 mov r1, r10 movs r2, 0x34 bl memcpy adds r0, r7, 0x4 adds r0, r4, r0 mov r1, r9 str r1, [r0] adds r1, r7, 0 adds r1, 0x8 adds r1, r4, r1 adds r0, r7, 0 adds r0, 0x11 adds r0, r4, r0 str r0, [r1] adds r1, r7, 0 adds r1, 0xC adds r1, r4, r1 adds r0, r7, 0 adds r0, 0x18 adds r0, r4, r0 str r0, [r1] adds r0, r7, 0 adds r0, 0x14 adds r0, r4, r0 adds r1, r7, 0 adds r1, 0x1A adds r4, r1 str r4, [r0] ldr r0, _082E1740 str r0, [r5, 0x34] adds r0, r5, 0 adds r1, r6, 0 bl MPlayStart_rev01 adds r0, r5, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _082E1730: .4byte 0x030073a0 _082E1734: .4byte 0x03007330 _082E1738: .4byte 0x030077b0 _082E173C: .4byte 0x03007670 _082E1740: .4byte 0x68736d53 thumb_func_end sub_82E1674 thumb_func_start sub_82E1744 sub_82E1744: @ 82E1744 lsls r0, 24 lsrs r0, 24 ldr r2, _082E1754 movs r1, 0x7F ands r0, r1 strb r0, [r2, 0x1D] bx lr .align 2, 0 _082E1754: .4byte 0x030077b0 thumb_func_end sub_82E1744 thumb_func_start sub_82E1758 sub_82E1758: @ 82E1758 ldr r2, _082E176C lsls r0, 24 asrs r0, 24 adds r0, 0x40 movs r1, 0x7F ands r0, r1 adds r2, 0x28 strb r0, [r2] bx lr .align 2, 0 _082E176C: .4byte 0x030077b0 thumb_func_end sub_82E1758 thumb_func_start sub_82E1770 sub_82E1770: @ 82E1770 push {r4-r6,lr} lsls r0, 16 ldr r3, _082E17A4 ldrb r2, [r3, 0x19] ldrb r4, [r3, 0x12] subs r1, r2, r4 lsls r1, 24 lsrs r1, 24 movs r6, 0x80 lsls r6, 16 adds r0, r6 asrs r2, r0, 24 movs r5, 0x7F movs r4, 0x7F ands r2, r4 movs r6, 0x2A strb r2, [r6, r3] asrs r0, 17 ands r0, r4 strb r0, [r3, 0x12] adds r1, r0 ands r1, r5 strb r1, [r3, 0x19] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _082E17A4: .4byte 0x030077b0 thumb_func_end sub_82E1770 thumb_func_start sub_82E17A8 sub_82E17A8: @ 82E17A8 ldr r1, _082E17B0 strh r0, [r1, 0x2E] bx lr .align 2, 0 _082E17B0: .4byte 0x030077b0 thumb_func_end sub_82E17A8 thumb_func_start sub_82E17B4 sub_82E17B4: @ 82E17B4 ldr r1, _082E17BC adds r1, 0x26 strb r0, [r1] bx lr .align 2, 0 _082E17BC: .4byte 0x030077b0 thumb_func_end sub_82E17B4 thumb_func_start sub_82E17C0 sub_82E17C0: @ 82E17C0 ldr r1, _082E17C8 str r0, [r1, 0x20] bx lr .align 2, 0 _082E17C8: .4byte 0x030077b0 thumb_func_end sub_82E17C0 thumb_func_start sub_82E17CC sub_82E17CC: @ 82E17CC ldr r1, [r0, 0x2C] ldr r0, [r1, 0x20] cmp r0, 0 beq _082E17DE ldr r0, [r0, 0x2C] cmp r0, r1 bne _082E17DE movs r0, 0x1 b _082E17E0 _082E17DE: movs r0, 0 _082E17E0: bx lr thumb_func_end sub_82E17CC thumb_func_start sub_82E17E4 sub_82E17E4: @ 82E17E4 lsls r0, 24 lsrs r1, r0, 24 cmp r0, 0 beq _082E1804 ldr r2, _082E1800 movs r0, 0x2 strb r0, [r2] ldrb r3, [r2, 0x12] adds r0, r3, r1 movs r1, 0x7F ands r0, r1 strb r0, [r2, 0x19] b _082E180A .align 2, 0 _082E1800: .4byte 0x030077b0 _082E1804: ldr r1, _082E180C movs r0, 0x1 strb r0, [r1] _082E180A: bx lr .align 2, 0 _082E180C: .4byte 0x030077b0 thumb_func_end sub_82E17E4 thumb_func_start sub_82E1810 sub_82E1810: @ 82E1810 ldr r1, _082E1828 ldr r2, [r1] cmp r0, 0 beq _082E1834 ldr r1, _082E182C ldr r3, _082E1830 adds r0, r3, 0 strh r0, [r1] movs r0, 0xFE ldrb r1, [r2, 0x9] ands r0, r1 b _082E1842 .align 2, 0 _082E1828: .4byte 0x03007ff0 _082E182C: .4byte 0x04000082 _082E1830: .4byte 0x0000210e _082E1834: ldr r1, _082E1848 ldr r3, _082E184C adds r0, r3, 0 strh r0, [r1] movs r0, 0x1 ldrb r1, [r2, 0x9] orrs r0, r1 _082E1842: strb r0, [r2, 0x9] bx lr .align 2, 0 _082E1848: .4byte 0x04000082 _082E184C: .4byte 0x00003302 thumb_func_end sub_82E1810 thumb_func_start sub_82E1850 sub_82E1850: @ 82E1850 ldr r1, _082E1858 strb r0, [r1, 0x2] bx lr .align 2, 0 _082E1858: .4byte 0x030077b0 thumb_func_end sub_82E1850 .align 2, 0 @ Don't pad with nop.