diff options
Diffstat (limited to 'asm/titlescreen.s')
-rwxr-xr-x | asm/titlescreen.s | 2277 |
1 files changed, 2277 insertions, 0 deletions
diff --git a/asm/titlescreen.s b/asm/titlescreen.s new file mode 100755 index 0000000..24718d1 --- /dev/null +++ b/asm/titlescreen.s @@ -0,0 +1,2277 @@ + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start TitlescreenMain +TitlescreenMain: @ 0x08010924 + push {lr} + ldr r1, _0801093C @ =0x08079890 + ldr r0, _08010940 @ =0x0200B0C0 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .align 2, 0 +_0801093C: .4byte 0x08079890 +_08010940: .4byte 0x0200B0C0 + + thumb_func_start LoadTitlescreenGraphics +LoadTitlescreenGraphics: @ 0x08010944 + push {r4, r5, lr} + bl sub_438 + movs r2, #0x80 + lsls r2, r2, #0x13 + movs r1, #0x84 + lsls r1, r1, #5 + adds r0, r1, #0 + strh r0, [r2] + ldr r1, _080109BC @ =0x0400000A + movs r0, #0x85 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r4, _080109C0 @ =0x0200B0C0 + ldrh r0, [r2] + strh r0, [r4, #0x16] + ldr r5, _080109C4 @ =0x040000D4 + ldr r0, _080109C8 @ =gTitlescreenBg_Gfx + str r0, [r5] + ldr r0, _080109CC @ =0x06004000 + str r0, [r5, #4] + ldr r0, _080109D0 @ =0x80005000 + str r0, [r5, #8] + ldr r0, [r5, #8] + ldr r0, _080109D4 @ =gTitlescreenBg_Pals + str r0, [r5] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r5, #4] + ldr r0, _080109D8 @ =0x80000100 + str r0, [r5, #8] + ldr r0, [r5, #8] + ldr r0, _080109DC @ =gTitlescreenBgTilemap + str r0, [r5] + movs r0, #0xc0 + lsls r0, r0, #0x13 + str r0, [r5, #4] + ldr r0, _080109E0 @ =0x80000400 + str r0, [r5, #8] + ldr r0, [r5, #8] + bl sub_52C44 + ldr r0, [r4, #0x40] + cmp r0, #1 + bne _080109F4 + ldr r0, _080109E4 @ =gTitlescreenSprites_Pals + str r0, [r5] + ldr r0, _080109E8 @ =0x05000200 + str r0, [r5, #4] + ldr r0, _080109EC @ =0x80000050 + str r0, [r5, #8] + ldr r0, [r5, #8] + ldr r0, _080109F0 @ =gTitlescreenSpritesSavedGame_Gfx + b _08010A04 + .align 2, 0 +_080109BC: .4byte 0x0400000A +_080109C0: .4byte 0x0200B0C0 +_080109C4: .4byte 0x040000D4 +_080109C8: .4byte gTitlescreenBg_Gfx +_080109CC: .4byte 0x06004000 +_080109D0: .4byte 0x80005000 +_080109D4: .4byte gTitlescreenBg_Pals +_080109D8: .4byte 0x80000100 +_080109DC: .4byte gTitlescreenBgTilemap +_080109E0: .4byte 0x80000400 +_080109E4: .4byte gTitlescreenSprites_Pals +_080109E8: .4byte 0x05000200 +_080109EC: .4byte 0x80000050 +_080109F0: .4byte gTitlescreenSpritesSavedGame_Gfx +_080109F4: + ldr r0, _08010A5C @ =gTitlescreenSprites_Pals + str r0, [r5] + ldr r0, _08010A60 @ =0x05000200 + str r0, [r5, #4] + ldr r0, _08010A64 @ =0x80000050 + str r0, [r5, #8] + ldr r0, [r5, #8] + ldr r0, _08010A68 @ =gTitlescreenSpritesNoSavedGame_Gfx +_08010A04: + str r0, [r5] + ldr r0, _08010A6C @ =0x06010000 + str r0, [r5, #4] + ldr r0, _08010A70 @ =0x80003800 + str r0, [r5, #8] + ldr r0, [r5, #8] + ldr r0, _08010A74 @ =0x0852B668 + str r0, [r5] + ldr r0, _08010A78 @ =0x050002A0 + str r0, [r5, #4] + ldr r0, _08010A7C @ =0x80000020 + str r0, [r5, #8] + ldr r0, [r5, #8] + ldr r0, _08010A80 @ =0x0852B868 + str r0, [r5] + ldr r0, _08010A84 @ =0x06017000 + str r0, [r5, #4] + ldr r0, _08010A88 @ =0x80000200 + str r0, [r5, #8] + ldr r0, [r5, #8] + bl sub_10AC0 + ldr r0, _08010A8C @ =0x0201A4B4 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #1 + bne _08010A9C + ldr r1, _08010A90 @ =0x0202BE24 + movs r0, #0 + strb r0, [r1] + ldr r1, _08010A94 @ =0x02002888 + movs r0, #0 + strb r0, [r1, #9] + strb r2, [r1, #0xb] + ldr r1, _08010A98 @ =0x0200B0C0 + movs r0, #3 + strb r0, [r1, #3] + bl sub_CBC + movs r0, #0 + bl sub_FD5C + b _08010AAC + .align 2, 0 +_08010A5C: .4byte gTitlescreenSprites_Pals +_08010A60: .4byte 0x05000200 +_08010A64: .4byte 0x80000050 +_08010A68: .4byte gTitlescreenSpritesNoSavedGame_Gfx +_08010A6C: .4byte 0x06010000 +_08010A70: .4byte 0x80003800 +_08010A74: .4byte 0x0852B668 +_08010A78: .4byte 0x050002A0 +_08010A7C: .4byte 0x80000020 +_08010A80: .4byte 0x0852B868 +_08010A84: .4byte 0x06017000 +_08010A88: .4byte 0x80000200 +_08010A8C: .4byte 0x0201A4B4 +_08010A90: .4byte 0x0202BE24 +_08010A94: .4byte 0x02002888 +_08010A98: .4byte 0x0200B0C0 +_08010A9C: + ldr r0, _08010AB8 @ =0x0200B0C0 + movs r1, #1 + strb r1, [r0, #3] + bl sub_CBC + ldr r0, _08010ABC @ =sub_11640 + 1 + bl sub_FD5C +_08010AAC: + movs r0, #1 + bl m4aSongNumStart + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08010AB8: .4byte 0x0200B0C0 +_08010ABC: .4byte sub_11640 + 1 + + thumb_func_start sub_10AC0 +sub_10AC0: @ 0x08010AC0 + push {r4, r5, r6, r7, lr} + ldr r1, _08010B28 @ =0x02002888 + movs r2, #0 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #2] + strb r2, [r1, #6] + strb r2, [r1, #8] + movs r0, #4 + strb r0, [r1, #0x10] + movs r3, #1 + strb r3, [r1, #9] + strb r2, [r1, #0x11] + movs r0, #6 + strb r0, [r1, #0xa] + strb r2, [r1, #0xc] + movs r0, #3 + strb r0, [r1, #0xe] + strb r2, [r1, #0xb] + strb r2, [r1, #0xd] + strb r2, [r1, #0xf] + ldr r0, _08010B2C @ =0x0202C588 + strh r3, [r0] + ldr r0, _08010B30 @ =0x020028A0 + strb r2, [r0] + ldr r0, _08010B34 @ =0x020028A1 + strb r2, [r0] + ldr r0, _08010B38 @ =0x020028A2 + strb r2, [r0] + ldr r0, _08010B3C @ =0x020028A3 + strb r2, [r0] + ldr r0, _08010B40 @ =0x0200B0C0 + ldr r2, [r0, #0x40] + adds r6, r0, #0 + cmp r2, #1 + bne _08010B58 + ldr r7, _08010B44 @ =0x020028A4 + ldr r5, _08010B48 @ =0x020028A5 + ldr r0, _08010B4C @ =0x0202BE24 + mov ip, r0 + ldr r4, _08010B50 @ =0x086A975C + ldr r3, _08010B54 @ =0x0202BE00 + movs r2, #6 +_08010B16: + ldm r4!, {r0} + stm r3!, {r0} + subs r2, #1 + cmp r2, #0 + bge _08010B16 + movs r0, #1 + strb r0, [r1] + strb r0, [r1, #7] + b _08010B78 + .align 2, 0 +_08010B28: .4byte 0x02002888 +_08010B2C: .4byte 0x0202C588 +_08010B30: .4byte 0x020028A0 +_08010B34: .4byte 0x020028A1 +_08010B38: .4byte 0x020028A2 +_08010B3C: .4byte 0x020028A3 +_08010B40: .4byte 0x0200B0C0 +_08010B44: .4byte 0x020028A4 +_08010B48: .4byte 0x020028A5 +_08010B4C: .4byte 0x0202BE24 +_08010B50: .4byte 0x086A975C +_08010B54: .4byte 0x0202BE00 +_08010B58: + ldr r7, _08010B94 @ =0x020028A4 + ldr r5, _08010B98 @ =0x020028A5 + ldr r0, _08010B9C @ =0x0202BE24 + mov ip, r0 + ldr r4, _08010BA0 @ =0x086A96F8 + ldr r3, _08010BA4 @ =0x0201C190 + movs r2, #6 +_08010B66: + ldm r4!, {r0} + stm r3!, {r0} + subs r2, #1 + cmp r2, #0 + bge _08010B66 + movs r0, #0 + strb r0, [r1] + strb r0, [r1, #7] + strb r0, [r6, #0xd] +_08010B78: + movs r2, #0 + movs r0, #0 + strh r0, [r1, #0x14] + movs r0, #1 + strh r0, [r1, #0x12] + strb r2, [r7] + ldrh r1, [r6, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xf + bne _08010BA8 + movs r0, #1 + strb r0, [r5] + b _08010BAA + .align 2, 0 +_08010B94: .4byte 0x020028A4 +_08010B98: .4byte 0x020028A5 +_08010B9C: .4byte 0x0202BE24 +_08010BA0: .4byte 0x086A96F8 +_08010BA4: .4byte 0x0201C190 +_08010BA8: + strb r2, [r5] +_08010BAA: + movs r0, #0 + mov r1, ip + strb r0, [r1] + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_start sub_10BB8 +sub_10BB8: @ 0x08010BB8 + push {r4, r5, r6, r7, lr} + ldr r2, _08010BE8 @ =0x0200B0C0 + ldrh r1, [r2, #0x1c] + movs r0, #0xf + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0xf + bne _08010BF8 + ldr r0, _08010BEC @ =0x020028A5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r2, _08010BF0 @ =0x020028A4 + cmp r0, #0 + bne _08010C00 + movs r0, #1 + strb r0, [r2] + ldr r1, _08010BF4 @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xb + strb r0, [r7, #3] + b _08010C00 + .align 2, 0 +_08010BE8: .4byte 0x0200B0C0 +_08010BEC: .4byte 0x020028A5 +_08010BF0: .4byte 0x020028A4 +_08010BF4: .4byte 0x02002888 +_08010BF8: + ldr r1, _08010CD4 @ =0x020028A5 + movs r0, #0 + strb r0, [r1] + ldr r2, _08010CD8 @ =0x020028A4 +_08010C00: + movs r4, #0 + ldrsb r4, [r2, r4] + cmp r4, #0 + bne _08010CC8 + ldr r2, _08010CDC @ =0x02002888 + ldrh r0, [r2, #4] + adds r0, #1 + strh r0, [r2, #4] + ldr r3, _08010CE0 @ =0x086A9662 + movs r1, #8 + ldrsb r1, [r2, r1] + adds r1, r1, r3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _08010C3A + strh r4, [r2, #4] + ldrb r0, [r2, #8] + adds r0, #1 + strb r0, [r2, #8] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08010C3A + movs r0, #0 + strb r0, [r2, #8] +_08010C3A: + adds r4, r7, #0 + ldrh r1, [r4, #0x1c] + ldr r0, _08010CE4 @ =0x000003FF + ands r0, r1 + cmp r0, #0 + beq _08010C4A + movs r0, #0 + strh r0, [r2, #0x14] +_08010C4A: + ldrh r1, [r4, #0x18] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _08010C66 + movs r0, #0x65 + bl m4aSongNumStart + ldr r1, _08010CDC @ =0x02002888 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #2] + movs r0, #2 + strb r0, [r4, #3] +_08010C66: + bl sub_114FC + bl sub_1157C + ldr r6, _08010CDC @ =0x02002888 + ldrh r0, [r6, #0x14] + adds r0, #1 + strh r0, [r6, #0x14] + lsls r0, r0, #0x10 + movs r1, #0xe1 + lsls r1, r1, #0x13 + cmp r0, r1 + ble _08010CC8 + movs r1, #0x14 + ldrsh r0, [r6, r1] + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08010CB4 + ldrh r0, [r6, #0x12] + adds r0, #1 + strh r0, [r6, #0x12] + ldr r4, _08010CE8 @ =0x02032EE0 + ldr r5, _08010CEC @ =0x0000FFFF + movs r0, #0x12 + ldrsh r1, [r6, r0] + movs r0, #0x80 + lsls r0, r0, #1 + bl __divsi3 + adds r2, r0, #0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl m4aMPlayVolumeControl +_08010CB4: + movs r1, #0x12 + ldrsh r0, [r6, r1] + cmp r0, #9 + ble _08010CC8 + movs r0, #0 + strh r0, [r6, #0x14] + movs r0, #7 + strb r0, [r6, #6] + movs r0, #0xb + strb r0, [r7, #3] +_08010CC8: + bl sub_11640 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08010CD4: .4byte 0x020028A5 +_08010CD8: .4byte 0x020028A4 +_08010CDC: .4byte 0x02002888 +_08010CE0: .4byte 0x086A9662 +_08010CE4: .4byte 0x000003FF +_08010CE8: .4byte 0x02032EE0 +_08010CEC: .4byte 0x0000FFFF + + thumb_func_start sub_10CF0 +sub_10CF0: @ 0x08010CF0 + push {r4, r5, r6, r7, lr} + ldr r6, _08010D70 @ =0x0200B0C0 + ldrh r1, [r6, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _08010D74 @ =0x020028A4 + cmp r0, #0xf + bne _08010D0E + movs r0, #1 + strb r0, [r2] + ldr r1, _08010D78 @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xb + strb r0, [r6, #3] +_08010D0E: + movs r4, #0 + ldrsb r4, [r2, r4] + cmp r4, #0 + bne _08010D66 + ldr r3, _08010D78 @ =0x02002888 + ldrh r0, [r3, #4] + adds r0, #1 + movs r7, #0 + strh r0, [r3, #4] + ldr r5, _08010D7C @ =0x086A9666 + movs r2, #2 + ldrsh r1, [r3, r2] + lsls r1, r1, #1 + adds r2, r5, #1 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _08010D66 + strh r4, [r3, #4] + movs r1, #2 + ldrsh r0, [r3, r1] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r3, #8] + ldrh r0, [r3, #2] + adds r0, #1 + strh r0, [r3, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #5 + ble _08010D66 + strh r4, [r3, #2] + ldr r0, _08010D80 @ =0x0202BE24 + strb r7, [r0] + strb r7, [r3, #9] + movs r0, #1 + strb r0, [r3, #0xb] + movs r0, #3 + strb r0, [r6, #3] +_08010D66: + bl sub_11640 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08010D70: .4byte 0x0200B0C0 +_08010D74: .4byte 0x020028A4 +_08010D78: .4byte 0x02002888 +_08010D7C: .4byte 0x086A9666 +_08010D80: .4byte 0x0202BE24 + + thumb_func_start sub_10D84 +sub_10D84: @ 0x08010D84 + push {r4, r5, r6, lr} + ldr r6, _08010DD0 @ =0x0200B0C0 + ldrh r1, [r6, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _08010DD4 @ =0x020028A4 + cmp r0, #0xf + bne _08010DA2 + movs r0, #1 + strb r0, [r2] + ldr r1, _08010DD8 @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xa + strb r0, [r6, #3] +_08010DA2: + movs r5, #0 + ldrsb r5, [r2, r5] + cmp r5, #0 + bne _08010DF2 + ldrh r1, [r6, #0x18] + movs r4, #1 + ands r4, r1 + cmp r4, #0 + beq _08010DDC + movs r0, #0x65 + bl m4aSongNumStart + bl sub_11B74 + bl sub_2B4 + bl m4aMPlayAllStop + bl sub_D10 + strb r5, [r6, #3] + b _08010DF2 + .align 2, 0 +_08010DD0: .4byte 0x0200B0C0 +_08010DD4: .4byte 0x020028A4 +_08010DD8: .4byte 0x02002888 +_08010DDC: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08010DF2 + movs r0, #0x66 + bl m4aSongNumStart + ldr r0, _08010DFC @ =0x02002888 + strb r4, [r0, #0x11] + movs r0, #1 + strb r0, [r6, #3] +_08010DF2: + bl sub_11640 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08010DFC: .4byte 0x02002888 + + thumb_func_start sub_10E00 +sub_10E00: @ 0x08010E00 + push {r4, r5, r6, lr} + ldr r5, _08010E7C @ =0x0200B0C0 + ldrh r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _08010E80 @ =0x020028A4 + cmp r0, #0xf + bne _08010E1E + movs r0, #1 + strb r0, [r2] + ldr r1, _08010E84 @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xb + strb r0, [r5, #3] +_08010E1E: + movs r4, #0 + ldrsb r4, [r2, r4] + cmp r4, #0 + bne _08010EE0 + ldr r3, _08010E84 @ =0x02002888 + ldrb r0, [r3, #7] + cmp r0, #0 + bne _08010E94 + ldrh r0, [r3, #4] + adds r0, #1 + strh r0, [r3, #4] + ldr r2, _08010E88 @ =0x086A9748 + movs r6, #2 + ldrsh r1, [r3, r6] + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _08010E76 + strh r4, [r3, #4] + ldr r2, _08010E8C @ =0x0201C190 + ldr r1, _08010E90 @ =0x086A9714 + movs r6, #2 + ldrsh r0, [r3, r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x18] + ldrh r0, [r3, #2] + adds r0, #1 + strh r0, [r3, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _08010E76 + strh r4, [r3, #2] + movs r0, #1 + strb r0, [r3, #0xd] + strb r0, [r3, #0xf] + movs r0, #4 + strb r0, [r5, #3] +_08010E76: + bl sub_1175C + b _08010EE0 + .align 2, 0 +_08010E7C: .4byte 0x0200B0C0 +_08010E80: .4byte 0x020028A4 +_08010E84: .4byte 0x02002888 +_08010E88: .4byte 0x086A9748 +_08010E8C: .4byte 0x0201C190 +_08010E90: .4byte 0x086A9714 +_08010E94: + ldrh r0, [r3, #4] + adds r0, #1 + strh r0, [r3, #4] + ldr r2, _08010EE8 @ =0x086A9748 + movs r6, #2 + ldrsh r1, [r3, r6] + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _08010EDC + strh r4, [r3, #4] + ldr r2, _08010EEC @ =0x0202BE00 + ldr r1, _08010EF0 @ =0x086A9778 + movs r6, #2 + ldrsh r0, [r3, r6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x18] + ldrh r0, [r3, #2] + adds r0, #1 + strh r0, [r3, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xb + ble _08010EDC + strh r4, [r3, #2] + movs r0, #1 + strb r0, [r3, #0xd] + strb r0, [r3, #0xf] + movs r0, #5 + strb r0, [r5, #3] +_08010EDC: + bl sub_11968 +_08010EE0: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08010EE8: .4byte 0x086A9748 +_08010EEC: .4byte 0x0202BE00 +_08010EF0: .4byte 0x086A9778 + + thumb_func_start sub_10EF4 +sub_10EF4: @ 0x08010EF4 + push {r4, r5, lr} + ldr r3, _08010F94 @ =0x0200B0C0 + ldrh r1, [r3, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _08010F98 @ =0x020028A4 + cmp r0, #0xf + bne _08010F12 + movs r0, #1 + strb r0, [r2] + ldr r1, _08010F9C @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xa + strb r0, [r3, #3] +_08010F12: + movs r4, #0 + ldrsb r4, [r2, r4] + cmp r4, #0 + bne _08011010 + ldr r3, _08010F9C @ =0x02002888 + ldrh r0, [r3, #4] + adds r0, #1 + strh r0, [r3, #4] + ldr r5, _08010FA0 @ =0x086A9672 + movs r2, #2 + ldrsh r1, [r3, r2] + lsls r1, r1, #1 + adds r2, r5, #1 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _08010F68 + strh r4, [r3, #4] + ldrh r0, [r3, #2] + adds r0, #1 + strh r0, [r3, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + ble _08010F4E + strh r4, [r3, #2] +_08010F4E: + movs r1, #2 + ldrsh r0, [r3, r1] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r3, #0xc] + movs r2, #2 + ldrsh r0, [r3, r2] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrb r0, [r0] + adds r0, #3 + strb r0, [r3, #0xe] +_08010F68: + ldr r0, _08010F94 @ =0x0200B0C0 + ldrh r1, [r0, #0x18] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _08010FA4 + movs r0, #0x67 + bl m4aSongNumStart + ldr r1, _08010F9C @ =0x02002888 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bge _08010FC4 + movs r0, #3 + strb r0, [r1] + b _08010FC4 + .align 2, 0 +_08010F94: .4byte 0x0200B0C0 +_08010F98: .4byte 0x020028A4 +_08010F9C: .4byte 0x02002888 +_08010FA0: .4byte 0x086A9672 +_08010FA4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08010FC4 + movs r0, #0x67 + bl m4aSongNumStart + ldr r1, _08010FE4 @ =0x02002888 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + ble _08010FC4 + strb r4, [r1] +_08010FC4: + ldr r5, _08010FE8 @ =0x0200B0C0 + ldrh r1, [r5, #0x18] + movs r4, #9 + ands r4, r1 + cmp r4, #0 + beq _08010FEC + movs r0, #0x65 + bl m4aSongNumStart + ldr r1, _08010FE4 @ =0x02002888 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #2] + movs r0, #7 + b _0801100A + .align 2, 0 +_08010FE4: .4byte 0x02002888 +_08010FE8: .4byte 0x0200B0C0 +_08010FEC: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801100C + movs r0, #0x66 + bl m4aSongNumStart + ldr r1, _0801101C @ =0x02002888 + movs r2, #0 + strh r4, [r1, #4] + movs r0, #0xc + strh r0, [r1, #2] + strb r2, [r1, #0xd] + strb r2, [r1, #0xf] + movs r0, #6 +_0801100A: + strb r0, [r5, #3] +_0801100C: + bl sub_1157C +_08011010: + bl sub_1175C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801101C: .4byte 0x02002888 + + thumb_func_start sub_11020 +sub_11020: @ 0x08011020 + push {r4, r5, lr} + ldr r3, _08011088 @ =0x0200B0C0 + ldrh r1, [r3, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _0801108C @ =0x020028A4 + cmp r0, #0xf + bne _0801103E + movs r0, #1 + strb r0, [r2] + ldr r1, _08011090 @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xb + strb r0, [r3, #3] +_0801103E: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _080110DE + ldr r5, _08011090 @ =0x02002888 + ldrh r1, [r5, #4] + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _080110B6 + movs r2, #2 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _080110A0 + movs r0, #1 + strh r0, [r5, #2] + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #0xb + ldr r4, _08011094 @ =0x060101E0 + adds r0, r0, r4 + ldr r1, _08011098 @ =0x03000000 + movs r2, #8 + movs r3, #2 + bl sub_10708 + ldr r0, _0801109C @ =0x060161E0 + movs r1, #0 + ldrsb r1, [r5, r1] + lsls r1, r1, #0xb + adds r1, r1, r4 + movs r2, #8 + movs r3, #2 + bl sub_10708 + b _080110B6 + .align 2, 0 +_08011088: .4byte 0x0200B0C0 +_0801108C: .4byte 0x020028A4 +_08011090: .4byte 0x02002888 +_08011094: .4byte 0x060101E0 +_08011098: .4byte 0x03000000 +_0801109C: .4byte 0x060161E0 +_080110A0: + strh r1, [r5, #2] + ldr r0, _080110E8 @ =0x03000000 + movs r1, #0 + ldrsb r1, [r5, r1] + lsls r1, r1, #0xb + ldr r2, _080110EC @ =0x060101E0 + adds r1, r1, r2 + movs r2, #8 + movs r3, #2 + bl sub_10708 +_080110B6: + ldr r3, _080110F0 @ =0x02002888 + movs r1, #4 + ldrsh r0, [r3, r1] + cmp r0, #0x14 + ble _080110D8 + ldr r2, _080110F4 @ =0x0200B0C0 + movs r0, #0 + strb r0, [r2, #0xd] + ldr r1, _080110F8 @ =0x086A96A4 + movs r0, #0 + ldrsb r0, [r3, r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strb r0, [r3, #6] + movs r0, #0xa + strb r0, [r2, #3] +_080110D8: + ldrh r0, [r3, #4] + adds r0, #1 + strh r0, [r3, #4] +_080110DE: + bl sub_1175C + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080110E8: .4byte 0x03000000 +_080110EC: .4byte 0x060101E0 +_080110F0: .4byte 0x02002888 +_080110F4: .4byte 0x0200B0C0 +_080110F8: .4byte 0x086A96A4 + + thumb_func_start sub_110FC +sub_110FC: @ 0x080110FC + push {r4, r5, lr} + ldr r3, _0801119C @ =0x0200B0C0 + ldrh r1, [r3, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _080111A0 @ =0x020028A4 + cmp r0, #0xf + bne _0801111A + movs r0, #1 + strb r0, [r2] + ldr r1, _080111A4 @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xa + strb r0, [r3, #3] +_0801111A: + movs r4, #0 + ldrsb r4, [r2, r4] + cmp r4, #0 + bne _08011218 + ldr r3, _080111A4 @ =0x02002888 + ldrh r0, [r3, #4] + adds r0, #1 + strh r0, [r3, #4] + ldr r5, _080111A8 @ =0x086A9672 + movs r2, #2 + ldrsh r1, [r3, r2] + lsls r1, r1, #1 + adds r2, r5, #1 + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _08011170 + strh r4, [r3, #4] + ldrh r0, [r3, #2] + adds r0, #1 + strh r0, [r3, #2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #6 + ble _08011156 + strh r4, [r3, #2] +_08011156: + movs r1, #2 + ldrsh r0, [r3, r1] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r3, #0xc] + movs r2, #2 + ldrsh r0, [r3, r2] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrb r0, [r0] + adds r0, #3 + strb r0, [r3, #0xe] +_08011170: + ldr r0, _0801119C @ =0x0200B0C0 + ldrh r1, [r0, #0x18] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0 + beq _080111AC + movs r0, #0x67 + bl m4aSongNumStart + ldr r1, _080111A4 @ =0x02002888 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bge _080111CC + movs r0, #4 + strb r0, [r1] + b _080111CC + .align 2, 0 +_0801119C: .4byte 0x0200B0C0 +_080111A0: .4byte 0x020028A4 +_080111A4: .4byte 0x02002888 +_080111A8: .4byte 0x086A9672 +_080111AC: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080111CC + movs r0, #0x67 + bl m4aSongNumStart + ldr r1, _080111EC @ =0x02002888 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + ble _080111CC + strb r4, [r1] +_080111CC: + ldr r5, _080111F0 @ =0x0200B0C0 + ldrh r1, [r5, #0x18] + movs r4, #9 + ands r4, r1 + cmp r4, #0 + beq _080111F4 + movs r0, #0x65 + bl m4aSongNumStart + ldr r1, _080111EC @ =0x02002888 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #2] + movs r0, #8 + b _08011212 + .align 2, 0 +_080111EC: .4byte 0x02002888 +_080111F0: .4byte 0x0200B0C0 +_080111F4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08011214 + movs r0, #0x66 + bl m4aSongNumStart + ldr r1, _08011224 @ =0x02002888 + movs r2, #0 + strh r4, [r1, #4] + movs r0, #0xc + strh r0, [r1, #2] + strb r2, [r1, #0xd] + strb r2, [r1, #0xf] + movs r0, #6 +_08011212: + strb r0, [r5, #3] +_08011214: + bl sub_1157C +_08011218: + bl sub_11968 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08011224: .4byte 0x02002888 + + thumb_func_start sub_11228 +sub_11228: @ 0x08011228 + push {r4, r5, lr} + ldr r3, _08011290 @ =0x0200B0C0 + ldrh r1, [r3, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _08011294 @ =0x020028A4 + cmp r0, #0xf + bne _08011246 + movs r0, #1 + strb r0, [r2] + ldr r1, _08011298 @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xb + strb r0, [r3, #3] +_08011246: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _0801130C + ldr r5, _08011298 @ =0x02002888 + ldrh r1, [r5, #4] + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _080112BE + movs r2, #2 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _080112A8 + movs r0, #1 + strh r0, [r5, #2] + movs r0, #0 + ldrsb r0, [r5, r0] + lsls r0, r0, #0xb + ldr r4, _0801129C @ =0x060101E0 + adds r0, r0, r4 + ldr r1, _080112A0 @ =0x03000000 + movs r2, #8 + movs r3, #2 + bl sub_10708 + ldr r0, _080112A4 @ =0x060161E0 + movs r1, #0 + ldrsb r1, [r5, r1] + lsls r1, r1, #0xb + adds r1, r1, r4 + movs r2, #8 + movs r3, #2 + bl sub_10708 + b _080112BE + .align 2, 0 +_08011290: .4byte 0x0200B0C0 +_08011294: .4byte 0x020028A4 +_08011298: .4byte 0x02002888 +_0801129C: .4byte 0x060101E0 +_080112A0: .4byte 0x03000000 +_080112A4: .4byte 0x060161E0 +_080112A8: + strh r1, [r5, #2] + ldr r0, _080112DC @ =0x03000000 + movs r1, #0 + ldrsb r1, [r5, r1] + lsls r1, r1, #0xb + ldr r2, _080112E0 @ =0x060101E0 + adds r1, r1, r2 + movs r2, #8 + movs r3, #2 + bl sub_10708 +_080112BE: + ldr r0, _080112E4 @ =0x02002888 + movs r2, #4 + ldrsh r1, [r0, r2] + adds r3, r0, #0 + cmp r1, #0x14 + ble _08011306 + movs r2, #0 + ldrsb r2, [r3, r2] + cmp r2, #1 + bne _080112EC + ldr r0, _080112E8 @ =0x0200B0C0 + strb r2, [r0, #0xd] + adds r2, r0, #0 + b _080112F4 + .align 2, 0 +_080112DC: .4byte 0x03000000 +_080112E0: .4byte 0x060101E0 +_080112E4: .4byte 0x02002888 +_080112E8: .4byte 0x0200B0C0 +_080112EC: + ldr r1, _08011318 @ =0x0200B0C0 + movs r0, #0 + strb r0, [r1, #0xd] + adds r2, r1, #0 +_080112F4: + ldr r1, _0801131C @ =0x086A96D4 + movs r0, #0 + ldrsb r0, [r3, r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strb r0, [r3, #6] + movs r0, #0xa + strb r0, [r2, #3] +_08011306: + ldrh r0, [r3, #4] + adds r0, #1 + strh r0, [r3, #4] +_0801130C: + bl sub_11968 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08011318: .4byte 0x0200B0C0 +_0801131C: .4byte 0x086A96D4 + + thumb_func_start sub_11320 +sub_11320: @ 0x08011320 + push {r4, r5, r6, r7, lr} + ldr r5, _080113A4 @ =0x0200B0C0 + ldrh r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + ldr r2, _080113A8 @ =0x020028A4 + cmp r0, #0xf + bne _0801133E + movs r0, #1 + strb r0, [r2] + ldr r1, _080113AC @ =0x02002888 + movs r0, #9 + strb r0, [r1, #6] + movs r0, #0xb + strb r0, [r5, #3] +_0801133E: + movs r4, #0 + ldrsb r4, [r2, r4] + cmp r4, #0 + bne _08011410 + ldr r3, _080113AC @ =0x02002888 + ldrb r0, [r3, #7] + cmp r0, #0 + bne _080113C0 + ldrh r0, [r3, #4] + adds r0, #1 + movs r6, #0 + strh r0, [r3, #4] + ldr r2, _080113B0 @ =0x086A9748 + movs r7, #2 + ldrsh r1, [r3, r7] + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _0801139C + strh r4, [r3, #4] + ldrh r0, [r3, #2] + subs r0, #1 + strh r0, [r3, #2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0801138C + strh r4, [r3, #2] + strb r6, [r3] + ldr r0, _080113B4 @ =0x0202BE24 + movs r1, #1 + strb r1, [r0] + movs r0, #1 + strb r0, [r3, #9] + strb r6, [r3, #0xb] + strb r0, [r5, #3] +_0801138C: + ldr r2, _080113B8 @ =0x0201C190 + ldr r1, _080113BC @ =0x086A9714 + movs r4, #2 + ldrsh r0, [r3, r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x18] +_0801139C: + bl sub_1175C + b _08011410 + .align 2, 0 +_080113A4: .4byte 0x0200B0C0 +_080113A8: .4byte 0x020028A4 +_080113AC: .4byte 0x02002888 +_080113B0: .4byte 0x086A9748 +_080113B4: .4byte 0x0202BE24 +_080113B8: .4byte 0x0201C190 +_080113BC: .4byte 0x086A9714 +_080113C0: + ldrh r0, [r3, #4] + adds r0, #1 + strh r0, [r3, #4] + ldr r2, _08011418 @ =0x086A9748 + movs r6, #2 + ldrsh r1, [r3, r6] + adds r1, r1, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + blt _0801140C + strh r4, [r3, #4] + ldrh r0, [r3, #2] + subs r0, #1 + strh r0, [r3, #2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080113FC + strh r4, [r3, #2] + movs r0, #1 + strb r0, [r3] + ldr r1, _0801141C @ =0x0202BE24 + strb r0, [r1] + strb r0, [r3, #9] + movs r1, #0 + strb r1, [r3, #0xb] + strb r0, [r5, #3] +_080113FC: + ldr r2, _08011420 @ =0x0202BE00 + ldr r1, _08011424 @ =0x086A9778 + movs r7, #2 + ldrsh r0, [r3, r7] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x18] +_0801140C: + bl sub_11968 +_08011410: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08011418: .4byte 0x086A9748 +_0801141C: .4byte 0x0202BE24 +_08011420: .4byte 0x0202BE00 +_08011424: .4byte 0x086A9778 + + thumb_func_start sub_11428 +sub_11428: @ 0x08011428 + push {lr} + ldr r0, _0801143C @ =0x02002888 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _08011444 + ldr r0, _08011440 @ =sub_1175C + 1 + bl sub_FE04 + b _0801144A + .align 2, 0 +_0801143C: .4byte 0x02002888 +_08011440: .4byte sub_1175C + 1 +_08011444: + ldr r0, _08011470 @ =sub_11968 + 1 + bl sub_FE04 +_0801144A: + bl m4aMPlayAllStop + bl sub_D10 + ldr r1, _08011474 @ =0x086A964C + ldr r0, _08011478 @ =0x02002888 + ldrb r0, [r0, #6] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #8 + bne _08011480 + ldr r1, _0801147C @ =0x0202C588 + movs r0, #0 + b _08011484 + .align 2, 0 +_08011470: .4byte sub_11968 + 1 +_08011474: .4byte 0x086A964C +_08011478: .4byte 0x02002888 +_0801147C: .4byte 0x0202C588 +_08011480: + ldr r1, _080114A4 @ =0x0202C588 + movs r0, #1 +_08011484: + strh r0, [r1] + ldr r1, _080114A8 @ =0x0201A4B4 + movs r0, #0 + strb r0, [r1] + ldr r1, _080114AC @ =0x086A964C + ldr r0, _080114B0 @ =0x02002888 + ldrb r0, [r0, #6] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_23C + pop {r0} + bx r0 + .align 2, 0 +_080114A4: .4byte 0x0202C588 +_080114A8: .4byte 0x0201A4B4 +_080114AC: .4byte 0x086A964C +_080114B0: .4byte 0x02002888 + + thumb_func_start sub_114B4 +sub_114B4: @ 0x080114B4 + push {lr} + ldr r0, _080114E8 @ =sub_11640 + 1 + bl sub_FE04 + bl m4aMPlayAllStop + bl sub_D10 + ldr r1, _080114EC @ =0x0202C588 + movs r0, #1 + strh r0, [r1] + ldr r1, _080114F0 @ =0x0201A4B4 + movs r0, #0 + strb r0, [r1] + ldr r1, _080114F4 @ =0x086A964C + ldr r0, _080114F8 @ =0x02002888 + ldrb r0, [r0, #6] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_23C + pop {r0} + bx r0 + .align 2, 0 +_080114E8: .4byte sub_11640 + 1 +_080114EC: .4byte 0x0202C588 +_080114F0: .4byte 0x0201A4B4 +_080114F4: .4byte 0x086A964C +_080114F8: .4byte 0x02002888 + + thumb_func_start sub_114FC +sub_114FC: @ 0x080114FC + push {r4, lr} + ldr r4, _0801156C @ =0x0200B0C0 + ldrh r2, [r4, #0x1c] + movs r1, #0x88 + lsls r1, r1, #2 + adds r0, r1, #0 + ands r0, r2 + cmp r0, r1 + bne _08011546 + ldrh r1, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08011546 + ldr r2, _08011570 @ =0x020028A1 + movs r0, #0x28 + strb r0, [r2] + ldr r1, _08011574 @ =0x020028A0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #3 + bne _08011546 + movs r0, #0 + strb r0, [r1] + strb r0, [r2] + movs r0, #0x68 + bl m4aSongNumStart + ldr r1, _08011578 @ =0x02002888 + movs r0, #1 + strb r0, [r1, #0x11] + movs r0, #9 + strb r0, [r4, #3] +_08011546: + ldr r2, _08011570 @ =0x020028A1 + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + ble _08011564 + subs r0, r1, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _08011564 + movs r1, #0 + strb r1, [r2] + ldr r0, _08011574 @ =0x020028A0 + strb r1, [r0] +_08011564: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801156C: .4byte 0x0200B0C0 +_08011570: .4byte 0x020028A1 +_08011574: .4byte 0x020028A0 +_08011578: .4byte 0x02002888 + + thumb_func_start sub_1157C +sub_1157C: @ 0x0801157C + push {r4, r5, r6, r7, lr} + ldr r6, _080115E4 @ =0x086A97AC + ldr r3, _080115E8 @ =0x020028A2 + movs r0, #0 + ldrsb r0, [r3, r0] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r5, [r0] + ldr r2, _080115EC @ =0x0200B0C0 + ldrh r1, [r2, #0x1c] + movs r0, #0x10 + ands r0, r1 + adds r4, r2, #0 + ldr r7, _080115F0 @ =0x020028A3 + cmp r0, #0 + beq _080115FC + ldrh r1, [r4, #0x18] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + ands r1, r0 + cmp r1, r0 + bne _080115FC + movs r0, #0x28 + strb r0, [r7] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080115FC + movs r0, #0 + strb r0, [r3] + strb r0, [r7] + movs r0, #0x65 + bl m4aSongNumStart + ldr r1, _080115F4 @ =0x02002888 + movs r0, #5 + strb r0, [r1, #6] + ldrb r0, [r4, #3] + cmp r0, #1 + bne _080115F8 + movs r0, #0xb + b _080115FA + .align 2, 0 +_080115E4: .4byte 0x086A97AC +_080115E8: .4byte 0x020028A2 +_080115EC: .4byte 0x0200B0C0 +_080115F0: .4byte 0x020028A3 +_080115F4: .4byte 0x02002888 +_080115F8: + movs r0, #0xa +_080115FA: + strb r0, [r4, #3] +_080115FC: + ldrh r0, [r4, #0x18] + ldr r1, _08011638 @ =0x000003FF + ands r0, r1 + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + bics r0, r1 + cmp r0, #0 + beq _08011614 + movs r1, #0 + strb r1, [r7] + ldr r0, _0801163C @ =0x020028A2 + strb r1, [r0] +_08011614: + ldrb r1, [r7] + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0 + ble _08011630 + subs r0, r1, #1 + strb r0, [r7] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _08011630 + movs r1, #0 + strb r1, [r7] + ldr r0, _0801163C @ =0x020028A2 + strb r1, [r0] +_08011630: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08011638: .4byte 0x000003FF +_0801163C: .4byte 0x020028A2 + + thumb_func_start sub_11640 +sub_11640: @ 0x08011640 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _08011744 @ =0x02002888 + movs r0, #8 + ldrsb r0, [r4, r0] + movs r1, #0xb8 + muls r0, r1, r0 + ldr r2, _08011748 @ =0x0200B3B8 + adds r7, r0, r2 + movs r0, #0x10 + ldrsb r0, [r4, r0] + muls r0, r1, r0 + adds r6, r0, r2 + movs r0, #9 + ldrsb r0, [r4, r0] + strh r0, [r7] + movs r0, #0x11 + ldrsb r0, [r4, r0] + strh r0, [r6] + ldr r5, _0801174C @ =0x086A96E4 + adds r0, r5, #0 + movs r1, #5 + bl sub_358 + ldrh r0, [r7] + cmp r0, #1 + bne _080116DC + movs r0, #0x78 + strh r0, [r7, #2] + movs r0, #0x66 + strh r0, [r7, #4] + movs r0, #8 + ldrsb r0, [r4, r0] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + mov ip, r0 + movs r5, #0 + ldrh r0, [r0] + cmp r5, r0 + bge _080116DC + ldr r1, _08011750 @ =0x03005000 + mov r8, r1 + ldr r2, _08011754 @ =0xFFFFFE00 + mov sb, r2 + adds r4, r7, #0 + adds r4, #8 +_080116A2: + ldrh r3, [r4] + lsls r3, r3, #3 + add r3, r8 + movs r0, #2 + ldrsh r1, [r4, r0] + movs r2, #2 + ldrsh r0, [r7, r2] + adds r1, r1, r0 + ldr r2, _08011758 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + add r1, r8 + ldrb r0, [r7, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + adds r5, #1 + mov r0, ip + ldrh r0, [r0] + cmp r5, r0 + blt _080116A2 +_080116DC: + ldrh r0, [r6] + cmp r0, #1 + bne _08011730 + movs r0, #0x78 + strh r0, [r6, #2] + movs r0, #0x50 + strh r0, [r6, #4] + ldr r1, _08011750 @ =0x03005000 + mov r8, r1 + ldr r2, _08011754 @ =0xFFFFFE00 + mov sb, r2 + adds r4, r6, #0 + adds r4, #8 + ldr r0, _08011758 @ =0x000001FF + mov ip, r0 + movs r5, #1 +_080116FC: + ldrh r3, [r4] + lsls r3, r3, #3 + add r3, r8 + movs r2, #2 + ldrsh r1, [r4, r2] + movs r2, #2 + ldrsh r0, [r6, r2] + adds r1, r1, r0 + mov r0, ip + ands r1, r0 + ldrh r2, [r3, #2] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + add r1, r8 + ldrb r0, [r6, #4] + ldrb r2, [r4, #4] + adds r0, r0, r2 + strb r0, [r1] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bge _080116FC +_08011730: + movs r0, #0 + strh r0, [r7] + strh r0, [r6] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08011744: .4byte 0x02002888 +_08011748: .4byte 0x0200B3B8 +_0801174C: .4byte 0x086A96E4 +_08011750: .4byte 0x03005000 +_08011754: .4byte 0xFFFFFE00 +_08011758: .4byte 0x000001FF + + thumb_func_start sub_1175C +sub_1175C: @ 0x0801175C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r2, _08011810 @ =0x0200B0C0 + ldrh r0, [r2, #0x38] + movs r0, #0x84 + lsls r0, r0, #2 + strh r0, [r2, #0x38] + ldrh r0, [r2, #0x3a] + ldr r0, _08011814 @ =0x00000808 + strh r0, [r2, #0x3a] + ldr r1, _08011818 @ =0x04000050 + ldrh r0, [r2, #0x38] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r2, #0x3a] + strh r0, [r1] + ldr r3, _0801181C @ =0x02002888 + movs r0, #0xa + ldrsb r0, [r3, r0] + movs r1, #0xb8 + muls r0, r1, r0 + movs r4, #0xbe + lsls r4, r4, #2 + adds r2, r2, r4 + adds r0, r0, r2 + mov sl, r0 + movs r0, #0xc + ldrsb r0, [r3, r0] + muls r0, r1, r0 + adds r0, r0, r2 + mov sb, r0 + movs r0, #0xe + ldrsb r0, [r3, r0] + muls r0, r1, r0 + adds r0, r0, r2 + mov r8, r0 + movs r0, #0xb + ldrsb r0, [r3, r0] + mov r6, sl + strh r0, [r6] + movs r0, #0xd + ldrsb r0, [r3, r0] + mov r7, sb + strh r0, [r7] + movs r0, #0xf + ldrsb r0, [r3, r0] + mov r1, r8 + strh r0, [r1] + ldr r4, _08011820 @ =0x0201C190 + adds r0, r4, #0 + movs r1, #7 + bl sub_358 + ldrh r0, [r6] + cmp r0, #1 + bne _0801187C + movs r0, #0x78 + strh r0, [r6, #2] + movs r0, #0x66 + strh r0, [r6, #4] + ldr r4, [r4, #0x18] + mov ip, r4 + movs r2, #0 + str r2, [sp] + ldrh r3, [r4] + cmp r2, r3 + bge _0801187C + ldr r6, _08011824 @ =0x03005000 + mov r4, sl + adds r4, #8 + mov r5, ip +_080117F2: + ldrh r0, [r5, #8] + cmp r0, #1 + bne _08011828 + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #1] + b _08011838 + .align 2, 0 +_08011810: .4byte 0x0200B0C0 +_08011814: .4byte 0x00000808 +_08011818: .4byte 0x04000050 +_0801181C: .4byte 0x02002888 +_08011820: .4byte 0x0201C190 +_08011824: .4byte 0x03005000 +_08011828: + ldrh r0, [r4] + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r2, [r0, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #1] +_08011838: + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r7, #2 + ldrsh r1, [r4, r7] + mov r2, sl + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _08011950 @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _08011954 @ =0xFFFFFE00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + mov r3, sl + ldrb r0, [r3, #4] + ldrb r7, [r4, #4] + adds r0, r0, r7 + strb r0, [r1] + adds r4, #8 + adds r5, #8 + ldr r0, [sp] + adds r0, #1 + str r0, [sp] + mov r1, ip + ldrh r1, [r1] + cmp r0, r1 + blt _080117F2 +_0801187C: + mov r2, sb + ldrh r0, [r2] + cmp r0, #1 + bne _080118D8 + ldr r2, _08011958 @ =0x086A9684 + ldr r1, _0801195C @ =0x02002888 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + mov r3, sb + strh r0, [r3, #2] + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #2] + strh r0, [r3, #4] + mov r5, sb + adds r5, #8 + ldr r4, _08011960 @ =0x03005000 + ldrh r2, [r3, #8] + lsls r2, r2, #3 + adds r2, r2, r4 + movs r6, #2 + ldrsh r1, [r5, r6] + movs r7, #2 + ldrsh r0, [r3, r7] + adds r1, r1, r0 + ldr r3, _08011950 @ =0x000001FF + adds r0, r3, #0 + ands r1, r0 + ldrh r3, [r2, #2] + ldr r0, _08011954 @ =0xFFFFFE00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + mov r6, sb + ldrh r1, [r6, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r6, #4] + ldrb r5, [r5, #4] + adds r0, r0, r5 + strb r0, [r1] +_080118D8: + mov r7, r8 + ldrh r0, [r7] + cmp r0, #1 + bne _08011930 + ldr r2, _08011964 @ =0x086A9694 + ldr r1, _0801195C @ =0x02002888 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r7, #2] + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #2] + strh r0, [r7, #4] + mov r5, r8 + adds r5, #8 + ldr r4, _08011960 @ =0x03005000 + ldrh r2, [r7, #8] + lsls r2, r2, #3 + adds r2, r2, r4 + movs r0, #2 + ldrsh r1, [r5, r0] + movs r3, #2 + ldrsh r0, [r7, r3] + adds r1, r1, r0 + ldr r6, _08011950 @ =0x000001FF + adds r0, r6, #0 + ands r1, r0 + ldrh r3, [r2, #2] + ldr r0, _08011954 @ =0xFFFFFE00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + ldrh r1, [r7, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r7, #4] + ldrb r5, [r5, #4] + adds r0, r0, r5 + strb r0, [r1] +_08011930: + movs r0, #0 + mov r7, sl + strh r0, [r7] + mov r1, sb + strh r0, [r1] + mov r2, r8 + strh r0, [r2] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08011950: .4byte 0x000001FF +_08011954: .4byte 0xFFFFFE00 +_08011958: .4byte 0x086A9684 +_0801195C: .4byte 0x02002888 +_08011960: .4byte 0x03005000 +_08011964: .4byte 0x086A9694 + + thumb_func_start sub_11968 +sub_11968: @ 0x08011968 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r2, _08011A1C @ =0x0200B0C0 + ldrh r0, [r2, #0x38] + movs r0, #0x84 + lsls r0, r0, #2 + strh r0, [r2, #0x38] + ldrh r0, [r2, #0x3a] + ldr r0, _08011A20 @ =0x00000808 + strh r0, [r2, #0x3a] + ldr r1, _08011A24 @ =0x04000050 + ldrh r0, [r2, #0x38] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r2, #0x3a] + strh r0, [r1] + ldr r3, _08011A28 @ =0x02002888 + movs r0, #0xa + ldrsb r0, [r3, r0] + movs r1, #0xb8 + muls r0, r1, r0 + movs r4, #0xbe + lsls r4, r4, #2 + adds r2, r2, r4 + adds r0, r0, r2 + mov sl, r0 + movs r0, #0xc + ldrsb r0, [r3, r0] + muls r0, r1, r0 + adds r0, r0, r2 + mov sb, r0 + movs r0, #0xe + ldrsb r0, [r3, r0] + muls r0, r1, r0 + adds r0, r0, r2 + mov r8, r0 + movs r0, #0xb + ldrsb r0, [r3, r0] + mov r6, sl + strh r0, [r6] + movs r0, #0xd + ldrsb r0, [r3, r0] + mov r7, sb + strh r0, [r7] + movs r0, #0xf + ldrsb r0, [r3, r0] + mov r1, r8 + strh r0, [r1] + ldr r4, _08011A2C @ =0x0202BE00 + adds r0, r4, #0 + movs r1, #7 + bl sub_358 + ldrh r0, [r6] + cmp r0, #1 + bne _08011A88 + movs r0, #0x78 + strh r0, [r6, #2] + movs r0, #0x66 + strh r0, [r6, #4] + ldr r4, [r4, #0x18] + mov ip, r4 + movs r2, #0 + str r2, [sp] + ldrh r3, [r4] + cmp r2, r3 + bge _08011A88 + ldr r6, _08011A30 @ =0x03005000 + mov r4, sl + adds r4, #8 + mov r5, ip +_080119FE: + ldrh r0, [r5, #8] + cmp r0, #1 + bne _08011A34 + ldrh r2, [r4] + lsls r2, r2, #3 + adds r2, r2, r6 + ldrb r1, [r2, #1] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #1] + b _08011A44 + .align 2, 0 +_08011A1C: .4byte 0x0200B0C0 +_08011A20: .4byte 0x00000808 +_08011A24: .4byte 0x04000050 +_08011A28: .4byte 0x02002888 +_08011A2C: .4byte 0x0202BE00 +_08011A30: .4byte 0x03005000 +_08011A34: + ldrh r0, [r4] + lsls r0, r0, #3 + adds r0, r0, r6 + ldrb r2, [r0, #1] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #1] +_08011A44: + ldrh r3, [r4] + lsls r3, r3, #3 + adds r3, r3, r6 + movs r7, #2 + ldrsh r1, [r4, r7] + mov r2, sl + movs r7, #2 + ldrsh r0, [r2, r7] + adds r1, r1, r0 + ldr r2, _08011B5C @ =0x000001FF + adds r0, r2, #0 + ands r1, r0 + ldrh r2, [r3, #2] + ldr r0, _08011B60 @ =0xFFFFFE00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, #2] + ldrh r1, [r4] + lsls r1, r1, #3 + adds r1, r1, r6 + mov r3, sl + ldrb r0, [r3, #4] + ldrb r7, [r4, #4] + adds r0, r0, r7 + strb r0, [r1] + adds r4, #8 + adds r5, #8 + ldr r0, [sp] + adds r0, #1 + str r0, [sp] + mov r1, ip + ldrh r1, [r1] + cmp r0, r1 + blt _080119FE +_08011A88: + mov r2, sb + ldrh r0, [r2] + cmp r0, #1 + bne _08011AE4 + ldr r2, _08011B64 @ =0x086A96AC + ldr r1, _08011B68 @ =0x02002888 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + mov r3, sb + strh r0, [r3, #2] + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #2] + strh r0, [r3, #4] + mov r5, sb + adds r5, #8 + ldr r4, _08011B6C @ =0x03005000 + ldrh r2, [r3, #8] + lsls r2, r2, #3 + adds r2, r2, r4 + movs r6, #2 + ldrsh r1, [r5, r6] + movs r7, #2 + ldrsh r0, [r3, r7] + adds r1, r1, r0 + ldr r3, _08011B5C @ =0x000001FF + adds r0, r3, #0 + ands r1, r0 + ldrh r3, [r2, #2] + ldr r0, _08011B60 @ =0xFFFFFE00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + mov r6, sb + ldrh r1, [r6, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r6, #4] + ldrb r5, [r5, #4] + adds r0, r0, r5 + strb r0, [r1] +_08011AE4: + mov r7, r8 + ldrh r0, [r7] + cmp r0, #1 + bne _08011B3C + ldr r2, _08011B70 @ =0x086A96C0 + ldr r1, _08011B68 @ =0x02002888 + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r7, #2] + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r0, r0, #2 + adds r0, r0, r2 + ldrh r0, [r0, #2] + strh r0, [r7, #4] + mov r5, r8 + adds r5, #8 + ldr r4, _08011B6C @ =0x03005000 + ldrh r2, [r7, #8] + lsls r2, r2, #3 + adds r2, r2, r4 + movs r0, #2 + ldrsh r1, [r5, r0] + movs r3, #2 + ldrsh r0, [r7, r3] + adds r1, r1, r0 + ldr r6, _08011B5C @ =0x000001FF + adds r0, r6, #0 + ands r1, r0 + ldrh r3, [r2, #2] + ldr r0, _08011B60 @ =0xFFFFFE00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, #2] + ldrh r1, [r7, #8] + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r7, #4] + ldrb r5, [r5, #4] + adds r0, r0, r5 + strb r0, [r1] +_08011B3C: + movs r0, #0 + mov r7, sl + strh r0, [r7] + mov r1, sb + strh r0, [r1] + mov r2, r8 + strh r0, [r2] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_08011B5C: .4byte 0x000001FF +_08011B60: .4byte 0xFFFFFE00 +_08011B64: .4byte 0x086A96AC +_08011B68: .4byte 0x02002888 +_08011B6C: .4byte 0x03005000 +_08011B70: .4byte 0x086A96C0 + + thumb_func_start sub_11B74 +sub_11B74: @ 0x08011B74 + push {lr} + bl sub_52C64 + bl sub_52B30 + ldr r0, _08011B94 @ =0x0200B0C0 + movs r1, #0 + str r1, [r0, #0x40] + adds r0, #0x40 + ldr r1, _08011B98 @ =0x0E000544 + movs r2, #4 + bl sub_55654 + pop {r0} + bx r0 + .align 2, 0 +_08011B94: .4byte 0x0200B0C0 +_08011B98: .4byte 0x0E000544 |