thumb_func_start umul3232H32 umul3232H32: ; 81DCE14 adr r2, _081DCE18 bx r2 .arm _081DCE18: umull r2, r3, r0, r1 add r0, r3, 0 bx lr thumb_func_end umul3232H32 thumb_func_start SoundMain SoundMain: ; 81DCE24 ldr r0, _081DCE90 ldr r0, [r0] ldr r2, _081DCE94 ldr r3, [r0] cmp r2, r3 beq _081DCE32 bx lr _081DCE32: 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 _081DCE56 ldr r2, _081DCE9C ldrb r2, [r2] cmp r2, 0xA0 bcs _081DCE54 adds r2, 0xE4 _081DCE54: adds r1, r2 _081DCE56: str r1, [sp, 0x14] ldr r3, [r0, 0x20] cmp r3, 0 beq _081DCE66 ldr r0, [r0, 0x24] bl _081DD25E ldr r0, [sp, 0x18] _081DCE66: ldr r3, [r0, 0x28] bl _081DD25E ldr r0, [sp, 0x18] ldr r3, [r0, 0x10] mov r8, r3 ldr r5, _081DCEA0 adds r5, r0 ldrb r4, [r0, 0x4] subs r7, r4, 0x1 bls _081DCE86 ldrb r1, [r0, 0xB] subs r1, r7 mov r2, r8 muls r2, r1 adds r5, r2 _081DCE86: str r5, [sp, 0x8] ldr r6, _081DCEA4 ldr r3, _081DCE98 bx r3 .align 2, 0 _081DCE90: .4byte 0x03007ff0 _081DCE94: .4byte 0x68736d53 _081DCE98: .4byte 0x03000f61 _081DCE9C: .4byte 0x04000006 _081DCEA0: .4byte 0x00000350 _081DCEA4: .4byte 0x00000630 thumb_func_end SoundMain thumb_func_start SoundMainRAM SoundMainRAM: ; 81DCEA8 ldrb r3, [r0, 0x5] cmp r3, 0 beq _081DCF08 adr r1, _081DCEB4 bx r1 .arm _081DCEB4: cmp r4, 0x2 addeq r7, r0, 0x350 addne r7, r5, r8 mov r4, r8 _081DCEC4: 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 _081DCEC4 add r0, pc, 0x2F bx r0 .thumb _081DCF08: movs r0, 0 mov r1, r8 adds r6, r5 lsrs r1, 3 bcc _081DCF16 stm r5!, {r0} stm r6!, {r0} _081DCF16: lsrs r1, 1 bcc _081DCF22 stm r5!, {r0} stm r6!, {r0} stm r5!, {r0} stm r6!, {r0} _081DCF22: 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 _081DCF22 ldr r4, [sp, 0x18] ldr r0, [r4, 0x18] mov r12, r0 ldrb r0, [r4, 0x6] adds r4, 0x50 _081DCF40: str r0, [sp, 0x4] ldr r3, [r4, 0x24] ldr r0, [sp, 0x14] cmp r0, 0 beq _081DCF60 ldr r1, _081DCF5C ldrb r1, [r1] cmp r1, 0xA0 bcs _081DCF54 adds r1, 0xE4 _081DCF54: cmp r1, r0 bcc _081DCF60 b _081DD24A .align 2, 0 _081DCF5C: .4byte 0x04000006 _081DCF60: ldrb r6, [r4] movs r0, 0xC7 tst r0, r6 bne _081DCF6A b _081DD240 _081DCF6A: movs r0, 0x80 tst r0, r6 beq _081DCFA0 movs r0, 0x40 tst r0, r6 bne _081DCFB0 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 _081DCFF8 movs r0, 0x10 orrs r6, r0 strb r6, [r4] b _081DCFF8 _081DCFA0: ldrb r5, [r4, 0x9] movs r0, 0x4 tst r0, r6 beq _081DCFB6 ldrb r0, [r4, 0xD] subs r0, 0x1 strb r0, [r4, 0xD] bhi _081DD006 _081DCFB0: movs r0, 0 strb r0, [r4] b _081DD240 _081DCFB6: movs r0, 0x40 tst r0, r6 beq _081DCFD6 ldrb r0, [r4, 0x7] muls r5, r0 lsrs r5, 8 ldrb r0, [r4, 0xC] cmp r5, r0 bhi _081DD006 _081DCFC8: ldrb r5, [r4, 0xC] cmp r5, 0 beq _081DCFB0 movs r0, 0x4 orrs r6, r0 strb r6, [r4] b _081DD006 _081DCFD6: movs r2, 0x3 ands r2, r6 cmp r2, 0x2 bne _081DCFF4 ldrb r0, [r4, 0x5] muls r5, r0 lsrs r5, 8 ldrb r0, [r4, 0x6] cmp r5, r0 bhi _081DD006 adds r5, r0, 0 beq _081DCFC8 subs r6, 0x1 strb r6, [r4] b _081DD006 _081DCFF4: cmp r2, 0x3 bne _081DD006 _081DCFF8: ldrb r0, [r4, 0x4] adds r5, r0 cmp r5, 0xFF bcc _081DD006 movs r5, 0xFF subs r6, 0x1 strb r6, [r4] _081DD006: 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 _081DD03A 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] _081DD03A: ldr r5, [sp, 0x8] ldr r2, [r4, 0x18] ldr r3, [r4, 0x28] adr r0, _081DD044 bx r0 .arm _081DD044: str r8, [sp] ldr r9, [r4, 0x1C] ldrb r10, [r4, 0xA] ldrb r11, [r4, 0xB] ldrb r0, [r4, 0x1] tst r0, 0x30 beq _081DD068 bl sub_81DD264 b _081DD228 _081DD068: mov r10, r10, lsl 16 mov r11, r11, lsl 16 ldrb r0, [r4, 0x1] tst r0, 0x8 beq _081DD19C _081DD07C: cmp r2, 0x4 ble _081DD0EC subs r2, r2, r8 movgt r9, 0 bgt _081DD0A8 mov r9, r8 add r2, r2, r8 sub r8, r2, 0x4 sub r9, r9, r8 ands r2, r2, 0x3 moveq r2, 0x4 _081DD0A8: ldr r6, [r5] ldr r7, [r5, 0x630] _081DD0B0: 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 _081DD0B0 str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _081DD0A8 adds r8, r8, r9 beq _081DD22C _081DD0EC: ldr r6, [r5] ldr r7, [r5, 0x630] _081DD0F4: 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 _081DD164 _081DD118: adds r5, r5, 0x40000000 bcc _081DD0F4 str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _081DD07C b _081DD22C _081DD134: ldr r0, [sp, 0x18] cmp r0, 0 beq _081DD158 ldr r3, [sp, 0x14] rsb lr, r2, 0 _081DD148: adds r2, r0, r2 bgt _081DD1FC sub lr, lr, r0 b _081DD148 _081DD158: ldmia sp!, {r4,r12} mov r2, 0 b _081DD174 _081DD164: ldr r2, [sp, 0x10] cmp r2, 0 ldrne r3, [sp, 0xC] bne _081DD118 _081DD174: 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 _081DD234 _081DD19C: stmdb sp!, {r4,r12} ldr r1, [r4, 0x20] mul r4, r12, r1 ldrsb r0, [r3] ldrsb r1, [r3, 0x1]! sub r1, r1, r0 _081DD1B4: ldr r6, [r5] ldr r7, [r5, 0x630] _081DD1BC: 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 _081DD208 bic r9, r9, 0x3F800000 subs r2, r2, lr ble _081DD134 subs lr, lr, 0x1 addeq r0, r0, r1 _081DD1FC: ldrsbne r0, [r3, lr]! ldrsb r1, [r3, 0x1]! sub r1, r1, r0 _081DD208: adds r5, r5, 0x40000000 bcc _081DD1BC str r7, [r5, 0x630] str r6, [r5], 0x4 subs r8, r8, 0x4 bgt _081DD1B4 sub r3, r3, 0x1 ldmia sp!, {r4,r12} _081DD228: str r9, [r4, 0x1C] _081DD22C: str r2, [r4, 0x18] str r3, [r4, 0x28] _081DD234: ldr r8, [sp] add r0, pc, 0x1 bx r0 .thumb _081DD240: ldr r0, [sp, 0x4] subs r0, 0x1 ble _081DD24A adds r4, 0x40 b _081DCF40 _081DD24A: ldr r0, [sp, 0x18] ldr r3, _081DD260 str r3, [r0] add sp, 0x1C pop {r0-r7} mov r8, r0 mov r9, r1 mov r10, r2 mov r11, r3 pop {r3} _081DD25E: bx r3 .align 2, 0 _081DD260: .4byte 0x68736d53 thumb_func_end SoundMainRAM arm_func_start sub_81DD264 sub_81DD264: ; 81DD264 ldr r6, [r4, 0x24] ldrb r0, [r4] tst r0, 0x20 bne _081DD2B4 orr r0, r0, 0x20 strb r0, [r4] ldrb r0, [r4, 0x1] tst r0, 0x10 beq _081DD29C ldr r1, [r6, 0xC] add r1, r1, r6, lsl 1 add r1, r1, 0x20 sub r3, r1, r3 str r3, [r4, 0x28] _081DD29C: ldrh r0, [r6] cmp r0, 0 beq _081DD2B4 sub r3, r3, r6 sub r3, r3, 0x10 str r3, [r4, 0x28] _081DD2B4: 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 _081DD468 mov r0, 0xFF000000 str r0, [r4, 0x3C] ldrb r0, [r4, 0x1] tst r0, 0x10 bne _081DD3C0 bl sub_81DD520 mov r0, r1 add r3, r3, 0x1 bl sub_81DD520 sub r1, r1, r0 _081DD308: ldr r6, [r5] ldr r7, [r5, 0x630] _081DD310: 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 _081DD370 bic r9, r9, 0x3F800000 subs r2, r2, lr ble _081DD398 subs lr, lr, 0x1 bne _081DD358 add r0, r0, r1 b _081DD364 _081DD358: add r3, r3, lr bl sub_81DD520 mov r0, r1 _081DD364: add r3, r3, 0x1 bl sub_81DD520 sub r1, r1, r0 _081DD370: adds r5, r5, 0x40000000 bcc _081DD310 str r7, [r5, 0x630] str r6, [r5], 0x4 ldr r6, [sp] subs r6, r6, 0x4 str r6, [sp] bgt _081DD308 sub r3, r3, 0x1 b _081DD4F0 _081DD398: ldr r0, [sp, 0x1C] cmp r0, 0 beq _081DD4F4 ldr r3, [r4, 0x24] ldr r3, [r3, 0x8] rsb lr, r2, 0 _081DD3B0: adds r2, r2, r0 bgt _081DD358 sub lr, lr, r0 b _081DD3B0 _081DD3C0: sub r3, r3, 0x1 bl sub_81DD520 mov r0, r1 sub r3, r3, 0x1 bl sub_81DD520 sub r1, r1, r0 _081DD3D8: ldr r6, [r5] ldr r7, [r5, 0x630] _081DD3E0: 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 _081DD440 bic r9, r9, 0x3F800000 subs r2, r2, lr ble _081DD4F4 subs lr, lr, 0x1 bne _081DD428 add r0, r0, r1 b _081DD434 _081DD428: sub r3, r3, lr bl sub_81DD520 mov r0, r1 _081DD434: sub r3, r3, 0x1 bl sub_81DD520 sub r1, r1, r0 _081DD440: adds r5, r5, 0x40000000 bcc _081DD3E0 str r7, [r5, 0x630] str r6, [r5], 0x4 ldr r6, [sp] subs r6, r6, 0x4 str r6, [sp] bgt _081DD3D8 add r3, r3, 0x2 b _081DD4F0 _081DD468: ldrb r0, [r4, 0x1] tst r0, 0x10 beq _081DD4F0 ldrsb r0, [r3, -0x1]! ldrsb r1, [r3, -0x1] sub r1, r1, r0 _081DD480: ldr r6, [r5] ldr r7, [r5, 0x630] _081DD488: 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 _081DD4CC bic r9, r9, 0x3F800000 subs r2, r2, lr ble _081DD4F4 ldrsb r0, [r3, -lr]! ldrsb r1, [r3, -0x1] sub r1, r1, r0 _081DD4CC: adds r5, r5, 0x40000000 bcc _081DD488 str r7, [r5, 0x630] str r6, [r5], 0x4 ldr r6, [sp] subs r6, r6, 0x4 str r6, [sp] bgt _081DD480 add r3, r3, 0x1 _081DD4F0: ldmia sp!, {r8,r12,pc} _081DD4F4: 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_81DD264 arm_func_start sub_81DD520 sub_81DD520: ; 81DD520 stmdb sp!, {r0,r2,r5-r7,lr} mov r0, r3, lsr 6 ldr r1, [r4, 0x3C] cmp r0, r1 beq _081DD594 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, _081DD5A4 ldr r6, _081DD5A8 mov r7, 0x40 ldrb lr, [r2], 0x1 strb lr, [r5], 0x1 ldrb r1, [r2], 0x1 b _081DD57C _081DD568: ldrb r1, [r2], 0x1 mov r0, r1, lsr 4 ldrsb r0, [r6, r0] add lr, lr, r0 strb lr, [r5], 0x1 _081DD57C: and r0, r1, 0xF ldrsb r0, [r6, r0] add lr, lr, r0 strb lr, [r5], 0x1 subs r7, r7, 0x2 bgt _081DD568 _081DD594: ldr r5, _081DD5A4 and r0, r3, 0x3F ldrsb r1, [r5, r0] ldmia sp!, {r0,r2,r5-r7,pc} .align 2, 0 _081DD5A4: .4byte 0x030007b8 _081DD5A8: .4byte gUnknown_0842F9F4 arm_func_end sub_81DD520 thumb_func_start SoundMainBTM SoundMainBTM: ; 81DD5AC 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: ; 81DD5C4 ldr r3, [r0, 0x2C] cmp r3, 0 beq _081DD5E2 ldr r1, [r0, 0x34] ldr r2, [r0, 0x30] cmp r2, 0 beq _081DD5D6 str r1, [r2, 0x34] b _081DD5D8 _081DD5D6: str r1, [r3, 0x20] _081DD5D8: cmp r1, 0 beq _081DD5DE str r2, [r1, 0x30] _081DD5DE: movs r1, 0 str r1, [r0, 0x2C] _081DD5E2: bx lr thumb_func_end ClearChain thumb_func_start ply_fine ply_fine: ; 81DD5E4 push {r4,r5,lr} adds r5, r1, 0 ldr r4, [r5, 0x20] cmp r4, 0 beq _081DD608 _081DD5EE: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _081DD5FC movs r0, 0x40 orrs r1, r0 strb r1, [r4] _081DD5FC: adds r0, r4, 0 bl ClearChain ldr r4, [r4, 0x34] cmp r4, 0 bne _081DD5EE _081DD608: movs r0, 0 strb r0, [r5] pop {r4,r5} pop {r0} bx r0 thumb_func_end ply_fine thumb_func_start MPlyJmpTblCopy MPlyJmpTblCopy: ; 81DD614 mov r12, lr movs r1, 0x24 ldr r2, _081DD644 _081DD61A: ldr r3, [r2] bl chk_adr_r2 stm r0!, {r3} adds r2, 0x4 subs r1, 0x1 bgt _081DD61A bx r12 thumb_func_end MPlyJmpTblCopy thumb_func_start ldrb_r3_r2 ldrb_r3_r2: ; 81DD62C ldrb r3, [r2] thumb_func_end ldrb_r3_r2 non_word_aligned_thumb_func_start chk_adr_r2 chk_adr_r2: ; 81DD62E push {r0} lsrs r0, r2, 25 bne _081DD640 ldr r0, _081DD644 cmp r2, r0 bcc _081DD63E lsrs r0, r2, 14 beq _081DD640 _081DD63E: movs r3, 0 _081DD640: pop {r0} bx lr .align 2, 0 _081DD644: .4byte gUnknown_0842F964 thumb_func_end chk_adr_r2 thumb_func_start ld_r3_tp_adr_i ld_r3_tp_adr_i: ; 81DD648 ldr r2, [r1, 0x40] _081DD64A: 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: ; 81DD654 push {lr} _081DD656: 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: ; 81DD674 ldrb r2, [r1, 0x2] cmp r2, 0x3 bcs _081DD68C 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 _081DD68C: b ply_fine thumb_func_end ply_patt thumb_func_start play_pend play_pend: ; 81DD690 ldrb r2, [r1, 0x2] cmp r2, 0 beq _081DD6A2 subs r2, 0x1 strb r2, [r1, 0x2] lsls r2, 2 adds r3, r1, r2 ldr r2, [r3, 0x44] str r2, [r1, 0x40] _081DD6A2: bx lr thumb_func_end play_pend thumb_func_start ply_rept ply_rept: ; 81DD6A4 push {lr} ldr r2, [r1, 0x40] ldrb r3, [r2] cmp r3, 0 bne _081DD6B4 adds r2, 0x1 str r2, [r1, 0x40] b _081DD656 _081DD6B4: ldrb r3, [r1, 0x3] adds r3, 0x1 strb r3, [r1, 0x3] mov r12, r3 bl ld_r3_tp_adr_i cmp r12, r3 bcs _081DD6C6 b _081DD656 _081DD6C6: 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: ; 81DD6D4 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: ; 81DD6E0 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: ; 81DD6F4 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: ; 81DD708 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: ; 81DD738 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: ; 81DD74C 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: ; 81DD760 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: ; 81DD774 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: ; 81DD788 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: ; 81DD794 mov r12, lr bl ld_r3_tp_adr_i ldrb r0, [r1, 0x18] cmp r0, r3 beq _081DD7AA strb r3, [r1, 0x18] ldrb r3, [r1] movs r2, 0xF orrs r3, r2 strb r3, [r1] _081DD7AA: bx r12 thumb_func_end ply_modt thumb_func_start ply_tune ply_tune: ; 81DD7AC 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: ; 81DD7C0 mov r12, lr ldr r2, [r1, 0x40] ldrb r3, [r2] adds r2, 0x1 ldr r0, _081DD7D4 adds r0, r3 bl _081DD64A strb r3, [r0] bx r12 .align 2, 0 _081DD7D4: .4byte 0x04000060 thumb_func_end ply_port thumb_func_start SoundVSync_rev01 SoundVSync_rev01: ; 81DD7D8 ldr r0, _081DDA84 ldr r0, [r0] ldr r2, _081DDA88 ldr r3, [r0] subs r3, r2 cmp r3, 0x1 bhi _081DD818 ldrb r1, [r0, 0x4] subs r1, 0x1 strb r1, [r0, 0x4] bgt _081DD818 ldrb r1, [r0, 0xB] strb r1, [r0, 0x4] ldr r2, _081DD81C ldr r1, [r2, 0x8] lsls r1, 7 bcc _081DD7FE ldr r1, _081DD820 str r1, [r2, 0x8] _081DD7FE: ldr r1, [r2, 0x14] lsls r1, 7 bcc _081DD808 ldr r1, _081DD820 str r1, [r2, 0x14] _081DD808: 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] _081DD818: bx lr .align 2, 0 _081DD81C: .4byte 0x040000bc _081DD820: .4byte 0x84400004 thumb_func_end SoundVSync_rev01 thumb_func_start MPlayMain_rev01 MPlayMain_rev01: ; 81DD824 ldr r2, _081DDA88 ldr r3, [r0, 0x34] cmp r2, r3 beq _081DD82E bx lr _081DD82E: adds r3, 0x1 str r3, [r0, 0x34] push {r0,lr} ldr r3, [r0, 0x38] cmp r3, 0 beq _081DD840 ldr r0, [r0, 0x3C] bl _081DDA7C _081DD840: 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 _081DD858 b _081DDA6C _081DD858: ldr r0, _081DDA84 ldr r0, [r0] mov r8, r0 adds r0, r7, 0 bl FadeOutBody_rev01 ldr r0, [r7, 0x4] cmp r0, 0 bge _081DD86C b _081DDA6C _081DD86C: ldrh r0, [r7, 0x22] ldrh r1, [r7, 0x20] adds r0, r1 b _081DD9BC _081DD874: ldrb r6, [r7, 0x8] ldr r5, [r7, 0x2C] movs r3, 0x1 movs r4, 0 _081DD87C: ldrb r0, [r5] movs r1, 0x80 tst r1, r0 bne _081DD886 b _081DD998 _081DD886: mov r10, r3 orrs r4, r3 mov r11, r4 ldr r4, [r5, 0x20] cmp r4, 0 beq _081DD8BA _081DD892: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _081DD8AE ldrb r0, [r4, 0x10] cmp r0, 0 beq _081DD8B4 subs r0, 0x1 strb r0, [r4, 0x10] bne _081DD8B4 movs r0, 0x40 orrs r1, r0 strb r1, [r4] b _081DD8B4 _081DD8AE: adds r0, r4, 0 bl ClearChain_rev _081DD8B4: ldr r4, [r4, 0x34] cmp r4, 0 bne _081DD892 _081DD8BA: ldrb r3, [r5] movs r0, 0x40 tst r0, r3 beq _081DD938 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 _081DD938 _081DD8E0: ldr r2, [r5, 0x40] ldrb r1, [r2] cmp r1, 0x80 bcs _081DD8EC ldrb r1, [r5, 0x7] b _081DD8F6 _081DD8EC: adds r2, 0x1 str r2, [r5, 0x40] cmp r1, 0xBD bcc _081DD8F6 strb r1, [r5, 0x7] _081DD8F6: cmp r1, 0xCF bcc _081DD90C mov r0, r8 ldr r3, [r0, 0x38] adds r0, r1, 0 subs r0, 0xCF adds r1, r7, 0 adds r2, r5, 0 bl _081DDA7C b _081DD938 _081DD90C: cmp r1, 0xB0 bls _081DD92E 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 _081DDA7C ldrb r0, [r5] cmp r0, 0 beq _081DD994 b _081DD938 _081DD92E: ldr r0, _081DDA80 subs r1, 0x80 adds r1, r0 ldrb r0, [r1] strb r0, [r5, 0x1] _081DD938: ldrb r0, [r5, 0x1] cmp r0, 0 beq _081DD8E0 subs r0, 0x1 strb r0, [r5, 0x1] ldrb r1, [r5, 0x19] cmp r1, 0 beq _081DD994 ldrb r0, [r5, 0x17] cmp r0, 0 beq _081DD994 ldrb r0, [r5, 0x1C] cmp r0, 0 beq _081DD95A subs r0, 0x1 strb r0, [r5, 0x1C] b _081DD994 _081DD95A: ldrb r0, [r5, 0x1A] adds r0, r1 strb r0, [r5, 0x1A] adds r1, r0, 0 subs r0, 0x40 lsls r0, 24 bpl _081DD96E lsls r2, r1, 24 asrs r2, 24 b _081DD972 _081DD96E: movs r0, 0x80 subs r2, r0, r1 _081DD972: ldrb r0, [r5, 0x17] muls r0, r2 asrs r2, r0, 6 ldrb r0, [r5, 0x16] eors r0, r2 lsls r0, 24 beq _081DD994 strb r2, [r5, 0x16] ldrb r0, [r5] ldrb r1, [r5, 0x18] cmp r1, 0 bne _081DD98E movs r1, 0xC b _081DD990 _081DD98E: movs r1, 0x3 _081DD990: orrs r0, r1 strb r0, [r5] _081DD994: mov r3, r10 mov r4, r11 _081DD998: subs r6, 0x1 ble _081DD9A4 movs r0, 0x50 adds r5, r0 lsls r3, 1 b _081DD87C _081DD9A4: ldr r0, [r7, 0xC] adds r0, 0x1 str r0, [r7, 0xC] cmp r4, 0 bne _081DD9B6 movs r0, 0x80 lsls r0, 24 str r0, [r7, 0x4] b _081DDA6C _081DD9B6: str r4, [r7, 0x4] ldrh r0, [r7, 0x22] subs r0, 0x96 _081DD9BC: strh r0, [r7, 0x22] cmp r0, 0x96 bcc _081DD9C4 b _081DD874 _081DD9C4: ldrb r2, [r7, 0x8] ldr r5, [r7, 0x2C] _081DD9C8: ldrb r0, [r5] movs r1, 0x80 tst r1, r0 beq _081DDA62 movs r1, 0xF tst r1, r0 beq _081DDA62 mov r9, r2 adds r0, r7, 0 adds r1, r5, 0 bl TrkVolPitSet_rev01 ldr r4, [r5, 0x20] cmp r4, 0 beq _081DDA58 _081DD9E6: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 bne _081DD9F6 adds r0, r4, 0 bl ClearChain_rev b _081DDA52 _081DD9F6: ldrb r0, [r4, 0x1] movs r6, 0x7 ands r6, r0 ldrb r3, [r5] movs r0, 0x3 tst r0, r3 beq _081DDA14 bl ChnVolSetAsm cmp r6, 0 beq _081DDA14 ldrb r0, [r4, 0x1D] movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1D] _081DDA14: ldrb r3, [r5] movs r0, 0xC tst r0, r3 beq _081DDA52 ldrb r1, [r4, 0x8] movs r0, 0x8 ldrsb r0, [r5, r0] adds r2, r1, r0 bpl _081DDA28 movs r2, 0 _081DDA28: cmp r6, 0 beq _081DDA46 mov r0, r8 ldr r3, [r0, 0x30] adds r1, r2, 0 ldrb r2, [r5, 0x9] adds r0, r6, 0 bl _081DDA7C str r0, [r4, 0x20] ldrb r0, [r4, 0x1D] movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x1D] b _081DDA52 _081DDA46: adds r1, r2, 0 ldrb r2, [r5, 0x9] ldr r0, [r4, 0x24] bl MidiKey2fr str r0, [r4, 0x20] _081DDA52: ldr r4, [r4, 0x34] cmp r4, 0 bne _081DD9E6 _081DDA58: ldrb r0, [r5] movs r1, 0xF0 ands r0, r1 strb r0, [r5] mov r2, r9 _081DDA62: subs r2, 0x1 ble _081DDA6C movs r0, 0x50 adds r5, r0 bgt _081DD9C8 _081DDA6C: ldr r0, _081DDA88 str r0, [r7, 0x34] pop {r0-r7} mov r8, r0 mov r9, r1 mov r10, r2 mov r11, r3 pop {r3} _081DDA7C: bx r3 .align 2, 0 _081DDA80: .4byte gUnknown_0842FBE8 _081DDA84: .4byte 0x03007ff0 _081DDA88: .4byte 0x68736d53 thumb_func_end MPlayMain_rev01 thumb_func_start TrackStop_rev01 TrackStop_rev01: ; 81DDA8C push {r4-r6,lr} adds r5, r1, 0 ldrb r1, [r5] movs r0, 0x80 tst r0, r1 beq _081DDAC4 ldr r4, [r5, 0x20] cmp r4, 0 beq _081DDAC2 movs r6, 0 _081DDAA0: ldrb r0, [r4] cmp r0, 0 beq _081DDABA ldrb r0, [r4, 0x1] movs r3, 0x7 ands r0, r3 beq _081DDAB8 ldr r3, _081DDACC ldr r3, [r3] ldr r3, [r3, 0x2C] bl _081DDA7C _081DDAB8: strb r6, [r4] _081DDABA: str r6, [r4, 0x2C] ldr r4, [r4, 0x34] cmp r4, 0 bne _081DDAA0 _081DDAC2: str r4, [r5, 0x20] _081DDAC4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DDACC: .4byte 0x03007ff0 thumb_func_end TrackStop_rev01 thumb_func_start ChnVolSetAsm ChnVolSetAsm: ; 81DDAD0 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 _081DDAE8 movs r0, 0xFF _081DDAE8: 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 _081DDAFC movs r0, 0xFF _081DDAFC: strb r0, [r4, 0x3] bx lr thumb_func_end ChnVolSetAsm thumb_func_start ply_note_rev01 ply_note_rev01: ; 81DDB00 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, _081DDCFC ldr r1, [r1] str r1, [sp, 0x4] ldr r1, _081DDD00 adds r0, r1 ldrb r0, [r0] strb r0, [r5, 0x4] ldr r3, [r5, 0x40] ldrb r0, [r3] cmp r0, 0x80 bcs _081DDB46 strb r0, [r5, 0x5] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0x80 bcs _081DDB44 strb r0, [r5, 0x6] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0x80 bcs _081DDB44 ldrb r1, [r5, 0x4] adds r1, r0 strb r1, [r5, 0x4] adds r3, 0x1 _081DDB44: str r3, [r5, 0x40] _081DDB46: movs r0, 0 str r0, [sp, 0x14] adds r4, r5, 0 adds r4, 0x24 ldrb r2, [r4] movs r0, 0xC0 tst r0, r2 beq _081DDB98 ldrb r3, [r5, 0x5] movs r0, 0x40 tst r0, r2 beq _081DDB66 ldr r1, [r5, 0x2C] adds r1, r3 ldrb r0, [r1] b _081DDB68 _081DDB66: adds r0, r3, 0 _081DDB68: 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 _081DDB80 b _081DDCEA _081DDB80: movs r0, 0x80 tst r0, r2 beq _081DDB9C ldrb r1, [r6, 0x3] movs r0, 0x80 tst r0, r1 beq _081DDB94 subs r1, 0xC0 lsls r1, 1 str r1, [sp, 0x14] _081DDB94: ldrb r3, [r6, 0x1] b _081DDB9C _081DDB98: mov r9, r4 ldrb r3, [r5, 0x5] _081DDB9C: str r3, [sp, 0x8] ldr r6, [sp] ldrb r1, [r6, 0x9] ldrb r0, [r5, 0x1D] adds r0, r1 cmp r0, 0xFF bls _081DDBAC movs r0, 0xFF _081DDBAC: str r0, [sp, 0x10] mov r6, r9 ldrb r0, [r6] movs r6, 0x7 ands r6, r0 str r6, [sp, 0xC] beq _081DDBEC ldr r0, [sp, 0x4] ldr r4, [r0, 0x1C] cmp r4, 0 bne _081DDBC4 b _081DDCEA _081DDBC4: subs r6, 0x1 lsls r0, r6, 6 adds r4, r0 ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _081DDC40 movs r0, 0x40 tst r0, r1 bne _081DDC40 ldrb r1, [r4, 0x13] ldr r0, [sp, 0x10] cmp r1, r0 bcc _081DDC40 beq _081DDBE4 b _081DDCEA _081DDBE4: ldr r0, [r4, 0x2C] cmp r0, r5 bcs _081DDC40 b _081DDCEA _081DDBEC: 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 _081DDBFA: ldrb r1, [r4] movs r0, 0xC7 tst r0, r1 beq _081DDC40 movs r0, 0x40 tst r0, r1 beq _081DDC14 cmp r2, 0 bne _081DDC18 adds r2, 0x1 ldrb r6, [r4, 0x13] ldr r7, [r4, 0x2C] b _081DDC32 _081DDC14: cmp r2, 0 bne _081DDC34 _081DDC18: ldrb r0, [r4, 0x13] cmp r0, r6 bcs _081DDC24 adds r6, r0, 0 ldr r7, [r4, 0x2C] b _081DDC32 _081DDC24: bhi _081DDC34 ldr r0, [r4, 0x2C] cmp r0, r7 bls _081DDC30 adds r7, r0, 0 b _081DDC32 _081DDC30: bcc _081DDC34 _081DDC32: mov r8, r4 _081DDC34: adds r4, 0x40 subs r3, 0x1 bgt _081DDBFA mov r4, r8 cmp r4, 0 beq _081DDCEA _081DDC40: 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 _081DDC54 str r4, [r3, 0x30] _081DDC54: str r4, [r5, 0x20] str r5, [r4, 0x2C] ldrb r0, [r5, 0x1B] strb r0, [r5, 0x1C] cmp r0, r1 beq _081DDC66 adds r1, r5, 0 bl clear_modM _081DDC66: 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 _081DDCA0 movs r3, 0 _081DDCA0: ldr r6, [sp, 0xC] cmp r6, 0 beq _081DDCCE mov r6, r9 ldrb r0, [r6, 0x2] strb r0, [r4, 0x1E] ldrb r1, [r6, 0x3] movs r0, 0x80 tst r0, r1 bne _081DDCBA movs r0, 0x70 tst r0, r1 bne _081DDCBC _081DDCBA: movs r1, 0x8 _081DDCBC: 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 _081DDA7C b _081DDCDC _081DDCCE: ldr r0, [r5, 0x3C] str r0, [r4, 0x18] ldrb r2, [r5, 0x9] adds r1, r3, 0 adds r0, r7, 0 bl MidiKey2fr _081DDCDC: str r0, [r4, 0x20] movs r0, 0x80 strb r0, [r4] ldrb r1, [r5] movs r0, 0xF0 ands r0, r1 strb r0, [r5] _081DDCEA: 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 _081DDCFC: .4byte 0x03007ff0 _081DDD00: .4byte gUnknown_0842FBE8 thumb_func_end ply_note_rev01 thumb_func_start ply_endtie_rev01 ply_endtie_rev01: ; 81DDD04 push {r4,r5} ldr r2, [r1, 0x40] ldrb r3, [r2] cmp r3, 0x80 bcs _081DDD16 strb r3, [r1, 0x5] adds r2, 0x1 str r2, [r1, 0x40] b _081DDD18 _081DDD16: ldrb r3, [r1, 0x5] _081DDD18: ldr r1, [r1, 0x20] cmp r1, 0 beq _081DDD40 movs r4, 0x83 movs r5, 0x40 _081DDD22: ldrb r2, [r1] tst r2, r4 beq _081DDD3A tst r2, r5 bne _081DDD3A ldrb r0, [r1, 0x11] cmp r0, r3 bne _081DDD3A movs r0, 0x40 orrs r2, r0 strb r2, [r1] b _081DDD40 _081DDD3A: ldr r1, [r1, 0x34] cmp r1, 0 bne _081DDD22 _081DDD40: pop {r4,r5} bx lr thumb_func_end ply_endtie_rev01 thumb_func_start clear_modM clear_modM: ; 81DDD44 movs r2, 0 strb r2, [r1, 0x16] strb r2, [r1, 0x1A] ldrb r2, [r1, 0x18] cmp r2, 0 bne _081DDD54 movs r2, 0xC b _081DDD56 _081DDD54: movs r2, 0x3 _081DDD56: 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: ; 81DDD60 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: ; 81DDD6C mov r12, lr bl ld_r3_tp_adr_i_rev strb r3, [r1, 0x19] cmp r3, 0 bne _081DDD7C bl clear_modM _081DDD7C: bx r12 thumb_func_end ply_lfos_rev01 thumb_func_start ply_mod_rev01 ply_mod_rev01: ; 81DDD80 mov r12, lr bl ld_r3_tp_adr_i_rev strb r3, [r1, 0x17] cmp r3, 0 bne _081DDD90 bl clear_modM _081DDD90: bx r12 thumb_func_end ply_mod_rev01 thumb_func_start MidiKey2fr MidiKey2fr: ; 81DDD94 push {r4-r7,lr} mov r12, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r7, r2, 24 cmp r6, 0xB2 bls _081DDDA8 movs r6, 0xB2 movs r7, 0xFF lsls r7, 24 _081DDDA8: ldr r3, _081DDDF0 adds r0, r6, r3 ldrb r5, [r0] ldr r4, _081DDDF4 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 _081DDDF0: .4byte gUnknown_0842FA04 _081DDDF4: .4byte gUnknown_0842FAB8 thumb_func_end MidiKey2fr thumb_func_start DummyFunc DummyFunc: ; 81DDDF8 bx lr thumb_func_end DummyFunc thumb_func_start MPlayContinue MPlayContinue: ; 81DDDFC adds r2, r0, 0 ldr r3, [r2, 0x34] ldr r0, _081DDE10 cmp r3, r0 bne _081DDE0E ldr r0, [r2, 0x4] ldr r1, _081DDE14 ands r0, r1 str r0, [r2, 0x4] _081DDE0E: bx lr .align 2, 0 _081DDE10: .4byte 0x68736d53 _081DDE14: .4byte 0x7fffffff thumb_func_end MPlayContinue thumb_func_start MPlayFadeOut ; void MPlayFadeOut(mplay_table_entry *a1, s16 a2) MPlayFadeOut: ; 81DDE18 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _081DDE34 cmp r3, r0 bne _081DDE30 strh r1, [r2, 0x26] strh r1, [r2, 0x24] movs r0, 0x80 lsls r0, 1 strh r0, [r2, 0x28] _081DDE30: bx lr .align 2, 0 _081DDE34: .4byte 0x68736d53 thumb_func_end MPlayFadeOut thumb_func_start m4aSoundInit m4aSoundInit: ; 81DDE38 push {r4-r6,lr} ldr r0, _081DDEB8 movs r1, 0x2 negs r1, r1 ands r0, r1 ldr r1, _081DDEBC ldr r2, _081DDEC0 bl CpuSet ldr r0, _081DDEC4 bl SoundInit_rev01 ldr r0, _081DDEC8 bl MPlayExtender ldr r0, _081DDECC bl SoundMode_rev01 ldr r0, _081DDED0 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _081DDE86 ldr r6, _081DDED4 adds r5, r0, 0 _081DDE6A: 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, _081DDED8 str r0, [r4, 0x18] adds r6, 0xC subs r5, 0x1 cmp r5, 0 bne _081DDE6A _081DDE86: ldr r0, _081DDEDC ldr r1, _081DDEE0 movs r2, 0x34 bl memcpy movs r5, 0 movs r6, 0 _081DDE94: lsls r0, r5, 6 ldr r1, _081DDEE4 adds r0, r1 ldr r4, _081DDEE8 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 _081DDE94 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DDEB8: .4byte SoundMainRAM _081DDEBC: .4byte 0x03000f60 _081DDEC0: .4byte 0x04000200 _081DDEC4: .4byte 0x03005fd0 _081DDEC8: .4byte 0x03007100 _081DDECC: .4byte 0x0094c500 _081DDED0: .4byte 0x00000004 _081DDED4: .4byte gUnknown_0845545C _081DDED8: .4byte 0x03007440 _081DDEDC: .4byte 0x03007340 _081DDEE0: .4byte gUnknown_0842FC1C _081DDEE4: .4byte 0x03006ff0 _081DDEE8: .4byte 0x03007200 thumb_func_end m4aSoundInit thumb_func_start m4aSoundMain m4aSoundMain: ; 81DDEEC push {lr} bl SoundMain pop {r0} bx r0 thumb_func_end m4aSoundMain thumb_func_start m4aSongNumStart m4aSongNumStart: ; 81DDEF8 push {lr} lsls r0, 16 ldr r2, _081DDF1C ldr r1, _081DDF20 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 _081DDF1C: .4byte gUnknown_0845545C _081DDF20: .4byte gUnknown_0845548C thumb_func_end m4aSongNumStart thumb_func_start m4aSongNumStartOrChange m4aSongNumStartOrChange: ; 81DDF24 push {lr} lsls r0, 16 ldr r2, _081DDF50 ldr r1, _081DDF54 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 _081DDF58 adds r0, r1, 0 adds r1, r2, 0 bl MPlayStart_rev01 b _081DDF6C .align 2, 0 _081DDF50: .4byte gUnknown_0845545C _081DDF54: .4byte gUnknown_0845548C _081DDF58: ldr r2, [r1, 0x4] ldrh r0, [r1, 0x4] cmp r0, 0 beq _081DDF64 cmp r2, 0 bge _081DDF6C _081DDF64: adds r0, r1, 0 adds r1, r3, 0 bl MPlayStart_rev01 _081DDF6C: pop {r0} bx r0 thumb_func_end m4aSongNumStartOrChange thumb_func_start m4aSongNumStartOrContinue m4aSongNumStartOrContinue: ; 81DDF70 push {lr} lsls r0, 16 ldr r2, _081DDF9C ldr r1, _081DDFA0 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 _081DDFA4 adds r0, r1, 0 adds r1, r2, 0 bl MPlayStart_rev01 b _081DDFC0 .align 2, 0 _081DDF9C: .4byte gUnknown_0845545C _081DDFA0: .4byte gUnknown_0845548C _081DDFA4: ldr r2, [r1, 0x4] ldrh r0, [r1, 0x4] cmp r0, 0 bne _081DDFB6 adds r0, r1, 0 adds r1, r3, 0 bl MPlayStart_rev01 b _081DDFC0 _081DDFB6: cmp r2, 0 bge _081DDFC0 adds r0, r1, 0 bl MPlayContinue _081DDFC0: pop {r0} bx r0 thumb_func_end m4aSongNumStartOrContinue thumb_func_start m4aSongNumStop m4aSongNumStop: ; 81DDFC4 push {lr} lsls r0, 16 ldr r2, _081DDFF0 ldr r1, _081DDFF4 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 _081DDFEA adds r0, r2, 0 bl MPlayStop_rev01 _081DDFEA: pop {r0} bx r0 .align 2, 0 _081DDFF0: .4byte gUnknown_0845545C _081DDFF4: .4byte gUnknown_0845548C thumb_func_end m4aSongNumStop thumb_func_start m4aSongNumContinue m4aSongNumContinue: ; 81DDFF8 push {lr} lsls r0, 16 ldr r2, _081DE024 ldr r1, _081DE028 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 _081DE01E adds r0, r2, 0 bl MPlayContinue _081DE01E: pop {r0} bx r0 .align 2, 0 _081DE024: .4byte gUnknown_0845545C _081DE028: .4byte gUnknown_0845548C thumb_func_end m4aSongNumContinue thumb_func_start m4aMPlayAllStop m4aMPlayAllStop: ; 81DE02C push {r4,r5,lr} ldr r0, _081DE064 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _081DE04A ldr r5, _081DE068 adds r4, r0, 0 _081DE03C: ldr r0, [r5] bl MPlayStop_rev01 adds r5, 0xC subs r4, 0x1 cmp r4, 0 bne _081DE03C _081DE04A: ldr r5, _081DE06C movs r4, 0x1 _081DE04E: adds r0, r5, 0 bl MPlayStop_rev01 adds r5, 0x40 subs r4, 0x1 cmp r4, 0 bge _081DE04E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DE064: .4byte 0x00000004 _081DE068: .4byte gUnknown_0845545C _081DE06C: .4byte 0x03006ff0 thumb_func_end m4aMPlayAllStop thumb_func_start m4aMPlayContinue m4aMPlayContinue: ; 81DE070 push {lr} bl MPlayContinue pop {r0} bx r0 thumb_func_end m4aMPlayContinue thumb_func_start m4aMPlayAllContinue m4aMPlayAllContinue: ; 81DE07A push {r4,r5,lr} ldr r0, _081DE0B4 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _081DE09A ldr r5, _081DE0B8 adds r4, r0, 0 _081DE08C: ldr r0, [r5] bl MPlayContinue adds r5, 0xC subs r4, 0x1 cmp r4, 0 bne _081DE08C _081DE09A: ldr r5, _081DE0BC movs r4, 0x1 _081DE09E: adds r0, r5, 0 bl MPlayContinue adds r5, 0x40 subs r4, 0x1 cmp r4, 0 bge _081DE09E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DE0B4: .4byte 0x00000004 _081DE0B8: .4byte gUnknown_0845545C _081DE0BC: .4byte 0x03006ff0 thumb_func_end m4aMPlayAllContinue thumb_func_start m4aMPlayFadeOut ; void m4aMPlayFadeOut(mplay_table_entry *a1, u16 a2) m4aMPlayFadeOut: ; 81DE0C0 push {lr} lsls r1, 16 lsrs r1, 16 bl MPlayFadeOut pop {r0} bx r0 thumb_func_end m4aMPlayFadeOut thumb_func_start sub_81DE0D0 sub_81DE0D0: ; 81DE0D0 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _081DE0E8 cmp r3, r0 bne _081DE0E6 strh r1, [r2, 0x26] strh r1, [r2, 0x24] ldr r0, _081DE0EC strh r0, [r2, 0x28] _081DE0E6: bx lr .align 2, 0 _081DE0E8: .4byte 0x68736d53 _081DE0EC: .4byte 0x00000101 thumb_func_end sub_81DE0D0 thumb_func_start sub_81DE0F0 sub_81DE0F0: ; 81DE0F0 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _081DE110 cmp r3, r0 bne _081DE10E strh r1, [r2, 0x26] strh r1, [r2, 0x24] movs r0, 0x2 strh r0, [r2, 0x28] ldr r0, [r2, 0x4] ldr r1, _081DE114 ands r0, r1 str r0, [r2, 0x4] _081DE10E: bx lr .align 2, 0 _081DE110: .4byte 0x68736d53 _081DE114: .4byte 0x7fffffff thumb_func_end sub_81DE0F0 thumb_func_start m4aMPlayImmInit m4aMPlayImmInit: ; 81DE118 push {r4-r7,lr} ldrb r5, [r0, 0x8] ldr r4, [r0, 0x2C] cmp r5, 0 ble _081DE15A movs r7, 0x80 _081DE124: ldrb r1, [r4] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _081DE152 movs r6, 0x40 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _081DE152 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] _081DE152: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _081DE124 _081DE15A: pop {r4-r7} pop {r0} bx r0 thumb_func_end m4aMPlayImmInit thumb_func_start MPlayExtender ; int MPlayExtender(void *dest) MPlayExtender: ; 81DE160 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 ldr r1, _081DE228 movs r0, 0x8F strh r0, [r1] ldr r3, _081DE22C movs r2, 0 strh r2, [r3] ldr r0, _081DE230 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, _081DE234 ldr r4, [r0] ldr r6, [r4] ldr r0, _081DE238 cmp r6, r0 bne _081DE220 adds r0, r6, 0x1 str r0, [r4] ldr r1, _081DE23C ldr r0, _081DE240 str r0, [r1, 0x20] ldr r0, _081DE244 str r0, [r1, 0x44] ldr r0, _081DE248 str r0, [r1, 0x4C] ldr r0, _081DE24C str r0, [r1, 0x70] ldr r0, _081DE250 str r0, [r1, 0x74] ldr r0, _081DE254 str r0, [r1, 0x78] ldr r0, _081DE258 str r0, [r1, 0x7C] adds r2, r1, 0 adds r2, 0x80 ldr r0, _081DE25C str r0, [r2] adds r1, 0x84 ldr r0, _081DE260 str r0, [r1] str r5, [r4, 0x1C] ldr r0, _081DE264 str r0, [r4, 0x28] ldr r0, _081DE268 str r0, [r4, 0x2C] ldr r0, _081DE26C str r0, [r4, 0x30] ldr r0, _081DE270 movs r1, 0 strb r0, [r4, 0xC] str r1, [sp] ldr r2, _081DE274 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] _081DE220: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DE228: .4byte 0x04000084 _081DE22C: .4byte 0x04000080 _081DE230: .4byte 0x04000063 _081DE234: .4byte 0x03007ff0 _081DE238: .4byte 0x68736d53 _081DE23C: .4byte 0x03007070 _081DE240: .4byte ply_memacc _081DE244: .4byte ply_lfos_rev01 _081DE248: .4byte ply_mod_rev01 _081DE24C: .4byte ply_xcmd _081DE250: .4byte ply_endtie_rev01 _081DE254: .4byte SampFreqSet_rev01 _081DE258: .4byte TrackStop_rev01 _081DE25C: .4byte FadeOutBody_rev01 _081DE260: .4byte TrkVolPitSet_rev01 _081DE264: .4byte CgbSound _081DE268: .4byte CgbOscOff _081DE26C: .4byte MidiKey2CgbFr _081DE270: .4byte 0x0000003c _081DE274: .4byte 0x05000040 thumb_func_end MPlayExtender thumb_func_start MusicPlayerJumpTableCopy MusicPlayerJumpTableCopy: ; 81DE278 swi 0x2A bx lr thumb_func_end MusicPlayerJumpTableCopy thumb_func_start ClearChain_rev ClearChain_rev: ; 81DE27C push {lr} ldr r1, _081DE28C ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _081DE28C: .4byte 0x030070f8 thumb_func_end ClearChain_rev thumb_func_start Clear64byte_rev Clear64byte_rev: ; 81DE290 push {lr} ldr r1, _081DE2A0 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _081DE2A0: .4byte 0x030070fc thumb_func_end Clear64byte_rev thumb_func_start SoundInit_rev01 ; int SoundInit_rev01(void *dest) SoundInit_rev01: ; 81DE2A4 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r3, 0 str r3, [r5] ldr r1, _081DE35C ldr r0, [r1] movs r2, 0x80 lsls r2, 18 ands r0, r2 cmp r0, 0 beq _081DE2C0 ldr r0, _081DE360 str r0, [r1] _081DE2C0: ldr r1, _081DE364 ldr r0, [r1] ands r0, r2 cmp r0, 0 beq _081DE2CE ldr r0, _081DE360 str r0, [r1] _081DE2CE: ldr r0, _081DE368 movs r2, 0x80 lsls r2, 3 adds r1, r2, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] ldr r1, _081DE36C movs r0, 0x8F strh r0, [r1] subs r1, 0x2 ldr r2, _081DE370 adds r0, r2, 0 strh r0, [r1] ldr r2, _081DE374 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r1, _081DE378 movs r2, 0xD4 lsls r2, 2 adds r0, r5, r2 str r0, [r1] adds r1, 0x4 ldr r0, _081DE37C str r0, [r1] adds r1, 0x8 movs r2, 0x98 lsls r2, 4 adds r0, r5, r2 str r0, [r1] adds r1, 0x4 ldr r0, _081DE380 str r0, [r1] ldr r0, _081DE384 str r5, [r0] str r3, [sp] ldr r2, _081DE388 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, _081DE38C str r0, [r5, 0x38] ldr r0, _081DE390 str r0, [r5, 0x28] str r0, [r5, 0x2C] str r0, [r5, 0x30] str r0, [r5, 0x3C] ldr r4, _081DE394 adds r0, r4, 0 bl MPlyJmpTblCopy str r4, [r5, 0x34] movs r0, 0x80 lsls r0, 11 bl SampFreqSet_rev01 ldr r0, _081DE398 str r0, [r5] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DE35C: .4byte 0x040000c4 _081DE360: .4byte 0x84400004 _081DE364: .4byte 0x040000d0 _081DE368: .4byte 0x040000c6 _081DE36C: .4byte 0x04000084 _081DE370: .4byte 0x0000a90e _081DE374: .4byte 0x04000089 _081DE378: .4byte 0x040000bc _081DE37C: .4byte 0x040000a0 _081DE380: .4byte 0x040000a4 _081DE384: .4byte 0x03007ff0 _081DE388: .4byte 0x050003ec _081DE38C: .4byte ply_note_rev01 _081DE390: .4byte DummyFunc_rev _081DE394: .4byte 0x03007070 _081DE398: .4byte 0x68736d53 thumb_func_end SoundInit_rev01 thumb_func_start SampFreqSet_rev01 SampFreqSet_rev01: ; 81DE39C push {r4-r6,lr} adds r2, r0, 0 ldr r0, _081DE41C 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, _081DE420 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, _081DE424 muls r0, r5 ldr r1, _081DE428 adds r0, r1 ldr r1, _081DE42C 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, _081DE430 strh r6, [r0] ldr r4, _081DE434 ldr r0, _081DE438 adds r1, r5, 0 bl __divsi3 negs r0, r0 strh r0, [r4] bl SoundVSyncOn_rev01 ldr r1, _081DE43C _081DE400: ldrb r0, [r1] cmp r0, 0x9F beq _081DE400 ldr r1, _081DE43C _081DE408: ldrb r0, [r1] cmp r0, 0x9F bne _081DE408 ldr r1, _081DE430 movs r0, 0x80 strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DE41C: .4byte 0x03007ff0 _081DE420: .4byte gUnknown_0842FAE8 _081DE424: .4byte 0x00091d1b _081DE428: .4byte 0x00001388 _081DE42C: .4byte 0x00002710 _081DE430: .4byte 0x04000102 _081DE434: .4byte 0x04000100 _081DE438: .4byte 0x00044940 _081DE43C: .4byte 0x04000006 thumb_func_end SampFreqSet_rev01 thumb_func_start SoundMode_rev01 SoundMode_rev01: ; 81DE440 push {r4,r5,lr} adds r3, r0, 0 ldr r0, _081DE4CC ldr r5, [r0] ldr r1, [r5] ldr r0, _081DE4D0 cmp r1, r0 bne _081DE4C6 adds r0, r1, 0x1 str r0, [r5] movs r4, 0xFF ands r4, r3 cmp r4, 0 beq _081DE462 movs r0, 0x7F ands r4, r0 strb r4, [r5, 0x5] _081DE462: movs r4, 0xF0 lsls r4, 4 ands r4, r3 cmp r4, 0 beq _081DE482 lsrs r0, r4, 8 strb r0, [r5, 0x6] movs r4, 0xC adds r0, r5, 0 adds r0, 0x50 movs r1, 0 _081DE478: strb r1, [r0] subs r4, 0x1 adds r0, 0x40 cmp r4, 0 bne _081DE478 _081DE482: movs r4, 0xF0 lsls r4, 8 ands r4, r3 cmp r4, 0 beq _081DE490 lsrs r0, r4, 12 strb r0, [r5, 0x7] _081DE490: movs r4, 0xB0 lsls r4, 16 ands r4, r3 cmp r4, 0 beq _081DE4AE movs r0, 0xC0 lsls r0, 14 ands r0, r4 lsrs r4, r0, 14 ldr r2, _081DE4D4 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 orrs r0, r4 strb r0, [r2] _081DE4AE: movs r4, 0xF0 lsls r4, 12 ands r4, r3 cmp r4, 0 beq _081DE4C2 bl SoundVSyncOff_rev01 adds r0, r4, 0 bl SampFreqSet_rev01 _081DE4C2: ldr r0, _081DE4D0 str r0, [r5] _081DE4C6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DE4CC: .4byte 0x03007ff0 _081DE4D0: .4byte 0x68736d53 _081DE4D4: .4byte 0x04000089 thumb_func_end SoundMode_rev01 thumb_func_start SoundClear_rev01 SoundClear_rev01: ; 81DE4D8 push {r4-r7,lr} ldr r0, _081DE524 ldr r6, [r0] ldr r1, [r6] ldr r0, _081DE528 cmp r1, r0 bne _081DE51E adds r0, r1, 0x1 str r0, [r6] movs r5, 0xC adds r4, r6, 0 adds r4, 0x50 movs r0, 0 _081DE4F2: strb r0, [r4] subs r5, 0x1 adds r4, 0x40 cmp r5, 0 bgt _081DE4F2 ldr r4, [r6, 0x1C] cmp r4, 0 beq _081DE51A movs r5, 0x1 movs r7, 0 _081DE506: 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 _081DE506 _081DE51A: ldr r0, _081DE528 str r0, [r6] _081DE51E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DE524: .4byte 0x03007ff0 _081DE528: .4byte 0x68736d53 thumb_func_end SoundClear_rev01 thumb_func_start SoundVSyncOff_rev01 SoundVSyncOff_rev01: ; 81DE52C push {lr} sub sp, 0x4 ldr r0, _081DE58C ldr r2, [r0] ldr r1, [r2] ldr r3, _081DE590 adds r0, r1, r3 cmp r0, 0x1 bhi _081DE584 adds r0, r1, 0 adds r0, 0xA str r0, [r2] ldr r1, _081DE594 ldr r0, [r1] movs r3, 0x80 lsls r3, 18 ands r0, r3 cmp r0, 0 beq _081DE556 ldr r0, _081DE598 str r0, [r1] _081DE556: ldr r1, _081DE59C ldr r0, [r1] ands r0, r3 cmp r0, 0 beq _081DE564 ldr r0, _081DE598 str r0, [r1] _081DE564: ldr r0, _081DE5A0 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, _081DE5A4 mov r0, sp bl CpuSet _081DE584: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _081DE58C: .4byte 0x03007ff0 _081DE590: .4byte 0x978c92ad _081DE594: .4byte 0x040000c4 _081DE598: .4byte 0x84400004 _081DE59C: .4byte 0x040000d0 _081DE5A0: .4byte 0x040000c6 _081DE5A4: .4byte 0x05000318 thumb_func_end SoundVSyncOff_rev01 thumb_func_start SoundVSyncOn_rev01 SoundVSyncOn_rev01: ; 81DE5A8 push {r4,lr} ldr r0, _081DE5D8 ldr r2, [r0] ldr r3, [r2] ldr r0, _081DE5DC cmp r3, r0 beq _081DE5D0 ldr r0, _081DE5E0 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] _081DE5D0: pop {r4} pop {r0} bx r0 .align 2, 0 _081DE5D8: .4byte 0x03007ff0 _081DE5DC: .4byte 0x68736d53 _081DE5E0: .4byte 0x040000c6 thumb_func_end SoundVSyncOn_rev01 thumb_func_start MPlayOpen_rev01 MPlayOpen_rev01: ; 81DE5E4 push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 cmp r4, 0 beq _081DE648 cmp r4, 0x10 bls _081DE5F8 movs r4, 0x10 _081DE5F8: ldr r0, _081DE650 ldr r5, [r0] ldr r1, [r5] ldr r0, _081DE654 cmp r1, r0 bne _081DE648 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 _081DE62C movs r1, 0 _081DE61E: strb r1, [r6] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r6, 0x50 cmp r4, 0 bne _081DE61E _081DE62C: ldr r0, [r5, 0x20] cmp r0, 0 beq _081DE63C str r0, [r7, 0x38] ldr r0, [r5, 0x24] str r0, [r7, 0x3C] movs r0, 0 str r0, [r5, 0x20] _081DE63C: str r7, [r5, 0x24] ldr r0, _081DE658 str r0, [r5, 0x20] ldr r0, _081DE654 str r0, [r5] str r0, [r7, 0x34] _081DE648: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DE650: .4byte 0x03007ff0 _081DE654: .4byte 0x68736d53 _081DE658: .4byte MPlayMain_rev01 thumb_func_end MPlayOpen_rev01 thumb_func_start MPlayStart_rev01 MPlayStart_rev01: ; 81DE65C push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r1, 0 ldr r1, [r5, 0x34] ldr r0, _081DE73C cmp r1, r0 bne _081DE732 ldrb r0, [r5, 0xB] ldrb r2, [r7, 0x2] cmp r0, 0 beq _081DE69E ldr r0, [r5] cmp r0, 0 beq _081DE688 ldr r1, [r5, 0x2C] movs r0, 0x40 ldrb r1, [r1] ands r0, r1 cmp r0, 0 bne _081DE694 _081DE688: ldr r1, [r5, 0x4] ldrh r0, [r5, 0x4] cmp r0, 0 beq _081DE69E cmp r1, 0 blt _081DE69E _081DE694: ldrb r0, [r7, 0x2] adds r2, r0, 0 ldrb r0, [r5, 0x9] cmp r0, r2 bhi _081DE732 _081DE69E: 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 _081DE6FE ldrb r0, [r5, 0x8] cmp r6, r0 bge _081DE71E mov r8, r6 _081DE6D2: 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 _081DE6FE ldrb r1, [r5, 0x8] cmp r6, r1 blt _081DE6D2 _081DE6FE: ldrb r0, [r5, 0x8] cmp r6, r0 bge _081DE71E movs r1, 0 mov r8, r1 _081DE708: 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 _081DE708 _081DE71E: movs r0, 0x80 ldrb r1, [r7, 0x3] ands r0, r1 cmp r0, 0 beq _081DE72E ldrb r0, [r7, 0x3] bl SoundMode_rev01 _081DE72E: ldr r0, _081DE73C str r0, [r5, 0x34] _081DE732: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DE73C: .4byte 0x68736d53 thumb_func_end MPlayStart_rev01 thumb_func_start MPlayStop_rev01 MPlayStop_rev01: ; 81DE740 push {r4-r6,lr} adds r6, r0, 0 ldr r1, [r6, 0x34] ldr r0, _081DE77C cmp r1, r0 bne _081DE776 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 _081DE772 _081DE762: adds r0, r6, 0 adds r1, r5, 0 bl TrackStop_rev01 subs r4, 0x1 adds r5, 0x50 cmp r4, 0 bgt _081DE762 _081DE772: ldr r0, _081DE77C str r0, [r6, 0x34] _081DE776: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DE77C: .4byte 0x68736d53 thumb_func_end MPlayStop_rev01 thumb_func_start FadeOutBody_rev01 FadeOutBody_rev01: ; 81DE780 push {r4-r7,lr} adds r6, r0, 0 ldrh r1, [r6, 0x24] cmp r1, 0 beq _081DE842 ldrh r0, [r6, 0x26] subs r0, 0x1 strh r0, [r6, 0x26] ldr r3, _081DE7C0 adds r2, r3, 0 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _081DE842 strh r1, [r6, 0x26] ldrh r1, [r6, 0x28] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081DE7C4 adds r0, r1, 0 adds r0, 0x10 strh r0, [r6, 0x28] ands r0, r2 cmp r0, 0xFF bls _081DE816 movs r0, 0x80 lsls r0, 1 strh r0, [r6, 0x28] strh r3, [r6, 0x24] b _081DE816 .align 2, 0 _081DE7C0: .4byte 0x0000ffff _081DE7C4: adds r0, r1, 0 subs r0, 0x10 strh r0, [r6, 0x28] ands r0, r2 lsls r0, 16 cmp r0, 0 bgt _081DE816 ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] cmp r5, 0 ble _081DE7F6 _081DE7DA: 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 _081DE7EE strb r0, [r4] _081DE7EE: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _081DE7DA _081DE7F6: movs r0, 0x1 ldrh r1, [r6, 0x28] ands r0, r1 cmp r0, 0 beq _081DE80A ldr r0, [r6, 0x4] movs r1, 0x80 lsls r1, 24 orrs r0, r1 b _081DE80E _081DE80A: movs r0, 0x80 lsls r0, 24 _081DE80E: str r0, [r6, 0x4] movs r0, 0 strh r0, [r6, 0x24] b _081DE842 _081DE816: ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] cmp r5, 0 ble _081DE842 movs r3, 0x80 movs r7, 0 movs r2, 0x3 _081DE824: ldrb r1, [r4] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _081DE83A ldrh r7, [r6, 0x28] lsrs r0, r7, 2 strb r0, [r4, 0x13] adds r0, r1, 0 orrs r0, r2 strb r0, [r4] _081DE83A: subs r5, 0x1 adds r4, 0x50 cmp r5, 0 bgt _081DE824 _081DE842: pop {r4-r7} pop {r0} bx r0 thumb_func_end FadeOutBody_rev01 thumb_func_start TrkVolPitSet_rev01 TrkVolPitSet_rev01: ; 81DE848 push {r4,lr} adds r2, r1, 0 movs r0, 0x1 ldrb r1, [r2] ands r0, r1 cmp r0, 0 beq _081DE8AC 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 _081DE870 movs r0, 0x16 ldrsb r0, [r2, r0] adds r0, 0x80 muls r0, r3 lsrs r3, r0, 7 _081DE870: 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 _081DE886 movs r0, 0x16 ldrsb r0, [r2, r0] adds r1, r0 _081DE886: movs r0, 0x80 negs r0, r0 cmp r1, r0 bge _081DE892 adds r1, r0, 0 b _081DE898 _081DE892: cmp r1, 0x7F ble _081DE898 movs r1, 0x7F _081DE898: 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] _081DE8AC: ldrb r1, [r2] movs r0, 0x4 ands r0, r1 adds r3, r1, 0 cmp r0, 0 beq _081DE8F0 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 _081DE8EA movs r0, 0x16 ldrsb r0, [r2, r0] lsls r0, 4 adds r1, r0 _081DE8EA: asrs r0, r1, 8 strb r0, [r2, 0x8] strb r1, [r2, 0x9] _081DE8F0: 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: ; 81DE8FC 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 _081DE934 cmp r5, 0x14 bhi _081DE918 movs r5, 0 b _081DE926 _081DE918: adds r0, r5, 0 subs r0, 0x15 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3B bls _081DE926 movs r5, 0x3B _081DE926: ldr r0, _081DE930 adds r0, r5, r0 ldrb r0, [r0] b _081DE996 .align 2, 0 _081DE930: .4byte gUnknown_0842FB9C _081DE934: cmp r5, 0x23 bhi _081DE940 movs r0, 0 mov r12, r0 movs r5, 0 b _081DE952 _081DE940: adds r0, r5, 0 subs r0, 0x24 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x82 bls _081DE952 movs r5, 0x82 movs r1, 0xFF mov r12, r1 _081DE952: ldr r3, _081DE99C adds r0, r5, r3 ldrb r6, [r0] ldr r4, _081DE9A0 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 _081DE996: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081DE99C: .4byte gUnknown_0842FB00 _081DE9A0: .4byte gUnknown_0842FB84 thumb_func_end MidiKey2CgbFr thumb_func_start CgbOscOff CgbOscOff: ; 81DE9A4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x2 beq _081DE9CC cmp r0, 0x2 bgt _081DE9B8 cmp r0, 0x1 beq _081DE9BE b _081DE9E0 _081DE9B8: cmp r1, 0x3 beq _081DE9D4 b _081DE9E0 _081DE9BE: ldr r1, _081DE9C8 movs r0, 0x8 strb r0, [r1] adds r1, 0x2 b _081DE9E8 .align 2, 0 _081DE9C8: .4byte 0x04000063 _081DE9CC: ldr r1, _081DE9D0 b _081DE9E2 .align 2, 0 _081DE9D0: .4byte 0x04000069 _081DE9D4: ldr r1, _081DE9DC movs r0, 0 b _081DE9EA .align 2, 0 _081DE9DC: .4byte 0x04000070 _081DE9E0: ldr r1, _081DE9F0 _081DE9E2: movs r0, 0x8 strb r0, [r1] adds r1, 0x4 _081DE9E8: movs r0, 0x80 _081DE9EA: strb r0, [r1] bx lr .align 2, 0 _081DE9F0: .4byte 0x04000079 thumb_func_end CgbOscOff thumb_func_start CgbModVol CgbModVol: ; 81DE9F4 push {r4,lr} adds r2, r0, 0 ldr r0, _081DEA24 ldr r1, [r0] movs r0, 0x1 ldrb r1, [r1, 0x9] ands r0, r1 cmp r0, 0 bne _081DEA34 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 _081DEA28 lsrs r0, r1, 25 cmp r0, r3 bcc _081DEA34 movs r0, 0xF strb r0, [r2, 0x1B] b _081DEA42 .align 2, 0 _081DEA24: .4byte 0x03007ff0 _081DEA28: lsrs r0, 25 cmp r0, r4 bcc _081DEA34 movs r0, 0xF0 strb r0, [r2, 0x1B] b _081DEA42 _081DEA34: movs r0, 0xFF strb r0, [r2, 0x1B] ldrb r1, [r2, 0x3] ldrb r3, [r2, 0x2] adds r0, r1, r3 lsrs r0, 4 b _081DEA52 _081DEA42: ldrb r1, [r2, 0x3] ldrb r3, [r2, 0x2] adds r0, r1, r3 lsrs r0, 4 strb r0, [r2, 0xA] cmp r0, 0xF bls _081DEA54 movs r0, 0xF _081DEA52: strb r0, [r2, 0xA] _081DEA54: 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: ; 81DEA70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, _081DEA90 ldr r0, [r0] str r0, [sp, 0x4] ldrb r0, [r0, 0xA] cmp r0, 0 beq _081DEA94 subs r0, 0x1 ldr r1, [sp, 0x4] strb r0, [r1, 0xA] b _081DEA9A .align 2, 0 _081DEA90: .4byte 0x03007ff0 _081DEA94: movs r0, 0xE ldr r2, [sp, 0x4] strb r0, [r2, 0xA] _081DEA9A: movs r6, 0x1 ldr r0, [sp, 0x4] ldr r4, [r0, 0x1C] _081DEAA0: 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 _081DEAB6 b _081DEEA0 _081DEAB6: cmp r6, 0x2 beq _081DEAE8 cmp r6, 0x2 bgt _081DEAC4 cmp r6, 0x1 beq _081DEACA b _081DEB20 _081DEAC4: cmp r6, 0x3 beq _081DEB00 b _081DEB20 _081DEACA: ldr r0, _081DEADC str r0, [sp, 0x8] ldr r7, _081DEAE0 ldr r2, _081DEAE4 str r2, [sp, 0xC] adds r0, 0x4 str r0, [sp, 0x10] adds r2, 0x2 b _081DEB30 .align 2, 0 _081DEADC: .4byte 0x04000060 _081DEAE0: .4byte 0x04000062 _081DEAE4: .4byte 0x04000063 _081DEAE8: ldr r0, _081DEAF4 str r0, [sp, 0x8] ldr r7, _081DEAF8 ldr r2, _081DEAFC b _081DEB28 .align 2, 0 _081DEAF4: .4byte 0x04000061 _081DEAF8: .4byte 0x04000068 _081DEAFC: .4byte 0x04000069 _081DEB00: ldr r0, _081DEB14 str r0, [sp, 0x8] ldr r7, _081DEB18 ldr r2, _081DEB1C str r2, [sp, 0xC] adds r0, 0x4 str r0, [sp, 0x10] adds r2, 0x2 b _081DEB30 .align 2, 0 _081DEB14: .4byte 0x04000070 _081DEB18: .4byte 0x04000072 _081DEB1C: .4byte 0x04000073 _081DEB20: ldr r0, _081DEB80 str r0, [sp, 0x8] ldr r7, _081DEB84 ldr r2, _081DEB88 _081DEB28: str r2, [sp, 0xC] adds r0, 0xB str r0, [sp, 0x10] adds r2, 0x4 _081DEB30: 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 _081DEC26 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 _081DEC4A 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 _081DEB98 cmp r6, 0x2 bgt _081DEB8C cmp r6, 0x1 beq _081DEB92 b _081DEBEC .align 2, 0 _081DEB80: .4byte 0x04000071 _081DEB84: .4byte 0x04000078 _081DEB88: .4byte 0x04000079 _081DEB8C: cmp r6, 0x3 beq _081DEBA4 b _081DEBEC _081DEB92: ldrb r0, [r4, 0x1F] ldr r2, [sp, 0x8] strb r0, [r2] _081DEB98: ldr r0, [r4, 0x24] lsls r0, 6 ldrb r1, [r4, 0x1E] adds r0, r1, r0 strb r0, [r7] b _081DEBF8 _081DEBA4: ldr r1, [r4, 0x24] ldr r0, [r4, 0x28] cmp r1, r0 beq _081DEBCC ldr r2, [sp, 0x8] strb r3, [r2] ldr r1, _081DEBE0 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] _081DEBCC: ldr r0, [sp, 0x8] strb r5, [r0] ldrb r0, [r4, 0x1E] strb r0, [r7] ldrb r0, [r4, 0x1E] cmp r0, 0 beq _081DEBE4 movs r0, 0xC0 b _081DEC06 .align 2, 0 _081DEBE0: .4byte 0x04000090 _081DEBE4: movs r1, 0x80 negs r1, r1 strb r1, [r4, 0x1A] b _081DEC08 _081DEBEC: ldrb r0, [r4, 0x1E] strb r0, [r7] ldr r0, [r4, 0x24] lsls r0, 3 ldr r2, [sp, 0x10] strb r0, [r2] _081DEBF8: ldrb r0, [r4, 0x4] adds r0, 0x8 mov r8, r0 ldrb r0, [r4, 0x1E] cmp r0, 0 beq _081DEC06 movs r0, 0x40 _081DEC06: strb r0, [r4, 0x1A] _081DEC08: 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 _081DEC22 b _081DED5E _081DEC22: strb r2, [r4, 0x9] b _081DED8C _081DEC26: movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _081DEC58 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 _081DEC4A b _081DED9E _081DEC4A: lsls r0, r6, 24 lsrs r0, 24 bl CgbOscOff movs r0, 0 strb r0, [r4] b _081DEE9C _081DEC58: 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 _081DEC98 movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081DEC98 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 _081DECCA movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] cmp r6, 0x3 beq _081DED8C ldrb r2, [r4, 0x7] mov r8, r2 b _081DED8C _081DEC98: ldrb r0, [r4, 0xB] cmp r0, 0 bne _081DED8C cmp r6, 0x3 bne _081DECAA movs r0, 0x1 ldrb r1, [r4, 0x1D] orrs r0, r1 strb r0, [r4, 0x1D] _081DECAA: adds r0, r4, 0 bl CgbModVol movs r0, 0x3 ldrb r2, [r4] ands r0, r2 cmp r0, 0 bne _081DECFE ldrb r0, [r4, 0x9] subs r0, 0x1 strb r0, [r4, 0x9] movs r1, 0xFF ands r0, r1 lsls r0, 24 cmp r0, 0 bgt _081DECFA _081DECCA: 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 _081DEC4A 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 _081DED9E movs r2, 0x8 mov r8, r2 b _081DED9E _081DECFA: ldrb r0, [r4, 0x7] b _081DED8A _081DECFE: cmp r0, 0x1 bne _081DED0A _081DED02: ldrb r0, [r4, 0x19] strb r0, [r4, 0x9] movs r0, 0x7 b _081DED8A _081DED0A: cmp r0, 0x2 bne _081DED4E 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 _081DED4A _081DED22: ldrb r0, [r4, 0x6] cmp r0, 0 bne _081DED32 movs r0, 0xFC ldrb r1, [r4] ands r0, r1 strb r0, [r4] b _081DECCA _081DED32: 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 _081DED02 movs r0, 0x8 mov r8, r0 b _081DED02 _081DED4A: ldrb r0, [r4, 0x5] b _081DED8A _081DED4E: 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 _081DED88 _081DED5E: 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 _081DED22 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 _081DED8C ldrb r2, [r4, 0x5] mov r8, r2 b _081DED8C _081DED88: ldrb r0, [r4, 0x4] _081DED8A: strb r0, [r4, 0xB] _081DED8C: ldrb r0, [r4, 0xB] subs r0, 0x1 strb r0, [r4, 0xB] ldr r0, [sp] cmp r0, 0 bne _081DED9E subs r0, 0x1 str r0, [sp] b _081DEC98 _081DED9E: movs r0, 0x2 ldrb r1, [r4, 0x1D] ands r0, r1 cmp r0, 0 beq _081DEE16 cmp r6, 0x3 bgt _081DEDDE movs r0, 0x8 ldrb r2, [r4, 0x1] ands r0, r2 cmp r0, 0 beq _081DEDDE ldr r0, _081DEDC8 ldrb r0, [r0] cmp r0, 0x3F bgt _081DEDD0 ldr r0, [r4, 0x20] adds r0, 0x2 ldr r1, _081DEDCC b _081DEDDA .align 2, 0 _081DEDC8: .4byte 0x04000089 _081DEDCC: .4byte 0x000007fc _081DEDD0: cmp r0, 0x7F bgt _081DEDDE ldr r0, [r4, 0x20] adds r0, 0x1 ldr r1, _081DEDEC _081DEDDA: ands r0, r1 str r0, [r4, 0x20] _081DEDDE: cmp r6, 0x4 beq _081DEDF0 ldr r0, [r4, 0x20] ldr r1, [sp, 0x10] strb r0, [r1] b _081DEDFE .align 2, 0 _081DEDEC: .4byte 0x000007fe _081DEDF0: ldr r2, [sp, 0x10] ldrb r0, [r2] movs r1, 0x8 ands r1, r0 ldr r0, [r4, 0x20] orrs r0, r1 strb r0, [r2] _081DEDFE: 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] _081DEE16: movs r0, 0x1 ldrb r2, [r4, 0x1D] ands r0, r2 cmp r0, 0 beq _081DEE9C ldr r1, _081DEE60 ldrb r0, [r1] ldrb r2, [r4, 0x1C] bics r0, r2 ldrb r2, [r4, 0x1B] orrs r0, r2 strb r0, [r1] cmp r6, 0x3 bne _081DEE68 ldr r0, _081DEE64 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 _081DEE9C 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 _081DEE9C .align 2, 0 _081DEE60: .4byte 0x04000081 _081DEE64: .4byte gUnknown_0842FBD8 _081DEE68: 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 _081DEE9C ldr r0, [sp, 0x8] ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _081DEE9C ldrb r0, [r4, 0x1A] orrs r0, r2 ldr r1, [sp, 0x14] strb r0, [r1] _081DEE9C: movs r0, 0 strb r0, [r4, 0x1D] _081DEEA0: mov r6, r10 mov r4, r9 cmp r6, 0x4 bgt _081DEEAA b _081DEAA0 _081DEEAA: 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: ; 81DEEBC push {r4,lr} adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r3, [r2, 0x34] ldr r0, _081DEEE0 cmp r3, r0 bne _081DEED8 strh r1, [r2, 0x1E] ldrh r4, [r2, 0x1C] adds r0, r1, 0 muls r0, r4 asrs r0, 8 strh r0, [r2, 0x20] _081DEED8: pop {r4} pop {r0} bx r0 .align 2, 0 _081DEEE0: .4byte 0x68736d53 thumb_func_end MPlayTempoControl thumb_func_start MPlayVolumeControl MPlayVolumeControl: ; 81DEEE4 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, _081DEF48 cmp r3, r0 bne _081DEF3C adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r1, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _081DEF38 movs r0, 0x80 mov r8, r0 lsrs r6, 18 movs r0, 0x3 mov r12, r0 _081DEF14: adds r0, r7, 0 ands r0, r5 cmp r0, 0 beq _081DEF2E ldrb r3, [r1] mov r0, r8 ands r0, r3 cmp r0, 0 beq _081DEF2E strb r6, [r1, 0x13] mov r0, r12 orrs r0, r3 strb r0, [r1] _081DEF2E: subs r2, 0x1 adds r1, 0x50 lsls r5, 1 cmp r2, 0 bgt _081DEF14 _081DEF38: ldr r0, _081DEF48 str r0, [r4, 0x34] _081DEF3C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DEF48: .4byte 0x68736d53 thumb_func_end MPlayVolumeControl thumb_func_start MPlayPitchControl MPlayPitchControl: ; 81DEF4C 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, _081DEFBC cmp r3, r0 bne _081DEFAE adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r3, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _081DEFAA movs r0, 0x80 mov r9, r0 lsls r0, r6, 16 asrs r7, r0, 24 movs r0, 0xC mov r8, r0 _081DEF84: mov r0, r12 ands r0, r5 cmp r0, 0 beq _081DEFA0 ldrb r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 beq _081DEFA0 strb r7, [r3, 0xB] strb r6, [r3, 0xD] mov r0, r8 orrs r0, r1 strb r0, [r3] _081DEFA0: subs r2, 0x1 adds r3, 0x50 lsls r5, 1 cmp r2, 0 bgt _081DEF84 _081DEFAA: ldr r0, _081DEFBC str r0, [r4, 0x34] _081DEFAE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DEFBC: .4byte 0x68736d53 thumb_func_end MPlayPitchControl thumb_func_start MPlayPanpotControl MPlayPanpotControl: ; 81DEFC0 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, _081DF024 cmp r3, r0 bne _081DF018 adds r0, r3, 0x1 str r0, [r4, 0x34] ldrb r2, [r4, 0x8] ldr r1, [r4, 0x2C] movs r5, 0x1 cmp r2, 0 ble _081DF014 movs r0, 0x80 mov r8, r0 movs r0, 0x3 mov r12, r0 _081DEFF0: adds r0, r7, 0 ands r0, r5 cmp r0, 0 beq _081DF00A ldrb r3, [r1] mov r0, r8 ands r0, r3 cmp r0, 0 beq _081DF00A strb r6, [r1, 0x15] mov r0, r12 orrs r0, r3 strb r0, [r1] _081DF00A: subs r2, 0x1 adds r1, 0x50 lsls r5, 1 cmp r2, 0 bgt _081DEFF0 _081DF014: ldr r0, _081DF024 str r0, [r4, 0x34] _081DF018: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DF024: .4byte 0x68736d53 thumb_func_end MPlayPanpotControl thumb_func_start MP_clear_modM MP_clear_modM: ; 81DF028 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 _081DF03C movs r0, 0xC b _081DF03E _081DF03C: movs r0, 0x3 _081DF03E: ldrb r2, [r1] orrs r0, r2 strb r0, [r1] bx lr thumb_func_end MP_clear_modM thumb_func_start MPlayModDepthSet MPlayModDepthSet: ; 81DF048 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, _081DF0B8 cmp r1, r0 bne _081DF0A8 adds r0, r1, 0x1 str r0, [r6, 0x34] ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] movs r7, 0x1 cmp r5, 0 ble _081DF0A4 mov r9, r8 _081DF078: mov r0, r10 ands r0, r7 cmp r0, 0 beq _081DF09A movs r0, 0x80 ldrb r1, [r4] ands r0, r1 cmp r0, 0 beq _081DF09A mov r0, r8 strb r0, [r4, 0x17] mov r1, r9 cmp r1, 0 bne _081DF09A adds r0, r4, 0 bl MP_clear_modM _081DF09A: subs r5, 0x1 adds r4, 0x50 lsls r7, 1 cmp r5, 0 bgt _081DF078 _081DF0A4: ldr r0, _081DF0B8 str r0, [r6, 0x34] _081DF0A8: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DF0B8: .4byte 0x68736d53 thumb_func_end MPlayModDepthSet thumb_func_start MPlayLFOSpeedSet MPlayLFOSpeedSet: ; 81DF0BC 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, _081DF12C cmp r1, r0 bne _081DF11C adds r0, r1, 0x1 str r0, [r6, 0x34] ldrb r5, [r6, 0x8] ldr r4, [r6, 0x2C] movs r7, 0x1 cmp r5, 0 ble _081DF118 mov r9, r8 _081DF0EC: mov r0, r10 ands r0, r7 cmp r0, 0 beq _081DF10E movs r0, 0x80 ldrb r1, [r4] ands r0, r1 cmp r0, 0 beq _081DF10E mov r0, r8 strb r0, [r4, 0x19] mov r1, r9 cmp r1, 0 bne _081DF10E adds r0, r4, 0 bl MP_clear_modM _081DF10E: subs r5, 0x1 adds r4, 0x50 lsls r7, 1 cmp r5, 0 bgt _081DF0EC _081DF118: ldr r0, _081DF12C str r0, [r6, 0x34] _081DF11C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DF12C: .4byte 0x68736d53 thumb_func_end MPlayLFOSpeedSet thumb_func_start ply_memacc ply_memacc: ; 81DF130 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 _081DF154 b _081DF282 _081DF154: lsls r0, r5, 2 ldr r1, _081DF160 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081DF160: .4byte _081DF164 .align 2, 0 _081DF164: .4byte _081DF1AC .4byte _081DF1B0 .4byte _081DF1B8 .4byte _081DF1C0 .4byte _081DF1CA .4byte _081DF1D8 .4byte _081DF1E6 .4byte _081DF1EE .4byte _081DF1F6 .4byte _081DF1FE .4byte _081DF206 .4byte _081DF20E .4byte _081DF216 .4byte _081DF224 .4byte _081DF232 .4byte _081DF240 .4byte _081DF24E .4byte _081DF25C _081DF1AC: strb r2, [r3] b _081DF282 _081DF1B0: ldrb r1, [r3] adds r0, r1, r2 strb r0, [r3] b _081DF282 _081DF1B8: ldrb r1, [r3] subs r0, r1, r2 strb r0, [r3] b _081DF282 _081DF1C0: ldr r0, [r4, 0x18] adds r0, r2 ldrb r0, [r0] strb r0, [r3] b _081DF282 _081DF1CA: ldr r0, [r4, 0x18] adds r0, r2 ldrb r1, [r3] ldrb r0, [r0] adds r0, r1, r0 strb r0, [r3] b _081DF282 _081DF1D8: ldr r0, [r4, 0x18] adds r0, r2 ldrb r1, [r3] ldrb r0, [r0] subs r0, r1, r0 strb r0, [r3] b _081DF282 _081DF1E6: ldrb r3, [r3] cmp r3, r2 beq _081DF268 b _081DF27C _081DF1EE: ldrb r3, [r3] cmp r3, r2 bne _081DF268 b _081DF27C _081DF1F6: ldrb r3, [r3] cmp r3, r2 bhi _081DF268 b _081DF27C _081DF1FE: ldrb r3, [r3] cmp r3, r2 bcs _081DF268 b _081DF27C _081DF206: ldrb r3, [r3] cmp r3, r2 bls _081DF268 b _081DF27C _081DF20E: ldrb r3, [r3] cmp r3, r2 bcc _081DF268 b _081DF27C _081DF216: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 beq _081DF268 b _081DF27C _081DF224: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bne _081DF268 b _081DF27C _081DF232: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bhi _081DF268 b _081DF27C _081DF240: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bcs _081DF268 b _081DF27C _081DF24E: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bls _081DF268 b _081DF27C _081DF25C: ldr r0, [r4, 0x18] adds r0, r2 ldrb r3, [r3] ldrb r0, [r0] cmp r3, r0 bcs _081DF27C _081DF268: ldr r0, _081DF278 ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl _call_via_r2 b _081DF282 .align 2, 0 _081DF278: .4byte 0x03007074 _081DF27C: ldr r0, [r6, 0x40] adds r0, 0x4 str r0, [r6, 0x40] _081DF282: pop {r4-r6} pop {r0} bx r0 thumb_func_end ply_memacc thumb_func_start ply_xcmd ply_xcmd: ; 81DF288 push {lr} ldr r2, [r1, 0x40] ldrb r3, [r2] adds r2, 0x1 str r2, [r1, 0x40] ldr r2, _081DF2A4 lsls r3, 2 adds r3, r2 ldr r2, [r3] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _081DF2A4: .4byte gUnknown_0842FC50 thumb_func_end ply_xcmd thumb_func_start ply_xxx ply_xxx: ; 81DF2A8 push {lr} ldr r2, _081DF2B8 ldr r2, [r2] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _081DF2B8: .4byte 0x03007070 thumb_func_end ply_xxx thumb_func_start ply_xwave ply_xwave: ; 81DF2BC push {r4,lr} ldr r2, [r1, 0x40] ldr r0, _081DF2F4 ands r4, r0 ldrb r0, [r2] orrs r4, r0 ldrb r0, [r2, 0x1] lsls r3, r0, 8 ldr r0, _081DF2F8 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x2] lsls r3, r0, 16 ldr r0, _081DF2FC ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x3] lsls r3, r0, 24 ldr r0, _081DF300 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 _081DF2F4: .4byte 0xffffff00 _081DF2F8: .4byte 0xffff00ff _081DF2FC: .4byte 0xff00ffff _081DF300: .4byte 0x00ffffff thumb_func_end ply_xwave thumb_func_start ply_xtype ply_xtype: ; 81DF304 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: ; 81DF318 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: ; 81DF32C 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: ; 81DF340 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: ; 81DF354 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: ; 81DF368 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: ; 81DF374 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: ; 81DF380 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: ; 81DF394 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: ; 81DF3A8 push {r4,lr} adds r3, r1, 0 ldr r4, [r3, 0x40] ldr r0, _081DF3D8 ands r2, r0 ldrb r0, [r4] orrs r2, r0 ldrb r0, [r4, 0x1] lsls r1, r0, 8 ldr r0, _081DF3DC ands r2, r0 orrs r2, r1 ldrh r1, [r3, 0x3A] lsls r0, r2, 16 lsrs r0, 16 cmp r1, r0 bcs _081DF3E0 adds r0, r1, 0x1 strh r0, [r3, 0x3A] subs r0, r4, 0x2 str r0, [r3, 0x40] movs r0, 0x1 strb r0, [r3, 0x1] b _081DF3E8 .align 2, 0 _081DF3D8: .4byte 0xffffff00 _081DF3DC: .4byte 0xffff00ff _081DF3E0: movs r0, 0 strh r0, [r3, 0x3A] adds r0, r4, 0x2 str r0, [r3, 0x40] _081DF3E8: pop {r4} pop {r0} bx r0 thumb_func_end ply_xcmd0C thumb_func_start ply_xcmd0D ply_xcmd0D: ; 81DF3F0 push {r4,lr} ldr r2, [r1, 0x40] ldr r0, _081DF428 ands r4, r0 ldrb r0, [r2] orrs r4, r0 ldrb r0, [r2, 0x1] lsls r3, r0, 8 ldr r0, _081DF42C ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x2] lsls r3, r0, 16 ldr r0, _081DF430 ands r4, r0 orrs r4, r3 ldrb r0, [r2, 0x3] lsls r3, r0, 24 ldr r0, _081DF434 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 _081DF428: .4byte 0xffffff00 _081DF42C: .4byte 0xffff00ff _081DF430: .4byte 0xff00ffff _081DF434: .4byte 0x00ffffff thumb_func_end ply_xcmd0D thumb_func_start DummyFunc_rev DummyFunc_rev: ; 81DF438 bx lr thumb_func_end DummyFunc_rev thumb_func_start sub_81DF43C sub_81DF43C: ; 81DF43C 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, _081DF4F8 mov r8, r0 ldr r7, _081DF4FC ldr r0, _081DF500 mov r10, r0 mov r5, r8 adds r5, 0xC movs r3, 0 ldr r0, _081DF504 mov r12, r0 _081DF462: mov r0, r12 adds r2, r3, r0 ldrb r0, [r2] cmp r0, 0 bne _081DF478 ldr r0, [r2, 0x20] cmp r0, 0 beq _081DF48E ldr r0, [r0, 0x2C] cmp r0, r2 bne _081DF48E _081DF478: ldr r0, [r5] cmp r6, r0 bcs _081DF482 adds r6, r0, 0 adds r1, r4, 0 _081DF482: adds r5, 0x40 adds r3, 0xA0 adds r4, 0x1 cmp r4, 0x1 ble _081DF462 adds r4, r1, 0 _081DF48E: 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, _081DF508 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 _081DF4F8: .4byte 0x03006ff0 _081DF4FC: .4byte 0x03006f80 _081DF500: .4byte 0x03007340 _081DF504: .4byte 0x03007200 _081DF508: .4byte 0x68736d53 thumb_func_end sub_81DF43C thumb_func_start sub_81DF50C sub_81DF50C: ; 81DF50C lsls r0, 24 lsrs r0, 24 ldr r2, _081DF51C movs r1, 0x7F ands r0, r1 strb r0, [r2, 0x1D] bx lr .align 2, 0 _081DF51C: .4byte 0x03007340 thumb_func_end sub_81DF50C thumb_func_start sub_81DF520 sub_81DF520: ; 81DF520 ldr r2, _081DF534 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 _081DF534: .4byte 0x03007340 thumb_func_end sub_81DF520 thumb_func_start sub_81DF538 sub_81DF538: ; 81DF538 push {r4-r6,lr} lsls r0, 16 ldr r3, _081DF56C 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 _081DF56C: .4byte 0x03007340 thumb_func_end sub_81DF538 thumb_func_start sub_81DF570 sub_81DF570: ; 81DF570 ldr r1, _081DF578 strh r0, [r1, 0x2E] bx lr .align 2, 0 _081DF578: .4byte 0x03007340 thumb_func_end sub_81DF570 thumb_func_start sub_81DF57C sub_81DF57C: ; 81DF57C ldr r1, _081DF584 adds r1, 0x26 strb r0, [r1] bx lr .align 2, 0 _081DF584: .4byte 0x03007340 thumb_func_end sub_81DF57C thumb_func_start sub_81DF588 sub_81DF588: ; 81DF588 ldr r1, _081DF590 str r0, [r1, 0x20] bx lr .align 2, 0 _081DF590: .4byte 0x03007340 thumb_func_end sub_81DF588 thumb_func_start sub_81DF594 sub_81DF594: ; 81DF594 ldr r1, [r0, 0x2C] ldr r0, [r1, 0x20] cmp r0, 0 beq _081DF5A6 ldr r0, [r0, 0x2C] cmp r0, r1 bne _081DF5A6 movs r0, 0x1 b _081DF5A8 _081DF5A6: movs r0, 0 _081DF5A8: bx lr thumb_func_end sub_81DF594 thumb_func_start sub_81DF5AC sub_81DF5AC: ; 81DF5AC lsls r0, 24 lsrs r1, r0, 24 cmp r0, 0 beq _081DF5CC ldr r2, _081DF5C8 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 _081DF5D2 .align 2, 0 _081DF5C8: .4byte 0x03007340 _081DF5CC: ldr r1, _081DF5D4 movs r0, 0x1 strb r0, [r1] _081DF5D2: bx lr .align 2, 0 _081DF5D4: .4byte 0x03007340 thumb_func_end sub_81DF5AC thumb_func_start sub_81DF5D8 sub_81DF5D8: ; 81DF5D8 ldr r1, _081DF5F0 ldr r2, [r1] cmp r0, 0 beq _081DF5FC ldr r1, _081DF5F4 ldr r3, _081DF5F8 adds r0, r3, 0 strh r0, [r1] movs r0, 0xFE ldrb r1, [r2, 0x9] ands r0, r1 b _081DF60A .align 2, 0 _081DF5F0: .4byte 0x03007ff0 _081DF5F4: .4byte 0x04000082 _081DF5F8: .4byte 0x0000210e _081DF5FC: ldr r1, _081DF610 ldr r3, _081DF614 adds r0, r3, 0 strh r0, [r1] movs r0, 0x1 ldrb r1, [r2, 0x9] orrs r0, r1 _081DF60A: strb r0, [r2, 0x9] bx lr .align 2, 0 _081DF610: .4byte 0x04000082 _081DF614: .4byte 0x00003302 thumb_func_end sub_81DF5D8 thumb_func_start sub_81DF618 sub_81DF618: ; 81DF618 ldr r1, _081DF620 strb r0, [r1, 0x2] bx lr .align 2, 0 _081DF620: .4byte 0x03007340 thumb_func_end sub_81DF618